{"version":3,"sources":["webpack://fastpath/./App/Shared/Config/churnZero.config.js","webpack://fastpath/./App/Shared/Controllers/navController.js","webpack://fastpath/./App/Shared/Controllers/pageWrapper.controller.js","webpack://fastpath/./App/Shared/Controllers/login.controller.js","webpack://fastpath/./App/Shared/Functions/createSpinner.js","webpack://fastpath/./App/Shared/Controllers/redirectController.js","webpack://fastpath/./App/Shared/Controllers/callback.controller.js","webpack://fastpath/./App/app.report.rootViewModel.js","webpack://fastpath/./App/Components/Users/SubstituteModal/substituteModal.controller.js","webpack://fastpath/./App/Shared/Controllers/rightSideNavController.js","webpack://fastpath/./App/Shared/Controllers/ReportSchedulerModalController.js","webpack://fastpath/./App/Shared/Controllers/ReportToolbarViewModel.js","webpack://fastpath/./App/Components/NavigationBar/BackNavigationBarController.js","webpack://fastpath/./App/Components/DynamicReports/DynamicTabViewModel.js","webpack://fastpath/./App/Components/home/home.controller.js","webpack://fastpath/./App/Components/home/home.component.js","webpack://fastpath/./App/Components/myDownloads/shareExportsModal.controller.js","webpack://fastpath/./App/Components/myDownloads/editDownloadModal.controller.js","webpack://fastpath/./App/Components/myDownloads/myDownloads.controller.js","webpack://fastpath/./App/Components/myDownloads/myDownloads.component.js","webpack://fastpath/./App/Components/signReportFromEmail/signReportFromEmail.controller.js","webpack://fastpath/./App/Components/signReportFromEmail/signReportFromEmail.component.js","webpack://fastpath/./css/site.scss?3bb9","webpack://fastpath/./App/app.route.js","webpack://fastpath/./App/Shared/Config/raygun.config.js","webpack://fastpath/./App/Shared/Config/helpObject.config.js","webpack://fastpath/./App/Shared/Config/applicationInsights.config.js","webpack://fastpath/./App/Shared/Config/spinner.config.js","webpack://fastpath/./App/Shared/Config/translation.config.js","webpack://fastpath/./App/Shared/Interceptors/tenantInterceptor.js","webpack://fastpath/./App/Shared/Interceptors/authInterceptor.js","webpack://fastpath/./App/Shared/Interceptors/responseErrorInterceptor.js","webpack://fastpath/./App/Shared/Config/flowJs.config.js","webpack://fastpath/./App/Shared/Config/location.config.js","webpack://fastpath/./App/Shared/kendo.module.js","webpack://fastpath/./App/Shared/Services/authentication.service.js","webpack://fastpath/./App/Shared/Services/savedReportSelector.js","webpack://fastpath/./App/Shared/GlobalVariables/ProductLookUp.js","webpack://fastpath/./App/Shared/Services/viewProductImportPageService.js","webpack://fastpath/./App/Components/Home/KPIGeneratorService.js","webpack://fastpath/./App/Shared/GlobalVariables/filterVariables.js","webpack://fastpath/./App/Shared/Services/reportService.js","webpack://fastpath/./App/Shared/Services/exportReportService.js","webpack://fastpath/./App/Shared/Services/helper.service.js","webpack://fastpath/./App/Components/Reports/reports.service.js","webpack://fastpath/./App/Shared/sharedServices.module.js","webpack://fastpath/./App/Shared/Services/whiteListService.js","webpack://fastpath/./App/Components/Home/KPIOverrideDefinitions.js","webpack://fastpath/./App/APICalls/CommonDataService.js","webpack://fastpath/./App/APICalls/ObjectIdDataService.js","webpack://fastpath/./App/Shared/Factories/exceptionHandler.factory.js","webpack://fastpath/./App/APICalls/ReportDataService.js","webpack://fastpath/./App/Components/Reports/reportsDataService.factory.js","webpack://fastpath/./App/APICalls/ErrorsDataService.js","webpack://fastpath/./App/Shared/Factories/viewModelHelper.factory.js","webpack://fastpath/./App/APICalls/configurationDataService.factory.js","webpack://fastpath/./App/Shared/Services/emailNavigationService.factory.js","webpack://fastpath/./App/Shared/Components/selectRolesByUser/userRolesDataService.factory.js","webpack://fastpath/./App/APICalls/approvalGroupsDataService.factory.js","webpack://fastpath/./App/Components/MyDownloads/myDownloadsDataService.factory.js","webpack://fastpath/./App/Shared/Components/userProfile/userProfileDataService.factory.js","webpack://fastpath/./App/Shared/Components/accessDetailsProfile/accessDetailsDataService.factory.js","webpack://fastpath/./App/Components/home/homeDataService.factory.js","webpack://fastpath/./App/Shared/sharedFactories.module.js","webpack://fastpath/./App/Shared/Factories/dateFormatter.factory.js","webpack://fastpath/./App/Shared/Services/SignalRArchiveService.js","webpack://fastpath/./App/Shared/Services/SignalRCommonService.js","webpack://fastpath/./App/Shared/Controllers/npsQuestionModal.controller.js","webpack://fastpath/./App/Shared/Factories/signalRUser.factory.js","webpack://fastpath/./App/Shared/Factories/signalRTenant.factory.js","webpack://fastpath/./App/Shared/signalr.module.js","webpack://fastpath/./App/Shared/Components/criteriaSubmitButtonDropdown/criteriaSubmitButtonDropdown.controller.js","webpack://fastpath/./App/Shared/Components/criteriaSubmitButtonDropdown/criteriaSubmitButtonDropdown.component.js","webpack://fastpath/./App/Shared/Components/roleMultiselectDropdown/roleMultiselectDropdown.controller.js","webpack://fastpath/./App/Shared/Components/roleMultiselectDropdown/roleMultiselectDropdown.component.js","webpack://fastpath/./App/Shared/Components/pageHeader/pageHeader.controller.js","webpack://fastpath/./App/Shared/Components/pageHeader/pageHeader.component.js","webpack://fastpath/./App/Shared/Components/ManageSavedLayouts/manageSavedLayouts.controller.js","webpack://fastpath/./App/Shared/Components/ManageSavedLayouts/manageSavedLayouts.component.js","webpack://fastpath/./App/Shared/Components/selectRolesByUser/selectUserModal.controller.js","webpack://fastpath/./App/Shared/Components/selectRolesByUser/selectRolesByUser.controller.js","webpack://fastpath/./App/Shared/Components/selectRolesByUser/selectRolesByUser.component.js","webpack://fastpath/./App/Shared/Components/selectRolesByRoleTemplate/selectRoleTemplateModal.controller.js","webpack://fastpath/./App/Shared/Components/selectRolesByRoleTemplate/selectRolesByRoleTemplate.controller.js","webpack://fastpath/./App/Shared/Components/selectRolesByRoleTemplate/selectRolesByRoleTemplate.component.js","webpack://fastpath/./App/Shared/Components/ReportToolbar/reportToolbar.controller.js","webpack://fastpath/./App/Shared/Components/ReportToolbar/reportToolbar.component.js","webpack://fastpath/./App/Shared/Components/TableFieldsModal/tableFieldsModal.controller.js","webpack://fastpath/./App/Shared/Components/TableFieldsModal/tableFieldsModal.component.js","webpack://fastpath/./App/Components/DataChanges/Zendesk/ZendeskTicketModalController.js","webpack://fastpath/./App/Components/DataChanges/ServiceNow/ServiceNowTicketModalController.js","webpack://fastpath/./App/Components/DataChanges/Jira/JiraTicketModalController.js","webpack://fastpath/./App/Components/DataChanges/customTicket/customTicketModalController.js","webpack://fastpath/./App/Components/DataChanges/FreshService/FreshServiceTicketModalController.js","webpack://fastpath/./App/Shared/Components/rowSettingsTemplate/rowSettingsTemplate.controller.js","webpack://fastpath/./App/Shared/Components/rowSettingsTemplate/rowSettingsTemplate.component.js","webpack://fastpath/./App/Shared/Components/ReportFilterManager/reportFilterManager.controller.js","webpack://fastpath/./App/Shared/Components/ReportFilterManager/reportFilterManager.component.js","webpack://fastpath/./App/Shared/Components/SignReport/signReport.controller.js","webpack://fastpath/./App/Shared/Components/SignReport/signReport.component.js","webpack://fastpath/./App/Shared/Components/SaveReport/saveReport.controller.js","webpack://fastpath/./App/Shared/Components/SaveReport/saveReport.component.js","webpack://fastpath/./App/Shared/Components/ScheduleReport/scheduleReport.controller.js","webpack://fastpath/./App/Shared/Components/ScheduleReport/scheduleReport.component.js","webpack://fastpath/./App/Shared/Components/SaveReportFilter/saveReportFilter.controller.js","webpack://fastpath/./App/Shared/Components/SaveReportFilter/saveReportFilter.component.js","webpack://fastpath/./App/Shared/Components/identityManagerRoleCompanies/editRoleCompaniesModal.controller.js","webpack://fastpath/./App/Shared/Components/identityManagerRoleCompanies/editRoleCompanies.controller.js","webpack://fastpath/./App/Shared/Components/identityManagerRoleCompanies/editRoleCompanies.component.js","webpack://fastpath/./App/Shared/Components/selectCompaniesByTemplate/selectTemplateModal.controller.js","webpack://fastpath/./App/Shared/Components/selectCompaniesByTemplate/selectCompaniesByTemplate.controller.js","webpack://fastpath/./App/Shared/Components/selectCompaniesByTemplate/selectCompaniesByTemplate.component.js","webpack://fastpath/./App/Shared/Components/DataChangesImport/importDataChangesModal.controller.js","webpack://fastpath/./App/Shared/Components/DataChangesImport/dataChangesImport.controller.js","webpack://fastpath/./App/Shared/Components/DataChangesImport/dataChangesImport.component.js","webpack://fastpath/./App/Shared/Components/staticPageHeader/staticPageHeader.controller.js","webpack://fastpath/./App/Shared/Components/staticPageHeader/staticPageHeader.component.js","webpack://fastpath/./App/Shared/Components/userMultiselectDropdown/userMultiselectDropdown.controller.js","webpack://fastpath/./App/Shared/Components/userMultiselectDropdown/userMultiselectDropdown.component.js","webpack://fastpath/./App/Components/MyInbox/myInbox.controller.js","webpack://fastpath/./App/Components/MyInbox/myInbox.component.js","webpack://fastpath/./App/Shared/Components/imRoleOrgHierarchies/editRoleOrgHierarchiesModal.controller.js","webpack://fastpath/./App/Shared/Components/imRoleOrgHierarchies/editRoleOrgHierarchies.controller.js","webpack://fastpath/./App/Shared/Components/imRoleOrgHierarchies/editRoleOrgHierarchies.component.js","webpack://fastpath/./App/Shared/Components/userProfile/userProfileModal.controller.js","webpack://fastpath/./App/Shared/Components/userProfile/userProfile.controller.js","webpack://fastpath/./App/Shared/Components/userProfile/userProfile.component.js","webpack://fastpath/./App/Shared/Components/userDetailsChanges/userDetailsChangesModal.controller.js","webpack://fastpath/./App/Shared/Components/userDetailsChanges/userDetailsChanges.component.js","webpack://fastpath/./App/Shared/Components/userProfile/userProductProfile/userProductProfile.controller.js","webpack://fastpath/./App/Shared/Components/userProfile/userProductProfile/userProductProfile.component.js","webpack://fastpath/./App/Shared/Components/accessDetailsProfile/accessDetailsProfileModal.controller.js","webpack://fastpath/./App/Shared/Components/accessDetailsProfile/accessDetailsProfile.controller.js","webpack://fastpath/./App/Shared/Components/accessDetailsProfile/accessDetailsProfile.component.js","webpack://fastpath/./App/Shared/components/Attachments/attachmentsDownloadModal.controller.js","webpack://fastpath/./App/Shared/components/Attachments/attachmentsDownload.component.js","webpack://fastpath/./App/Shared/Components/accessDetailsProfile/riskDetailsProductProfile/riskProductProfile.controller.js","webpack://fastpath/./App/Shared/Components/accessDetailsProfile/riskDetailsProductProfile/riskProductProfile.component.js","webpack://fastpath/./App/Shared/Components/accessDetailsProfile/businessProcessDetailsProductProfile/businessProcessProductProfile.controller.js","webpack://fastpath/./App/Shared/Components/accessDetailsProfile/businessProcessDetailsProductProfile/businessProcessProductProfile.component.js","webpack://fastpath/./App/Shared/Components/ownershipGroupAssignments/ownershipGroupAssignments.component.js","webpack://fastpath/./App/Shared/sharedComponents.module.js","webpack://fastpath/./App/Shared/Components/backButton/backButton.component.js","webpack://fastpath/./App/Shared/Components/backButton/backButton.controller.js","webpack://fastpath/./App/Components/DynamicReports/DynamicReportsViewModel.js","webpack://fastpath/./App/Shared/dashboardReports.module.js","webpack://fastpath/./App/Shared/Filters/customFilters.js","webpack://fastpath/./App/Shared/sharedFilters.module .js","webpack://fastpath/./App/Shared/Filters/ErpLabelFilter.js","webpack://fastpath/./App/Shared/Directives/customDirectives.js","webpack://fastpath/./App/Shared/Functions/directives.js","webpack://fastpath/./App/Shared/Directives/whenReadyDirective.js","webpack://fastpath/./App/Shared/sharedDirectives.module.js","webpack://fastpath/./App/Shared/Directives/navRepeat.directive.js","webpack://fastpath/./App/Shared/Directives/oracle-password.directive.js","webpack://fastpath/./App/Shared/shared.module.js","webpack://fastpath/./App/Shared/Functions/dialogs.js","webpack://fastpath/./App/Components/roleBusinessProcess/roleBusinessProcess.controller.js","webpack://fastpath/./App/Components/roleRisks/roleRisks.controller.js","webpack://fastpath/./App/Components/userBusinessProcess/userBusinessProcess.controller.js","webpack://fastpath/./App/Components/userRisk/userRisksMitigationModal.controller.js","webpack://fastpath/./App/Components/userRisk/userRisk.controller.js","webpack://fastpath/./App/Components/NetSuiteArmQuantification/NSQuantificationViewDetailsModalController.js","webpack://fastpath/./App/Components/NetSuiteArmQuantification/NetSuiteArmQuantificationViewModel.js","webpack://fastpath/./App/Components/NetSuiteArmQuantification/NSQuantificationSelection.js","webpack://fastpath/./App/Components/NetSuiteSecurityDesigner/NetSuiteSecurityDesignerViewModel.js","webpack://fastpath/./App/Components/NetSuiteSecurityDesigner/Deployment/NetSuiteSecurityDesignerDeploymentController.js","webpack://fastpath/./App/Components/NetSuiteSecurityDesigner/SimulationNewController.js","webpack://fastpath/./App/AccessRiskMonitor/armNetSuite.module.js","webpack://fastpath/./App/Components/roleBusinessProcess/buildRoleBPPostBody.factory.js","webpack://fastpath/./App/APICalls/risksDataService.factory.js","webpack://fastpath/./App/Components/userBusinessProcess/buildUserBPPostBody.factory.js","webpack://fastpath/./App/Components/userRisk/BuildUserRisksPostBody.js","webpack://fastpath/./App/Components/responsibilityRisk/responsibilityRiskPostBody.js","webpack://fastpath/./App/Components/controlLibrary/controlLibraryDataService.factory.js","webpack://fastpath/./App/Components/maintainBusinessCycles/businessCyclesDataService.factory.js","webpack://fastpath/./App/Components/maintainMitigations/mitigationsDataService.factory.js","webpack://fastpath/./App/Components/maintainRiskLevels/riskLevels.factory.js","webpack://fastpath/./App/Components/maintainStatuses/statusDataService.factory.js","webpack://fastpath/./App/APICalls/AutoMitigationDataService.js","webpack://fastpath/./App/Components/Peoplesoft/autoMitigations/autoMitigationsDataService.factory.js","webpack://fastpath/./App/Components/AutoMitigations/autoMitigationsDataService.factory.js","webpack://fastpath/./App/Components/MaintainBusinessProcess/businessProcessDataService.factory.js","webpack://fastpath/./App/Components/maintainRiskRuleset/riskRulesetDataService.factory.js","webpack://fastpath/./App/Components/assignRisks/assignRisksDataService.factory.js","webpack://fastpath/./App/Components/roleAccess/BuildRoleAccessPostBody.js","webpack://fastpath/./App/Components/userAccess/BuildUserAccessPostBody.js","webpack://fastpath/./App/Components/responsibilityAccess/responsibilityAccessPostBody.js","webpack://fastpath/./App/Components/maintainProfiles/maintainProfilesDataService.factory.js","webpack://fastpath/./App/AccessRiskMonitor/accessRiskMonitor.factories.module.js","webpack://fastpath/./App/Components/maintainRiskRuleset/objects/riskRulesetMapper.service.js","webpack://fastpath/./App/Components/D365ArmQuantification/D365ArmQuantification.controller.js","webpack://fastpath/./App/Components/responsibilityRisk/responsibilityRisk.controller.js","webpack://fastpath/./App/Components/SAPCodeChecker/SAPCodeCheckerViewModel.js","webpack://fastpath/./App/Components/SAPRiskQuantification/SAPRiskQuantificationViewModel.js","webpack://fastpath/./App/Components/MaintainBusinessProcess/SAPAuthFieldGroups/groupModal.controller.js","webpack://fastpath/./App/Components/MaintainBusinessProcess/SAPAuthFieldGroups/sapAuthFieldGroups.controller.js","webpack://fastpath/./App/Components/MaintainBusinessProcess/SAPAuthFieldGroups/sapAuthFieldGroups.component.js","webpack://fastpath/./App/Components/MaintainBusinessProcess/SAPAuthFieldGroups/sapAuthFieldGroupsDataService.factory.js","webpack://fastpath/./App/Components/maintainProfiles/maintainProfilesModal/maintainProfilesModal.controller.js","webpack://fastpath/./App/Components/maintainProfiles/maintainProfilesGrid/maintainProfilesGrid.controller.js","webpack://fastpath/./App/Components/maintainProfiles/maintainProfilesGrid/maintainProfilesGrid.component.js","webpack://fastpath/./App/AccessRiskMonitor/armSAP.module.js","webpack://fastpath/./App/Components/maintainProfiles/maintainProfiles.component.js","webpack://fastpath/./App/Components/applyDefaultMitigations/applyDefaultMitigations.controller.js","webpack://fastpath/./App/Components/applyDefaultMitigations/applyDefaultMitigations.component.js","webpack://fastpath/./App/Components/assignRisks/assignRisks.controller.js","webpack://fastpath/./App/Components/assignRisks/assignRisks.component.js","webpack://fastpath/./App/Components/controlLibrary/importControlModal.controller.js","webpack://fastpath/./App/Components/controlLibrary/newEditControlModal.controller.js","webpack://fastpath/./App/Components/controlLibrary/controlLibrary.controller.js","webpack://fastpath/./App/Components/controlLibrary/controlLibrary.component.js","webpack://fastpath/./App/Components/maintainBusinessCycles/businessCycleModal.controller.js","webpack://fastpath/./App/Components/maintainBusinessCycles/maintainBusinessCycles.controller.js","webpack://fastpath/./App/Components/maintainBusinessCycles/maintainBusinessCycles.component.js","webpack://fastpath/./App/Components/maintainRiskRuleset/riskRulesetModal.controller.js","webpack://fastpath/./App/Components/maintainRiskRuleset/risksModal/riskModal.controller.js","webpack://fastpath/./App/Components/maintainRiskRuleset/Objects/availableObjectsForRiskModal.controller.js","webpack://fastpath/./App/Components/maintainRiskRuleset/Objects/businessProcessObjectsModal.controller.js","webpack://fastpath/./App/Shared/Components/rulesetObjectCopyModal/rulesetObjectCopyModal.controller.js","webpack://fastpath/./App/Components/maintainRiskRuleset/maintainRiskRuleset.controller.js","webpack://fastpath/./App/Components/maintainMitigations/mitigationModal.controller.js","webpack://fastpath/./App/Components/maintainMitigations/maintainMitigations.controller.js","webpack://fastpath/./App/Components/maintainMitigations/maintainMitigations.component.js","webpack://fastpath/./App/Components/maintainStatuses/statusModal.controller.js","webpack://fastpath/./App/Components/maintainStatuses/maintainStatuses.controller.js","webpack://fastpath/./App/Components/maintainStatuses/maintainStatuses.component.js","webpack://fastpath/./App/Components/ManageArchives/ManageArchivesViewModel.js","webpack://fastpath/./App/Components/startNewAudit/startNewAudit.controller.js","webpack://fastpath/./App/Components/startNewAudit/startNewAudit.component.js","webpack://fastpath/./App/Components/AutoMitigations/ImportAutoMitigationRulesetModal/importAutoMitigationRulesetModal.controller.js","webpack://fastpath/./App/Components/Oracle/ApplyAutoMitigation/ApplyAutoMitigationViewModel.js","webpack://fastpath/./App/Components/transferRuleset/transferRuleset.controller.js","webpack://fastpath/./App/Components/Peoplesoft/autoMitigations/addMitigationRuleModal.controller.js","webpack://fastpath/./App/Components/Peoplesoft/autoMitigations/autoMitigations.controller.js","webpack://fastpath/./App/Components/Peoplesoft/autoMitigations/autoMitigations.component.js","webpack://fastpath/./App/Components/AutoMitigations/AutoMitigationModal/autoMitigationModal.controller.js","webpack://fastpath/./App/Components/AutoMitigations/autoMitigations.controller.js","webpack://fastpath/./App/Components/AutoMitigations/autoMitigations.component.js","webpack://fastpath/./App/Components/maintainRiskRuleset/objects/manageConditions/manageConditions.controller.js","webpack://fastpath/./App/Components/maintainRiskRuleset/objects/manageConditions/manageConditions.component.js","webpack://fastpath/./App/Components/maintainRiskLevels/riskLevelsModal/riskLevelsModal.controller.js","webpack://fastpath/./App/Components/maintainRiskLevels/riskLevelsGrid/riskLevelsGrid.controller.js","webpack://fastpath/./App/Components/maintainRiskLevels/riskLevelsGrid/riskLevelsGrid.component.js","webpack://fastpath/./App/Components/MaintainBusinessProcess/businessProcessModal/businessProcessModal.controller.js","webpack://fastpath/./App/Components/MaintainBusinessProcess/bpGroupModal/bpGroupModal.controller.js","webpack://fastpath/./App/Components/MaintainBusinessProcess/bpObjectsModal/bpObjectsModal.controller.js","webpack://fastpath/./App/Components/MaintainBusinessProcess/maintainBusinessProcess.controller.js","webpack://fastpath/./App/AccessRiskMonitor/accessRiskMonitor.setup.module.js","webpack://fastpath/./App/Components/maintainRiskLevels/riskLevels.component.js","webpack://fastpath/./App/Components/maintainRiskLevels/riskLevels.controller.js","webpack://fastpath/./App/Components/roleAccess/roleAccess.controller.js","webpack://fastpath/./App/Components/userAccess/userAccess.controller.js","webpack://fastpath/./App/Components/responsibilityAccess/responsibilityAccess.controller.js","webpack://fastpath/./App/AccessRiskMonitor/accessRiskMonitor.module.js","webpack://fastpath/./App/Components/Certifications/MyReviews/DelegationModal/reviewDelegationModal.controller.js","webpack://fastpath/./App/Components/Certifications/MyReviews/TicketModal/ticketModal.controller.js","webpack://fastpath/./App/Components/Certifications/AllReviews/AttachmentsModal/attachmentsModal.controller.js","webpack://fastpath/./App/Components/Certifications/MyReviews/SubmitReviewModal/submitReviewModal.controller.js","webpack://fastpath/./App/Components/Certifications/AllReviews/certificationsAllReview.controller.js","webpack://fastpath/./App/Components/Certifications/AllReviews/certificationsAllReviewDataService.factory.js","webpack://fastpath/./App/Components/Certifications/notificationTeams/notificationTeamsService.factory.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/certificationsReviewAssignmentsDataService.factory.js","webpack://fastpath/./App/Shared/Components/roleSecurityProfile/roleSecurityProfileDataService.factory.js","webpack://fastpath/./App/Components/Certifications/MyReviews/myReviewsDataService.factory.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/reviewSchedulesDataService.factory.js","webpack://fastpath/./App/AccessCertifications/accessCertifications.factories.module.js","webpack://fastpath/./App/Shared/Services/accessCertifications.service.js","webpack://fastpath/./App/Components/Certifications/MyReviews/notesModal/notesModal.controller.js","webpack://fastpath/./App/Components/Certifications/MyReviews/myReviews.controller.js","webpack://fastpath/./App/Components/Certifications/MyReviews/SecurityRoleContentItemsList/roleContentReviewModal.controller.js","webpack://fastpath/./App/Components/Certifications/MyReviews/SecurityRoleContentItemsList/securityRoleContentItemsList.controller.js","webpack://fastpath/./App/Components/Certifications/MyReviews/SecurityRoleContentItemsList/securityRoleContentItemsList.component.js","webpack://fastpath/./App/Components/Certifications/LinkTickets/linkTicketsDropdown.controller.js","webpack://fastpath/./App/Components/Certifications/LinkTickets/linkTicketsDropdown.component.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/reviewScheduleInstancesList/scheduleModal/scheduleModal.controller.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/reviewScheduleInstancesList/importSchedulesModal/importSchedulesModal.controller.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/reviewScheduleInstancesList/scheduleInstanceModal/scheduleInstanceModal.controller.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/reviewScheduleInstancesList/reviewScheduleInstancesList.controller.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/reviewScheduleInstancesList/reviewScheduleInstancesList.component.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/scheduleInstanceAssignmentsList/instanceAssignmentModal.controller.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/scheduleInstanceAssignmentsList/routingCriteriaModal/routingCriteriaModal.controller.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/scheduleInstanceAssignmentsList/instanceAssignmentsList.controller.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/scheduleInstanceAssignmentsList/instanceAssignmentsList.component.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/routingCriteriaInstancesList/routingCriteriaInstanceModal.controller.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/routingCriteriaInstancesList/routingCriteriaInstancesList.controller.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/routingCriteriaInstancesList/routingCriteriaInstancesList.component.js","webpack://fastpath/./App/Components/Certifications/notificationTeams/addTeamMemberModal.controller.js","webpack://fastpath/./App/Components/Certifications/notificationTeams/notificationTeams.controller.js","webpack://fastpath/./App/Components/Certifications/notificationTeams/notificationTeams.component.js","webpack://fastpath/./App/Shared/Components/roleSecurityProfile/roleSecurityProfileModal/roleSecurityProfileModal.controller.js","webpack://fastpath/./App/Shared/Components/roleSecurityProfile/roleSecurityProfile.controller.js","webpack://fastpath/./App/Shared/Components/roleSecurityProfile/roleSecurityProfile.component.js","webpack://fastpath/./App/AccessCertifications/accessCertifications.module.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/reviewSchedules.component.js","webpack://fastpath/./App/Components/Certifications/reviewSchedules/reviewSchedules.controller.js","webpack://fastpath/./App/Components/DataChanges/linkTicketsModal/linkTicketsModal.controller.js","webpack://fastpath/./App/Components/DataChanges/DataChangesViewModel.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainTemplates/templatesDataService.factory.js","webpack://fastpath/./App/Components/ManageDataV2/Factories/manageDataDataService.factory.js","webpack://fastpath/./App/Components/ReportGenerator/generatedReportsDataService.factory.js","webpack://fastpath/./App/Components/AuditTrail/MaintainSnapshots/snapshotsDataService.factory.js","webpack://fastpath/./App/Components/TemplateTracking/TemplateTrackingDetails/templateDataService.js","webpack://fastpath/./App/Components/workdayMaintainTemplates/workdayMaintainTemplatesDataService.factory.js","webpack://fastpath/./App/Components/salesForceAuditTrail/salesforceAtDataService.factory.js","webpack://fastpath/./App/AuditTrail/auditTrail.factories.module.js","webpack://fastpath/./App/Components/ManageDataV2/Factories/manageData.factory.js","webpack://fastpath/./App/Components/DataChangesNetSuite/netsuiteDataChangesDataService.factory.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/AllChanges/allChangesDataService.factory.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainOptionSets/optionSetsDataService.factory.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainUserGroups/userGroupsDataService.factory.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/ManageDocumentation/documentationDataService.factory.js","webpack://fastpath/./App/AuditTrail/auditTrailNetSuite.factories.module.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainTemplates/templateModal.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainTemplates/ObjectModal/objectModal.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainTemplates/FieldModal/fieldModal.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainTemplates/maintainTemplates.controller.js","webpack://fastpath/./App/Components/DataChangesConfiguration/netsuiteDataChangesConfiguration.controller.js","webpack://fastpath/./App/Components/DataChangesConfiguration/netsuiteDataChangesConfiguration.component.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainOptionSets/optionSetValueModal.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainOptionSets/maintainOptionSets.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainOptionSets/maintainOptionSets.component.js","webpack://fastpath/./App/Components/SnapshotChanges/snapshotChanges.controller.js","webpack://fastpath/./App/Components/SnapshotChanges/snapshotChanges.component.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainUserGroups/userGroupModal.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainUserGroups/UserModal/userModal.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainUserGroups/maintainUserGroups.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/MaintainUserGroups/maintainUserGroups.component.js","webpack://fastpath/./App/Components/SnapshotComparison/snapshotComparison.controller.js","webpack://fastpath/./App/Components/SnapshotComparison/snapshotComparison.component.js","webpack://fastpath/./App/Components/SnapshotConfiguration/snapshotConfiguration.controller.js","webpack://fastpath/./App/Components/SnapshotConfiguration/snapshotConfiguration.component.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/ManageDocumentation/documentationModal.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/ManageDocumentation/ChangeTicketsModal/changeTicketsModal.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/ManageDocumentation/ChangesModal/changesModal.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/ManageDocumentation/manageDocumentation.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/ManageDocumentation/manageDocumentation.component.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/AllChanges/allChangesEditModal.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/AllChanges/allChanges.controller.js","webpack://fastpath/./App/Components/NetSuiteAuditTrail/AllChanges/allChanges.component.js","webpack://fastpath/./App/Components/DataChangesNetSuite/netsuiteDataChanges.controller.js","webpack://fastpath/./App/Components/DataChangesNetSuite/netsuiteDataChanges.component.js","webpack://fastpath/./App/AuditTrail/auditTrailNetSuite.module.js","webpack://fastpath/./App/Components/ManageDataV2/Action/manageDataAction.controller.js","webpack://fastpath/./App/Components/ManageDataV2/Action/manageDataAction.component.js","webpack://fastpath/./App/Components/ManageDataV2/Configuration/manageDataConfiguration.controller.js","webpack://fastpath/./App/Components/ManageDataV2/Configuration/manageDataConfiguration.component.js","webpack://fastpath/./App/Components/ManageDataV2/Schedule/manageDataSchedule.controller.js","webpack://fastpath/./App/Components/ManageDataV2/Schedule/manageDataSchedule.component.js","webpack://fastpath/./App/Components/ManageDataV2/Product/manageDataProduct.controller.js","webpack://fastpath/./App/Components/ManageDataV2/Product/manageDataProduct.component.js","webpack://fastpath/./App/Components/AuditTrail/MaintainTemplates/maintainTemplates.controller.js","webpack://fastpath/./App/Components/AuditTrail/MaintainTemplates/maintainTemplates.component.js","webpack://fastpath/./App/Components/ManageData/ManageDataViewModel.js","webpack://fastpath/./App/Components/ManageData/ArchiveDataChanges/ArchiveDataChangesController.js","webpack://fastpath/./App/Components/ManageData/CollectDataChanges/CollectDataChangesController.js","webpack://fastpath/./App/Components/ManageData/CollectSnapshot/CollectSnapshotController.js","webpack://fastpath/./App/Components/ManageData/PurgeDataChanges/PurgeDataChangesController.js","webpack://fastpath/./App/Components/ManageData/RestoreDataChanges/RestoreDataChangesController.js","webpack://fastpath/./App/Components/ManageData/GenericManageDataScheduleController.js","webpack://fastpath/./App/Components/DataChangesOracleCloud/oracleCloudDataChanges.controller.js","webpack://fastpath/./App/Components/DataChangesOracleCloud/oracleCloudDataChanges.component.js","webpack://fastpath/./App/Components/AuditTrail/MaintainSnapshots/maintainSnapshots.controller.js","webpack://fastpath/./App/Components/AuditTrail/MaintainSnapshots/maintainSnapshots.component.js","webpack://fastpath/./App/Components/ReportGenerator/generatedReportModal.controller.js","webpack://fastpath/./App/Components/ReportGenerator/generatedReports.controller.js","webpack://fastpath/./App/Components/ReportGenerator/reportGenerator.component.js","webpack://fastpath/./App/Components/CurrentSnapshot/currentSnapshot.controller.js","webpack://fastpath/./App/Components/CurrentSnapshot/currentSnapshot.component.js","webpack://fastpath/./App/Components/ApplyTrackingTemplates/applyTrackingTemplates.controller.js","webpack://fastpath/./App/Components/ApplyTrackingTemplates/applyTrackingTemplates.component.js","webpack://fastpath/./App/Components/TemplateTracking/addTemplateModal.controller.js","webpack://fastpath/./App/Components/TemplateTracking/newAddTemplateTableModal.controller.js","webpack://fastpath/./App/Components/TemplateTracking/importTemplatesModal/importTemplatesModal.controller.js","webpack://fastpath/./App/Components/TemplateTracking/maintainTemplate.controller.js","webpack://fastpath/./App/Components/TemplateTracking/maintainTemplate.component.js","webpack://fastpath/./App/Components/ManageDataV2/manageData.controller.js","webpack://fastpath/./App/Components/ManageDataV2/manageData.component.js","webpack://fastpath/./App/Components/TemplateTracking/TemplateTrackingDetails/templateDetails.controller.js","webpack://fastpath/./App/Components/TemplateTracking/TemplateTrackingDetails/templateDetails.component.js","webpack://fastpath/./App/Components/workdayMaintainTemplates/templatesList/addEditTemplatesModal.controller.js","webpack://fastpath/./App/Components/workdayMaintainTemplates/templatesList/templatesList.controller.js","webpack://fastpath/./App/Components/workdayMaintainTemplates/templatesList/templatesList.component.js","webpack://fastpath/./App/Components/workdayMaintainTemplates/classesList/addClassesModal.controller.js","webpack://fastpath/./App/Components/workdayMaintainTemplates/classesList/classesList.controller.js","webpack://fastpath/./App/Components/workdayMaintainTemplates/classesList/classesList.component.js","webpack://fastpath/./App/Components/salesForceAuditTrail/maintainObjectTracking/maintainObjectTrackingGrid/importObjectModal.controller.js","webpack://fastpath/./App/Components/salesForceAuditTrail/maintainObjectTracking/maintainObjectTrackingGrid/maintainObjectTrackingGrid.controller.js","webpack://fastpath/./App/Components/salesForceAuditTrail/maintainObjectTracking/maintainObjectTrackingGrid/maintainObjectTrackingGrid.component.js","webpack://fastpath/./App/Components/setupChanges/setupChanges.controller.js","webpack://fastpath/./App/Components/setupChanges/setupChanges.component.js","webpack://fastpath/./App/AuditTrail/auditTrail.module.js","webpack://fastpath/./App/Components/AuditTrail/MaintainTemplates/templatesList.component.js","webpack://fastpath/./App/Components/AuditTrail/MaintainTemplates/templatesList.controller.js","webpack://fastpath/./App/Components/AuditTrail/MaintainSnapshots/SnapshotsList/snapshotsList.component.js","webpack://fastpath/./App/Components/AuditTrail/MaintainSnapshots/SnapshotsList/snapshotsList.controller.js","webpack://fastpath/./App/Components/workdayMaintainTemplates/workdayMaintainTemplates.component.js","webpack://fastpath/./App/Components/salesForceAuditTrail/maintainObjectTracking/maintainObjectTracking.component.js","webpack://fastpath/./App/Components/AXSecurityDesigner/axSecurityDesignerAffectedObjectsModal.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/NewAXSecurityLayerSecurityDesignerController.js","webpack://fastpath/./App/Components/AXSecurityDesigner/Duties/AXSecurityDesignerDutiesViewModel.js","webpack://fastpath/./App/Components/AXSecurityDesigner/Privileges/AXSecurityDesignerPrivilegesViewModel.js","webpack://fastpath/./App/Components/AXSecurityDesigner/Roles/AXSecurityDesignerRolesViewModel.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SecurityModels/NewAXSecurityModelModal.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/PartialAXSecurityDesignerChangesModal.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SecurityModels/AXSecurityDesignerSecurityModelsViewModel.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SimulationDetails/AXSecurityDesignerSimulationDetailsViewModel.js","webpack://fastpath/./App/Components/AXSecurityDesigner/taskRecordingManager/importTaskRecordingModal.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/taskRecordingManager/viewMenuItemsModal.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/taskRecordingManager/renameTaskRecordingModal.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/taskRecordingManager/addMissingMenuItemsModal.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/taskRecordingManager/taskRecordingManager.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/AXSecurityDesignerService.js","webpack://fastpath/./App/APICalls/taskRecordingDataService.factory.js","webpack://fastpath/./App/Components/AXSecurityDesigner/Privileges/AXSecurityDesignerPrivilegesDataService.factory.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SecurityMigration/securityMigrationDataService.factory.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/sapSdSimulationDataService.factory.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationCompositeRolesList/sapSdSimCompositeRoleDataService.factory.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationRolesList/sapSdSimRoleDataService.factory.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationRiskAnalysis/sapSdSimRiskAnalysisDataService.factory.js","webpack://fastpath/./App/SecurityDesigner/securityDesigner.factories.module.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SecurityMigration/MigrationsList/migrationModal.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SecurityMigration/MigrationsList/migrationsList.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SecurityMigration/MigrationsList/migrationsList.component.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SecurityMigration/MigrationDetails/migrationDetailsEditModal.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SecurityMigration/MigrationDetails/migrationDetailsGrid.controller.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SecurityMigration/MigrationDetails/migrationDetailsGrid.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulations.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulations.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationsList/simulationModal.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationsList/simulationsList.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationsList/simulationsList.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationRolesList/roleModal.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationRolesList/rolesList.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationRolesList/rolesList.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationCompositeRolesList/compositeRoleModal.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationCompositeRolesList/compositeRolesList.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationCompositeRolesList/compositeRolesList.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simRoleAuthObjectsList/roleAuthObjectModal.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simRoleAuthObjectsList/roleAuthObjectsList.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simRoleAuthObjectsList/roleAuthObjectsList.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simRoleOrgLevelsList/roleOrgLevelsList.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simRoleOrgLevelsList/roleOrgLevelsList.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/compositeRoleRolesList/addRolesModal.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/compositeRoleRolesList/compositeRoleRolesList.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/compositeRoleRolesList/compositeRoleRolesList.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simRoleAuthObjFieldsList/authObjectFieldsList.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simRoleAuthObjFieldsList/authObjectFieldsList.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/itemsList/itemsModal.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/itemsList/items.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/itemsList/items.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simFieldValuesList/fieldValueModal.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simFieldValuesList/fieldValuesList.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simFieldValuesList/fieldValuesList.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysisReport/simRiskAnalysisReportDetailModal.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysis.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysis.component.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysisReport/simRiskAnalysisReport.controller.js","webpack://fastpath/./App/Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysisReport/simRiskAnalysisReport.component.js","webpack://fastpath/./App/SecurityDesigner/securityDesigner.components.module.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SecurityMigration/securityMigration.component.js","webpack://fastpath/./App/Components/AXSecurityDesigner/SecurityMigration/securityMigration.controller.js","webpack://fastpath/./App/SecurityDesigner/securityDesigner.module.js","webpack://fastpath/./App/Components/openRequests/openRequestsDataService.factory.js","webpack://fastpath/./App/Components/ApprovalRules/approvalRulesDataService.factory.js","webpack://fastpath/./App/IdentityManager/identityManager.factories.module.js","webpack://fastpath/./App/Components/IdentityManagerRequestDetails/UserRisksMitigationModal/requestDetailsUserRisksMitigationModal.controller.js","webpack://fastpath/./App/Components/IdentityManagerRequestDetails/RequestDetailsModal/requestDetailsModal.controller.js","webpack://fastpath/./App/Components/IdentityManagerRequestDetails/ApproveDenyModal/approveDenyModal.controller.js","webpack://fastpath/./App/Components/IdentityManagerRequestDetails/DelegationModal/requestDelegationModal.controller.js","webpack://fastpath/./App/Components/IdentityManagerRequestDetails/EditEffectiveDatesModal/editEffectiveDatesModal.controller.js","webpack://fastpath/./App/Components/IdentityManagerRequestDetails/cancellationNotesModal/cancellationNotesModal.controller.js","webpack://fastpath/./App/Components/IdentityManagerRequestDetails/EditRequestExpirationModal/editRequestExpirationModal.controller.js","webpack://fastpath/./App/Components/IdentityManagerRequestDetails/IdentityManagerRequestDetailsViewModel.js","webpack://fastpath/./App/Components/openRequests/openRequests.controller.js","webpack://fastpath/./App/Components/openRequests/openRequests.component.js","webpack://fastpath/./App/Components/RequestManagement/Services/azureADUserObjectValueMapper.service.js","webpack://fastpath/./App/Components/RequestManagement/Services/existingUserCheck.service.js","webpack://fastpath/./App/Components/RequestManagement/Services/existingUserSearch.service.js","webpack://fastpath/./App/IdentityManager/identityManager.requestManagement.factories.module.js","webpack://fastpath/./App/Components/RequestManagement/Services/aDUserObjectValueMapper.service.js","webpack://fastpath/./App/Components/RequestManagement/ADUserLink/aDUserSearch.controller.js","webpack://fastpath/./App/Components/RequestManagement/ADUserLink/aDUser.controller.js","webpack://fastpath/./App/Components/RequestManagement/ADUserLink/aDUser.component.js","webpack://fastpath/./App/Components/RequestManagement/ADUserLookup/aDUserLookupSearch.controller.js","webpack://fastpath/./App/Components/RequestManagement/ADUserLookup/aDUserLookup.controller.js","webpack://fastpath/./App/Components/RequestManagement/ADUserLookup/aDUserLookup.component.js","webpack://fastpath/./App/Components/RequestManagement/AzureADUserLink/azureADUserSearch.controller.js","webpack://fastpath/./App/Components/RequestManagement/AzureADUserLink/azureADUser.controller.js","webpack://fastpath/./App/Components/RequestManagement/AzureADUserLink/azureADUser.component.js","webpack://fastpath/./App/Components/RequestManagement/AzureADUserLookup/azureADUserLookupSearch.controller.js","webpack://fastpath/./App/Components/RequestManagement/AzureADUserLookup/azureADUserLookup.controller.js","webpack://fastpath/./App/Components/RequestManagement/AzureADUserLookup/azureADUserLookup.component.js","webpack://fastpath/./App/Components/RequestManagement/ExistingUserExpansion/existingUserExpansion.controller.js","webpack://fastpath/./App/Components/RequestManagement/ExistingUserExpansion/existingUserExpansion.component.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementAXLoadDataService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementAXService.js","webpack://fastpath/./App/Shared/GlobalVariables/applicationIdVariables.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementBuildRequestService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementD365SLoadDataService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementD365SService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementGPLoadDataService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementGPService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementLoadDataService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementNAVLoadDataService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementNAVService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementNetSuiteLoadDataService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementNetSuiteService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementOracleCloudLoadDataService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementOracleCloudService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementOracleLoadDataService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementOracleService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementSAPLoadDataService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementSAPService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementUPLoadDataService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementUPService.js","webpack://fastpath/./App/Components/RequestManagement/salesforceLoadData.js","webpack://fastpath/./App/Components/RequestManagement/salesforceDataService.factory.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementAADService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementAADLoadDataService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementPSService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementPSLoadDataService.js","webpack://fastpath/./App/IdentityManager/identityManager.requestManagement.services.module.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementEffectiveDateService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementShowStepsService.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementStepDefinitions.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementWizardController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/AX2012/AXRolesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/AX2012/AXUserInformationController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/AX7/AXRolesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/AX7/AXUserInformationController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/D365S/D365SRolesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/D365S/D365STeamsController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/D365S/D365SUserInformationController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/GP/GPCompaniesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/GP/GPRolesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/GP/GPUserInformationController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/NAV/NAVPermissionSetsController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/NAV/NAVUserGroupsController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/NAV/NAVUserInformationController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/NetSuite/NSDuplicateUserController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/NetSuite/NSPermissionsController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/NetSuite/NSRolesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/NetSuite/NSUserInformationController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Oracle/ORResponsibilitiesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Oracle/ORRoles.controller.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Oracle/ORUserInformationController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/OracleCloud/ORCloudRolesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/OracleCloud/ORCloudUserInformationController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/SAP/emergencyAccess.controller.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/SAP/SAPRolesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/SAP/SAPUserInformationController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Universal/EffectiveDatesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Universal/riskAnalysisUserRisksMitigationModal.controller.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Universal/RiskAnalysisController.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementSearchExistingUsers.js","webpack://fastpath/./App/Components/RequestManagement/selectUserMappingModal.controller.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementSelection.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestCustomTicketModal.controller.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestZendeskTicketModal.controller.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Universal/linkTickets/ServiceNow/IMRequestServiceNowTicketModal.controller.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestJiraTicketModal.controller.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestFreshServiceTicketModal.controller.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementViewModelModify.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementViewModelNew.js","webpack://fastpath/./App/Components/RequestManagement/RequestManagementViewModelTerminate.js","webpack://fastpath/./App/Components/RequestManagement/AX7Person/AX7PersonSearch.controller.js","webpack://fastpath/./App/Components/RequestManagement/AX7Person/AX7Person.controller.js","webpack://fastpath/./App/Components/RequestManagement/AX7Person/AX7Person.component.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/UniversalProduct/UPRolesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/UniversalProduct/UPUserInformationController.js","webpack://fastpath/./App/Shared/GlobalVariables/countryCodes.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/AAD/ManagerSearch/managerSearch.controller.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/AAD/AADUserInformationController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/AAD/AADRolesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/AAD/AADGroupsController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/AAD/AADLicensesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/PeopleSoft/PSUserInformationController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/PeopleSoft/PSRolesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/AX7/AXUserGroupsController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/AX2012/AXUserGroupsController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/SAP/SAPCompositeRolesController.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Salesforce/searchModal/search.controller.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Salesforce/salesforceUserForm.controller.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Salesforce/salesforceProfileForm.controller.js","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Salesforce/salesforcePermissionSets.controller.js","webpack://fastpath/./App/IdentityManager/identityManager.requestManagement.module.js","webpack://fastpath/./App/Components/requestHistory/requestHistory.controller.js","webpack://fastpath/./App/Components/requestHistory/requestHistory.component.js","webpack://fastpath/./App/Components/ApprovalRules/RuleTypePriorityModal/ruleTypePriorityModal.controller.js","webpack://fastpath/./App/Components/ApprovalRules/NewEditApprovalRuleModal/newEditApprovalRuleModal.controller.js","webpack://fastpath/./App/Components/ApprovalRules/approvalRules.controller.js","webpack://fastpath/./App/Components/ApprovalRules/approvalRules.component.js","webpack://fastpath/./App/Components/requestHistory/requestHistoryDataService.factory.js","webpack://fastpath/./App/Components/outstandingApprovals/outstandingApprovalsGrid.controller.js","webpack://fastpath/./App/Components/outstandingApprovals/outstandingApprovalsGrid.component.js","webpack://fastpath/./App/IdentityManager/identityManager.module.js","webpack://fastpath/./App/Components/outstandingApprovals/outstandingApprovals.component.js","webpack://fastpath/./App/Components/Schedules/schedules.controller.js","webpack://fastpath/./App/Components/Schedules/schedules.component.js","webpack://fastpath/./App/Components/SavedReports/savedReportsEditModal.controller.js","webpack://fastpath/./App/Components/SavedReports/savedReports.controller.js","webpack://fastpath/./App/Components/SavedReports/savedReports.component.js","webpack://fastpath/./App/Components/SavedReports/savedReportsDataService.factory.js","webpack://fastpath/./App/Components/Schedules/schedules.service.js","webpack://fastpath/./App/ReportManagement/reportManagement.module.js","webpack://fastpath/./App/Components/TransactionMonitoring/ControlManagement/EditControlModal/editControlModal.controller.js","webpack://fastpath/./App/Components/TransactionMonitoring/ControlManagement/GlobalConditionsModal/globalConditionsModal.controller.js","webpack://fastpath/./App/Components/TransactionMonitoring/ControlManagement/controlManagement.controller.js","webpack://fastpath/./App/Components/TransactionMonitoring/ControlManagement/controlManagement.component.js","webpack://fastpath/./App/Components/TransactionMonitoring/Incidents/EditIncidentModal/editIncidentModal.controller.js","webpack://fastpath/./App/Components/TransactionMonitoring/Incidents/incidentManagement.controller.js","webpack://fastpath/./App/Components/TransactionMonitoring/Incidents/incidentManagement.component.js","webpack://fastpath/./App/Components/TransactionMonitoring/ControlManagement/controlManagementDataService.factory.js","webpack://fastpath/./App/Components/TransactionMonitoring/Incidents/incidentManagementDataService.factory.js","webpack://fastpath/./App/TransactionMonitoring/transactionMonitoring.factories.module.js","webpack://fastpath/./App/TransactionMonitoring/transactionMonitoring.module.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupsList/ownershipGroupModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupsList/ownershipGroupsList.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupsList/ownershipGroupsList.component.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupsDataService.factory.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupOwnersList/ownershipGroupOwnerDataService.factory.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnerRoleModal/groupOwnerRoleModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnerProductModal/groupOwnerProductModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnerBusinessProcessModal/groupOwnerBusinessProcessModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnerRiskModal/groupOwnerRiskModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnerCompaniesModal/groupOwnerCompaniesModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnersList.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnersList.component.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupItemsList/groupRoleModal/groupRoleModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupItemsList/groupCompanyModal/groupCompanyModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupItemsList/groupProductModal/groupProductModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupItemsList/groupBusinessProcessModal/groupBusinessProcessModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupItemsList/groupRiskModal/groupRiskModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupItemsList/groupItemsList.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupItemsList/groupItemsList.component.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroupItemsList/ownershipGroupItemsDataService.factory.js","webpack://fastpath/./App/Components/OwnershipGroups/groupItemOwnersList/groupItemOwnerModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/groupItemOwnersList/groupItemOwnersList.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/groupItemOwnersList/groupItemOwnersList.component.js","webpack://fastpath/./App/Components/OwnershipGroups/groupOwnerItemsList/groupOwnerItemsModal.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/groupOwnerItemsList/groupOwnerItemsList.controller.js","webpack://fastpath/./App/Components/OwnershipGroups/groupOwnerItemsList/groupOwnerItemsList.component.js","webpack://fastpath/./App/SystemConfiguration/ownershipGroups.module.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroups.component.js","webpack://fastpath/./App/Components/OwnershipGroups/ownershipGroups.controller.js","webpack://fastpath/./App/Components/RequesterGroups/requesterGroupsList/requesterGroupModal.controller.js","webpack://fastpath/./App/Components/RequesterGroups/importRequesterGroups.controller.js","webpack://fastpath/./App/Components/RequesterGroups/requesterGroupsList/requesterGroupsList.controller.js","webpack://fastpath/./App/Components/RequesterGroups/requesterGroupsList/requesterGroupsList.component.js","webpack://fastpath/./App/Components/RequesterGroups/requesterGroupsDataService.factory.js","webpack://fastpath/./App/Components/RequesterGroups/requesterGroupUsersList/requesterGroupUserModal.controller.js","webpack://fastpath/./App/Components/RequesterGroups/requesterGroupUsersList/requesterGroupUsersList.controller.js","webpack://fastpath/./App/Components/RequesterGroups/requesterGroupUsersList/requesterGroupUsersList.component.js","webpack://fastpath/./App/SystemConfiguration/requesterGroups.module.js","webpack://fastpath/./App/Components/RequesterGroups/requesterGroups.component.js","webpack://fastpath/./App/Components/RequesterGroups/requesterGroups.controller.js","webpack://fastpath/./App/Components/SupervisorAssignments/Create/createSupervisorModal.controller.js","webpack://fastpath/./App/Components/SupervisorAssignments/Import/importSupervisorModal.controller.js","webpack://fastpath/./App/Components/SupervisorAssignments/supervisorAssignments.controller.js","webpack://fastpath/./App/Components/SupervisorAssignments/supervisorAssignments.component.js","webpack://fastpath/./App/Components/SupervisorAssignments/supervisorAssignmentsDataService.factory.js","webpack://fastpath/./App/Components/SupervisorAssignments/AutoMappingAssignments/autoMappingAssignmentModal.controller.js","webpack://fastpath/./App/Components/SupervisorAssignments/AutoMappingAssignments/autoMappingAssignments.controller.js","webpack://fastpath/./App/Components/SupervisorAssignments/AutoMappingAssignments/autoMappingAssignments.component.js","webpack://fastpath/./App/SystemConfiguration/supervisorAssignments.module.js","webpack://fastpath/./App/Components/CompanyMapping/companyMappingDataService.factory.js","webpack://fastpath/./App/Components/CompanyTemplates/companyTemplates.factory.js","webpack://fastpath/./App/Components/CrossPlatformUsers/crossPlatformUsersDataService.factory.js","webpack://fastpath/./App/Components/ExcludedRoles/excludedRolesDataService.factory.js","webpack://fastpath/./App/Components/ExcludedUsers/excludedUsersDataService.factory.js","webpack://fastpath/./App/Components/maintainSystemRoles/maintainSystemRolesDataService.factory.js","webpack://fastpath/./App/Components/maintainSystemUsers/maintainSystemUsersDataService.factory.js","webpack://fastpath/./App/Components/Notifications/notificationsDataService.factory.js","webpack://fastpath/./App/Components/RoleTemplates/roleTemplates.factory.js","webpack://fastpath/./App/SystemConfiguration/systemConfiguration.factories.module.js","webpack://fastpath/./App/Components/ExcludedRoles/importExcludedRoles.controller.js","webpack://fastpath/./App/Components/ExcludedRoles/excludedRoles.controller.js","webpack://fastpath/./App/Components/ExcludedRoles/excludedRoles.component.js","webpack://fastpath/./App/Components/ExcludedUsers/importExcludedUsers.controller.js","webpack://fastpath/./App/Components/ExcludedUsers/excludedUsers.controller.js","webpack://fastpath/./App/Components/ExcludedUsers/excludedUsers.component.js","webpack://fastpath/./App/SystemConfiguration/systemConfiguration.setup.module.js","webpack://fastpath/./App/Components/userRestrictions/CompanyRestrictionsModal/companyRestrictionsModal.controller.js","webpack://fastpath/./App/Components/userRestrictions/ProductRestrictionsModal/productRestrictionsModal.controller.js","webpack://fastpath/./App/Components/userRestrictions/fastpathUserList/fastpathUserList.controller.js","webpack://fastpath/./App/Components/userRestrictions/fastpathUserList/fastpathUserList.component.js","webpack://fastpath/./App/Components/userRestrictions/userRestrictions.factory.js","webpack://fastpath/./App/SystemConfiguration/userRestrictions.module.js","webpack://fastpath/./App/Components/ApprovalGroups/ApprovalGroupModal/approvalGroupModal.controller.js","webpack://fastpath/./App/Components/ApprovalGroups/LevelModal/levelModal.controller.js","webpack://fastpath/./App/Components/ApprovalGroups/ApproversModal/approversModal.controller.js","webpack://fastpath/./App/Components/ApprovalGroups/approvalGroupImportModal.controller.js","webpack://fastpath/./App/Components/ApprovalGroups/approvalGroups.controller.js","webpack://fastpath/./App/Components/ApprovalGroups/approvalGroups.component.js","webpack://fastpath/./App/Components/CompanyMapping/bulkMapCompanies/bulkMapCompaniesModal.controller.js","webpack://fastpath/./App/Components/CompanyMapping/unmappedCompaniesForProduct/unmappedCompaniesForProductModal.controller.js","webpack://fastpath/./App/Components/CompanyMapping/autoMapCompanies/autoMapCompaniesModal.controller.js","webpack://fastpath/./App/Components/CompanyMapping/manualMapCompanies/manualMapCompaniesModal.controller.js","webpack://fastpath/./App/Components/CompanyMapping/companyMapping.controller.js","webpack://fastpath/./App/Components/CompanyMapping/companyMapping.component.js","webpack://fastpath/./App/Components/CompanyTemplates/CompanyModal/companyModal.controller.js","webpack://fastpath/./App/Components/CompanyTemplates/AssociatedCompaniesList/companyTemplateCompaniesList.controller.js","webpack://fastpath/./App/Components/CompanyTemplates/AssociatedCompaniesList/companyTemplateCompaniesList.component.js","webpack://fastpath/./App/Components/CompanyTemplates/CompanyTemplateModal/companyTemplateModal.controller.js","webpack://fastpath/./App/Components/CompanyTemplates/CompanyTemplatesList/companyTemplatesList.controller.js","webpack://fastpath/./App/Components/CompanyTemplates/CompanyTemplatesList/companyTemplatesList.component.js","webpack://fastpath/./App/Shared/GlobalVariables/timezones.js","webpack://fastpath/./App/Components/configuration/configOptions.js","webpack://fastpath/./App/Components/configuration/configuration.controller.js","webpack://fastpath/./App/Components/configuration/configuration.component.js","webpack://fastpath/./App/Components/configuration/reportManagement/reportManagement.controller.js","webpack://fastpath/./App/Components/configuration/reportManagement/reportManagement.component.js","webpack://fastpath/./App/Components/configuration/identityManagerConfigTab/CuaConnectionConfiguration/cuaConnectionConfiguration.controller.js","webpack://fastpath/./App/Components/configuration/identityManagerConfigTab/CuaConnectionConfiguration/cuaConnectionConfiguration.component.js","webpack://fastpath/./App/Components/Configuration/identityManagerConfigTab/identityManagerConfigTab.controller.js","webpack://fastpath/./App/Components/Configuration/identityManagerConfigTab/identityManagerConfigTab.component.js","webpack://fastpath/./App/Components/configuration/identityManagerConfigTab/productConfiguration/productConfiguration.controller.js","webpack://fastpath/./App/Components/configuration/identityManagerConfigTab/productConfiguration/productConfiguration.component.js","webpack://fastpath/./App/Components/configuration/identityManagerConfigTab/ProductProvisioning/productProvisioning.controller.js","webpack://fastpath/./App/Components/configuration/identityManagerConfigTab/ProductProvisioning/productProvisioning.component.js","webpack://fastpath/./App/Components/CrossPlatformUsers/importUserMappingModal.controller.js","webpack://fastpath/./App/Components/CrossPlatformUsers/NewCrossPlatformUserModal/newCrossPlatformUserModal.controller.js","webpack://fastpath/./App/Components/CrossPlatformUsers/crossPlatformUsers.controller.js","webpack://fastpath/./App/Components/CrossPlatformUsers/crossPlatformUsers.component.js","webpack://fastpath/./App/Components/maintainSystemRoles/editSystemRoleModal/editSystemRoleModal.controller.js","webpack://fastpath/./App/Components/maintainSystemRoles/importModal/importModal.controller.js","webpack://fastpath/./App/Components/maintainSystemRoles/maintainSystemRoles.controller.js","webpack://fastpath/./App/Components/maintainSystemRoles/maintainSystemRoles.component.js","webpack://fastpath/./App/Components/Notifications/notifications.controller.js","webpack://fastpath/./App/Components/Notifications/notifications.component.js","webpack://fastpath/./App/Components/Notifications/NotificationManagerModal/notificationManagerModal.controller.js","webpack://fastpath/./App/Components/Notifications/NotificationTypesList/notificationTypesList.controller.js","webpack://fastpath/./App/Components/Notifications/NotificationTypesList/notificationTypesList.component.js","webpack://fastpath/./App/Components/RoleTemplates/RoleModal/roleModal.controller.js","webpack://fastpath/./App/Components/RoleTemplates/AssociatedRolesList/roleTemplateRolesList.controller.js","webpack://fastpath/./App/Components/RoleTemplates/AssociatedRolesList/roleTemplateRolesList.component.js","webpack://fastpath/./App/Components/RoleTemplates/importRoleTemplates.controller.js","webpack://fastpath/./App/Components/RoleTemplates/RoleTemplateModal/roleTemplateModal.controller.js","webpack://fastpath/./App/Components/RoleTemplates/RoleTemplatesList/roleTemplatesList.controller.js","webpack://fastpath/./App/Components/RoleTemplates/RoleTemplatesList/roleTemplatesList.component.js","webpack://fastpath/./App/Components/Configuration/riskEligibility/riskEligibility.controller.js","webpack://fastpath/./App/Components/Configuration/riskEligibility/riskEligibility.component.js","webpack://fastpath/./App/Components/Configuration/armProductConfiguration/armProductConfiguration.controller.js","webpack://fastpath/./App/Components/Configuration/armProductConfiguration/armProductConfiguration.component.js","webpack://fastpath/./App/Components/maintainSystemUsers/editImportUsersModal/editImportUserModal.controller.js","webpack://fastpath/./App/Components/maintainSystemUsers/systemUserMappingModal/systemUserMappingModal.controller.js","webpack://fastpath/./App/Components/maintainSystemUsers/maintainSystemUsersGrid.controller.js","webpack://fastpath/./App/Components/maintainSystemUsers/maintainSystemUsersGrid.component.js","webpack://fastpath/./App/Components/configuration/systemConfigProductConfiguration/systemConfigProductConfiguration.controller.js","webpack://fastpath/./App/Components/configuration/systemConfigProductConfiguration/systemConfigProductConfiguration.component.js","webpack://fastpath/./App/Components/CrossPlatformUsers/userFieldMappings/userFieldMappings.component.js","webpack://fastpath/./App/Components/CrossPlatformUsers/userFieldMappings/editSystemUserMappingModal.controller.js","webpack://fastpath/./App/Components/CrossPlatformUsers/userFieldMappings/systemUserProductMappings.component.js","webpack://fastpath/./App/SystemConfiguration/systemConfiguration.module.js","webpack://fastpath/./App/Components/CompanyTemplates/companyTemplates.component.js","webpack://fastpath/./App/Components/CompanyTemplates/companyTemplates.controller.js","webpack://fastpath/./App/Components/RoleTemplates/roleTemplates.component.js","webpack://fastpath/./App/Components/RoleTemplates/roleTemplates.controller.js","webpack://fastpath/./App/Components/maintainSystemUsers/maintainSystemUsers.component.js","webpack://fastpath/./App/Components/Plugins/plugins.controller.js","webpack://fastpath/./App/Components/Plugins/plugins.component.js","webpack://fastpath/./App/Components/Plugins/plugin/plugin.controller.js","webpack://fastpath/./App/Components/Plugins/plugin/plugin.component.js","webpack://fastpath/./App/Integrations/plugins.module.js","webpack://fastpath/./App/Components/ApiClients/newApiClientModal.controller.js","webpack://fastpath/./App/Components/ApiClients/apiClients.controller.js","webpack://fastpath/./App/Components/ApiClients/apiClients.component.js","webpack://fastpath/./App/Integrations/apiClients.module.js","webpack://fastpath/./App/Components/Connections/connectionsDataService.factory.js","webpack://fastpath/./App/Components/Connections/newProductModal.controller.js","webpack://fastpath/./App/Components/Connections/connections.controller.js","webpack://fastpath/./App/Components/Connections/connections.component.js","webpack://fastpath/./App/Components/Connections/editProductNameModal.controller.js","webpack://fastpath/./App/Components/Connections/Connection/connection.controller.js","webpack://fastpath/./App/Components/Connections/Connection/connection.component.js","webpack://fastpath/./App/Components/Connections/Connection/Import/connectionImport.controller.js","webpack://fastpath/./App/Components/Connections/Connection/Import/connectionImport.component.js","webpack://fastpath/./App/Components/Connections/Connection/Schedule/connectionSchedule.controller.js","webpack://fastpath/./App/Components/Connections/Connection/Schedule/connectionSchedule.component.js","webpack://fastpath/./App/Components/Connections/Connection/Settings/connectionSettings.controller.js","webpack://fastpath/./App/Components/Connections/Connection/Settings/connectionSettings.component.js","webpack://fastpath/./App/Components/Connections/SapConnection/sapConnection.controller.js","webpack://fastpath/./App/Components/Connections/SapConnection/sapConnection.component.js","webpack://fastpath/./App/Components/Connections/SapConnection/Settings/sapConnectionSettings.controller.js","webpack://fastpath/./App/Components/Connections/SapConnection/Settings/sapConnectionSettings.component.js","webpack://fastpath/./App/Components/Connections/CustomProductConnection/customProductConnection.controller.js","webpack://fastpath/./App/Components/Connections/CustomProductConnection/customProductConnection.component.js","webpack://fastpath/./App/Components/Connections/CustomProductConnection/Settings/customProductConnectionSettings.controller.js","webpack://fastpath/./App/Components/Connections/CustomProductConnection/Settings/customProductConnectionSettings.component.js","webpack://fastpath/./App/Components/Connections/Connection/Schedule/TransactionMonitoringSchedule/transactionMonitoringSchedule.controller.js","webpack://fastpath/./App/Components/Connections/Connection/Schedule/TransactionMonitoringSchedule/transactionMonitoringSchedule.component.js","webpack://fastpath/./App/Components/Connections/PartialHybridInformation/partialHybridConnectionsInformation.controller.js","webpack://fastpath/./App/Components/Connections/PartialHybridInformation/partialHybridConnectionsInformation.component.js","webpack://fastpath/./App/Components/Connections/activeDirectoryDomains/domainModal.controller.js","webpack://fastpath/./App/Components/Connections/activeDirectoryDomains/activeDirectoryDomains.controller.js","webpack://fastpath/./App/Components/Connections/activeDirectoryDomains/activeDirectoryDomains.component.js","webpack://fastpath/./App/Integrations/productConnections.module.js","webpack://fastpath/./App/Components/ApiClients/apiClientDataService.factory.js","webpack://fastpath/./App/Integrations/integrations.factories.module.js","webpack://fastpath/./App/Integrations/integrations.module.js","webpack://fastpath/./App/Components/Roles/rolesDataService.factory.js","webpack://fastpath/./App/Components/securityAssignment/securityAssignmentDataService.factory.js","webpack://fastpath/./App/Components/Users/usersDataService.factory.js","webpack://fastpath/./App/Components/Configuration/PasswordCriteria/passwordCriteria.controller.js","webpack://fastpath/./App/Components/Configuration/PasswordCriteria/passwordCriteria.component.js","webpack://fastpath/./App/Components/Configuration/PasswordCriteria/passwordCriteriaDataService.factory.js","webpack://fastpath/./App/Components/AuditLogs/auditLogs.controller.js","webpack://fastpath/./App/Components/AuditLogs/auditLogs.component.js","webpack://fastpath/./App/Components/Users/EditModal/editUserModal.controller.js","webpack://fastpath/./App/Components/Users/ImportModal/importUsersModal.controller.js","webpack://fastpath/./App/Components/Users/newUsersModal.controller.js","webpack://fastpath/./App/Components/Users/users.controller.js","webpack://fastpath/./App/Components/Users/users.component.js","webpack://fastpath/./App/Components/Roles/newRoleModal.controller.js","webpack://fastpath/./App/Components/Roles/roles.controller.js","webpack://fastpath/./App/Components/Roles/roles.component.js","webpack://fastpath/./App/Components/securityAssignment/securityAssignment.controller.js","webpack://fastpath/./App/Components/securityAssignment/securityAssignment.component.js","webpack://fastpath/./App/SecuritySetup/securitySetup.module.js","webpack://fastpath/./App/app.js","webpack://fastpath/./ExternalScripts/Inspina/inspinia.js","webpack://fastpath/./ExternalScripts/RaygunSetup.js","webpack://fastpath/./ExternalScripts/angular-elastic-builder/dist/angular-elastic-builder.js","webpack://fastpath/./ExternalScripts/fastpath-select-tpls.js","webpack://fastpath/./App/Components/AXSecurityDesigner/AXSecurityDesigner.css","webpack://fastpath/./App/Components/ApprovalRules/approvalRules.css","webpack://fastpath/./App/Components/DataChangesOracleCloud/oracleCloudDataChanges.css","webpack://fastpath/./App/Components/DataChanges/ServiceNow/ServiceNowTicketModal.css","webpack://fastpath/./App/Components/NetSuiteArmQuantification/NetSuiteArmQuantification.css","webpack://fastpath/./App/Components/Notifications/notifications.css","webpack://fastpath/./App/Components/RequestManagement/AX7Person/ax7PersonSearch.css","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Universal/effectiveDates.css","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Universal/linkTickets/ServiceNow/IMRequestServiceNowTicketModal.css","webpack://fastpath/./App/Components/RequestManagement/WizardSteps/Universal/summary.css","webpack://fastpath/./App/Components/Users/usersView.css","webpack://fastpath/./App/Shared/Components/roleMultiselectDropdown/roleMultiselectDropdown.css","webpack://fastpath/./css/angular-list-view.css","webpack://fastpath/./css/angular-wizard.min.css","webpack://fastpath/./css/animate.css","webpack://fastpath/./css/customSubHeadingNavigation.css","webpack://fastpath/./css/dynamicTabsDark.css","webpack://fastpath/./css/icons8/css/styles.min.css","webpack://fastpath/./css/oi-select-custom-changes.css","webpack://fastpath/./css/resizable.css","webpack://fastpath/./css/switchery.css","webpack://fastpath/./css/toggle-radio.css","webpack://fastpath/./css/site.scss","webpack://fastpath/./Content/Images/ApplicationLogos/ALA_Logo.svg","webpack://fastpath/./Content/Images/ApplicationLogos/AcumaticaSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/AribaLogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/AuditBoardLogo.svg","webpack://fastpath/./Content/Images/ApplicationLogos/AzureActiveDirectory.svg","webpack://fastpath/./Content/Images/ApplicationLogos/AzureDevOpsLogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/AzureSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/CoupaSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/Dynamics365SVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/Dynamics365SalesSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/DynamicsAXSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/DynamicsGPSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/DynamicsNAVSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/DynamicsNav2019BusinessCentral.svg","webpack://fastpath/./Content/Images/ApplicationLogos/DynamicsSLSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/FreshserviceLogo.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IMTiles/Dynamics365CustomerEngagementIMTile.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IMTiles/Dynamics365IMTile.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IMTiles/DynamicsAXIMTile.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IMTiles/DynamicsGPIMTile.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IMTiles/DynamicsNAVIMTile.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IMTiles/NetSuiteIMTile.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IMTiles/OracleCloudIMTile.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IMTiles/OracleIMTile.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IMTiles/PeopleSoftIMTile.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IMTiles/SAPIMTile.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IMTiles/UniversalProduct.svg","webpack://fastpath/./Content/Images/ApplicationLogos/IntacctLogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/JiraLogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/Microsoft_logo.png","webpack://fastpath/./Content/Images/ApplicationLogos/OracleCloudFinLogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/OracleJDEdwardsSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/OracleLogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/PeopleSoftSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/SAML-logo.svg","webpack://fastpath/./Content/Images/ApplicationLogos/SAPB1LogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/SAPConcurLogo.svg","webpack://fastpath/./Content/Images/ApplicationLogos/SAPLogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/SalesforceLogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/WorkdaySVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/WorkivaLogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/ZendeskLogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/ZuoraLogoSVG.svg","webpack://fastpath/./Content/Images/ApplicationLogos/microsoftActiveDirectory.svg","webpack://fastpath/./Content/Images/ApplicationLogos/netsuite-oracle.svg","webpack://fastpath/./Content/Images/ApplicationLogos/service-now.svg","webpack://fastpath/./Content/Images/FileTypeIcons/csv-16.png","webpack://fastpath/./Content/Images/FileTypeIcons/csv-64.png","webpack://fastpath/./Content/Images/FileTypeIcons/default-16.png","webpack://fastpath/./Content/Images/FileTypeIcons/default-64.png","webpack://fastpath/./Content/Images/FileTypeIcons/docx_16.png","webpack://fastpath/./Content/Images/FileTypeIcons/docx_32.png","webpack://fastpath/./Content/Images/FileTypeIcons/docx_64.png","webpack://fastpath/./Content/Images/FileTypeIcons/pdf_16.png","webpack://fastpath/./Content/Images/FileTypeIcons/pdf_32.png","webpack://fastpath/./Content/Images/FileTypeIcons/pdf_64.png","webpack://fastpath/./Content/Images/FileTypeIcons/xlsx_16.png","webpack://fastpath/./Content/Images/FileTypeIcons/xlsx_32.png","webpack://fastpath/./Content/Images/FileTypeIcons/xlsx_64.png","webpack://fastpath/./Content/Images/SVG/16Spinner.svg","webpack://fastpath/./Content/Images/SVG/AccessRiskMonitorPurple.svg","webpack://fastpath/./Content/Images/SVG/AccessRiskMonitorWhite.svg","webpack://fastpath/./Content/Images/SVG/Application Shield.svg","webpack://fastpath/./Content/Images/SVG/ArchiveDataCanges.svg","webpack://fastpath/./Content/Images/SVG/CalendarPurple.svg","webpack://fastpath/./Content/Images/SVG/CalendarWhite.svg","webpack://fastpath/./Content/Images/SVG/Change ThemePurple.svg","webpack://fastpath/./Content/Images/SVG/Change ThemeWhite.svg","webpack://fastpath/./Content/Images/SVG/CollectDataChanges.svg","webpack://fastpath/./Content/Images/SVG/CollectSnapshot.svg","webpack://fastpath/./Content/Images/SVG/ConnectionsPurple.svg","webpack://fastpath/./Content/Images/SVG/ConnectionsWhite.svg","webpack://fastpath/./Content/Images/SVG/DataTransferPurple.svg","webpack://fastpath/./Content/Images/SVG/DefaultMit.svg","webpack://fastpath/./Content/Images/SVG/Electronic Identity CardPurple.svg","webpack://fastpath/./Content/Images/SVG/Electronic Identity CardWhite.svg","webpack://fastpath/./Content/Images/SVG/LinkClippedWithDropdown.svg","webpack://fastpath/./Content/Images/SVG/PurgeDataChanges.svg","webpack://fastpath/./Content/Images/SVG/RestoreDataChanges.svg","webpack://fastpath/./Content/Images/SVG/SecurityDesignerCircleOnlyIcon.svg","webpack://fastpath/./Content/Images/SVG/SecurityDesignerIconPurple.svg","webpack://fastpath/./Content/Images/SVG/SecurityDesignerIconWhite.svg","webpack://fastpath/./Content/Images/SVG/SecurityDesignerRiskAnalysisResults.svg","webpack://fastpath/./Content/Images/SVG/SecuritySetupPurple.svg","webpack://fastpath/./Content/Images/SVG/SecuritySetupWhite.svg","webpack://fastpath/./Content/Images/SVG/SettingsPurple.svg","webpack://fastpath/./Content/Images/SVG/SettingsWhite.svg","webpack://fastpath/./Content/Images/SVG/UploadPurple.svg","webpack://fastpath/./Content/Images/SVG/XML.svg","webpack://fastpath/./Content/Images/SVG/certificationsPurple.svg","webpack://fastpath/./Content/Images/SVG/certificationsWhite.svg","webpack://fastpath/./Content/Images/SVG/fastpath-white-mono.svg","webpack://fastpath/./Content/Images/SVG/fp-circle-inactive.svg","webpack://fastpath/./Content/Images/SVG/fp-circle-success.svg","webpack://fastpath/./Content/Images/SVG/icons8-Info Squared.svg","webpack://fastpath/./Content/Images/SVG/icons8-Ok.svg","webpack://fastpath/./Content/Images/SVG/icons8-Sort Down.svg","webpack://fastpath/./Content/Images/SVG/icons8-Submit Progress.svg","webpack://fastpath/./Content/Images/SVG/icons8-Warning.svg","webpack://fastpath/./Content/Images/SVG/icons8-WarningRed.svg","webpack://fastpath/./Content/Images/SVG/icons8-surveyPurple.svg","webpack://fastpath/./Content/Images/SVG/icons8-surveyWhite.svg","webpack://fastpath/./Content/Images/SVG/securityDesigner/icons8-info-fade.svg","webpack://fastpath/./Content/Images/SVG/securityDesigner/icons8-info.svg","webpack://fastpath/./Content/Images/SVG/x-circle-12.svg","webpack://fastpath/./css/icons8/fonts/Collection 1-b8f80e9f63.svg","webpack://fastpath/./css/patterns/header-profile-skin-1.png","webpack://fastpath/./css/patterns/header-profile-skin-2.png","webpack://fastpath/./css/patterns/header-profile-skin-3.png","webpack://fastpath/./css/patterns/header-profile.png","webpack://fastpath/./css/patterns/shattered.png","webpack://fastpath/./css/plugins/kendo/Bootstrap/loading-image-spinner.gif","webpack://fastpath/./css/icons8/fonts/Collection 1-b8f80e9f63.eot","webpack://fastpath/./css/icons8/fonts/Collection 1-b8f80e9f63.ttf","webpack://fastpath/./css/icons8/fonts/Collection 1-b8f80e9f63.woff","webpack://fastpath/./css/icons8/fonts/Collection 1-b8f80e9f63.woff2"],"names":["_ngInjectExport","authenticationService","_startSetup","_asyncToGenerator","_regeneratorRuntime","_callee","currentUser","_context","prev","next","isAuthenticated","sent","getUser","user","localTenant","localStorage","getItem","ChurnZero","push","churnZeroAppKey","email","JSON","parse","CustomerId","stop","apply","arguments","startSetup","$scope","$http","$filter","$timeout","$rootScope","$window","dataService","$location","helperService","configurationDataService","_activate","checkForSelectedTenant","tenantID","getUserTenants","getFavorites","getNavigation","getCompanyLogo","_getCompanyLogo","_callee2","_yield$configurationD","data","_context2","logoLoading","companyLogo","t0","selectedTenantAsObject","angular","fromJson","Name","open","appUrl","_getUserTenants","_callee3","response","_context3","userInfo","method","url","apiUrl","concat","userId","availableTenantsForUser","resetSelectedTenant","_getNavigation","_callee4","_context4","then","UserNavigationList","forEach","row","ObjectID","navLinks","setItem","toJson","tenants","_currentTenant","currentTenant","ID","filter","tenant","first","stringify","churnZeroConfig","navigateToMvcPage","path","$on","activate","backToReportViewer","packery","tabs","IsReport","currentSelectedTab","link","search","tabChangedEventFired","stringEndsInDetailed","string","endsWith","stringEndsInRoleDetail","showNavItem","navItem","length","emptySearchQuery","navCtrl","query","selectTenantFromNavigation","Tenant","LicensingOnly","removeItem","location","href","OnHold","swal","copy","selectedTenantInLocalStorage","allFavorites","navigateToFavorite","favorite","Url","substr","event","args","removeStaticHeight","$event","currentTarget","children","forceStyleOfMetisMenu","style","height","changeTypeClass","firstLevel","secondLevel","activeOrInValue","splitItUp","split","changeCurrentPageClass","page","changeItemClass","changeReportView","moduleName","reportName","objectID","type","changeView","viewName","$interval","tick","vm","currentYear","Date","logOut","applicationTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","applicationClock","now","LogIn","login","loadingValue","savedValue","spinnerStart","errorsDataService","getTenants","processImport","_x2","_x3","_processImport","_callee5","files","sodOptin","formData","file","_context5","FormData","showLoading","createSpinner","append","name","put","transformRequest","identity","headers","undefined","tenantIDForlicensingUpload","successfulSaveButton","cancel","importInProgress","_checkLatestImports","_callee6","_context6","checkingLatest","get","find","productImport","Status","multipleCompanies","showCompanies","signLicenseAgreement","loadingTenants","onlyTenant","tenantBeforeRedirect","object","parsedTenant","selectTenant","alertNoTenantsFound","showCompanySelectionView","status","alertUnauthorized","alertServerErrorHasOccured","title","text","showCancelButton","dismiss","tenantsForUser","licensingOnly","checkLatestImports","checkSignEula","EULASigned","checklocalStorageAndRedirect","LicenseAgreementWindow","tenantAgreeingToTerms","selectedTenantID","locationBeforeRedirect","DeclineLicenseAgreement","document","AcceptLicenseAgreement","importLicensingFile","_ref3","showConfirmButton","cancelButtonText","confirmButtonText","_x","handleAuthentication","signalRTenantFactory","signalRUserFactory","objectIdDataService","whiteListService","show","loadUserSecurityObjects","_loadUserSecurityObjects","_yield$$http$get","UserSecurityList","abrupt","_dataService$getNavig","reloadConfigurationValues","configValues","Value","ConfigurationValues","stringified","ReportScriptLocation","getProducts","availableProductsForUser","LoadUserPreferences","currentHoveredCell","e","cellData","target","innerText","kendo","template","ui","Tooltip","fn","_show","sender","this","preventDefault","isDefaultPrevented","options","beforeShow","call","currentHoveredCellOptions","innerHTML","has","width","showAfter","animation","effects","duration","UserPreferences","UserPreferenceList","Type","reload","LoadTabViewerData","current","showInTabs","ShowReportTabs","IsPlaceReport","content","isComponent","PlaceName","ViewLocation","originalPath","objectId","getSecurityObjectDetailsFromObjectId","replace","params","count","disablepin","tab","pinned","Number","tabLimit","unshift","id","getTabIndex","navigateToRoute","targetPath","targetSearch","targetHash","hash","match","substring","trackModuleForChurnZero","getWhiteListedRoutes","item","toUpperCase","getParentIDFromName","ParentName","foundObject","_ref","_ref2","previousURL","currentRoute","result","setFavoriteValue","favorited","value","_x4","getObjectID","securityObject","source","$uibModalInstance","usersDataService","users","substitute","getUsers","Active","Object","assign","u","UserID","SubstituteReviewer","SubstituteUserId","OutOfOfficeHours","fromTime","StartDate","toTime","EndDate","fromDate","toDate","addSubstitute","_addSubstitute","UserId","SubstituteReviewerId","changeSubstitute","_changeSubstitute","addOOFHours","_addOOFHours","fromTimeMinutes","fromTimeHours","toTimeMinutes","toTimeHours","getMinutes","getHours","setMinutes","setHours","_onSave","save","removeSubstitute","removeOOFHours","close","onSave","clearOOFHours","$uibModal","applicationInsightsService","risksDataService","isAutoCriteriaCollapsed","OOFManagerCollapsed","objectSearchFieldCollapsed","preferredCompanyFieldCollapsed","preferredProductFieldCollapsed","defaultGroupReviewsCollapsed","settingsList","Setting","Description","IsAutoCriteriaCollapsed","_getCompanies","indexOfDefaultCompanySelected","getCompanies","noCompanyDefaultDropdownObject","c","UserHasAccess","defaultCompanySelected","obj","preferredCompany","indexOf","selectedCompany","companyDataSource","_getProducts","indexOfDefaultProductSelected","productsDataSource","checkForMultipleProducts","noDefaultProductDropdownObject","defaultProductSelected","preferredProduct","selectedProduct","$watch","pref","setting","searchObject","defaultGroupReview","rightSidebar","showHideDescription","passedSetting","showHideOOFManagerDescription","showHideObjectSearchFieldDescription","showHidePreferredCompanyFieldDescription","showHidePreferredProductFieldDescription","showHideDefaultGroupReviewsDescription","objectSearchFieldButton","searchFieldSelected","defaultGroupReviewsButton","groupReviewSelected","openOOFManagerModal","templateUrl","controller","substituteModalController","controllerAs","backdrop","resolve","notificationFunction","archive","onTap","closeArchivedNotification","archivedNotifications","remove","n","clearAllArchivedNotifications","toggleSetting","trackEvent","$broadcast","enabled","updateValue","$route","modalVm","populateModels","scheduleToEdit","modalInEditMode","scheduleId","requireSignature","RequireSignature","description","SavedReportID","reportResponse","savedReportData","savedReportsDataSource","selectedSavedReport","selectedFreq","Frequency","zeroRowsCheckbox","SendReportWithZeroRows","selectedDayOfWeek","daysInWeek","days","DayOfWeek","selectedDayOfMonth","daysInMonth","DayOfMonth","selectedExcelUsers","selectedPDFUsers","selectedCSVUsers","StartTime","startDateString","EndTime","endDateString","Outputs","Format","matchedUser","availableUsers","savedReportToSchedule","modalHasPreSelectedSavedReport","Id","endDatePicker","validDate","date","isDate","frequencies","getDayOfMonthDropdownOptions","dropdownTypeOptions","cleanCriteriaForSchedule","criteria","outputs","DayOfMonths","Days","Months","scheduleReport","postData","disableButton","post","killModal","showErrorMessage","updateScheduleReport","putData","reportToolbarController","SavedReportSelectorService","$q","exportReport","reportInfo","exportType","criteriaAndColumnsOnly","exportName","ObjectId","reportDefinition","bundleReportDefinitionCriteriaAndColumnsOnly","grid","getOptions","reportDetailsModel","bundleReportDefinition","routeString","reportId","Columns","Sortings","sortsAndFilters","Criteria","Filters","DateFilters","fullExportName","ExportId","ExportName","shouldBeOpen","config","getConfigurationValues","showImportExportForUpdate","openManageSavedLayoutsModal","manageSavedLayoutsModalController","scope","hideShowColumn","columns","column","isLast","col","hidden","lastColumn","field","index","showColumn","hideColumn","i","autoFitColumn","openSaveReportModal","disableToolbarButtons","FilterAppliedToGrid","dataSource","populateCriteriaModel","raw","CurrentSavedReports","ReportDefinition","ReportId","showOverwrite","SaveReportModalController","openScheduleReportModal","isScheduleEnabled","showScheduleReport","scheduleReportModalToolbarController","findCurrentSavedReportByObjectID","deferred","defer","currentSavedReports","detailed","isDetailed","promise","openSignReportModal","component","archiveReport","report","definition","openSaveFilterModal","_$scope$FilterApplied","filters","filtersDataSource","read","SaveFilterModalController","openFilterManagerModal","FilterManagerModalController","gridOptions","halPrepareSortArray","sort","cleanReportColumns","halPrepareFilterArray","$parent","drvm","filterCriteria","standardFilters","CriteriaValue","criteriaToAdd","dateQuery","unique","slice","dateCriteria","some","FieldName","missingDateRangeFilters","cleanReportCriteria","filtersToAdd","createExport","reportExportDetails","exportToExcel","refreshModel","_total","exportToPDF","exportToCSV","exportToCSVForUpdate","newReport","launchSavedReportFromScheduleReport","saveReport","pleaseWait","_ref4","overwriteReport","selectedReport","_ref5","scheduleReportId","ReportSchedulerModalController","size","saveReportToSchedule","getSavedReportsByID","form","filterType","saveFilter","userForm","$valid","FilterList","filterSaveObject","_ref6","manageSavedLayoutsDataSource","DataSource","transport","success","manageSavedLayoutsGridOptions","setNonPageableGridOptions","filterable","deleteLayout","rows","toString","removedTab","splice","active","hideCloseButton","setCurrentTab","tabChanged","tabIndex","removeTab","stopPropagation","setDisablePin","pinThisTab","tabArrayIndex","findIndex","firstAvailableIndex","ViewProductImportPageService","KPIOverrideDefinitions","KPIGeneratorService","CustomReportServices","homeDataService","_init","listOfCards","card","ChartId","fusionChart","FusionCharts","items","dispose","cardId","Ordinal","cardIndex","postCardsToApi","reloadPackery","fusionChartEvents","beforeRender","layout","renderComplete","dataPlotClick","ev","props","reportObjectId","reportCategory","categoryLabel","reportSeries","datasetName","createPartialSavedReportAndNavigate","reportField","Label","setupDashboard","setSavedReportsByUser","setUsersByProductStatistics","setCompaniesByProductStatistics","_setSavedReportsByUser","_yield$dataService$ge","getSavedReportsByUser","_setUsersByProductStatistics","_yield$homeDataServic","getUserStatistics","usersByProductStatistics","_setCompaniesByProductStatistics","_yield$homeDataServic2","getCompanyStatistics","companiesByProductStatistics","_setupDashboard","defaultDashboard","selectedDashboard","getDashboards","listOfDashboards","toLowerCase","getCards","HasAccess","Icon","getCharts","selectedCard","ChartType","Chart","createGenericTableChart","createGenericDoughnutChart","createGenericColumnChart","createGenericTile","createGenericStackedColumnChart","overrideById","setDashboardSettings","Visible","getChartByCard","APIUrl","CardType","setTileChartValues","dataset","DataSet","categories","Categories","setPropertiesForStackedChart","setPropertiesForChart","expandNewDashboardSection","createDashboardIsCollapsed","focusNewDashboardName","_postCardsToApi","DashboardId","Expanded","Cards","createCard","_deleteDashboard","_callee7","_context7","deleteDashboard","_createDashboard","_callee8","_context8","dashboardName","createDashboard","dashboardSelected","_dashboardSelected","_callee9","_context9","getDashboard","runReport","savedReport","loadSavedReport","cancelNewDashboard","launchReport","launchReportByObjectId","launchReportFromTable","label","launchReportFromTile","loadedSavedReport","createSavedReportStub","cardChangedVisibility","showLabels","showlabels","valuesToFlip","chart","$onInit","$inject","modelValue","myDownloadsDataService","getCurrentSharedUsers","disableSave","selectedUsersList","selectedUser","availableUsersList","SharedUserId","availableUsersCopy","_toConsumableArray","_getUsers","ownerId","_getCurrentSharedUsers","_yield$myDownloadsDat","exportId","loadedUsers","_submitSelectedUsers","updateInProgress","selectedUserIds","UserIds","updateSharedUsers","addUserToList","SharedUserName","UserLogonName","deleteSelectedUser","submitSelectedUsers","OwnerId","_saveDownload","saving","editItem","saveNameChange","saveDownload","ExportReportService","getExports","getExportsSharedWithUser","selectedDownloads","downloadsRadioFilter","_getExports","exportsAreLoading","userName","fullName","listOfExports","myDownloads","_getExportsSharedWithUser","_yield$myDownloadsDat2","listOfSharedExports","showFilters","changeRadioFilter","deleteExport","_deleteExport","exportIds","ExportIds","map","selectMultiple","deleteMultiple","clearObjectSelection","downloadItem","_downloadItem","noErrorDownloadItems","download","downloadMultiple","downloadReportExport","_openShareExportModal","shareExportModal","shareExportsModalController","openEditDownloadModal","_openEditDownloadModal","editDownloadModal","editDownloadModalController","checkSelectAll","allDownloadsSelected","every","selected","reduce","newList","ExportStatus","CreatedOn","ExportType","Owner","OwnerName","determineStatusLabelClass","ActionName","setExportingOpacity","downloadItemClicked","selectDownload","selectAllDownloads","searchBoxSelectedObjects","includes","menuOptions","click","$itemScope","displayed","exportItem","hasTopDivider","openShareExportModal","myDownloadsController","emailNavigationService","controlLibraryDataService","pageParams","tenantInlocalStorage","redirectIfNeeded","getReportInfo","_redirectIfNeeded","tenantid","sufficientSecurityAccess","findTenantFromEmail","_findTenantFromEmail","validTenant","_yield$emailNavigatio","availableTenants","redirectToTenant","insufficientSecurityAccess","_getReportInfo","reportid","_signReport","signReportObject","_yield$$http$post","requestId","notes","executionid","$","extend","attachments","flow","uploadFiles","showConfirmationMessageNoButtons","correctTenant","_uploadFiles","fd","addAttachments","signReport","signReportFromEmailController","$routeProvider","$locationProvider","when","caseInsensitiveMatch","product","otherwise","redirectTo","html5Mode","hashPrefix","_setupRaygun","authenticated","rg4js","raygunApiKey","enableCrashReporting","debugMode","disablePulse","excludedHostnames","setUser","setupRaygun","identifier","isAnonymous","uuid","helpObject","domain","helpUrl","specificArticle","home","applicationInsightsServiceProvider","configure","applicationInsightsKey","applicationName","usSpinnerConfigProvider","setTheme","lines","radius","color","opacity","speed","trail","position","top","left","scale","$translateProvider","translations","SEARCH","preferredLanguage","$provide","$httpProvider","factory","request","requestError","rejection","reject","interceptors","defaults","withCredentials","_request","authClient","oktaAccess","getAuthClient","tokenManager","hasExpired","renew","console","log","clear","Authorization","accessToken","_responseError","Message","_embedded","prop","reportData","flowFactoryProvider","opts","require","original","lastRoute","un","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","halSchemaKendoGrid","total","service","_getUser","_handleAuthentication","signOut","OktaAuth","clientId","redirectUri","issuer","postLogoutRedirectUri","on","key","expiredToken","newToken","oldToken","err","oktaIdToken","decodedToken","isUserAuthenticated","token","decode","idToken","payload","freeze","fastpathuserid","_isAuthenticated","originalUrl","sessionStorage","getWithRedirect","responseType","scopes","parseFromUrl","tokens","add","checkSavedReportForProducts","selectedDefinitions","CriteriaType","emptyArray","checkSavedReportForSingleProduct","checkSavedReportForDate","criteriaType","checkSavedReportForRoles","getSavedReportRoles","savedReportRoles","savedReportProduct","fullRoles","asyncForEach","_asyncForEach","array","callback","getFullRoles","sortedFullRoles","role","res","a","b","checkSavedReportForRisks","checkSavedReportForCompanies","checkSavedReportForObjectTypes","selectedValue","Identifier","checkSavedReportForObjects","getSavedReportSelectedObject","selectedValueIdentifier","Promise","checkSavedReportForUsers","UserMasterId","InternalId","checkSavedReportForBusinessProcesses","checkSavedReportForRuleset","RulesetId","IsDefault","checkSavedReportForResponsibilities","checkSavedReportForRecordTypeMultiSelect","matchingItem","checkSavedReportForRecordType","checkSavedReportForRecord","RecordId","checkSavedReportForStatus","checkSavedReportForIntraResponsibility","selectedDefinition","orderAndRemoveColumns","currentColumns","newColumns","newFields","el","columnIsContained","ordinal","convertSortingsForGrid","currentSort","newSort","convertedNewSorts","convertedFormat","SortDirection","queryGridWithOptions","manuallyCallReady","newOptions","currentOptions","setOptions","_filter","_sort","queryAuditLogsGridWithOptions","operator","Operator","criteriaMultiple","ParameterName","singleCriteria","DisplayName","DisplayValue","CriteriaDisplayName","LogoClass","SecurityId","Config","Encrypted","AuthTypeOptions","VersionOptions","viewImportReport","productType","allSupportedProducts","productName","objectName","userSecurityList","removeSpaces","userSecurityObject","getSecurityObjectById","ModuleName","moduleLookUpById","ParentID","TypeID","TypeName","baseUrl","LabelColumn","ToggleOnWhenFullScreen","CategoryColumn","SeriesColumn","SeriesName","itemObject","ItemCount","ItemLabel","TotalCount","Percent","Math","round","filtersArray","filterModel","customDatePickerFilter","extra","operators","gt","lt","isempty","isnotempty","cell","element","kendoDatePicker","format","customDatePickerFilterNullable","gte","isnull","isnotnull","customDatePickerNotNullableFilter","customBooleanFilter","messages","isTrue","isFalse","customYesNoBooleanFilter","customBooleanYesNoFilter","customAutoCompleteFilter","contains","doesnotcontain","eq","neq","startswith","endswith","number","lte","kendoAutoComplete","serverFiltering","valuePrimitive","noDataTemplate","customNotStringEmptyFilter","customAutoCompleteFilterEqualToOnly","standardGridPageSize","clearGridFilters","setfilterManagerGridOptions","scrollable","virtual","sortable","resizable","reorderable","selectable","allowCopy","pageable","numeric","previousNext","display","setfiltersDataSource","getAccessDetailsForRowUserRisks","xscope","selectedData","dataItem","select","RiskId","getAccessDetailsForEachProduct","products","accessDetailsForEachProduct","urlString","partialUrlString","CompanyMasterID","UserMasterID","getAccessDetailsForRow","companyId","CompanyID","accessTypeId","AccessTypeID","securityObjectId","SecurityObjectID","securityObjectTypeId","SecurityObjectTypeID","productId","ProductID","getATChangeCountForRow","changeCount","deleteFilterFilterManager","saveGridLayout","Groupings","group","dataItemForPost","ProductId","existingLayoutId","areYouSureParams","showConfirmationMessage","postLayoutToDB","loadSavedDynamicGridLayout","loadSavedGridLayout","loadedColumns","loadSavedReportLayout","inLayout","loadedGroupings","loadedSortings","CreateCriteria","getSecurityObjectDetailsFromReportId","moduleNameNoSpaces","ParentObject","getRelativeDateTypes","getPeriodTypes","PluralName","convertCriteriaValueToNull","propertyName","FileSaver","saveAs","downloadReportExportFromNotification","setDateToBeginningOfDay","startDate","setDateToEndOfDay","endDate","setSeconds","getSeconds","calculatePercentage","convertDateToSelectedTimeZone","decimalOffset","getTimezoneOffset","selectedTimeZoneOff","utc","getTime","convertUTCDateTimeStringToDateString","dateTime","dateObj","month","getUTCMonth","day","getUTCDate","getUTCFullYear","compareTwoObjectsForMatch","object1","object2","compareList","compareResults","Key","Sort","returnTrueIfValuesDiffer","valuesToCheck","origArray","currentArray","configValue","origConfigValue","determineDataChangesLinkProduct","TicketProvider","productNameLookUp","parentId","module","manageDataTypeNameLookUp","typeId","convertConfigValueToTrueFalse","configName","allPluginsTurnedOff","ZDK_Active","JIRA_Active","valueMapperFunction","primaryKey","firstMatch","multiValueMapperFunction","matches","roleMapperFunction","_roleMapperFunction","userMapperFunction","_userMapperFunction","generateRandomUuid","dataArray","PrimaryKey","setMainGridOptions","gridHeight","mode","noRecords","groupable","responsive","goToHomePage","backToPreviousPage","window","history","back","smallLoad","determineContainerClass","setProductImageClass","ProductTypeOrName","productImageMap","setProviderImageClass","identityProvider","image","setStatusCssClass","setStatusIconColor","getMonthsDropdownOptions","formattedArray","formattedRow","prepareSortsAndFilters","getFilterDropdownOptions","dataTextField","dataValueField","optionLabel","FilterString","returnNullIfAllIsFound","listOfIds","allExists","deselectAllObjectsIfOtherIsClicked","itemsSelected","allValue","returnValue","displayPipeBetween","displayPipeBetweenObjectsDrop","altName","objectType","altNamePlusName","convertFiltersForGrid","applyFilterCatchError","selectedFilter","error","gridDataSource","getObjectDetails","changeMainLocation","hightestId","viewNameNoSpaces","getConfigurationValue","findConfigDfrd","Deferred","foundValue","done","setConfigurationValue","Configurations","setConfigurationValueClosePopup","updatePending","popoverIsOpen","checkFavorite","_checkFavorite","confirmButton","cancelButton","areYouSureParamsWithHTML","html","navigateTo","refreshPage","MyApp","rootPath","goBack","clone","camelCaseToSentence","isString","trim","splitHeaderText","headerStringTransformer","getBaseURL","isJson","str","objectExists","securityObjectID","none","getApplicationName","applicationId","availableApplications","application","getProductName","ProductName","UserSecurityObjects","getSecurityObjectDetailsFromObjectIdAndProductType","ProductType","ReportID","getAccessName","access","getUserName","UserName","Email","UserMaster","FullName","FirstName","LastName","toUTF8Array","utf8","charcode","charCodeAt","setPluginImageClass","pluginName","inlineSaver","difference","setValues","roleIdentifiers","Roles","userIds","UserMasters","formattedSortArray","dir","formattedFilterArray","currentFilter","newFilter","convertedNewFilters","stringValue","_typeof","URL","Favorited","message","pop","headerText","_","num","reportsService","getFields","newColumn","_links","fieldName","FilterField","textField","DataType","displayName","isNullable","IsNullable","getSavedReportFilters","multiFilters","f","ValueName","getSavedReportDateFilters","dateFilters","fixFieldNamesForApi","itemType","altNameFilterIndex","nameFilterIndex","idFilterIndex","descFilterIndex","Sorts","altNameSortIndex","nameSortIndex","idSortIndex","descSortIndex","saveTabReportInfo","currentTab","exportDetails","SavedReportService","ReportsService","$injector","workComplete","workFailed","getProductTypes","getRoles","getSecurityObjects","getSavedReports","getUserMaster","getClaims","getCompanyMasters","getCompaniesByProductId","_getObjectID","infoFactory","promises","loadNavigationObjects","all","getObjectIDfromRoute","route","routeArray","typeName","parentID","navigationList","$log","exception","tags","getReport","_getReport","reportsDataService","getReportMetadata","_getReportMetadata","getDataChangesReportMetadata","_getDataChangesReportMetadata","getSetupMetadata","_getSetupMetadata","getSetupData","_x5","_getSetupData","showError","isCustom","catch","isUndefined","viewModelHelper","getConfigurationValueByName","_getConfigurationValueByName","getProductConfigurationListByName","_getProductConfigurationListByName","getProductConfigurationValueByName","_getProductConfigurationValueByName","_getConfigurationValues","getIdentityProviders","_getIdentityProviders","updateConfigurationValues","_updateConfigurationValues","updateProductRiskEligibility","_x6","_x7","_updateProductRiskEligibility","getStandardMitigations","_getStandardMitigations","importCompanyLogo","_x8","_importCompanyLogo","deleteCompanyLogo","_deleteCompanyLogo","sendError","riskEligible","_callee10","_context10","_callee11","_context11","userAuth","getRolesByUserId","_getRolesByUserId","getRolesByUserMasterId","_getRolesByUserMasterId","excludeRoles","r","IsExcluded","userMasterId","getApprovalGroups","_getApprovalGroups","getApprovalGroupLevels","_getApprovalGroupLevels","updateGroup","_updateGroup","updateGroupLevel","_updateGroupLevel","addApprovalGroup","_addApprovalGroup","addApprovalGroupLevel","_x9","_addApprovalGroupLevel","addApproverToApprovalGroupLevel","_x10","_x11","_x12","_addApproverToApprovalGroupLevel","removeApprovalGroup","_x13","_removeApprovalGroup","removeApprovalGroupLevel","_x14","_x15","_removeApprovalGroupLevel","removeApproverFromApprovalGroupLevel","_x16","_x17","_x18","_removeApproverFromApprovalGroupLevel","exportApprovalGroups","_exportApprovalGroups","importApprovalGroups","_x19","_importApprovalGroups","groupId","levelId","_callee12","_context12","_updateSharedUsers","_downloadMultiple","_deleteMultiple","_saveNameChange","itemId","postItem","getUserProfileByUserMasterId","_getUserProfileByUserMasterId","getUserProfileByUserIdAndProductId","_getUserProfileByUserIdAndProductId","getUserProfileAccess","_getUserProfileAccess","getWorkdayProfileInfo","_getWorkdayProfileInfo","getRiskDetails","_getRiskDetails","getRiskProductProfile","_getRiskProductProfile","getBusinessProcessDetails","_getBusinessProcessDetails","getObjectLevelBusinessProcessDetails","_getObjectLevelBusinessProcessDetails","riskId","risk","Company","CompanyMasterId","businessProcess","BusinessProcessId","SecurityObjectIdentifier","SecurityObjectTypeId","_getUserStatistics","_getCompanyStatistics","_getDashboards","_getCards","_getCharts","_getChartByCard","_getDashboard","_createCard","cardUrl","ReportDataService","exceptionHandlerFactory","viewModelHelperFactory","configurationDataServiceFactory","emailNavigationServiceFactory","formatDate","dateObject","toISOString","userRolesDataServiceFactory","approvalGroupsDataServiceFactory","myDownloadsDataServiceFactory","userProfileDataServiceFactory","accessDetailsDataServiceFactory","homeDataServiceFactory","toastr","notifyArchive","correlationId","_ref$options","archiveObject","rightNotificationsSidebar","closeButton","duplicateProductImport","warning","info","iconClass","notification","getDay","removeDuplicates","$$phase","$evalAsync","stateChanged","state","hub","hubName","newState","signalR","connectionState","connecting","connected","reconnecting","disconnected","connection","start","populateQueryParams","selectedTenantId","selectedTenant","_saveResponse","postBody","QuestionId","answer","saveResponse","enableSave","questionChoicesList","Choices","Hub","signalRCommonService","archiveToastr","_createHub","t1","notifyObject","CorrelationId","Title","allowHtml","locationPath","locationSearchParams","RequestId","Version","RequestVersion","ReleaseNotesUrl","npsQuestionModalController","t2","t3","t4","t5","t6","listeners","queryParams","useSharedConnection","errorHandler","createHub","CriteriaSubmitButtonDropdownController","parentScope","exportPropertiesContainer","bindings","formReference","hideOptions","_onInit","setupRoleMultiselectDropdown","savedReportHandler","allRolesOption","intraResponsibilityHandler","_onChanges","kendoRoleDropdownDataSource","isFirstChange","roleSelectedIds","_read","_valueMapper","schema","pageSize","serverPaging","serverOperation","rolesDropdownLoading","altText","IncludeOnlyUserAssignedRolesInPlacesRoleDropdowns","roleDropdownOptions","autoBind","autoClose","placeholder","popup","origin","itemHeight","mapValueTo","valueMapper","roles","savedRoles","roleDataSource","kendoRoleDropdown","toJSON","onUpdateRoles","runSavedReport","selection","toggleIntraResponsibility","$onChanges","intraResponsibilityCheck","roleMultiselectDropdownController","_getFavorites","favorites","pageInfo","pageDescription","HelpLink","pageHeaderController","modalInstance","manageSavedLayoutsController","userRolesDataService","requestAction","objectTypeName","usersGridColumns","changeUserRowSelected","kendoEvent","keepCurrentRoles","keepCurrent","usersGridOptions","usersGridDataSource","_openUserSelectionModal","userSelectionModal","selectUserModalController","_getRoles","unavailableRoles","availableRoles","Role","removeCurrentRoles","isRoleSelected","availableRoleIndex","getAvailableRoleIndex","availableRole","getAvailableRole","storedRoles","Companies","company","roleCompany","addRole","companies","rc","co","CompanyId","validateRoles","unavailableRole","join","selectedRoles","existingRoleIndex","er","storedRoleIndex","sr","ar","roleIndex","stringProductId","openUserSelectionModal","businessUnitId","selectRolesByUserController","roleTemplatesData","convertRoles","selectedRoleTemplates","loading","getRoleTemplates","roleTemplates","$attrs","checkForRoleTemplates","_checkForRoleTemplates","openModal","selectRoleTemplateModalController","roleTemplate","list","newRoles","setSelectedRoleTemplates","selectTemplateRoles","selectRolesByRoleTemplateController","onInit","checkForReportId","filterDropdownOptions","_openSaveReportModal","_currentSavedReports","_openScheduleReportModal","_currentSavedReports2","_openSaveFilterModal","_gridFilters","modal","gridFilters","applyFilter","onApplyFilter","saveReportLayoutButton","enableGrid","gridDataSouce","onReadGrid","onClearFilters","AXSecurityDesignerPrivilegesDataService","_read2","setFieldDefaults","Read","Update","IsCustomized","copyFieldSettings","set","IsModified","getAssignedFields","assigned","hasOwnProperty","action","_onAccessChange","progress","fieldsGrid","updateFieldAccess","simulationId","fieldsGridDataSource","_updateFieldAccess","body","SimulationId","ParentObjectAssociation","ParentObjectId","privilege","SystemName","ParentObjectType","ParentIsCustom","IsCustom","ChildObjectId","ChildObjectType","_deleteModification","deleteModification","collapsed","selectedTab","tableColumns","fieldActions","fieldColumns","tablesGridOptions","fieldsGridOptions","selectTable","selectedTable","toggleCollapse","onAccessChange","changeFilter","tablesGridDataSource","tables","fields","getFieldAccess","assignedFields","modifiedFields","tableFieldsModalController","lastClickedDataItemRecord","_linkRecordToZendesk","actionInProgress","auditLogTicket","AuditId","ObjectName","AtHeaderIds","AtHeaderId","buildHeaderPost","_buildHeaderPost","headerPostData","headerEndpoint","Tickets","RecId","ChangeDate","Template","TableName","Event","User","Responsibility","Application","ObjRecId","ModifiedOn","ModifiedBy","ChangeNumber","_unLinkRecord","AtHeaderTicketId","linkRecordToZendesk","unLinkRecord","model","CreatedDate","TotalTicketCount","Count","isCustomProduct","p","TableLogID","entryNo","TicketId","populatedTicket","columnsFromVM","_linkRecord","linkRecord","_linkRecordToJira","linkRecordToJira","_linkCustomTicket","customTicketId","linkCustomTicket","_linkRecordToFreshService","linkRecordToFreshService","daysToSearch","_openJiraTicketModal","JiraTicketModalController","onDelete","_openFreshServiceTicketModal","FreshServiceTicketModalController","_openServiceNowTicketModal","ServiceNowTicketModalController","_openZendeskTicketModal","ZendeskTicketModalController","_openCustomTicketModal","customTicketModalController","_removeTicketLinkByTicketId","openJiraTicketModal","openServiceNowTicketModal","openZendeskTicketModal","openCustomTicketModal","openFreshServiceTicketModal","removeTicketLinkByTicketId","RowSettingsTemplateController","filterManagerGridOptions","deleteFilter","reportFilterManagerController","_signReportFromInbox","ExecutionId","executionId","SavedReportId","savedReportId","Notes","_yield$$http$post2","saveReportSignature","signReportFromInbox","signReportController","newSavedReport","saveReportController","scheduleReportController","_saveFilter","FilterType","saveReportFilterController","companyTemplatesData","availableCompanies","deleteselectedCompany","removedCompanyIndex","_getTemplates","getCompanyTemplates","templatesDataSource","acc","curr","_close","roleCompanyModalObject","applyToAll","applyToAllRoles","roleCompanies","_objectSpread","addCompanyToList","selectedCompanyIndex","copyCompaniesFromTemplate","selectedTemplate","companyObject","companyIndex","availableCompany","findAvailableCompany","ac","selectAllCompaniesChanged","selectAllCompanies","companySelectionDisabled","getTemplates","_openEditRoleCompaniesModal","editRoleCompaniesModal","roleCompaniesObject","editRoleCompaniesModalController","selectedRole","updateRoleCompanies","onUpdateCompanies","openEditRoleCompaniesModal","applyCompaniesToAllSelectedRoles","onApplyCompaniesToAllRoles","showApplyAll","editRoleCompaniesController","templatesGridColumns","changeTemplateRowSelected","templatesGridOptions","templatesGridDataSource","_checkForCompanyTemplates","companyTemplates","_openTemplateSelectionModal","templateSelectionModal","selectTemplateModalController","CompanyMaster","onSelectedTemplate","openTemplateSelectionModal","selectCompaniesByTemplateController","_importDataChangesReport","importUpdatePending","importDataChangesReport","_openImportModal","importModal","importDataChangesModalController","openImportModal","reportDetails","dataChangesImportController","staticPageHeaderController","selectedUsers","kendoUserDropdownDataSource","savedUsers","userDataSource","onUpdateUsers","_changeUserSelection","_data","serverSorting","productIds","_yield$risksDataServi","pagesize","ProductIds","Excluded","UserNameFilter","userDropdownOptions","filtering","changeUserSelection","userMultiselectDropdownController","schedulesDataService","getInbox","reviewsList","inboxDataSource","TaskType","requestList","reportSignaturesList","_getInbox","_downloadReport","fileFormat","fileExtension","downloadExecutionFile","BaseReportName","_openSignReportModal","signReportModal","completeReview","instanceId","InstanceId","downloadReport","reviewRequest","myInboxController","availableOrgHierarchies","selectedOrgHierarchies","orgHierarchiesLoading","getOrgHierarchies","orgHierarchy","CompanyName","CompanyType","filterAvailableOrgHierarchies","selectedOrgHierarchy","_getOrgHierarchies","orgHierarchies","roleOrgHierarchyModalObject","addOrgHierarchyToList","selectedOrgHierarchyIndex","deleteselectedOrgHierarchy","removedOrgHierarchyIndex","_openEditRoleOrgHierarchiesModal","editRoleOrgHierarchiesModal","roleOrgHierarchiesObject","editRoleOrgHierarchiesModalController","updateRoleOrgHierarchies","onUpdateOrgHierarchies","openEditRoleOrgHierarchiesModal","editRoleOrgHierarchiesController","userProfileDataService","workDayProfile","getUserProfile","profile","_getUserProfile","openUserProfileModal","userProfileModalController","userDisplay","userProfileController","userChangesInformation","isDelete","userProperties","keys","formattedProperties","currentProperty","productImage","userInformation","UserChanges","oldValueExists","userProperty","OldValue","NewValue","oldValue","userDetailsChangesController","_openUserDetailsChangesModal","userDetailsChangesModalController","changes","openUserDetailsChangesModal","aLAPluginActive","setupGrid","_aLAPluginActive","plugin","productProfileAccessGridColumns","lastUsedCol","viewCountCol","productProfileAccessGridOptions","productProfileAccessGridDataSource","LastUsed","ViewCount","_yield$userProfileDat","accessCollapsed","userProductCollapsed","userProductProfileController","accessDetailsProfileDataService","getRiskDetailProducts","getBpDetailProducts","_getRiskDetailProducts","_yield$accessDetailsP","_getBpDetailProducts","openAccessDetailsProfileModal","accessDetailsProfileModalController","accessDetailsProfileController","caseId","getAttachmentsInformation","attachmentsList","_getAttachmentsInformation","_yield$controlLibrary","callPending","getAttachmentsList","_downloadAttachment","attachment","downloadPending","downloadAttachment","FileName","getFileTypeImage","fileType","attachmentsDownloadController","_openAttachmentsDownloadModal","attachmentsDownloadModalController","openAttachmentsDownloadModal","getGridData","_getGridData","riskProductProfileGridColumns","riskProductProfileGridOptions","riskProductProfileGridDataSource","riskProductCollapsed","riskProductProfileController","getBpGridData","businessProcessProductProfileGridColumns","accessDetailFields","businessProcessProductProfileGridOptions","businessProcessProductProfileGridDataSource","_getBpGridData","accessDetails","AccessDetails","businessProcessProductCollapsed","businessProcessProductProfileController","ownershipGroupAssignmentsController","ownershipGroupItemsDataService","ownershipGroupOwnerDataService","selectedItem","owners","getItems","_getItems","_yield$ownershipGroup","itemsLoading","getGroupItems","GroupType","getItemOwners","_getItemOwners","_yield$ownershipGroup2","ownersLoading","getGroupItemOwners","_changeSelectedItem","changeSelectedItem","criteriaSubmitButtonDropdown","roleMultiselectDropdown","userMultiselectDropdown","pageHeader","manageSavedLayouts","selectRolesByRoleTemplate","selectRolesByUser","reportToolbar","tableFieldsModal","rowSettingsTemplate","reportFilterManager","saveReportFilter","imRoleCompanies","selectCompaniesByTemplate","dataChangesImport","buttonClick","breadcrumbText","staticPageHeader","myInbox","imRoleOrgHierarchies","userDetailsChanges","userProfile","userProductProfile","accessDetailsProfile","attachmentsDownload","riskProductProfile","businessProcessProductProfile","ownershipGroupAssignments","generateGridWithDynamicValues","hideExportOptionsFromSubmit","mainGridOptions","newDate","setDate","getDate","DefaultDaysForAuditTrailReports","LastNumberOf","reportMetadata","metadataColumns","columnDefinition","d","IsVisible","columnSample","startsWith","metadata","DateCriteria","hasCriteria","setupAdvancedFiltering","AutoRunDashboardReports","columnsWithType","determineTypeOfField","dateColumnExists","record","isDateColumn","setSortsAndFilters","_loadSavedGridLayout","savedLayoutColumns","executeGrid","userPreferences","autorun","tabbedReports","matchedColumn","savedColumn","criteriaDateFilterIndex","loadDateFilterAsCriteria","dateRangeFilters","DateFilter","DateType","RelativeDateType","PeriodType","getPeriodId","Period","needsUpdate","getDateFilters","RelativeFilter","dateTimeFieldName","startDateRow","endDateRow","relativeDate","_downloadArchivedReport","ReportExecutionDate","_download_ArchivedReport","_downloadExecutionFile","executionString","executionArray","unformattedFileType","formattedFileType","RelativeDateTypeDataSource","PeriodTypeDataSource","openStartDate","startDatePopup","opened","openEndDate","endDatePopup","downloadArchivedReport","startDateOptions","dateDisabled","showWeeks","formatYear","startingDay","endDateOptions","gridID","$id","clearAllFilters","applySelectedFilter","DynamicReportsViewModel","addLockNextToTextInOISelect_dropdownFilter","$sce","trustAsHtml","readableUrlItem","urlRoute","convertProductIdToProductName","translateObjectIdToObjectName","x","input","productID","string2","txt","charAt","word","word2","dayDiff","floor","max","byString","o","s","k","searchTerm","searchProperties","term","Netsuite","Intacct","Oracle","Salesforce","collection","keyname","output","globalEvents","attrs","bind","hasClass","showCardList","focusMe","$parse","focus","$apply","$compile","restrict","attr","argsStr","replaceWith","broadcastCardChange","itemElems","getItemElements","cardPositionArray","each","itemElem","Packery","parentElement","isResizeBound","itemSelector","columnWidth","gutter","bindResize","draggable1","Draggabilly","handle","bindDraggabillyEvents","instance","pointer","orderItems","draggable2","reloadItems","pageTitle","toState","toParams","fromState","fromParams","sideNavigation","metisMenu","iboxTools","$element","showhide","ibox","closest","icon","slideToggle","toggleClass","resize","closebox","iboxToolsFullScreen","fullscreen","button","setTimeout","trigger","minimalizaSidebar","minimalize","hide","fadeIn","removeAttr","icheck","ngModel","newValue","iCheck","checkboxClass","radioClass","$setViewValue","checked","chatSlimScroll","slimscroll","railOpacity","fullScroll","slimScroll","boxHeight","$interpolate","priority","MIN_SAFE_INTEGER","$attributes","expressions","whenReady","waitForInterpolation","evalExpressions","expression","$eval","requestAnimationFrame","checkIfInterpolated","startSymbol","directive","compile","$last","addClass","which","onEnter","elm","ctrl","$parsers","password","characterGroupCount","test","$setValidity","pwdReqCapitalLetter","pwdReqNumber","symbols","pwdReqSymbol","RegExp","src","errSrc","$set","elem","firstPassword","pwCheck","val","parent","css","setStyle","ngModelCtrl","transformedInput","$render","directives","stopProp","customtext","customcolor","whenReadyDirective","hasNumbers","inspinia","myMapData","vectorMap","backgroundColor","regionStyle","initial","fill","stroke","series","regions","values","normalizeFunction","sparkData","sparkOptions","render","sparkline","rangeOptions","ionRangeSlider","dropzone","maxFilesize","paramName","maxThumbnailFilesize","init","json","alert","figure","video","newWidth","ele","extras","closeOffCanvas","clockpicker","scrollspy","offset","Charts","OceanTheme","creditLabel","allowOutsideClick","reverseButtons","confirmButtonClass","cancelButtonClass","kendoModule","sharedServicesModule","sharedFactoriesModule","sharedComponentsModule","sharedFiltersModule","sharedDirectivesModule","signalRModule","dashboardReportsModule","signReportFromEmail","pageWrapperCtrl","loginCtrl","redirectController","callbackController","rootController","sideNavController","dynamicTabController","BackNavigationBarController","routeConfig","appInsightsConfig","spinnerConfig","translationConfig","tenantInterceptorConfig","responseErrorInterceptorConfig","authInterceptor","flowJsConfig","provider","$get","create","ctrlr","ctrlAs","isDefined","_opts","kb","keyboard","bd","bdc","backdropClass","ws","wc","windowClass","anim","_setOpts","run","raygunConfig","churnZero","helpObjectConfig","locationConfig","buildRoleBPPostBody","businessProcessDataService","gridReady","objectDataSource","generateGridWithSelectedValues","selectedBusinessProcesses","selectedRuleset","selectedObject","ruleset","selectedProductId","businessProcesses","AltName","bp","productDropdownChange","mainGridColumns","getBusinessProcesses","getBusinessProcessesByRiskRuleset","allBusinessProcessesDropdownObject","businessProcessDataSource","businessProcessDropdownChange","Objects","SecurityObject","_rulesetDropdownChange","updateRoleDataSource","rulesetDropdownChange","getRulesets","IsEnabled","rulesetDataSource","IsAssigned","generateBody","defaultProduct","PreferredProduct","getRisks","Enabled","allRisksDropdownObject","riskDataSource","riskSelectedIds","multiSelect","setColumns","DefaultMitigation","AutoMitigated","IsDefaultRuleset","ProcessID","risks","productString","setLayout","deselectSelectedRisk","buildUserBPPostBody","selectedProducts","allCompaniesDropdownObject","defaultCompany","PreferredCompany","selectedCompanies","companyDropdownChange","_vm$users","_getBusinessProcesses","invalidRuleset","updateUserDataSource","widget","LastRun","UseCount","dynamicSideGridDataSource","dynamicSideGridOptions","changeRowSelected","sideGridIsNew","sideGridLoading","sideGridHeader","dynamicSideGridColumns","statusDataService","riskToMitigate","originalMitigation","MitigationID","originalStatus","StatusID","originalMitigationNotes","MitigationNotes","originalExpirationDate","ExpirationDate","deleteRiskMitigationRecord","deleteInProgress","UserMitigationID","okMitigateRisk","methodType","selectedControls","saveAttachments","mitigateInAdditionalCompanies","deselectSelectedCompany","mitigatedRisk","companyIds","removeFile","_removeFile","downloadFile","_downloadFile","minimumExpiryDate","standardMitigations","controlsLoading","controlLibrary","Array","originalControls","Controls","matchingControl","ControlId","Attachments","len","mitigateAddtionalDataSource","riskObjects","expiredMitigationsDataSource","similarMitigationsDataSource","similarMitigations","mitigationHistoryDataSource","selectedMitigateAddtional","similarMitigationColumns","_saveAttachments","userMitigationId","fileActionPending","deleteAttachment","remainingFile","mitigationId","additionalCompanies","shift","similarMitigationsGridOptions","mitigations","getStatuses","CanCurrentUserAccess","statuses","useMitigation","similarIsCollapsed","newCons","controlsEqual","BuildUserRisksPostBody","isRoleDetail","setSingleProductRoute","dynamicSideGridDataSourceArray","productAccessDetailsResponse","Product","s4Enabled","userRisksMitigationModalController","mitigateRisk","DefaultMitigated","DefaultMitigationCondition","UserLastUpdatedDate","mitigationNotesIndex","TransactionInternalID","LastTransactionModifiedDate","MasterDataID","NSQuantDetailViewOptions","viewBy","UserInternalID","RoleID","reportDetailsGridDataSource","TransactionChanges","reportDetailIdentifier","reportDetailsGridColumns","reportDetailsGridOptions","initialLoad","charts","chartType","getChartType","riskType","NSQuantValues","byUserActual","chartId","detailId","byUserPotential","byRoleActual","byRolePotential","byRiskActual","byRiskPotential","getViewOptions","convertUpperCase","getChartId","getReportObjectId","getDetailObjectId","convertTitleCase","v","selectedChartId","getChart","chartLoading","showDetailsGrid","chartDataSource","caption","theme","valueFontSize","selectItem","setJSONData","highlightSelectedItem","selectedChartLoading","filterFieldName","selectedItemData","getDetails","selectedRow","viewOptions","detailsGridColumns","detailsColumn","getColumns","detailsGridOptions","detailsGridDataSource","RiskName","RoleName","requestEnd","viewDetails","NSQuantificationViewDetailsModalController","showSetup","selectDetailView","QuantificationThreshold","QuantificationLastDays","columnsForRiskRuleset","riskGridOptions","riskGridDataSource","toggleValue","RiskQuantifiable","selectedDetailView","simulationViewToShow","saveAsExcel","simulation","deploySimulation","StatusName","reprocessSimulation","editSimulation","deleteSimulation","toggleNewSimulation","simulationToEdit","simulationToDeploy","changeSort","sortClicked","selectedSort","reverse","availableToSorts","StatusId","selectedSimulation","putBody","listOfSimulations","selectSimulationIf","determineLabelClass","changeSimulationSatusTo","statusId","getSimulations","changeRoleSelected","loadingSelectedSimulation","riskSnapshot","riskResults","populateSelectedSimulation","selectedRoleFilter","selectedSimulationView","simulationsAreLoading","viewSimulationRoleRisks","viewSimulationRoleRisksController","viewSimulationUserRisks","viewSimulationUserRisksController","modalName","gridIsLoading","roleRisksResults","risksGridDataSource","risksGridOptions","newVm","addPassedValidationProperty","validationResponse","StepId","PassedValidation","newSimulationName","loadingValidation","simulationRoleDeploymentSteps","validateResponse","markAsDeployed","postSimulationInProgress","RoleDeploymentSteps","steps","PermissionDeploymentSteps","SubsidiaryDeploymentSteps","UserDeploymentSteps","maxStepsComplete","totalStepsComplete","selectedListOption","securityModelUsers","Permissions","permission","Users","RoleId","currentSecurityModel","loadingNewSimulation","listOptionSelectionChanged","selectedNewUser","selectedNewRole","changeNewRoleSelected","changeNewUserSelected","addRoleToNewSimulation","perspective","addPermissionsToSelectedRole","addPermissionsToSelectedRoleModalController","addSubsidiariesToSelectedRole","addSubsidiariesToSelectedRoleModalController","addUsersToSelectedRole","addUsersToSelectedRoleModalController","addRolesToSelectedUser","addRolesToSelectedUserModalController","selectedNewRoleFilter","permissionLevels","subsidiaries","permissions","removeUserFromRole","removeRoleFromUser","removeSubsidiaryFromRole","Subsidiaries","removePermissionFromRole","removeRole","removeUser","saveSimulation","modifiedSecurityModel","addUser","nameAlreadyExists","emailAlreadyExists","defaultSubsidiary","available","addItemToRole","addItemToUser","roleToModify","userToAdd","NetSuiteArmQuantificationViewModel","NSQuantificationSelection","NetSuiteSecurityDesignerViewModel","NetSuiteSecurityDesignerDeploymentController","SimulationNewController","rulesetId","businessProcessesSelected","_getRulesets","getRiskTypes","_getRiskTypes","_getRisks","getAllRisks","_getAllRisks","companiesSelected","SecurityObjects","risksSelected","responsibilities","individual","resp","getControls","_getControls","deleteControl","_deleteControl","addNewControl","_addNewControl","editControl","_editControl","exportControls","_exportControls","getMitigations","_getMitigations","_deleteAttachment","_getAttachmentsList","_addAttachments","importControlLibrary","_importControlLibrary","importControlsFromPluginAPI","_importControlsFromPluginAPI","controlId","control","dataTypeIdentifier","_callee13","_context13","_callee14","_context14","getBusinessCycles","_getBusinessCycles","addBusinessCycle","_addBusinessCycle","modifyBusinessCycle","_modifyBusinessCycle","removeBusinessCycle","_removeBusinessCycle","businessCycleId","addMitigation","_addMitigation","modifyMitigation","_modifyMitigation","removeMitigation","_removeMitigation","getRiskLevels","_getRiskLevels","createRiskLevel","_createRiskLevel","renameRiskLevel","_renameRiskLevel","deleteRiskLevel","_deleteRiskLevel","riskLevelId","_getStatuses","addStatus","_addStatus","modifyStatus","_modifyStatus","removeStatus","_removeStatus","importAutoMitigationRuleset","exportAutoMitigationRuleset","getAutoMitigations","_getAutoMitigations","getObjects","_getObjects","getObjectsByUrl","_getObjectsByUrl","addAutoMitigation","_addAutoMitigation","removeAutoMitigation","_removeAutoMitigation","applyAutoMitigations","_applyAutoMitigations","autoMitigationId","deleteAutoMitigation","_deleteAutoMitigation","_importAutoMitigationRuleset","_exportAutoMitigationRuleset","_getBusinessProcessesByRiskRuleset","getBusinessProcessesObjectsByGroup","_getBusinessProcessesObjectsByGroup","getBusinessProcessObjects","_getBusinessProcessObjects","getBpGroups","_getBpGroups","getBpGroupObjects","_getBpGroupObjects","getSapFioriApplications","_getSapFioriApplications","getSapFioriAppServices","_getSapFioriAppServices","createBusinessProcess","_createBusinessProcess","createBusinessProcessGroup","_createBusinessProcessGroup","addObjectToBpGroup","_addObjectToBpGroup","updateBusinessProcess","_updateBusinessProcess","updateBusinessProcessGroup","_updateBusinessProcessGroup","deleteBusinessProcess","_deleteBusinessProcess","deleteBpGroup","_deleteBpGroup","removeBusinessProcessObjectsFromGroup","_removeBusinessProcessObjectsFromGroup","riskRulesetId","bpId","bpGroupId","appId","AppId","BusinessProcessID","_callee15","_context15","_callee16","bpObjectId","_context16","getRiskRulesetList","_getRiskRulesetList","downloadRulesetTemplate","_downloadRulesetTemplate","cloneRiskRuleset","_cloneRiskRuleset","importRiskRuleset","_importRiskRuleset","setDefaultRiskRuleset","_setDefaultRiskRuleset","updateRiskRuleset","_updateRiskRuleset","addNewRiskRuleset","_addNewRiskRuleset","deleteRiskRuleset","_deleteRiskRuleset","addNewRisk","_addNewRisk","updateRisk","_updateRisk","copyObjectsToRuleset","_copyObjectsToRuleset","addNewRiskObject","_addNewRiskObject","getAssignedRisks","_getAssignedRisks","assignRiskByUser","_assignRiskByUser","assignByRisk","_assignByRisk","removeAssignedRiskByUser","_removeAssignedRiskByUser","securityObjectType","SecurityObjectTypes","BuildResponsibilityAccessPostBody","getProfiles","_getProfiles","getSensitiveProfiles","_getSensitiveProfiles","exportProfiles","_exportProfiles","updateProfiles","_updateProfiles","importProfiles","_importProfiles","deleteProfile","_deleteProfile","buildRoleBPPostBodyFactory","risksDataServiceFactory","businessProcessDataServiceFactory","buildUserBPPostBodyFactory","responsibilityRiskPostBody","controlLibraryDataServiceFactory","businessCyclesDataServiceFactory","riskRulesetDataServiceFactory","mapBusinessProcesses","newArray","mapSecurityObjects","SecurityObjectTypeName","BusinessProcessName","BusinessProcessDescription","SecurityObjectModuleName","mitigationsDataServiceFactory","riskLevelsFactory","statusDataServiceFactory","AutoMitigationDataService","peoplesoftAutoMitigationsDataService","autoMitigationsDataServiceFactory","assignRisksDataServiceFactory","BuildRoleAccessPostBody","BuildUserAccessPostBody","maintainProfilesDataServiceFactory","selectedCheckboxValue","myDataSourceByRisk","myDataSourceByUser","selectedRisk","selectedRiskLoading","selectedRiskData","selectedUserLoading","selectedUserData","fusionChartByRiskEvents","fusionChartByUserEvents","numberPrefix","enableSlicing","buildResponsibilityRiskPostBody","selectedResponsibilities","responsibilityDataSource","intraResponsibilityToggleClicked","intraResponsibilityOnly","hasDetailedVersion","AssignedUsers","savedIntraResponsibilityOnly","EnableIntraResponsibility","allResponsibilitiesSelected","riskRulesetService","codeCheckerDataSource","showDropdown","rulesets","columnsVM","_setBpDropdownVisibility","sum","createNewGroup","_createNewGroup","_initializeRulesetInfo","defaultRuleset","initializeRulesetInfo","setBpDropdownVisibility","runCodeCheckerConfirmation","addLink","ZTCode","ProcessName","ExistsInBP","addObjectToBusinessProcess","BusinessProcessGroupID","GroupID","changeRuleset","codeCheckerGridOptions","Quantifiable","sapAuthFieldGroupsDataService","isEditingValues","_createFieldValue","newField","fieldProcessing","ProcessObjectId","AuthFieldGroupId","createFieldValue","AuthFieldValues","_deleteFieldValue","fieldIndex","deleteFieldValue","_updateGroupInfo","$$hashKey","_createGroup","createGroup","groupFormSubmit","updateGroupInfo","_openManageGroupModal","groupModal","groupModalController","BusinessProcessObjectId","onGroupUpdated","_deleteGroup","deleteGroup","openManageGroupModal","groupMenuOptions","isCustomRuleset","sapAuthFieldGroupsController","fieldId","maintainProfilesDataService","isImport","existingProfiles","availableGridColumns","_addProfile","ProfileName","availableProfilesGrid","availableProfilesGridDataSource","importPending","addProfile","availableProfilesGridOptions","_yield$maintainProfil","existingProfile","maintainProfilesGridColumns","_yield$maintainProfil2","exportUpdatePending","maintainProfilesGridDataSource","_openMaintainProfilesModal","profileModal","maintainProfilesModalController","maintainProfilesGridOptions","openMaintainProfilesModal","maintainProfilesGridController","SAPCodeCheckerViewModel","SAPRiskQuantificationViewModel","sapAuthFieldGroups","sapAuthFieldGroupsDataServiceFactory","maintainProfilesGrid","DefaultMitigationsOverwriteCurrent","ApplyDefaultMitigationsAfterImport","_applyDefaultMitigations","applyDefaultMitigations","assignRisksDataService","riskManageType","setupAssignByUserGrid","setupAssignByRiskGrid","userGridColumns","minResizableWidth","userGridOptions","userGridDataSource","isAssigned","riskGridColumns","RulesetEnabled","AssignedUser","_removeAssignByUser","userGrid","AssignedUserId","AssignedUserName","_assignByUser","selectedAssignByUserUser","riskGrid","selectedAssignByRiskUser","assignByUserDropdownChange","assignByRiskDropdownChange","removeAssignByUser","assignByUser","AssignByUserList","AssignByRiskList","Domain","IsSystemAccount","assignRisksController","activeControlPlugins","successCallback","pendingImport","importType","auditBoardActive","workivaActive","_setMitigations","mitigationDropdownLoading","mitigationDataSource","_setProducts","productDropdownLoading","productDataSource","_setUsers","userDropdownLoading","usersDataSource","_setBusinessProcesses","businessProcessDropdownLoading","RulesetName","_saveControl","controlToSave","controlData","savePending","BusinessProcesses","PerformerId","MitigationId","uploadNewFiles","existingFilesDataSource","_uploadNewFiles","saveControl","setMitigations","setProducts","setUsers","setBusinessProcesses","getActiveControlPlugins","_getActiveControlPlugins","pluginsArray","errorCallback","_openNewEditModal","newEditModal","newEditControlModalController","openNewEditModal","importControlModalController","IsWorkivaControl","IsAuditBoardControl","controlLibraryController","businessCyclesDataService","businessCycle","saveBusinessCycle","businessCyclesGridColumns","_deleteItem","businessCyclesGrid","businessCyclesGridDataSource","_openModal","businessCycleModalController","deleteItem","businessCyclesGridOptions","_yield$businessCycles","maintainBusinessCyclesController","riskRuleset","isCloning","hasSAP","actionTitle","setupCloningGrids","getCustomRulesets","_getCustomRulesets","loadingRiskRulesets","customRiskRulesetDataSource","savingRiskRuleset","disableSubmit","_hasSAP","_downloadTemplate","saveFile","fileName","BypassSecurityObjectValidation","selectedRiskRulesetToOverwrite","cloneRiskRulesetRisksGridDataSource","isSelected","cloneRiskRulesetBusinessProcessesGridDataSource","businessProcessesGridOptions","cloneRiskRulesetBusinessProcessGridOptions","cloneRiskRulesetRisksGridOptions","selectedBusinessProcessIds","selectedRiskIds","newRiskRulesetIsDefault","loadingImport","gridView","ineligibileBusinessProcessIds","downloadTemplate","importChecked","rulesetFormSubmit","updateIneligibleBusinessProcessIds","businessProcessId","hasIneligibleBusinessProcessId","hasIneligibleIds","checkDefaultEnabled","riskLevelsData","mitigationsDataService","riskLevelDataSource","businessCycleDataSource","statusDataSource","canCurrentUserAccess","IsDefaultMitigated","Mitigation","RiskLevel","BusinessCycle","Policy","RiskType","successText","savingRisk","isNewRecord","riskFormSubmit","clearDefaultMitigationFields","riskTypesDataSource","riskRulesetMapper","availableObjectsGridColumns","_addBusinessProcessToSelectedGrid","processingBPAdd","ConditionList","availableObjectsGridDataSource","addBusinessProcessToSelectedGrid","availableObjectsGridOptions","originalObjects","availableObjects","showBpGrid","selectedBusinessProcess","objectsDataGridColumns","objectsDataGridOptions","objectsGridDataSource","objects","_getRiskRulesetsList","_yield$riskRulesetSer","riskRulesets","loadingRiskRulesetList","riskRulesetDataSource","_copyObjects","copyPending","DestinationRulesetId","destinationRuleset","SourceRulesetId","Risks","IncludeBPs","copyRiskBPs","deleteObject","deletedObject","copyObjects","getRiskRulesetsList","_click","mostRecentRulesetId","mostRecentRuleset","riskRulesetsDataSource","changeRulesetRowSelectedFromRiskRulesetTable","showRiskSelection","selectedBPs","selectedRisks","selectRisksMode","allRisksSelected","selectBPsMode","allBPsSelected","_openRiskRulesetModal","riskRulesetModal","riskRulesetModalController","selectedRiskRuleset","_exportRiskRuleset","getRisksList","_getRisksList","preselect","isRulesetChanged","risksDataSource","loadingRiskList","changeRiskSelected","_openRiskModal","riskModal","riskModalController","_openRulesetObjectCopyModal","objectCopyModal","rulesetObjectCopyModalController","_deleteRisk","_openManageConditionsModal","manageConditionsModal","_removeFromSelectedRiskObjects","_openAvailableObjectsModal","availableObjectsModal","availableObjectsForRiskModalController","riskSearchBox","changeRiskRowSelectedFromRiskTable","openManageConditionsModal","openRiskRulesetModal","openRulesetObjectCopyModal","exportRiskRuleset","openRiskModal","deleteRisk","openBusinessProcessObjectsModal","businessProcessObjectsModalController","removeFromSelectedRiskObjects","openAvailableObjectsModal","selectObject","selectedObjects","_vm$selectedRisk","selectAllObjects","riskRulesetMenuOptions","riskMenuOptions","mitigation","saveMitigation","mitigationsGridColumns","mitigationsGrid","mitigationsGridDataSource","mitigationModalController","mitigationsGridOptions","_yield$mitigationsDat","maintainMitigationsController","saveStatus","statusGridColumns","statusGridDataSource","statusModalController","statusGridOptions","_yield$statusDataServ","maintainStatusesController","rowArchive","gridDataSourceDefault","resetNew","restoreArchive","restoreBeingApplied","restoreArchiveInProgress","reapplyAutoMitigationsConfirm","productTypes","_showReApplyAutoMitigations","applyModal","showReApplyAutoMitigations","applyArchiveModalController","reapplyAutoMitigations","reapplyDefaultMitigations","archiveBeingApplied","applyArchiveInProgress","ReapplyAutoMitigations","ReapplyDefaultMitigations","deleteArchive","datasourcedata","openNewArchiveModal","newArchiveModalController","saveArchive","archiveName","isValid","_successCallback","applyArchiveOptions","applyArchive","_showReapply","_startNewAudit","audit","startNewAudit","showReapply","startNewAuditController","autoMitigationsDataService","_importDynamicProductAutoMitigationRuleset","_importOracleAutoMitigationRuleset","importRuleset","importDynamicProductAutoMitigationRuleset","importOracleAutoMitigationRuleset","dialogs","systemGridDataSource","objectGridDataSource","openImportAutoMitigationRulesetModal","importAutoMitigationRulesetModalController","rulesetExportPending","applyAutoMitigationConfirmation","systemColumnsFromVM","autoMitigation","systemExclusionGridOptions","editSystemAutoMitigation","isCreate","ModuleType","selectedType","selectedCondition","excludedMenuItems","ExcludedMenuItems","availableMenuItems","TypeId","ConditionId","Condition","TechName","showValueDropdown","newSystemAutoMitigationModalController","deleteSystemAutoMitigation","openNewSystemAutoMitigationModal","_yield$$http$get2","objectColumnsFromVM","objectExclusionGridOptions","editObjectAutoMitigation","selectedExcludeType","selectedFromType","excludeObject","fromObject","ExcludeObjectTypeId","ExcludeObjectType","FromObjectTypeId","FromObjectType","ExcludeObjectId","ExcludeObjectName","FromObjectId","FromObjectName","newObjectAutoMitigationModalController","deleteObjectAutoMitigation","openNewObjectAutoMitigationModal","errorCallBack","excludeTypeDropdownChange","fromTypeDropdownChange","excludeDropdownOptions","fromDropdownOptions","fromDropdownDataSource","excludeObjectDropdownOptions","minLength","fromObjectDropdownOptions","fromFunctionDropdownDataSource","fromMenuDropdownDataSource","fromFunctionDropdownOptions","fromMenuDropdownOptions","saveAutoMitigation","excludeObjectType","fromObjectType","fromObjectID","savingAutoMitigation","fromName","fromObjectRespApp","ApplicationId","ExcludeObjectID","ExcludeObjectTechName","FromObjectID","FromObjectTechName","FromObjectRespApp","updateAutoMitigation","ExclusionId","_successCallback2","excludeObjectDropdown","fromDropdown","setDataSource","excludeObjectDataSource","fromObjectDataSource","addMenuToList","menu","listOfAvailableMenus","listOfSelectedMenus","listOfSelectedMenuIds","deleteSelectedMenu","addAllMenus","selectedIds","allMenusStatus","deleteAllSelectedMenus","itemA","itemB","exclusionTypeDropdownOptions","OR_RBACEnabled","searchDropdownOptions","exclusionConditionDropdownOptions","conditionIsDropdownDataSource","conditionNoIsDropdownDataSource","conditionContainsDropdownOptions","conditionNoContainsDropdownOptions","condition","textValue","comboBoxValue","excludedMenuIds","objectRespApp","RespApp","ExcludedMenuIds","typeDropdownChange","conditionDropdown","ChangeUpdateValueControl","EnableUpdate","conditionDropdownChange","disableValueTextBox","searchObjectDataSource","autoMitigationvalue","enableDownloadButton","fileToDownload","riskRulesetDownloadInProgress","autoMitigationRulesetDownloadInProgress","enableUploadButton","fileToUpload","riskRulesetUploadInProgress","importRiskRulesetFlow","autoMitigationRulesetUploadInProgress","exportFiles","upload","uploadFile","getFromObjectId","ComponentName","MenuName","_saveAutoMitigation","AutoMitigationObjectId","AutoMitigationObjectType","_updateAutoMitigation","RuleId","ruleId","needsSelectedExcludedObjectType","needsSelectedFromObjectType","_vm$autoMitigation","_yield$peoplesoftAuto","excludedObjectsDropdownList","_vm$autoMitigation2","selectedFromObjectTypeRoute","fromObjectDropdownList","_yield$peoplesoftAuto2","uid","moduleType","AutoMitigationObjectName","autoMitigationRulesGridColumns","_applyAutoMitigationConfirmation","_openAutoMitigationModal","addMitigationRuleModalController","autoMitigationRulesGridDatasource","openAutoMitigationModal","autoMitigationRulesGridOptions","Code","removedFiles","fromObjectDropdown","autoMitigationModalController","_deleteSystemAutoMitigation","autoMitigationsController","selectedProductType","_addCondition","newCondition","availableConditionsGridDataSource","selectedConditionsGridDataSource","_getProductTypes","productTypesDataSource","selectedProductForCondition","getTypes","_getTypes","typeDataSource","setupGrids","availableConditionsGridColumns","selectedConditionsGridColumns","availableConditionsGridOptions","selectedConditionsGridOptions","SecurityRoleId","_removeFromListOfConditions","productTypesDropdownChange","productsDropdownChange","addCondition","removeFromListOfConditions","manageConditionsController","riskLevel","submitForm","riskLevelsGridColumns","riskLevelsGridDataSource","riskLevelModal","riskLevelsModalController","riskLevelsGridOptions","riskLevelsGridController","_addBusinessProcess","bpSaveInProgress","saveBusinessProcess","addBusinessProcess","groupCount","selectedBpId","helpId","groupNumber","availableProducts","excludedAccessProducts","bpGroup","IncludeReadViewAccess","enableExcludeInquiryAccess","selectedProductChanged","_selectedProductChanged","getS4Config","_getS4Config","bpGroupSaveInProgress","newGroupId","useFioriAppToggleChanged","useFioriApp","fioriAppGridOptions","fioriAppGridDataSource","ServiceIds","changeFioriAppSelected","selectedApp","selectedFioriId","FioriId","fioriAppServicesGridOptions","fioriAppServicesGridDataSource","changeFioriAppServiceSelected","appServiceGrid","selectedKeyNames","saveGroup","typeOptions","groupObjects","groupObject","addingToSelectedGrid","availableGrid","getRiskRulesets","businessProcessesLoading","_openBusinessProcessModal","bpModal","businessProcessModalController","_openBusinessProcessGroupModal","bpGroupModal","bpGroupModalController","businessProcessGroupsDataSource","changeBusinessProcessSelected","_openBpObjectsModal","bpObjectsModal","bpObjectsModalController","selectedGroup","selectedObjectsForGroup","changeGroupSelected","_getRiskRulesets","riskRulesetsLoading","_changeGroupSelected","changeGroupInProgress","SAPAuthFieldGroupings","newFieldValueIsCollapsed","_changeBusinessProcessSelected","preselectGroupId","checkForIncludeAllAccessTypes","excludedProductsArray","productMatches","enableAllAccessTypes","_removeObjectFromBpGroup","bpObject","objectsInProgress","openBusinessProcessModal","openBusinessProcessGroupModal","openBpObjectsModal","changeRiskRuleset","removeObjectFromBpGroup","selectBusinessProcess","selectAllBPs","businessProcessMenuOptions","assignRisks","maintainBusinessCycles","maintainBusinessProcessController","maintainRiskRulesetController","maintainMitigations","riskLevelsGrid","maintainStatuses","ManageArchivesViewModel","ApplyAutoMitigationViewModel","transferRulesetController","peoplesoftAutoMitigations","autoMitigations","manageConditions","getObjectTypes","objectTypesDropdownLoading","selectedObjectType","objectTypeDataSource","objectTypeDropdownChange","objectSearchField","ObjectSearchField","PermissionOverride","kendoObjectDropdownDataSource","objectsDropdownLoading","addAllObjectsOption","AllObjects","fillAltNames","dropdownTemplate","objectDropdownOptions","change","allObjectTypesDropdownObject","accessRiskMonitorFactoriesModule","accessRiskMonitorNetSuiteModule","accessRiskMonitorSAPModule","accessRiskMonitorSetupModule","roleBusinessProcessController","roleRisksController","userBusinessProcessController","userRiskController","D365ArmQuantificationController","responsibilityRiskController","roleAccessController","userAccessController","responsibilityAccessController","myReviewsDataService","delegationItems","reviewHeaderId","reviewType","RestrictDelegateAccessAC","_reviewDelegation","ReviewHeaderId","ReviewItemIds","selectedDelegationItems","ItemId","DelegatedUserId","delegationNotes","delegationPending","delegateReviewItems","checkAllSelection","allSelected","filteredDelegationItems","reviewDelegation","selectAllChanged","filteredItem","itemToFind","itemSelectionChanged","itemIndex","filterItems","foundItem","itemsFilter","keyField","review","linkedTickets","HeaderId","manageDataDataService","onBehalfOf","ReviewType","checkCompanyConfig","getItemsForGrid","requestItemsGridColumns","showCompany","requestItemsGridOptions","requestItemsGridDataSource","gridItems","showGrid","_checkCompanyConfig","IncludeCompanyInReviews","_submitReviewCertification","ImRequestItems","selectedItems","tickets","SubmitReviewOnBehalfOf","_getItemsForGrid","productsArray","_loop","loadingGridItems","getReviewDetails","Items","detail","Set","productConfig","createImRequestSetting","getConfigurationByProductId","delegateYield","submitReviewCertification","itemsSelectionChanged","requestItemsGrid","updateTicket","ticket","removeTicket","providerString","accessCertificationsService","certificationsAllReviewDataService","_click2","getReviews","checkSecurityObjectInformationToggle","checkForDelegateAllReviews","checkForSubmitOnBehalfOf","getUserDisplay","reviewAssignmentTiles","getReviewTypes","_reopenReview","reopenReview","getReviewersList","selectedReview","selectedReviewer","loadingAssignmentItems","_processRefresh","_getUserDisplay","_getReviews","reviewsDataSource","_checkSecurityObjectInformationToggle","showBPObject","showRoleContentBPObject","downloadRejectedItemValidation","_downloadRejectedItemValidation","sendEmailNotifications","_sendEmailNotifications","notificationType","ReviewScheduleId","ReviewScheduleNotificationType","_exportReview","exportReview","_checkForDelegateAllReviews","_checkForSubmitOnBehalfOf","openDelegateModal","_openDelegateModal","delegationContext","_delegationItems","delegateModal","reviewDelegationModalController","openSubmitReviewModal","_openSubmitReviewModal","reviewModal","submitReviewModalController","_refreshReviewSheduleExecution","refreshReviewSheduleExecution","_refreshReview","_callee17","_context17","refreshReview","_deleteReview","_callee18","_context18","deleteReview","_selectedReviewChanged","_callee19","_context19","reviewDetailsSort","reviewDetailsThirdColumnFilter","reviewId","reviewItemsDataSource","reviewersDataSource","selectedReviewerChanged","_getReviewersList","_callee20","_context20","getReviewersByReviewId","_selectedReviewerChanged","_callee21","_context21","allItems","currentItemsPage","itemsRadioFilter","_getReviewDetails","_callee22","reviewer","_context22","securityRoleContentTypeFilter","RoleContentType","securityRoleContentTypeFilterOptions","setSortAndFilterOptionsForRoleContentType","_generateFailedImRequests","_callee23","_context23","reprocessImRequests","securityRoleContentType","_openAttachmentsModal","_callee24","attachmentsModal","_context24","attachmentsModalController","selectedReviewChanged","generateFailedImRequests","processRefresh","reviewMenuOptions","reviewerMenuOptions","TotalItems","CompletedItems","CanReopen","ItemsCompletedByOthers","ticketModalController","openAttachmentsModal","_getReviewersByReviewId","_reprocessImRequests","delegateAllReviews","submitOnBehalfOf","getTeamMembers","_getTeamMembers","getTeamMembersByProduct","_getTeamMembersByProduct","addTeamMember","_addTeamMember","removeTeamMember","_removeTeamMember","teamTypeUrl","newTeamMemberInfo","memberId","_getReviewTypes","exportReviews","_exportReviews","addReviewAssignment","_addReviewAssignment","importReviews","_importReviews","getProfile","_getProfile","getWorkdayProfile","_getWorkdayProfile","getSecurityRoleDetails","_getSecurityRoleDetails","getAccess","_getAccess","getCatalog","_getCatalog","securityRoleId","roleId","updateItemStatus","_updateItemStatus","_delegateReviewItems","headerId","groupByType","selectedTile","getRoutingCriteria","_getRoutingCriteria","postRoutingCriteria","_postRoutingCriteria","deleteRoutingCriteria","_deleteRoutingCriteria","getSchedules","_getSchedules","getInstances","_getInstances","getInstanceAssignments","_getInstanceAssignments","createSchedule","_createSchedule","createInstance","_createInstance","cloneInstance","_cloneInstance","updateSchedule","_updateSchedule","updateInstance","_updateInstance","deleteInstance","_deleteInstance","deleteInstanceSchedule","_deleteInstanceSchedule","deleteReviewInstanceAssignment","_deleteReviewInstanceAssignment","runSchedule","_runSchedule","reviewAssignmentId","assignmentId","certificationsAllReviewDataServiceFactory","Background","notificationTeamsServiceFactory","certificationsReviewAssignmentsDataServiceFactory","roleSecurityProfileDataServiceFactory","myReviewsDataServiceFactory","reviewSchedulesDataServiceFactory","reviewItem","notesRequired","allowCancel","_saveNotes","savingNotes","saveNotes","selfReviewConfigValue","showAllCompaniesToggle","username","reviews","showToggle","toggleReviews","groupBy","selectReview","ReviewInstanceId","tile","Tile","selectedReviewGroups","reviewTypeName","reviewDetailsFilter","availableGroupingMethods","groupByPreference","DefaultGroupReviews","selectedGroupingMethod","groupingMethods","setupGroupByList","setupGroupByListview","filteredReviews","_setupGroupByList","groupingList","loadingGroupItems","searchQuery","buildTypeList","buildUserList","groupItems","Remaining","MultiApprovalStatus","itemTypes","RemainingCounts","countObject","ReviewedByOthers","Risk","getItemId","_buildUserList","_setupGroupByUserListview","setupPermissions","filterUsers","allItemStatus","checkAllStatus","filteredUsers","_setupGroupBySecurityRoleTypeListview","showCAObject","showRoleContentCAObject","showSelectAll","_setupPermissions","loadingItems","requireNotesOnRejectedItems","totalObjects","usersRadioFilter","showAssignedinAllCompaniesOnly","_openNotesModal","itemNotesModal","itemNotes","notesModalController","_changeItemStatus","notesOnly","processingItemStatus","ReviewItems","getUpdatedRemainingReviewItems","filteredUserItems","_updateAllItemStatuses","IsSelfReview","_getUpdatedRemainingReviewItems","showAll","_setupGroupByTypeListview","typesRadioFilter","_changeTypeItemStatus","delegatePending","Types","reviewItems","_updateReviewCounts","_openTicketModal","openNotesModal","openTicketModal","selectUser","setupGroupByTypeListview","selectedGroupChanged","allFilteredUsers","allTypes","currentUsersPage","currentTypesPage","setupGroupBySecurityRoleTypeListview","setupGroupByUserListview","resetReviews","changeItemStatus","updateAllItemStatuses","updateItemNote","changeTypeItemStatus","updateReviewCounts","changeSearchFilter","radioFilterChanged","category","reviewStatus","requireNotes","filteredReviewItems","filterCheckAllStatus","hideSelectAll","securityRoleName","SecurityRoleName","categoryType","reviewitemsSortKey","reviewItemsFilterKey","setupFilterTypes","_openReviewModal","roleContentReviewModalController","securityRole","reviewItemCategories","existingIndex","ApprovedCount","RejectedCount","NotReviewedCount","ReviewedByOthersCount","openReviewModal","securityRoleContentItemsListController","openTicketTable","_openTicketTable","ticketType","existingTickets","showLinkTicketBody","isJira","isFreshservice","isServiceNow","isZendesk","createLink","updateTicketGrid","linkedTicket","jiraTicketLinked","freshServiceTicketLinked","serviceNowTicketLinked","zendeskTicketLinked","customTicketLinked","isLinked","onUpdateTicket","removeIMRequestTicketLink","onRemoveTicket","isModify","linkTicketsDropdownController","reviewSchedulesDataService","scheduleData","FrequencyType","Month","selectedSchedule","ReviewInstance","selectedReviewInstance","scheduleType","months","frequencyTypesDataSource","saveSchedule","frequencyDataSource","selectedFrequencyType","reviewAssignmentsDataService","_importSchedules","importSchedules","schedule","isClone","scheduleTypesDataSource","_saveSchedule","scheduleInstance","saveInProgress","IncludeSupervisorReviews","updateScheduleInstance","cloneScheduleInstance","createScheduleInstance","_createScheduleInstance","_cloneScheduleInstance","scheduleInstanceId","_updateScheduleInstance","newInstanceId","getScheduleInstances","_getScheduleInstances","loadingReviewSchedules","reviewSchedules","schedulesArray","FullSchedule","Schedules","RollingSchedule","_openScheduleModal","frequencyType","_scheduleData","existingSchedule","scheduleModal","scheduleModalController","_openScheduleInstanceModal","scheduleInstanceModal","scheduleInstanceModalController","sendNewScheduleInstanceToTop","selectedReviewScheduleChanged","_openImportReviewSchedulesModal","importReviewSchedulesModal","importSchedulesModalController","_selectedReviewScheduleChanged","selectedScheduleInstance","onSelectSchedule","_deleteScheduleInstance","instanceScheduleId","processingReviewSchedules","openScheduleModal","openScheduleInstanceModal","openImportReviewSchedulesModal","deleteScheduleInstance","reviewScheduleMenuOptions","reviewSchedule","reviewScheduleInstancesListController","existingSchedules","ownershipGroupTypeName","reviewInstance","ownershipGroupsDataService","ownershipGroupDropdownLoading","getOwnershipGroups","ownershipGroupsDataSource","_getOwnershipGroups","ownershipGroup","OwnershipGroupId","_addAssignment","assignment","addAssignment","_addRoutingCriteria","routingCriteria","RoutingCriteriaOwnershipGroupId","ReviewAssignmentId","addRoutingCriteria","setInstanceAssignments","_setInstanceAssignments","_yield$reviewSchedule","loadingAssignments","instanceAssignmentsDisplayList","_openDefineRoutingCriteriaModal","instanceAssignment","routingCriteriaModal","routingCriteriaModalController","selectedOwnershipGroupChanged","_openInstanceAssignmentModal","instanceAssignmentModal","instanceAssignmentModalController","_openGroupAssignmentsModal","OwnershipGroupType","OwnershipGroupName","ReviewTypeName","_removeInstanceAssignment","processingAssignments","_selectedOwnershipGroupChanged","onSelectOwnershipGroup","openInstanceAssignmentModal","removeInstanceAssignment","openGroupAssignmentsModal","openDefineRoutingCriteriaModal","reviewOwnershipGroupsOptions","OwnershipGroupTypeName","routingCriteriaEnabled","instanceAssignmentsListController","ownershipGroupName","routingCriteriaData","ownershipGroupId","routingCriteriaOwnershipGroups","routingCriteriaOwnershipGroup","_vm$ownershipGroup","ownershipGroupsList","setRoutingCriteriaInstances","_setRoutingCriteriaInstances","routingCriteriaList","routingCriteriaArray","currentCriteria","RoutingCriteriaOwnershipGroupName","_openRoutingCriteriaInstanceModal","routingCriteriaInstance","routingCriteriaInstanceModal","routingCriteriaInstanceModalController","_removeRoutingCriteria","openRoutingCriteriaInstanceModal","removeRoutingCriteria","routingCriteriaInstancesListController","notificationTeamsDataService","teamMembersList","teamType","availableUsersGrid","AdmUserId","TeamType","availableUsersGridDataSource","availableUsersGridOptions","member","teamTypeUrlString","_yield$notificationTe","loadingTeamMembers","selectProduct","_selectProduct","_yield$notificationTe2","selectedTeamMember","loadingSelectedProductTeamMembers","_getAssociatedProducts","loadingAssociatedProducts","associatedProductsList","updateTeamMembersList","_openAddTeamMemberModal","addTeamMemberModalController","selectedTeam","teamsList","selectTeam","team","getAssociatedProducts","openAddTeamMemberModal","notificationTeamsController","roleSecurityProfileDataService","_vm$profile","securityRoleIdentifier","SecurityRoleIdentifier","isWorkDay","workDayProfileInformation","setupRoleGrid","setupCatalogGrid","_setupRoleGrid","roleGridColumns","roleGridOptions","roleGridDataSource","_options$data","_yield$roleSecurityPr","_setupCatalogGrid","catalogGridColumns","catalogGridOptions","catalogGridDataSource","_options$data2","_yield$roleSecurityPr2","roleCollapsed","catalogCollapsed","toggleRoleAccess","toggleFioriCatalog","_openRoleSecurityProfile","roleSecurityProfileModalController","openRoleSecurityProfile","roleSecurityProfileController","accessCertificationsFactoriesModule","certificationsAllReviewController","myReviewsController","securityRoleContentItemsList","linkTicketsDropdown","selectedScheduleChanged","selectedInstanceAssignment","selectedOwnershipGroup","reviewAssignmentsUpdated","updateList","updateAssignmentsList","reviewScheduleInstancesList","scheduleInstanceAssignmentsList","routingCriteriaInstancesList","notificationTeams","roleSecurityProfile","dataItemRecords","selectedColumns","uniqueValues","modify","_saveTickets","existingTicket","linkTicket","ticketsToRemove","_linkTicket","uniqueItems","dataItems","headerTicketId","keyFields","extracted","_defineProperty","extractedItems","ChangeHeaderId","selectedItemsGridOptions","selectedItemsGridDataSource","_unused","saveTickets","checkExistingTickets","AuditTrailEntityDataService","getObjectId","_getObjectId","HasAuditTrailModule","loadSavedReportCriteria","setupFilters","arr","seen","strObj","dateFilter","onRead","selectedTemplateType","ticketModalColumns","openTicketLinkingModal","modifyTicket","_modifyTicket","matchingHeaderIdItems","filtered","option","unlinkTicket","_unlinkTicket","clearAllPages","clearMultiSelectData","dateFieldName","templateTypesDataSource","templateDropdownIsLoading","getAllTemplates","Insert","Delete","All","ModifiedDate","TimeStamp","dateandTime","templateTypes","QueryInput","deselectSelectedTemplateType","thirtyDaysAgo","today","maxDate","checkboxTemplate","titleTemplate","ticketTemplate","_openTicketLinkingModal","ticketModal","linkTicketsModalController","keyValue","unlinkedItems","headerTemplate","attributes","setDates","getObjectsByTemplateId","templateId","getFieldsByObjectId","createTemplate","editTemplate","updateTemplate","_updateTemplate","cloneTemplate","deleteTemplate","addObjectToTemplate","addFieldToObject","templateObjectId","removeObjectByTemplateIdAndObjectId","removeFieldByTemplateIdTemplateObjectIdAndTemplateFieldId","templateFieldId","_getConfigurationByProductId","getNetSuiteAuditTrailVersion","_getNetSuiteAuditTrailVersion","setProductConfiguration","_setProductConfiguration","dataActionCall","_dataActionCall","getGeneratedReports","_getGeneratedReports","createGeneratedReport","_createGeneratedReport","createAx7GeneratedReport","_createAx7GeneratedReport","deleteReport","_deleteReport","getSnapshots","_getSnapshots","getDistinctRecordType","_getDistinctRecordType","getRecordType","_getRecordType","updateRecordType","_updateRecordType","updateSnapshot","_updateSnapshot","updateReportCurrentByDate","_updateReportCurrentByDate","selectedRecordType","rowId","Entity","TrackedTableList","CreatedBy","BaseTemplate","TrackedTable","TrackedFields","TrackAll","TrackInsert","TrackUpdate","TrackDelete","TrackedField","checkAll","checkInsert","checkUpdate","checkDelete","getTrackingTemplate","getAXFieldsByTableId","tableId","convertToTrackedTable","table","convertedFields","convertFromTrackedTable","tableList","convertedTables","trackedTable","mapTemplate","includeUntrackedFields","templateDfrd","trackedFieldList","trackedTableList","returnedTemplate","TrackedTables","templateTable","TableId","fieldList","foundField","trackedField","FieldId","FieldLabel","TableLabel","mapTemplateHeaders","trackedTemplateList","entityList","mapTemplateHeader","convertedTemplate","getTemplate","updateTemplateTables","revertTemplate","TemplateId","applyTemplates","selectedTemplates","exportTemplates","importTemplates","getAllAXTables","getSelectedClasses","_getSelectedClasses","getAllClasses","_getAllClasses","_createTemplate","addClassToTemplate","_addClassToTemplate","_cloneTemplate","_deleteTemplate","deleteClass","_deleteClass","templateClassId","getObjectsToTrack","_getObjectsToTrack","saveFieldDataChanges","_saveFieldDataChanges","saveObjectDataChanges","_saveObjectDataChanges","exportObjectData","_exportObjectData","importObjectData","_importObjectData","importObjectTrackingMetadata","_importObjectTrackingMetadata","fieldData","templateDataService","templatesDataServiceFactory","getActionsByProductId","actionsArray","buttonText","canSchedule","version","manageDataDataServiceFactory","generatedReportsDataServiceFactory","snapshotsDataServiceFactory","workdayMaintainTemplatesDataServiceFactory","salesforceAtDataService","getRecordTypes","_getRecordTypes","nsDataChangesReport","_nsDataChangesReport","allChangesReport","_allChangesReport","ticketsReport","_ticketsReport","updateChangeRecord","_updateChangeRecord","ticketProvider","ChangeId","getOptionSets","_getOptionSets","getOptionSetValuesByOptionSet","_getOptionSetValuesByOptionSet","editOptionSetValue","_editOptionSetValue","addOptionSetValue","_addOptionSetValue","optionSetId","getUserGroups","_getUserGroups","getUsersByUserGroupId","_getUsersByUserGroupId","createUserGroup","_createUserGroup","editUserGroup","_editUserGroup","deleteUserGroup","_deleteUserGroup","addUserToUserGroup","_addUserToUserGroup","removeUserGroupUser","_removeUserGroupUser","userGroupId","userGroupUserId","getDocumentation","getDocumentationTypes","getDocumentationAuthorizedByOptions","createDocumentation","updateDocumentation","deleteDocumentation","documentationId","getDocumentationLinkedChangesList","getDocumentationLinkedTicketsList","linkChangeTicketToDocumentation","deleteChangeTicketDocumentationLink","documentationTicketId","linkChangeToDocumentation","deleteChangeDocumentationLink","documentationDetailId","allChangesDataServiceFactory","optionSetsDataServiceFactory","userGroupsDataServiceFactory","documentationDataServiceFactory","netsuiteDataChangesDataServiceFactory","templatesDataService","objectsGridOptions","_addNewtemplate","newTemplate","_editTemplate","editedTemplate","submitTemplateForm","selectedFields","cloneTemplateObjectsGridDataSource","cloneTemplateFieldGridDataSource","FieldIds","TemplateObjectId","newObject","addNewtemplate","hasExistingValueChanged","origValue","equals","updateIneligibleObjectIds","ineligibileObjectIds","isIneligibleObjectId","hasineligibleObjectId","Custom","cloneTemplateObjectsGridOptions","cloneTemplateFieldGridOptions","TemplateObjects","templateObjects","templateFields","TemplateFields","objectsDataSource","fieldsDataSource","availableFields","fld","availableFieldsGridDataSource","availableFieldsGridOptions","changeTemplateSelected","preselectObjectId","changeTemplateInProgress","changeObjectSelected","changeObjectInProgress","openTemplateModal","templateModalController","openObjectModal","objectModalController","openFieldModal","fieldModalController","removeObject","removeField","TemplateFieldId","templateMenuOptions","netsuiteDataChangesDataService","recordTypes","recordType","originalRecordTypes","objectsAreEqual","changeAllValues","recordTypeChanged","submit","netsuiteDataChangesConfigurationController","optionSetsDataService","optionSet","_addNewValue","_editValue","editedValue","submitValueForm","editValue","addNewValue","createOptionSetsGrid","optionSetsDataSource","selectedOptionSet","_openOptionSetValueModal","optionSetValueModalController","optionSetsGridDataSource","optionSetsGridColumns","optionSetsGridOptions","openOptionSetValueModal","changeOptionSet","maintainOptionSetsController","snapshotsDataService","createSnapshotChangesGrid","recordTypeDropdownChange","recordTypeDataSource","recordDataSource","selectedRecord","_recordTypeDropdownChange","allRecords","RecordName","snapshotChangesController","userGroupsDataService","userGroup","_addNewUserGroup","newUserGroup","editedUserGroup","submitUserGroupForm","addNewUserGroup","_configureUsersGrid","getAllUsers","UserGroupUserInternalId","_getAllUsers","Inactive","UserGroupId","configureUsersGrid","_openUserGroupModal","userGroupModal","userGroupModalController","_openUserModal","userModal","userModalController","selectedUserGroup","changeUserGroupSelected","userGroupsDataSource","_changeUserGroupSelected","changeUserGroupInProgress","openUserGroupModal","openUserModal","userGroupMenuOptions","maintainUserGroupsController","Diff","savedStartDate","savedEndDate","snapshotComparisonController","snapshotConfigurationController","nsAtDocumentationService","documentation","t","typesDataSource","_getAuthorizedByOptions","authorizedByOptionsDataSource","AuthorizedBy","auth","_addNewDocumentation","newDocumentation","savingDocumentation","_editDocumentation","updatedDocumentation","submitDocumentationForm","editDocumentation","addNewDocumentation","openDate","datePopup","origDocumentation","currentDocumentation","dateOptions","getAuthorizedByOptions","Provider","linkedJiraTickets","linkedServiceNowTickets","linkedZendeskTickets","linkTicketToDocumenation","unlinkTicketFromDocumentation","_unlinkTicketFromDocumentation","_linkTicketToDocumenation","linkedChangeTicketsGridDataSource","NsAtDocumentationTicketId","statusTemplate","linkedChangeTicketsGridColumns","linkedChangeTicketsGridOptions","linkedTicketsData","jiraTicketsGridColumns","jiraTicketsGridOptions","jiraTicketsGridDataSource","jiraTicketsPostBody","_read3","serviceNowTicketsGridColumns","serviceNowTicketsGridOptions","serviceNowTicketsGridDataSource","serviceNowTicketsPostBody","_read4","zendeskTicketsGridColumns","zendeskTicketsGridOptions","zendeskTicketsGridDataSource","zendeskTicketsPostBody","configureGrids","linkedChangesGridColumns","AllUserGroups","userGroupDropdownIsLoading","selectedUserGroups","_configureChangesGrid","changesGridColumns","changesGridOptions","persistSelection","changesGridDataSource","templates","userGroups","_linkChangesToDocumentation","changesToLink","linkedChangesGridDataSource","_unlinkChangeFromDocumentation","NsAtDocumentationDetailId","showChangesGrid","deselectSelectedTemplates","deselectSelectedUserGroups","linkChangesToDocumentation","unlinkChangeFromDocumentation","changesChangeRowSelected","DetailId","linkedChangesGridOptions","linkedChangesData","configureChangesGrid","_openDocumentationModal","documentationModal","documentationModalController","_deleteDocumentation","openDocumentationModal","openChangeTicketsModal","changeTicketsModalController","openChangesModal","changesModalController","manageDocumentationController","allChangesDataService","_saveChangesRecord","SystemChange","CustomTicketId","originalRecord","selectedTicketProviderChanged","ticketsGridColumns","ticketsGridOptions","ticketsGridDataSource","ticketsPostBody","removeTicketAssociation","saveChangesRecord","recordValuesHaveChanged","setupAllChangesGrid","openEditModal","_openEditModal","editModal","allChangesEditModalController","allChangesController","setRecordTypes","setObjectId","setupDataChangesNSGrid","setReportMetadata","setupDefaultDateFilter","_setObjectId","allUsersDropdownObject","userDropdownChange","_vm$selectedUsers","_runSavedReport","recordTypesDataSource","deselectSelectedRecordType","_setRecordTypes","_vm$filterCriteria$qu","thirtyDaysPrior","defaultDateFilter","_setReportMetadata","netsuiteDataChangesController","auditTrailNetSuiteFactoriesModule","maintainTemplatesController","snapshotConfiguration","netsuiteDataChangesConfiguration","maintainOptionSets","snapshotChanges","maintainUserGroups","snapshotComparison","manageDocumentation","allChanges","netsuiteDataChanges","ninetyDaysAgo","executeAction","dataChangesProcessIsRunning","ImportType","archiveSingleDate","purgeSingleDate","restoreStartDate","restoreEndDate","archiveStartDatePopup","purgeStartDatePopup","restoreStartDatePopup","singleDateOptions","manageDataActionController","manageDataConfigurationController","_updateConfigValue","configuration","updateConfigValue","configValueChanged","changedConfigurations","oldConfig","getImportSchedule","getScheduleUrl","importSchedule","selectedFreqForScheduleImport","selectedDayOfWeekForScheduleImport","selectedDayOfMonthForScheduleImport","startTimeForScheduleImport","originalSchedule","ScheduleImportIsOn","scheduleImportStatusChanged","updateScheduleImport","isOn","scheduleIsOn","frequency","dayOfWeek","dayOfMonth","startTime","scheduleUrl","disableUrl","downloadedSchedule","dayOfMonthRequest","dayOfWeekRequest","toUTCString","ScheduleType","putScheduleUrl","deleteScheduleUrl","manageDataScheduleController","manageDataFactory","_getProductConfigurations","_response","getProductActions","productActions","configurationNeeded","_updateConfigValues","eligibleValues","getProductConfigurations","updateConfigValues","isProductConfigUnChanged","manageDataProductController","parentVm","radioSelected","origAT_ArchiveDays","AT_ArchiveDays","origAT_PurgeDays","AT_PurgeDays","configurationValues","checkImportFocus","ProductImportTiles","ActionTiles","availableProduct","singleDate","manageDataVm","archiveData","dataProcessIsRunning","RecordTypes","collectAuditTrailDataApiCall","collectSnapshot","purgeData","restoreData","productRoute","actionRoute","disabled","_productDropdownChange","oracleCloudDataChangesController","snapshotsDataSource","snapshot","maintainSnapshotsController","generatedReportsDataService","generatedReport","loadTemplates","_yield$authentication","coreRoles","_yield$usersDataServi","userRoles","coreRole","userRole","_loadTemplates","atUrl","showTablesControl","trackedTables","ViewName","Tables","RoleIds","AllTrackedTables","productChanged","loadingGeneratedReports","generatedReports","_openNewReportModal","newReportModal","generatedReportModalController","openNewReportModal","generatedReportsController","createCurrentSnapshotGrid","recordTypeSelectedChanged","dateSelected","minDate","popup1","savedDate","_recordTypeSelectedChanged","open1","currentSnapshotController","_enableTrackingTemplates","selectedTemplateList","selectedTemplateIds","haveTemplatesChanged","origTemplates","newTemplates","enableTrackingTemplates","applyTrackingTemplatesController","selectedTemplateToClone","templateGridDataSource","addTemplate","templateName","mapTemplateResponse","numberOfTablesValid","addingTable","validateNumberOfTables","selectedTablesDataSource","addTable","newTable","availableTablesDataSource","availableTablesGridColumns","multi","allTables","allTable","availableTablesGridOptions","selectedTablesGridColumns","selectedTablesGridOptions","_importTemplates","atActionChanged","_changeRowSelected","templateDetailsLoading","originalTemplateTrackedTables","hasTemplatedChanged","isTheSame","originalTable","orgTable","j","_loop2","_i","existingTable","changeDetected","openAddTemplateModal","_openAddTemplateModal","addTemplateModal","newTemplateId","mappedNewTemplate","addTemplateModalController","stopTemplateDetailsSpinner","atTableActionChanged","cloneItem","removeSelectedTable","atFieldActionChanged","resetTemplate","openAddTableModal","newAddTemplateTableModalController","Fields","allTablesHaveFieldsToTrack","_loop3","numberOfValidFields","importTemplatesModalController","dataBound","mapTemplateResults","maintainTemplateController","manageDataController","_getTemplate","selectedEntity","templateDetailsController","workdayMaintainTemplatesDataService","_setupCloneTemplateGrid","_vm$templateClasses","classesGridOptions","_yield$workdayMaintai","cloneTemplateClassesGridOptions","templateClasses","templateClass","cloneTemplateClassesGridDataSource","_yield$workdayMaintai2","selectedTemplateClasses","selectedClassIds","_yield$workdayMaintai3","selectedClass","selectedTemplateClass","ClassId","updateSelectedClassIds","existingClass","saveTemplate","modalTitle","setupCloneTemplateGrid","setTemplates","openAddEditTemplateModal","_setTemplates","templatesLoading","_openAddEditTemplateModal","templateModal","addEditTemplatesModalController","selectedTemplateChanged","onSelectedTemplateChanged","templatesListController","existingClasses","classesGridColumns","_addClassToSelectedTemplate","addingClass","ClassName","Class","classesGridDataSource","_collectMetadata","collectMetadataPending","addClassToSelectedTemplate","collectMetadata","metadataCollectionRequired","PageNumber","setClasses","_setClasses","classesLoading","classes","deleting","_openAddClassesModal","classModal","addClassesModalController","openAddClassesModal","classesListController","_importObjects","importObjects","_importMetadata","importMetadataPending","mainGridDataSource","_saveObjectChange","_importData","importObjectModalController","importMetadata","saveObjectChange","exportData","exportPending","importData","_yield$salesforceAtDa","maintainObjectTrackingGridController","supportedProducts","dateTypes","periodNames","enableSetupTracking","relativeDateTypeDataSource","periodTypeDataSource","filterInfo","_vm$filterInfo$DateFi","relativeDateType","periodType","lastNumberOf","startDateObject","endDateObject","supportedProduct","filterData","_yield$reportsDataSer","_yield$reportsDataSer2","setupColumns","columnDef","_filterObject$Filters","filterObject","dateType","periodName","clearCriteriaModel","setFilterValues","_selectedFilter$Filte","startDatePopupOpened","endDatePopupOpened","setupChangesController","auditTrailFactoriesModule","auditTrailNetSuiteModule","DataChangesViewModel","templateDetails","maintainTemplate","manageDataAction","manageDataConfiguration","manageDataSchedule","manageData","manageDataProduct","maintainTemplates","onUpdate","templateChanged","ManageDataViewModel","ArchiveDataChangesController","CollectDataChangesController","CollectSnapshotController","PurgeDataChangesController","RestoreDataChangesController","GenericManageDataScheduleController","reportGenerator","oracleCloudDataChanges","maintainSnapshots","snapshotChanged","currentSnapshot","applyTrackingTemplates","changeSelectedTemplate","workdayTemplatesList","classesList","maintainObjectTrackingGrid","setupChanges","loadingAffectedObjects","securityLayerType","noAffectedObjects","affectedObjects","taskRecordingDataService","modalvm","fileUploaded","showUploadSection","loadingTaskRecordings","getTaskRecordings","taskRecordings","desc","simulationSelected","cancelUpload","uploadedFile","fileAdded","taskRecorderResponse","uploadTaskRecording","submitPrivilege","showInputSection","taskRecordingId","selectedTaskRecording","TaskRecordingId","submitExistingTaskRecording","AXSecurityDesignerService","disableFilter","currentPage","itemsPerPage","searchChanged","filteredResults","securityDesignerDutiesTree","searchBox","filteredCount","deleteDuty","duty","securityLayer","Action","determineModifiedArrays","openCloneDutyModal","selectedSecurityObject","cloneDutyModal","openAffectedObjectsModal","selectedDuty","axSecurityDesignerAffectedObjectsModalController","undoChangesToDuty","undoRemoveDuty","openAXNewSecurityLayerSecurityDesignerModal","NewAXSecurityLayerSecurityDesignerController","securityModels","securityModelInLocalStorage","privilegesModifiedResultOfRemove","Privileges","PrivilegesModified","GrantedPrivileges","ModifiedResultOfAllRemoves","numberModified","pageIsReadOnly","dutiesLoading","populateSystemNameIfCustom","securityDesignerPrivileges","openPrivilegesModal","objectOpenInModal","currentPrivileges","manageSecurityLayerGridOptions","manageSecurityLayerGridDataSource","selectedSecurityDesignerPrivileges","SelectedCheckbox","AddAXPrivilegesToDutySecurityDesigner","selectedTableFilter","modalHeader","selectPrivilege","parentItem","SetInitialModifiedValueElseChangeModified","childItem","AssignChildToParent","ChildItem","ChildType","ParentItem","ParentType","manageSecurityLayerGrid","deleteModificationToItem","_openTableFieldsModal","securityDesignerTables","openTableFieldsModal","securityDesignerPrivilegesTree","deletePrivilege","openClonePrivilegeModal","clonePrivilegeModal","selectedPrivilege","undoChangesToPrivilege","undoRemovePrivilege","MenuItemsModified","MenuItems","TablesModified","DataEntitiesModified","DataEntities","ServiceOperationsModified","ServiceOperations","GrantedMenuItems","Create","GrantedTables","GrantedDataEntities","GrantedServiceOperations","Invoke","privilegesLoading","securityDesignerMenuItems","securityDesignerDataEntities","securityDesignerServiceOperations","openMenuItemsModal","currentItems","selectedSecurityDesignerMenuItems","setDataSourceDefaultsAndMapProperties","ContainsAssigningValue","AddAXMenuItemsToPrivilegeSecurityDesigner","openTablesModal","createTablesModalDataSource","AddAXTablesToPrivilegeSecurityDesigner","openDataEntitiesModal","selectedSecurityDesignerDataEntities","AddAXDataEntitiesToPrivilegeSecurityDesigner","openServiceOperationsModal","selectedSecurityDesignerServiceOperations","AddAXServiceOperationsToPrivilegeSecurityDesigner","tableActions","actionDropdownChange","parentItemMenuItem","childTypeId","_yield$AXSecurityDesi","OldCreate","OldDelete","OldInvoke","OldRead","OldUpdate","AssignChildObjectToParent","deleteModificationToObject","DeleteModificationToObject","parentItemTable","_yield$AXSecurityDesi2","parentItemDataEntity","_yield$AXSecurityDesi3","parentItemServiceOperation","securityDesignerRolesTree","deleteRole","openCloneRoleModal","cloneRoleModal","dutiesModifiedResultOfRemove","Duties","subRolesModifiedResultOfRemove","SubRoles","DutiesModified","SubRolesModified","GrantedDuties","GrantedSubRoles","rolesLoading","securityDesignerRoles","securityDesignerDuties","undoChangesToRole","undoRemoveRole","AddAXPrivilegesToRoleSecurityDesigner","openDutiesModal","currentDuties","selectedSecurityDesignerDuties","AddAXDutiesToRoleSecurityDesigner","AddAXTablesToRoleSecurityDesigner","openSubRolesModal","currentSubRoles","selectedSecurityDesignerRoles","AddAXSubRolesToRoleSecurityDesigner","selectDuty","selectSubRole","createSimulation","sim","exportSimulationChanges","setGridOptions","loadingChanges","modifications","newSecurityLayersGridDataSource","CreatedSecurityLayers","parentToChildGridDataSource","ParentToChild","parentToObjectGridDataSource","ParentToObject","removedSecurityLayersGridDataSource","RemovedSecurityLayers","newSecurityLayersDataGridColumns","parentToChildDataGridColumns","parentToObjectDataGridColumns","removedSecurityLayersDataGridColumns","filterSecurityModels","sortSecurityModels","sortMethod","checkForSimulationModifications","activeModels","deployedModels","m","filteredModels","toggle","_publishSimulation","publishSimulation","_getSimulations","toggleInfo","_checkForSimulationModifications","_iterator","_step","_ret","_createForOfIteratorHelper","viewChanges","creation","modifiedRoles","modifiedDuties","modifiedPrivileges","removal","finish","_changePublic","boolValue","IsPublic","changePublic","_deleteSimulation","createRiskAnalysis","preselectSimulationNavigateToPage","openAXNewSecurityModelModal","NewAXSecurityModelModalController","openAXSecurityDesignerChanges","simulationModel","PartialAXSecurityDesignerChangesModalController","isCollapsed","exportSimulationAnalysis","statusColumn","changeSelectedView","view","statisticsLoading","selectedSimulationStatistics","roleLicenses_dataSource","roleLicenses_gridOptions","getRoleLicenses","userLicenses_dataSource","userLicenses_gridOptions","getUserLicenses","roleRisks_dataSource","roleRisks_gridOptions","getRoleRisks","roleBusinessProcess_dataSource","roleBusinessProcess_gridOptions","getRoleBusinessProcess","userRisks_dataSource","userRisks_gridOptions","getUserRisks","userBusinessProcess_dataSource","userBusinessProcess_gridOptions","getUserBusinssProcess","changeActionVerbiage","SimulationChanges","_importRecording","newTaskRecordingId","updatedFileName","importTaskRecording","importRecording","filterName","taskRecording","exportMenuItems","exportInProgress","getMenuItems","menuItemsList","_renameTaskRecording","renameTaskRecording","oldName","dataObject","missingItemsArray","showExistingSecurityModelView","editSecurityModel","createSecurityModel","newSecurityModelIconFaded","existingSecurityModelIconFaded","showNewSecurityModelView","addMissingMenuItemsToExistingSecurityModel","editingSecurityModel","SecurityLayerName","LayerType","ObjectsToAdd","addMissingMenuItems","addMissingMenuItemsToNewSecurityModel","addingSecurityModel","newSecurityModelFormData","newSecurityModelName","createNewSecurityModel","newSecurityModelId","completeObject","gettingSimulations","availableSimulations","getProductType","_getProductType","_getTaskRecordings","newTaskRecording","tr","taskRecordingsDataSource","getSelectedTaskRecordingOverview","_getSelectedTaskRecordingOverview","selectedSecurityType","securityLayerItem","taskRecordingInProgress","selectedSecurityObjects","selectedSecurityObjectsCopy","availableSecurityTypes","SecurityLayerType","_getMenuItems","_getSelectedSecurityLayerTypeItemDetails","securityLayerItemDetailsLoading","getSelectedSecurityLayerTypeItemDetails","securityLayerItemObjects","AccessType","matchingMenuItem","menuItem","getAccessTypeForAdding","AccessTypeForAdding","objectsToAdd","SecurityObjectName","ObjectType","SecurityObjectType","_deleteTaskRecording","deleteTaskRecording","missingMenuItems","SecurityObjectId","partialDataObject","_openImportTaskRecordingModal","importTaskRecordingModalController","_openRenameTaskRecordingModal","renameTaskRecordingModalController","_openAddMissingMenuItemsModal","addMissingMenuItemsModalController","_deleteSelectedTaskRecordings","selectedTaskRecordingIds","bulkDeletePending","selectedTaskRecordings","bulkDeleteTaskRecordings","allRecordingsSelected","selectAllTaskRecordings","selectRecordingsMode","openImportTaskRecordingModal","selectedSecurityTypeDropdownChange","openAddMissingMenuItemsModal","accessTypeForAddingFirst","Selected","selectTaskRecording","recording","deleteSelectedTaskRecordings","viewMenuItemsModalController","openViewMenuItemsModal","openRenameTaskRecordingModal","filterField","InitialModifiedValue","modification","selectedSecurityLayer","_AssignChildObjectToParent","formRemoveSecurityLayerSentance","dutiesMessage","rolesMessage","selectedSecurityDesignerTables","manipulateSecurityLayers","_createRiskAnalysis","menuItems","_importTaskRecording","_x20","_bulkDeleteTaskRecordings","_x21","_x22","_x23","_addMissingMenuItems","_x24","_createNewSecurityModel","_exportMenuItems","securityLayerName","getTables","_getTables","_getFields","_getFieldAccess","tableName","privilegeName","relationships","getSecurityMigrations","_getSecurityMigrations","getSecurityMigrationDetails","_getSecurityMigrationDetails","exportMigration","_exportMigration","addSecurityMigration","_addSecurityMigration","updateSecurityMigration","_updateSecurityMigration","updateSecurityMigrationDetails","_updateSecurityMigrationDetails","updateSecurityMigrationDetailEnabled","_updateSecurityMigrationDetailEnabled","deleteSecurityMigration","_deleteSecurityMigration","migrationId","getSimulation","_getSimulation","getSimulationItemsByType","_getSimulationItemsByType","getSimulationChanges","_getSimulationChanges","getSimulationAuthObjects","_getSimulationAuthObjects","getIntegrationSettings","_getIntegrationSettings","_createSimulation","analyzeSimulation","_analyzeSimulation","updateSimulation","_updateSimulation","updateIntegrationSettings","_updateIntegrationSettings","getSimulationCompositeRoles","_getSimulationCompositeRoles","getCompositeRoleRoles","_getCompositeRoleRoles","addCompositeRoleToSimulation","_addCompositeRoleToSimulation","addRoleToCompositeRole","_addRoleToCompositeRole","updateCompositeRole","_updateCompositeRole","copyCompositeRoleToSimulation","_copyCompositeRoleToSimulation","editCompositeRoleToSimulation","_editCompositeRoleToSimulation","deleteCompositeRole","_deleteCompositeRole","removeRoleFromCompositeRole","_removeRoleFromCompositeRole","compositeRoleId","CompositeRoleId","getSimulationRoles","_getSimulationRoles","getRoleItemsByType","_getRoleItemsByType","getRoleAuthObjects","_getRoleAuthObjects","getAuthObjectFields","_getAuthObjectFields","getFieldValues","_getFieldValues","getRoleOrgLevels","_getRoleOrgLevels","getFieldValueOptions","_getFieldValueOptions","addRoleToSimulation","_addRoleToSimulation","copyRoleToSimulation","_copyRoleToSimulation","editRoleToSimulation","_editRoleToSimulation","addItemToSimulationRoleByType","_x25","_addItemToSimulationRoleByType","addAuthObjectToSimulationRole","_x26","_addAuthObjectToSimulationRole","addFieldValue","_x27","_addFieldValue","grantRoleFullAuthorization","_x28","_x29","_grantRoleFullAuthorization","updateSimulationRole","_x30","_updateSimulationRole","removeRoleFromSimulation","_x31","_x32","_removeRoleFromSimulation","removeItemFromRole","_x33","_x34","_x35","_x36","_removeItemFromRole","_x37","_x38","_x39","_x40","_x41","authObjectId","AuthorizationObjectId","fieldValueId","getSimulationAnalysisStats","_getSimulationAnalysisStats","getRiskAnalysisReportStatistics","_getRiskAnalysisReportStatistics","exportRiskAnalysisReportDetails","_exportRiskAnalysisReportDetails","AXSecurityDesignerPrivilegesDataServiceFactory","taskRecordingDataServiceFactory","securityMigrationDataServiceFactory","sapSdSimulationDataServiceFactory","sapSdSimCompositeRoleDataServiceFactory","sapSdSimRoleDataServiceFactory","sapSdSimRiskAnalysisDataServiceFactory","securityMigrationDataService","migration","_saveMigration","fileObject","migrationSavePending","saveMigration","getMigrations","_getMigrations","securityMigrationsDataSource","selectedMigration","selectMigration","selectedMigrationChanged","_deleteMigration","openMigrationModal","_openMigrationModal","migrationModal","migrationModalController","securityMigration","deleteMigration","migrationsListController","migrationDetail","migrationHeaderId","_saveMigrationDetail","migrationDetailsSavePending","saveMigrationDetail","updateGridDataSource","migrationDetailsGridDataSource","_openMigrationDetailsEditModal","migrationDetailsRow","migrationDetailsEditModalController","_changeAllEnabled","allEnabledLoading","allEnabled","_changeEnabledValue","detailItem","loadingDetails","migrationDetailsGridColumns","migrationDetailsGridOptions","openMigrationDetailsEditModal","changeEnabledValue","changeAllEnabled","migrationDetailsGridController","changeSelectedSimulation","selectedCompositeRole","roleType","changeSelectedRole","changeSelectedCompositeRole","compositeRole","changeSelectedAuthObject","authObject","selectedAuthObjectField","selectedAuthObject","changeSelectedAuthObjectField","changeSelectedOrgLevel","orgLevel","selectedOrgLevel","roleTypeChange","backToSimulationList","manageAuthActive","defineOrgLevelsActive","viewAnalysisActive","selectedAuthRole","selectedOrgLevelsRole","selectedAnalysisSimulation","updateSimulationsList","manageAuthorizations","staticHeaderTitle","staticHeaderDescription","defineOrgLevels","viewAnalysis","simulationsListUpdated","listToUpdate","backButtonText","sapSdSimulationDataService","_saveSimulation","sapSdSimAnalysisDataService","newSimulationId","newestSimIndex","newestSim","simulationsLoading","simulations","onSelectedSimulationChanged","_openSimulationModal","simulationModal","simulationModalController","_viewRiskAnalysis","onViewAnalysisClicked","radioFilter","simulationsRadioFilter","viewRiskAnalysis","openSimulationModal","currentValue","onUpdateSimulationsList","simulationsListController","actionType","existingRoles","sapSdSimRoleDataService","availableRolesGridColumns","_saveRole","editRole","updateExistingCustomRole","copyRole","_addRole","_updateExistingCustomRole","LongDescription","_editRole","_copyRole","ExistingRoleName","NewRoleName","saveRole","availableRolesGridOptions","availableRolesGridDataSource","IsEditable","masterRole","isModified","_changeSelectedRole","onSelectedRoleChange","_openSimulationRoleModal","roleModal","roleModalController","refreshSimulations","_manageRoleAuthorizations","onManageAuthClicked","_manageOrganizationalLevels","onDefineOrgLevelsClicked","_deleteSimulationRole","openSimulationRoleModal","manageRoleAuthorizations","manageOrganizationalLevels","deleteSimulationRole","changeRoleType","selectedRoleType","onRoleTypeChange","onSelectedCompositeRoleChange","rolesListController","sapSdSimCompositeRoleDataService","availableCompositeRolesGridColumns","_saveCompositeRole","createCompositeRole","editCompositeRole","updateExistingCustomCompositeRole","copyCompositeRole","_createCompositeRole","_editCompositeRole","_updateExistingCustomCompositeRole","_copyCompositeRole","ExistingCompositeRoleName","NewCompositeRoleName","saveCompositeRole","getCompositeRoles","_getCompositeRoles","compositeRolesLoading","compositeRoles","_changeSelectedCompositeRole","_openCompositeRoleModal","compositeRoleModal","compositeRoleModalController","openCompositeRoleModal","compositeRolesListController","selectedAuthObjects","availableAuthObjectsGridColumns","processedAuthObject","addingAuthObjectsToRole","availableAuthObjectsGrid","availableAuthObjectsGridDataSource","availableAuthObjectsGridOptions","authObjectsLoading","authObjects","_changeSelectedAuthObject","onSelectedAuthObjectChange","_openAuthObjectModal","authObjectModal","roleAuthObjectModalController","_removeAuthObjectFromRole","removeAuthObjectFromRole","openAuthObjectModal","roleAuthObjectsListController","orgLevelsLoading","orgLevels","_changeSelectedOrgLevel","onSelectedOrgLevelChange","_grantFullAuthorization","Low","High","simulationsCtrl","grantFullAuthorization","roleOrgLevelsListController","processedRole","addingToCompositeRole","_openAddRoleModal","addRoleModal","addRolesModalController","openAddRoleModal","compositeRoleRolesListController","fieldsLoading","changeSelectedField","_changeSelectedField","selectedField","onSelectedFieldChange","AllMaintained","authObjectFieldsListController","availableItemsGridColumns","_addItem","addItemProcessing","availableItemsGrid","itemAdded","availableItemsGridDataSource","addItem","tcodes","catalogs","groups","spaces","availableItemsGridOptions","_yield$sapSdSimulatio","showCatalogsGroupsAndSpaces","_yield$sapSdSimRoleDa","_openItemModal","itemModal","openOrgLevels","itemsModalController","onItemAdded","_deleteItemFromRole","openItemModal","deleteItemFromRole","changeType","_setupFieldValueDropdowns","fieldValueOptionsDataSource","_saveFieldValue","fieldValue","low","high","saveFieldValue","setupFieldValueDropdowns","fieldValuesLoading","fieldValues","_openFieldValueModal","fieldValueModal","fieldValueModalController","updateLists","openFieldValueModal","fieldValuesListController","detailedReportType","_exportDetailedReport","exportDetailedReport","reportType","columnDefinitions","reportTitle","getReportRouteAndColumnDefinitions","detailedReportGridOptions","detailedReportGridDataSource","getAnalysisStatistics","_getAnalysisStatistics","statisticsNotFound","showNeedsReAnalyzeMessage","_openDetailedReportModal","detailedReportModal","simRiskAnalysisReportDetailModalController","openDetailedReportModal","showReport","headerTitle","headerDescription","simRiskAnalysisController","selectedReportType","simRiskAnalysisReportController","axSecurityDesignerMigrationsList","axSecurityDesignerMigrationDetailsGrid","sapSdSimulations","sapSdSimulationsList","sapSdSimulationRolesList","sapSdSimulationCompositeRolesList","sapSdSimulationsRoleItemsList","sapSdSimulationsCompositeRoleRolesList","sapSdSimulationRoleAuthObjectsList","sapSdSimulationRoleOrgLevelsList","sapSdSimulationRoleAuthObjectFieldsList","sapSdSimulationFieldValuesList","sapSdSimulationRiskAnalysis","sapSdSimulationRiskAnalysisReport","securityDesignerFactoriesModule","securityDesignerComponentsModule","AXSecurityDesignerDutiesViewModel","AXSecurityDesignerPrivilegesViewModel","AXSecurityDesignerRolesViewModel","AXSecurityDesignerSecurityModelsViewModel","AXSecurityDesignerSimulationDetailsViewModel","taskRecordingManagerController","getOpenRequests","_getOpenRequests","checkForCancelOrEditAllRequests","_checkForCancelOrEditAllRequests","cancelRequest","_cancelRequest","cancelOrEditAllRequests","getApprovalRules","_getApprovalRules","getApprovalRuleTypes","_getApprovalRuleTypes","getRolesByProductId","_getRolesByProductId","removeApprovalRule","_removeApprovalRule","addApprovalRule","_addApprovalRule","updateApprovalRule","_updateApprovalRule","updateApprovalRuleType","_updateApprovalRuleType","approvalRuleId","ruleTypeId","openRequestsDataServiceFactory","approvalRulesDataServiceFactory","getControlLibrary","setupControls","RequestMitigation","controlToAdd","RequestMitigationId","RequestMitigationStatusId","RequestMitigationNotes","requestRiskMitigation","userMitigation","RequestMitigationIdentifier","RisksDataSource","additionalUserMitigation","mainGrid","disableObjectData","RisksColumns","groupHeaderTemplate","RisksOptions","detailTemplate","columnMenu","_submitRequestAction","accessItems","userItems","RequestAccesses","RequestUsers","RequestAccessId","Approved","RequestUserId","approveDeny","note","submitRequestAction","requestType","Requestor","RestrictDelegateAccessIM","_requestDelegation","delegation","RequestUserIds","RequestAccessIds","requestDelegation","selectedAccessItemsForAction","_saveEffectiveDates","effectiveDates","fromDateChanged","changeMade","minEndDate","maxEndDate","setTime","emergencyAccessPeriod","rebindEffectiveDates","toDateChanged","invalidEmergencyAccessEndDate","saveEffectiveDates","minStartDate","originalStartDate","readOnly","MaxFirefighterAccessPeriod","requestData","_submitCancelNotes","submitCancelNotes","_saveRequestExpirationDate","saveRequestExpirationDate","RequestManagementLoadDataService","openRequestsDataService","requestDetails","getDisableObjectLevelConfiguration","disableObjectLevelRiskAnalysis","ApprovalsRequiredColumns","ApprovalsSubmittedColumns","ErrorLogColumns","columnsFromVMBusinessProcess","TCodeRequestedOptions","TCodeUsageOptions","ApprovalsRequiredOptions","GroupUsers","ApprovalsSubmittedOptions","ErrorLogOptions","BusinessProcessOptions","_getDisableObjectLevelConfiguration","hideBackButton","selectedItemsForAction","allUserSelected","allAccessSelected","selectedUserItemsForAction","changesToSubmit","emergencyAccessStatus","awaitingRequestProcessing","dataGrid","requestDetailsUserRisksMitigationModalController","req","openRequestMitigationModal","userRisksData","expandDetails","requestDetailsModalController","openApproveDenyRequestModal","_openApproveDenyRequestModal","updateSelectedAccessItemsForAction","updateSelectedUserItemsForAction","selectAllAccesses","selectionStatus","availableEffectiveDatesAccessItems","selectedForAction","CanIReview","selectAllUsers","applyActionToSelectedItems","_applyActionToSelectedItems","collectTCodeUsage","_collectTCodeUsage","openEffectiveDateModal","_openEffectiveDateModal","openEditRequestExpirationModal","_openEditRequestExpirationModal","newUrl","requestIdParam","requestid","requestVersionParam","createDataSources","_createDataSources","requestedResponse","usageResponse","TCodeRequest","TCodeUsage","ApprovalsRequiredDataSource","Reviewers","ApprovalsSubmittedDataSource","Reviews","ErrorLogDataSource","Errors","TCodeRequestedDataSource","TCodeUsageDataSource","RiskAnalysis","UserRisks","BusinessProcessDataSource","ucExistingTotal","ucNewTotal","ucRemovedTotal","ucTotal","searchByKey","UserRiskAnalysis","CountByComparison","bpGroupExistingTotal","BusinessProcessAnalysis","GroupCountByComparison","bpGroupNewTotal","bpGroupRemovedTotal","bpGroupTotal","bpObjectExistingTotal","ObjectCountByComparison","bpObjectNewTotal","bpObjectRemovedTotal","bpObjectTotal","notesList","collecting","cancelAllRequests","editAllRequests","openCancellationNotesModal","_openCancellationNotesModal","cancelNotesModal","cancellationNotesModalController","checkEffectiveDates","currentDate","validStartDate","validEndDate","approveDenyRequestModal","approveDenyModalController","reviewableAccessItems","_selectedAccessItemsForAction","newAccess","originalEndDate","editEffectiveDatesModalController","editRequestExpirationModalController","requestDelegationModalController","clearSelectedRequestType","updateActionTotals","approvedRequestItems","deniedRequestItems","reportDetailsComplete","editRequest","requestToEdit","endEmergencyAccessUsage","reprocessRequest","requestAllowed","GeneralUser","AffectedObject","Access","terminations","TerminatedUserRoles","accessAccumulator","currentRole","hasCompany","canReviewAccessRequest","canReviewUserRequest","emptyStartEndDates","checkEveryAccessStatus","checkSomeAccessStatuses","checkEveryStartDate","checkEveryEndDate","showRequests","hasObjectId","requestAccessItems","emergencyAccessItem","accessItem","copyToClipboard","createElement","setAttribute","appendChild","execCommand","removeChild","ex","openRequestsGridColumns","openRequestsGridOptions","openRequestsGridDataSource","RequestedDate","_yield$openRequestsDa","isCancellable","isEditable","setIsEditableProp","openRequestsGrid","valueMap","userObject","mailMappingField","mappedObject","AX7_UseAzureAD","Mail","UserPrincipalName","NetworkDomain","UserType","AzureADObjectId","GivenName","SurName","JobTitle","HomePhone","BusinessPhone","MobilePhone","Address1_Street1","StreetAddress","Address1_City","City","Address1_StateOrProvince","State","Address1_Country","Country","InternalEmailAddress","DomainName","Department","ManagerId","Phone","BusinessPhones","UserEffectiveEndDate","Street","PrimaryEmail","Street1","checkAX7","checkAX","partitionId","checkGP","checkOR","checkAAD","getFilteredAzureADUsers","_getFilteredAzureADUsers","getFilteredADUsers","_getFilteredADUsers","getFilteredAX7Person","_getFilteredAX7Person","getFilteredAX2012Person","_getFilteredAX2012Person","searchString","filterBoolean","partitionKey","NetworkAlias","SamAccountName","DisplayUserId","SID","Sid","WindowsUserId","NetBiosName","ADUserId","ObjectGuid","WindowsUserName","WindowsSID","LicenseType","AccountExpirationDate","Moble","azureADUserObjectValueMapperService","existingUserCheckService","existingUserSearchService","aDUserObjectValueMapperService","filterUsersToggle","doneSearchingUsers","IMSelectedExistingUser","ExistingWindowsUserSearchString","ExistingusersGridDataSource","changeExistingUserRowSelected","ExistingUsersGridOptions","onClick","aDUserSearchController","aDUserController","_selectUser","emailMappingField","emailMapConfig","_yield$existingUserSe","existingUsers","_onClick","aDUserLookupSearchController","onUserUpdated","aDUserLookupController","adTypeConfigValue","D365S_UseAzureAD","emailFromPrincipalName","underscoreIndex","lastIndexOf","azureADUserSearchController","azureADUserController","azureADUserLookupSearchController","azureADUserLookupController","setupExpansionGrid","linkedUser","linkedUserChange","_setupExpansionGrid","expansionGridColumns","UserCrossPlatformMapping","ExistingUsersGridDataSource","existingUserExpansionController","RequestManagementAXService","loadAX7Permissions","_$scope$vm$User","_$scope$vm$User2","_axRoles","permissionsDfrd","pendingRoles","AX7User","PendingRoleCompanies","pendingUserGroups","PendingUserGroups","ListOfSelectedAX7Roles","ListOfAvailableAX7Roles","ListOfSelectedAX7UserGroups","ListOfAvailableAX7UserGroups","numberOfAXRolesValid","RoleCompanies","getAllAX7Roles","applyPendingByKey","systemUserRole","wizardMode","defaultRoleTemplate","defaultRoles","merge","getAllAX7Companies","ListOfAX7Companies","axCompanyDropdownDataSource","getAllAX7UserGroups","applyPending","axRole","selectedAXRole","IsAssignable","Pending","pendingRole","UserGroups","axUserGroup","pendingGroup","axUserLoaded","loadAX2012Permissions","_$scope$vm$User3","_$scope$vm$User4","AX2012User","ListOfSelectedAX2012Roles","ListOfAvailableAX2012Roles","ListOfSelectedAX2012UserGroups","ListOfAvailableAX2012UserGroups","getAllAX2012Roles","getAllAX2012Partitions","ListOfAX2012Partitions","Partition","getAllAX2012UserGroups","axCompanies","getAllAX2012Companies","ListOfAX2012Companies","ax2012UserGroup","pendingUserGroup","loadAX7","axDfrd","loadAX7LoadPermisssions","loadAX2012","loadAX2012LoadPermisssions","pendingItems","pendingItem","getAX7UserData","getAllAX7UserRoleCompanies","aad_application_id","ax7_application_id","ax_application_id","netsuite_application_id","sap_application_id","oracle_application_id","oracleCloud_application_id","gp_application_id","nav_application_id","d365s_application_id","ps_application_id","universalProduct_application_id","salesforce_application_id","self","buildRequest","isFinishRequest","_axApplication","_axApplication2","buildHeaderRequest","isTerminate","globalPermissionsWithUnusedRemoved","ListOfSelectedNetSuitePermissions","Levels","selectedLevel","netSuiteRequest","nsApplication","NetSuiteUser","_vm$ReturnedRequest","_vm$ReturnedRequest2","nsRoles","ListOfSelectedNetSuiteRoles","nsPermissions","ReturnedRequest","NetSuiteRequest","removePendingKey","GlobalPermissions","Subsidiary","Password","Location","GiveAccess","IsSalesRep","IsSupportRep","RequirePasswordChange","SendNotificationEmail","sapApplication","sapRequest","SAPUser","SAPRequest","productSapRequest","findSAPUserIndex","isEmergencyAccess","alternatePath","UserStartDate","UserEndDate","SNC","TimeZone","UserGroup","AccountId","ListOfSelectedSAPSingleRoles","ListOfSelectedSAPCompositeRoles","ListOfSelectedSAPRoleObjects","universalApplication","universalProductRequest","UPUser","UniversalRequest","productUpRequest","findUPUserIndex","upRoles","ListOfSelectedUPRoles","UserRoles","aadRequest","aadApplication","AadUser","_vm$ReturnedRequest3","_vm$ReturnedRequest4","_vm$ReturnedRequest5","aadRoles","ListOfSelectedAADRoles","aadGroups","ListOfSelectedAADGroups","aadLicenses","ListOfSelectedAADLicenses","license","AadRequest","Groups","Licenses","AccountEnabled","isArray","OfficeLocation","PostalCode","UsageLocation","Manager","PersonUser","PasswordProfile","ForceChangePasswordNextSignIn","ax7Request","axApplication","_vm$ReturnedRequest6","_vm$ReturnedRequest7","ax7UserGroups","ax7RoleCompanies","Ax7Request","Person","CurrentUser","CurrentAx7User","ax2012Request","_vm$ReturnedRequest8","_vm$ReturnedRequest9","ax2012UserGroups","ax2012RoleCompanies","_role$Companies","AxRequest","PartitionKey","CurrentAX2012User","oracleApplication","oracleRequest","OracleUser","_vm$ReturnedRequest10","_vm$ReturnedRequest11","oracleResponsibilities","ListOfSelectedOracleResponsibilities","responsibility","oracleRoles","ListOfSelectedOracleRoles","EbsRequest","Responsibilities","EmployeeID","Expiration","ExpirationValue","ORRBACEnabled","oracleCloudApplication","oracleCloudRequest","OracleCloudUser","_vm$ReturnedRequest12","oracleCloudRoles","ListOfSelectedOracleCloudRoles","OrfcRequest","ExternalID","gpApplication","gpRequest","GPUser","_vm$ReturnedRequest13","_vm$ReturnedRequest14","gpRoles","gpCompanies","ListOfStoredGPRoles","foundCompany","AltModProfile","ListOfSelectedGPCompanies","GPRequest","removePendingKeyByKey","UserCompanies","UserStatus","WCUser","DisplayClass","RowId","LoginType","PayrollViewForHR","navRequest","navApplication","NAVUser","_vm$ReturnedRequest15","_vm$ReturnedRequest16","navPermissions","navUserGroups","ListOfSelectedNAVPermissionSets","permissionSet","ListOfSelectedNAVUserGroups","PermissionSets","NavRequest","UserSecurityId","ExpiryDate","ContactEmail","ProfileID","LanguageID","d365SRequest","d365SApplication","D365SUser","d365sRoles","d365sTeams","ListOfSelectedD365SRoles","ListOfSelectedD365STeams","D365SRequest","UserTeams","AccessMode","BusinessUnitId","CalType","IncomingEmailDeliveryMethod","IsDisabled","OutgoingEmailDeliveryMethod","SiteId","TerritoryId","ParentSystemUserId","psRequest","psApplication","PSUser","_vm$ReturnedRequest17","psRoles","ListOfSelectedPSRoles","PsRequest","Alias","EmailType","AccountLocked","NavigatorHomePermissionList","ProcessProfilePermissionList","PrimaryPermissionList","RowSecurityPermissionList","salesforceRequest","salesforceApplication","SalesforceUser","Username","salesforceProfiles","_vm$ReturnedRequest18","_vm$ReturnedRequest19","salesforcePermissionSets","ListOfSelectedSalesforcePermissionSets","SfRequest","Profiles","Profile","Nickname","Division","Extension","Fax","EmployeeNumber","FederationIdentifier","DelegateApproverId","UserRoleId","RequestNotes","RiskLevelId","RiskLevelIdNewOnly","bypassRiskAnalysis","executeRequest","RequestManagementD365SService","loadD365S","openRequest","d365sDfrd","loadPermissions","d365SRoles","d365STeams","PendingRoles","pendingTeams","PendingTeams","businessUnitsDropdownLoading","usersDropdownLoading","territoryDropdownLoading","siteDropdownLoading","incomingMailDropdownLoading","outgoingMailDropdownLoading","accessModeDropdownLoading","Teams","getRolesByBusinessUnitId","ListOfAvailableD365SRoles","getTeamsByBusinessUnitId","ListOfAvailableD365STeams","D365SUserDataSource","getAllBusinessUnits","D365SBusinessUnitDataSource","getAllTerritories","D365STerritoryDataSource","getAllSites","D365SSiteDataSource","getAllIncomingMailMethods","D365SIncomingMailMethodsDataSource","lstOptions","getAllOutgoingMailMethods","D365SOutgoingMailMethodsDataSource","getAllAccessModes","D365SAccessModeDataSource","Team","pendingTeam","d365sUserLoaded","getLicenseTypesByAccessModeId","accessModeId","RequestManagementGPService","loadGP","gpDfrd","loadGPData","pendingCompanies","PendingCompanies","ListOfSelectedGPRoles","ListOfAvailableGPRoles","ListOfAvailableGPCompanies","PendingGpRoleCompanies","getAllRoles","ListOfAllAvailableGPRoles","getAllCompanies","GPClassesDataSource","getAltModProfiles","GPAltModProfileDataSource","comp","altModProfileId","dbAltModProfile","pendingCompany","gpUserLoaded","getGPLoginTypes","getGPUserTypes","getGPStatuses","getExistingGPUserSecurity","getGPIMUserSecurity","useConfigAd","getClassesBySubsidiary","subsidiaryId","RequestManagementBuildRequestService","RequestManagementGPLoadDataService","RequestManagementEffectiveDateService","RequestManagementNetSuiteLoadDataService","RequestManagementUPLoadDataService","RequestManagementSAPLoadDataService","RequestManagementAXLoadDataService","RequestManagementAADLoadDataService","RequestManagementNAVLoadDataService","RequestManagementOracleLoadDataService","RequestManagementD365SLoadDataService","RequestManagementOracleCloudLoadDataService","RequestManagementPSLoadDataService","salesforceLoadData","lockdownOnError","errorMessage","stopRequestManagementSpinner","$emit","_getSelfServiceMapping","terminationSummaryFilter","temp","entries","_slicedToArray","fromEntries","typeOf","prepareAADAccessItem","prepareAX7AccessItem","prepareAX2012AccessItem","prepareORAccessItem","prepareORFCAccessItem","prepareNSAccessItem","prepareUniversalAccessItem","prepareSAPAccessItem","prepareNAVAccessItem","prepareGPAccessItem","prepareD365SAccessItem","preparePSAccessItem","prepareSalesforceAccessItem","loadOpenRequestData","Applications","setVisibleAndSelectedApps","splitPrincipalName","ConfirmPassword","Ax7User","AxUser","UvUser","SapUser","EbsUser","PasswordDays","PasswordAccesses","OrfcUser","PasswordConfirm","NavUser","PsUserRequest","SfUserRequest","loadApplicationData","loadOpenRequestEffectiveDates","atLeastOneAppSelected","loadERPSpecificSteps","loadingIcon","loadRequestDfrd","returnedRequest","buildResponse","builtRequest","convertDatesToLocal","foundRole","nsRole","ListOfAvailableNetSuiteRoles","perm","foundPermission","selPerm","ListOfAvailableNetSuitePermissions","adRole","ListOfAvailableAADRoles","foundGroup","adGroup","ListOfAvailableAADGroups","foundLicense","adLicense","ListOfAvailableAADLicenses","foundUserGroup","_axRole$Company","sapRole","ListOfAvailableSAPSingleRoles","foundCompositeRole","sapCompositeRole","ListOfAvailableSAPCompositeRoles","foundResponsibility","oracle","ListOfAvailableOracleResponsibilities","ListOfAvailableOracleRoles","OrfcRole","ListOfAvailableOracleCloudRoles","D365Request","d365sRole","foundTeam","d365sTeam","PsRole","ListOfAvailablePSRoles","SalesForceRequest","requestPermission","ListOfAvailableSalesforcePermissionSets","prepareSalesForceAccessItem","foundProfile","requestProfile","loadUserMasterERPData","userMaster","applications","userPropertyInfo","terminationDisplay","userMasterDfrd","netSuiteUserLoaded","upUserLoaded","sapUserLoaded","aadUserLoaded","navUserLoaded","psUserLoaded","salesforceUserLoaded","app","dataCopy","NickName","createUserDetailsInstances","tempArray","tempObject","UserProperty","UserPropertyInfo","userApplications","userProduct","originalPSEmail","loadAppsDfrd","loadNetSuite","loadSAP","loadUP","loadAAD","loadOracle","loadOracleCloud","loadNAV","loadPS","loadSalesforce","findAccessChanges","accessChanges","changeList","universalRequest","addEffectiveDates","MinDate","findUserChanges","availableApp","currentObject","loadRequestData","toStep","fromStep","ApplicationType","SkuId","universalRole","ListOfAvailableUPRoles","ListOfStoredOracleCloudRoles","orfcRole","ListOfAvailableNAVPermissionSets","ListOfAvailableNAVUserGroups","psRole","salesforcePermission","loadEffectiveDateData","AccessChanges","allowApplyAllDates","allDatesRevoke","foundAccessItem","getSelfServiceMapping","appMap","subApp","appData","errors","ApplicationID","RequestManagementNAVService","navDfrd","loadNAVData","navPermissionSets","pendingPermissionSets","PendingPermissionSets","getAllPermissionSets","ListOfNAVCompanies","getAllProfiles","NAVProfileDataSource","getAllUserGroups","defaultPermissionSets","permissionSetArray","CompanyNames","pendingPermissionSet","userGroupArray","getNAVLicenseTypes","getExistingNAVUserSecurity","RequestManagementNetSuiteService","netSuiteDfrd","loadNetSuiteData","pendingPermissions","PendingPermissions","numberOfNetSuiteRolesValid","getAllPermissions","getAllSubsidiaries","NSSubsidaryDataSource","availPermission","level","globalPermission","EventType","reqAccesses","raGlobalPermission","pendingPermission","existingGlobalPermissions","getDepartmentsBySubsidiary","NSDepartmentDataSource","NSClassDataSource","getLocationsBySubsidiary","NSLocationDataSource","getExistingNetSuiteUserSecurity","RequestManagementOracleCloudService","orDfrd","ListOfAvailableOracleCloudRolesIsLoading","getOracleCloudRoles","oracleCloudRole","numberOfOracleCloudRolesValid","oracleCloudUserLoaded","getPasswordExpirationTypes","RequestManagementOracleService","getOracleResponsibilities","pendingResponsibilities","PendingResponsibilities","defaultResponsibilities","oracleResponsibility","ApplicationShortName","pendingResponsibility","numberOfOracleResponsibilitiesValid","oracleUserLoaded","getOracleRoles","applyPendingByName","oracleRole","getOracleProductConfig","RequestManagementSAPService","sapDfrd","loadSAPRoleObjects","compositeRoleData","compositeRoleIds","loadingSAPRoleObjects","CompositeRoleIds","getRolesByCompositeRole","compRole","RoleIdentifier","ListOfAvailableSAPRoleObjects","sapRoles","sapCompositeRoles","IsEmergencyAccess","IsComposite","allRolesArray","_$scope$vm$ListOfAvai","_$scope$vm$ListOfAvai2","getSAPUserTypes","getSAPUserData","userID","getCollectionUsageSchedule","setCollectionUsageSchedule","deleteCollectionUsageSchedule","RequestManagementUPService","upDfrd","numberOfUPRolesValid","ListOfUPCompanies","upRole","selectedUpRole","salesforceService","_yield$salesforceServ","licenseId","pendingLicenseId","getPermissionSets","UserLicenseId","PendingProfile","assignedSalesforcePermissionSets","assignedSalesforceLicenseId","assignedSalesforceEmail","showSalesforceLicenseChangeMessage","salesforceLicensePending","ListOfAllSalesforcePermissionSets","existingPermission","selectedPermission","availablePermission","numberOfSalesforcePermissionSetsValid","_getPermissionSets","getCountries","_getCountries","_getUserLicenses","getAllAADRoles","getAllAADGroups","getAllAADLicenses","getAADUserData","RequestManagementAADService","loadAADPermissions","PendingUserRoles","pendingGroups","pendingLicenses","PendingLicenses","AssignedLicenses","availableGroup","selectedLicense","pendingLicense","adDfrd","loadAADLoadPermisssions","getAllPSRoles","getPSPermissionLists","getPSEmailTypes","RequestManagementPSService","loadPSPermissions","numberOfPSRolesValid","psDfrd","loadPSLoadPermisssions","convertRequestDatesHelper","property","convertDatesToLocalHelper","convertTolocalISOTime","convertRequestDates","tzoffset","toggleVisibleAppSteps","stepIsVisible","parentStep","step","visible","checkIfApplicationIsSelectedAndMatches","appSelected","createCustomSteps","customSteps","baseProductName","firstBaseIndex","customStepBase","newCustomStep","setNetSuiteStepsToVisible","setSAPStepsToVisible","setAADStepsToVisible","setAX7StepsToVisible","setAX2012StepsToVisible","setOracleStepsToVisible","setOracleCloudStepsToVisible","setGPStepsToVisible","setNAVStepsToVisible","setD365SStepsToVisible","setPSStepsToVisible","setSalesforceStepsToVisible","setCustomStepsToVisible","getListOfSteps","SelectApplicationsStep","UniversalProductUserInformationStep","UniversalProductRolesStep","AX2012UserInformationStep","AX2012RolesStep","AX2012UserGroupsStep","D365SUserInformationStep","D365SRolesStep","D365STeamsStep","AX7UserInformationStep","AX7RolesStep","AX7UserGroupsStep","AADUserInformationStep","AADGroupsStep","AADLicensesStep","AADRolesStep","SalesforceUserInformationStep","SalesforceUserProfilesStep","SalesforceUserPermissionsStep","GPUserInformationStep","GPCompaniesStep","GPRolesStep","NAVUserInformationStep","NAVPermissionSetsStep","NAVUserGroupsStep","NetSuiteUserInformationStep","NetSuiteRolesStep","NetSuiteGlobalPermissionsStep","OracleUserInformationStep","OracleRolesStep","OracleResponsibilitiesStep","OracleCloudUserInformationStep","OracleCloudRolesStep","PeopleSoftUserInformationStep","PeopleSoftRolesStep","SAPUserInformationStep","SAPSingleRolesStep","SAPCompositeRolesStep","EffectiveDatesStep","RiskAnalysisStep","RequestNotesStep","SummaryStep","SearchExistingUsersStep","EmergencyAccessUsageStep","stepDisabled","wizardInstance","_$scope$vm","enabledSteps","getEnabledSteps","positionInArray","firstVisibleNotValidStep","canexit","setParentStepToActive","stepIndex","currentStepNumber","validAppsSelected","goToNextVisiblePage","goToPreviousVisiblePage","getCurrentStepsTitle","currentStep","applyCompanyRestrictionsToAllSelectedRoles","_applyCompanyRestrictionsToAllSelectedRoles","RoleCompany","AllCompanies","addRoleToList","IsRisksReviewed","deleteSelectedRole","deleteExcludedRole","ListOfExcludedAX2012Roles","addRoleCompany","AXRoleCompanyList","updateSelectedRoleCompanies","axUserFromDateObject","axUserToDateObject","axUserMaxDate","axUserMinDate","getProductConfig","showDepartmentControl","axCompanyDropdownOptions","_getProductConfig","createDepartmentDropdown","_createDepartmentDropdown","axDepartments","axUserFromDateChanged","nsMinDate","fromMinDate","axUserToDateChanged","nsMaxDate","fromMaxDate","clearWindowsUser","newVal","partitionChange","existingUserCheck","userExists","wizardForm","AXuserId","$watchGroup","setPersonName","personObject","PartyNumber","PersonNameAlias","PersonName","PersonPrimaryEmail","personSelected","setRoleDescConfigValue","setOrgHierarchiesConfigValue","_setRoleDescConfigValue","roleDesc","_setOrgHierarchiesConfigValue","orgHierarchiesEnabled","validateNumberOfAXRoles","ListOfExcludedAX7Roles","AX7RoleCompanyList","_setAADFieldRestrictionConfig","setAADFieldRestrictionConfig","getProvider","filterValue","logic","disableAADFields","_getProvider","selectADUser","AX7userId","validateNumberOfD365SRoles","numberOfD365SRolesValid","validateNumberOfD365STeams","numberOf365STeamsValid","addTeamToList","deleteSelectedTeam","getLicenseTypes","licenseTypeDropdownLoading","D365SLicenseTypeDataSource","licenseTypeDisabled","businessUnitDropdownChange","deleteSelectedCompany","_getRoleDescConfigValue","getRoleDescConfigValue","addNewCompany","newCompany","currentAltModProfile","refreshLists","profileDropdownChange","_company$Company","availableItem","byCompanyAndRole","GPUserExists","GPLoginTypesDataSource","GPUserTypesDataSource","GP_Version","GPStatusesDataSource","gpUserFromDateObject","gpUserToDateObject","gpUserMnsDate","gpUserMinDate","gpUserFromDateChanged","gpMinDate","gpUserToDateChanged","gpMnsDate","fromMnsDate","GPuserId","handleNavPermissionCompany","NAVRoleCompanyList","changeClass","handleNavGroupCompany","testing","NAVLicenseTypeDataSource","nsUserFromDateObject","nsUserToDateObject","nsUserMnsDate","nsUserMinDate","nsUserFromDateChanged","nsUserToDateChanged","nsMnsDate","DuplicateUserGridOptions","DuplicateNetSuiteUserGridDataSource","NetSuiteUsers","changeSelectedUser","selectedExistingUser","UserMasterRecord","addNSPermissionToList","deleteSelectedPermission","validateNumberOfNetSuiteRoles","_setProvider","setProvider","_setFieldConfigurationValues","setFieldConfigurationValues","subsidiaryDropdownChange","netSuiteUser","getDepartments","getClasses","getLocations","clearNSUser","showADUserLookup","showAADUserLookup","disableADUserFields","disableAADUserFields","SearchNonNSUsersController","searchStr","searchKeyDown","SearchExistingUserSelected","NetSuiteUserUser","validateNumberOfOracleResponsibilities","addResponsibilityToList","deleteSelectedResponsibility","PasswordExpirationOptions","userFromDateObject","userToDateObject","userMinDate","_existingUserCheck","ORusername","userFromDateChanged","userToDateChanged","orfcUserMinDate","orfcUserFromDateChanged","orfcMinDate","orfcUserToDateChanged","validateNumberOfSAPRoleObjects","numberOfSAPRoleObjectsValid","addRoleObjectToList","roleObject","deleteSelectedRoleObject","addSingleRoleToList","deleteSelectedSingleRole","passwordCriteriaDataService","SAPUserTypeDataSource","sapUserFromDateObject","sapUserToDateObject","sapUserMaxDate","sapUserMinDate","sapUserFromDateChanged","sapUserToDateChanged","clearEffectiveDates","fromDateString","toDateString","setSelectedEffectiveDates","fromDateObject","toDateObject","generalStartDateChanged","generalEndDateChanged","validate","validationMessage","getUserStartDate","getUserEndDate","MaxDate","applyAllDatesChanged","generalEndDate","applyAllDates","clearAllEffectiveDates","generalStartDate","UserMitigations","userRisksGridDataSource","riskAnalysisUserRisksMitigationModalController","UserRisksDataSource","showSummary","showUserRiskDetails","showBusinessProcessDetails","showBPSummary","hasBP","toggleScreen","screen","columnsFromVMUserRisks","userRisksGridOptions","businessProcessGridDataSource","businessProcessGridOptions","riskDetailsModalController","wizardClass","ExistingUserSearchString","PendingRequest","_selectedUser","_selectedUser2","canModify","canTerminate","HasERPDataLoaded","PendingTerminateRequest","salesforceApp","appSelectedChange","alertUser","userMappingOptions","saveUserMapping","_securePaths","security","showNew","showModify","showTerminate","showSelfService","showEmergencyAccess","_executeAlternateWizardPath","userMappingArray","openSelectUserMappingModal","selfservice","emergencyaccess","_openSelectUserMappingModal","selectUserMappingModal","selectUserMappingModalController","securePaths","selectWizardMode","executeAlternateWizardPath","linkedTicketsArray","linkedCustomTicket","createZendeskLink","linkedZendeskTicket","ticketLinked","createJiraLink","linkedJiraTicket","createFreshServiceLink","linkedFreshServiceTicket","RequestManagementShowStepsService","RequestManagementStepDefinitions","RequestManagementWizardController","WizardHandler","vmh","hasAX","requireTickets","roleTemplatesOnlyEnabled","securityCheck","existingSteps","riskAnalysisStepIndex","_setupAlternatePath","setupAlternatePath","calculateExpirationDate","_calculateExpirationDate","numberOfDaysToAdd","_getAdditionalRequestDetails","getAX7UserGroupConfigValue","_getAX7UserGroupConfigValue","ax7UserGroupConfigValue","EnableAX7UserGroups","resetUserValues","requestUserList","effectiveDateList","AX2012RoleCompanyList","ListOfSelectedNAVRoles","ListOfAvailableNAVRoles","getPasswordCriteria","sapPasswordCriteria","aadPasswordCriteria","psPasswordCriteria","rolesStepIndex","userGroupsStepIndex","IsActive","inactiveUser","wizard","setActivePage","setCurrentStepToActive","stepTitle","goTo","selectApplicationsHelpText","showRMLoadingIcon","minimumExpirationDate","buildReviewRisksDataSource","clearRiskAnalysisResults","caGroupExistingTotal","caGroupNewTotal","caGroupRemovedTotal","caGroupTotal","caObjectExistingTotal","caObjectNewTotal","caObjectRemovedTotal","caObjectTotal","showReviewRisksLoadingIcon","MitigationStatus","addedList","Comparison","addedPlusCurrentList","getAdditionalRequestDetails","openIMRequestJiraTicketModal","IMRequestJiraTicketModalController","openIMRequestFreshServiceTicketModal","IMRequestFreshServiceTicketModalController","openIMRequestServiceNowTicketModal","IMRequestServiceNowTicketModalController","openIMRequestZendeskTicketModal","IMRequestZendeskTicketModalController","openIMRequestCustomTicketModal","IMRequestCustomTicketModalController","finishedWizard","_vm$selectedRoleTempl","builtRequestCopy","updateExistingRequest","_ref7","_request$SfRequest","submitRequest","_ref8","_vm$attachments","defaultTemplateEnabled","_config$find","defaultTemplateId","showExistingUserExpansion","toggleExistingUserExpansion","BuiltRequest","netSuiteRequireExistingEmployee","disabledAppSelection","appName","linkedUserCheck","getNsRequireExistingEmployee","requireExisting","organizationEnabled","createNewRequest","_$scope$vm$linkedUser","_$scope$vm$linkedUser2","RequestAccessListDataSource","_$scope$vm$linkedUser3","_$scope$vm$linkedUser4","reviewRisksGridDataSource","applicationTerminationEffectiveDate","helpText","checkSelected","terminatedProducts","_yield$userRolesDataS","_$scope$vm$availableA2","_$scope$vm$availableA","uc","ur","currentAccess","LoadOpenRequestData","nsApp","userHasApplication","sapApp","aadApp","axApp","oracleApp","oracleCloudApp","gpApp","navApp","d365sApp","psApp","uvApps","sapApps","userApp","ax7App","ax2012App","hasApp","_value","axVersion","selectedPerson","doneSearchingPerson","ax7PersonSearchString","ax7PersonGridDataSource","changePersonRowSelected","selectPerson","filterPerson","ax7PersonGridColumns","ax7PersonGridOptions","AX7PersonSearchController","axPartitionKey","onUpdatePersonName","AX7PersonController","validateNumberOfUPRoles","ListOfStoredUPRoles","requestUserId","searchComplete","existingUserSearchString","existingUsersGridDataSource","selectedManager","existingUsersGridOptions","alwaysVisible","requestUserIndex","openManagerSearchModal","_openManagerSearchModal","adUserFromDateObject","adUserToDateObject","adUserMaxDate","adUserMinDate","aadUserExists","AADUserName","_getDomains","ListOfAADDomains","managerSearchModal","managerSearchController","ListOfCountryCodes","countryCodes","adUserFromDateChanged","adUserToDateChanged","getDomains","addGroupToList","deleteSelectedGroup","addLicenseToList","deleteSelectedLicense","psUserFromDateObject","psUserToDateObject","psUserMaxDate","psUserMinDate","getPermissionlists","permissionListsDropdownOptions","psNavPermissionsListsDataSource","psPermissionLists","psPrimaryPermissionsListsDataSource","psProcessPermissionsListsDataSource","psRowSecurityPermissionsListsDataSource","ListOfPSEmailTypes","_getPermissionlists","psUserFromDateChanged","psUserToDateChanged","addUserGroupToList","deleteSelectedUserGroup","addCompositeRoleToList","deleteSelectedCompositeRole","typeDisplay","userSearchString","searchUserSelected","_$scope$vm$User$Sales","salesforceUserMinDate","_countries$first","countries","salesforceCountriesDatasource","salesforceStatesDatasource","States","handleCountrySelection","_handleCountrySelection","country","_yield$salesforceServ2","currentId","salesforceUserExists","_openSearchModal","searchModal","searchController","selectedApprover","openSalesforceSearchModal","existingSalesforceUserCheck","salesforceUserMaxDate","ProfileId","handleSalesforceCountrySelection","clearSalesforceInput","salesforceEmailChangeMessage","_$scope$vm$User$Sales2","_handleLicenseSelection","conflictsReviewed","_$scope$vm$User5","salesforceHideAssignedPermissionSets","salesforceProfilesDatasource","IsConflictsReviewed","handleProfileSelection","filterPermissons","_$scope$vm$User$Sales4","$invalid","allowSalesforceRoleSelection","salesforceProfileHasRoles","salesforceProfilesDisabled","handleSalesforceLicenseSelection","handleSalesforceProfileSelection","dropdownOptions","salesforceUserLicensesDatasource","salesforceRolesDatasource","_yield$salesforceServ3","_$scope$vm$User$Sales3","profiles","_profile","systemProfile","LicenseId","addPermission","removePermission","filterSalesforcePermissions","identityManagerRequestManagementFactoriesModule","identityManagerRequestManagementServicesModule","adUserSearchLink","adUserLookup","azureAdUserSearchLink","azureAdUserLookup","ax7PersonSearchLink","existingUserExpansion","AADUserInformationController","AADRolesController","AADGroupsController","AADLicensesController","UPRolesController","UPUserInformationController","AXRolesController","AXUserInformationController","AXUserGroupsController","AX7RolesController","AX7UserGroupsController","AX7UserInformationController","D365SRolesController","D365STeamsController","D365SUserInformationController","GPCompaniesController","GPRolesController","GPUserInformationController","NAVPermissionSetsController","NAVUserGroupsController","NAVUserInformationController","NSDuplicateUserController","NSPermissionsController","NSRolesController","NSUserInformationController","ORResponsibilitiesController","ORRolesController","ORUserInformationController","ORCloudRolesController","ORCloudUserInformationController","emergencyAccessController","SAPRolesController","SAPCompositeRolesController","SAPUserInformationController","salesforceUserFormController","salesforceProfileFormController","salesforcePermissionSetsController","EffectiveDatesController","RiskAnalysisController","RequestManagementSearchExistingUsers","RequestManagementSelection","RequestManagementViewModelModify","RequestManagementViewModelNew","RequestManagementViewModelTerminate","PSUserInformationController","PSRolesController","requestHistoryDataService","requestedDate","createRequestHistoryGrid","allStatusesDropdownObject","statusSelectedIds","RequestDate","AccessStartDate","AccessEndDate","RequestUserIsApproved","RequestAccessIsApproved","RequestUserReviewedOn","RequestAccessReviewedOn","payLoad","_yield$requestHistory","Statuses","getRequests","deselectSelectedStatus","approvalRulesDataService","approvalRuleTypesDataSource","_updateRuleTypes","ruleTypes","ruleType","updatedPriorities","priorityChanged","Priority","ruleTypeToUpdate","ruleTypeIndex","updateRuleTypes","requesterGroupsDataService","approvalGroupsDataService","supervisorRuleDisabled","allCompaniesRuleDisabled","modalType","approvalRule","companyApprovalRuleConfig","ruleTypesLoading","approversLoading","usersLoading","hideApproverSection","saveEnforceApprovalRulesConfig","getRuleTypes","selectInitialRuleType","prod","AX7_ImEnforceCompanyApprovalRules","enforceCompanyApprovalRules","getApplications","selectedRuleType","filterApproverDropdown","dropdownsLoaded","_selectInitialRuleType","isUser","isRole","isRiskTolerance","isApplication","isGroup","isRequest","isCompany","isCompanyTemplate","requestApplicationDataSource","selectedRequest","getRoleOwnershipGroups","riskToleranceLoading","applicationLoading","RequesterName","companiesDropdownLoading","companyTemplatesLoading","_getRuleTypes","showCompanyType","ruleTypeDataSource","autoApproveUser","AutoApproveUser","userGroupDataSource","getRequesterGroups","RequesterType","approversList","selectedRiskTolerance","_getApplications","applicationDataSource","selectedApplication","_getCompanyTemplates","companyTemplateDataSource","selectedCompanyTemplate","companyTemplate","RequesterId","productsLoading","loadCompanies","_addRule","configData","_ruleTypeDropdownChange","enforceCompanyApprovalRulesChange","toggled","updateConfig","disableSaveButton","_getRoleOwnershipGroups","ownershipGroupsDropdownLoading","roleOwnershipGroupsDataSource","_loadCompanies","allCompaniesOption","companiesDataSource","approverUserGroupDataSource","approver","ApproverId","saveApprovalRule","ConfigUpdated","configUpdated","ApproverType","ApproverName","ApprovalRuleId","addRule","ruleTypeDropdownChange","userGroupDropdownChange","dropdownChange","updateAutoApproveUser","approvalRulesGridColumns","IM_SODThresholdNewOnly","approvalRulesGridOptions","approvalRulesGridDataSource","rule","supervisorRuleExists","allCompaniesRuleExists","newEditApprovalRuleModalController","_openRuleTypePriorityModal","rulePriorityModal","configDropdownOpen","ruleTypePriorityModalController","_deleteRule","openRuleTypePriorityModal","deleteRule","approvalRulesController","_getRequests","IM_ReminderThreshold","saveConfiguration","outstandingApprovalsGridController","identityManagerFactoriesModule","identityManagerRequestManagementModule","IdentityManagerRequestDetailsViewModel","approvalRules","openRequests","requestHistory","outstandingApprovalsGrid","_openNewReportScheduleModal","newScheduleModal","schedulesGridDataSource","_changeScheduleRowSelected","executions","getReportScheduleExecutions","deliveryGridDataSource","executionsGridDataSource","_deleteSchedule","deleteSchedule","downloadFilePending","runReportSchedule","SavedReportName","schedulesGridColumns","securityActions","deliveryGridColumns","schedulesGridOptions","deliveryMethodGridOptions","executionsGridOptions","openNewReportScheduleModal","openEditScheduleModal","selectedID","changeScheduleRowSelected","deleteScheduleOutput","ScheduleID","checkForFileType","FileFormat","newSchedule","editSchedule","getReportSchedules","savedReportsDataService","reportDescription","editSavedReport","savedReportsGridColumns","removeSavedReport","savedReportsGridDataSource","currentSelectedSavedReport","deleteSavedReport","getSavedReportSchedules","allSavedReports","savedReportCriteriaLength","criteriaFiltersLength","savedReportFiltersLength","schedulesForCurrentSelectedSavedReport","getFilterDisplayName","getCriteriaDisplayName","openEditSavedReportModal","savedReportsEditModalController","savedReportsGridOptions","addSavedReport","_getReportSchedules","_getReportScheduleExecutions","_deleteScheduleOutput","_runReportSchedule","schedules","savedReports","savedReportsDataServiceFactory","schedulesService","controlManagementDataService","conditions","Conditions","startTimeForControlSchedule","setupControlSchedule","_saveEditModal","updateControls","updateControlConditions","controlScheduleIsOn","Schedule","setUpdateControlSchedule","_updateControls","ReferenceNumber","AutoClose","updateControl","NextExecutionTime","selectedFrequency","selectedMonth","_updateControlSchedule","updateControlSchedule","monthRequest","adjustedStartTime","disablePutData","scheduleControl","disableControlSchedule","saveEditModal","globalConditions","getGlobalConditions","_getGlobalConditions","getGlobalParameters","_saveGlobalConditions","savingConditions","globalCondition","GlobalValue","updateGlobalParameter","saveGlobalConditions","controlManagementGridColumns","controlManagementGridOptions","controlManagementGridDataSource","getListOfControls","_openEditControlModal","editControlModalController","_openGlobalConditionsModal","globalConditionsModalController","_runNow","onDemandControl","openEditControlModal","openGlobalConditionsModal","runNow","controlManagementController","incident","incidentManagementDataService","selectedStatus","_saveIncident","IncidentId","StatusReason","updateIncident","saveIncident","savedReportFilters","controlDataSource","periodDataSource","setupGridColumns","_setupGridColumns","metaDataColumns","gridColumns","baseColumn","createIncidentManagementGrid","_createIncidentManagementGrid","selectedPeriod","selectedControl","controlSelectedChanged","getPeriods","_getPeriods","periodsLoading","getIncidentLogsByControlId","period","_controlSelectedChanged","noIncidentLogs","_openEditIncidentModal","editIncidentModalController","openEditIncidentModal","incidentManagementController","getControl","_getControl","_getListOfControls","_updateControl","_updateControlConditions","_scheduleControl","_disableControlSchedule","_onDemandControl","_getGlobalParameters","_updateGlobalParameter","conditionId","conditionTypeId","_getIncidentLogsByControlId","_updateIncident","incidentId","controlManagementDataServiceFactory","incidentManagementDataServiceFactory","transactionMonitoringFactoriesModule","controlManagement","transactionMonitoringIncidentManagement","_saveOwnershipGroup","editGroup","importOwnershipGroups","_editGroup","GroupId","_importOwnershipGroups","_getOwnershipGroupTypes","getOwnershipGroupTypes","saveOwnershipGroup","ownershipGroupsLoading","ownershipGroups","changeSelectedOwnershipGroup","onSelectedOwnershipGroupChanged","_openOwnershipGroupModal","ownershipGroupModal","newOwnershipGroupId","ownershipGroupModalController","_deleteOwnershipGroup","_exportOwnershipGroups","exportOwnershipGroups","deleteOwnershipGroup","openOwnershipGroupModal","ownershipGroupsListController","addItemsToGroupObject","_addItemsToGroupObject","addOwnersToGroupObject","_addOwnersToGroupObject","groupOwner","getGroupOwners","_getGroupOwners","getAllOwners","_getAllOwners","getAvailableOwners","_getAvailableOwners","getAvailableOwnersForItem","_getAvailableOwnersForItem","_getGroupItemOwners","addOwnerToGroup","_addOwnerToGroup","removeOwnerFromOwnershipGroup","_removeOwnerFromOwnershipGroup","groupItemId","groupItem","existingOwners","setupRoleDropdown","getOwners","selectedOwnerType","selectedOwnerTypeChanged","_getOwners","ownersDataSourceLoading","masterOwner","owner","availableOwnersDataSource","rolesDropdownOptions","rolesDataSource","roleDropdownDataSource","getAllItems","rolesDropdown","_saveRoleOwner","newOwnerId","selectedOwner","Owners","filteredOwnersDataSource","saveRoleOwner","selectedRoleTypeChanged","productsDataSourceLoading","_saveProductOwner","_yield$ownershipGroup3","selectedOwners","saveProductOwner","setupBusinessProcessDropdown","_setupBusinessProcessDropdown","businessProcessDropdownOptions","businessProcessDropdownDataSource","getAllBusinessProcesses","businessProcessDropdown","_saveBusinessProcessOwner","BusinessProcessIds","saveBusinessProcessOwner","selectedRiskType","selectedRulesetId","setupRiskDropdown","riskTypes","_setupRiskDropdown","riskDropdownOptions","kendoRiskDropdownDataSource","getAllRisksForOwner","riskDropdown","_saveRiskOwner","RiskIds","saveRiskOwner","selectedRiskInfoChanged","selectedCompanyType","setupCompanyDropdown","setOwners","_setOwners","companiesDropdownOptions","companyDropdownDataSource","companiesDropdown","_saveCompanyOwner","saveCompanyOwner","selectedCompanyTypeChanged","ownersRadioFilter","changeSelectedOwner","_changeSelectedOwner","onSelectedOwnerChange","_removeOwnerFromGroup","_openGroupOwnerRoleModal","ownerModal","groupOwnerRoleModalController","_openGroupOwnerProductModal","ownerProductModal","groupOwnerProductModalController","_openGroupOwnerBusinessProcessModal","groupOwnerBusinessProcessModalController","_openGroupOwnerRiskModal","groupOwnerRiskModalController","_openGroupOwnerCompaniesModal","ownerCompanyModal","groupOwnerCompaniesModalController","openGroupOwnerItemModal","openGroupOwnerRoleModal","openGroupOwnerProductModal","openGroupOwnerBusinessProcessModal","openGroupOwnerRiskModal","openGroupOwnerCompaniesModal","removeOwnerFromGroup","changeGroupItemType","groupItemType","selectedGroupItemType","onGroupItemTypeChange","groupOwnersListController","_setupRoleDropdown","getAvailableItems","newRoleId","addItemToGroup","roleDropdown","existingCompanies","_setupCompanyDropdown","companyDropdownOptions","masterCompany","_saveCompany","newCompanyId","SecurityCompanyIdentifier","saveCompany","companyDropdown","_saveProduct","newProductId","saveProduct","getAvailableBusinessProcesses","bpDataSource","_saveBusinessProcess","newBusinessProcessId","riskCriteriaItem","riskCreationType","riskCriteriaName","setupRiskCriteriaGrid","defaultRulesetId","RiskCriteria","businessCyclesDataSource","businessCycleIds","BusinessCycleIds","selectedBusinessCycles","cycle","_yield$riskLevelsData","riskLevelsDataSourceLoading","riskLevelsDataSource","riskLevelIds","RiskLevelIds","selectedRiskLevels","riskDropdownDataSource","getAvailableRisks","riskCriteriaGridColumns","riskCriteriaGridOptions","riskCriteriaGridDataSource","cycleId","getRisksByRiskCriteria","_saveRisk","RiskCriteriaName","updateRiskCriteria","saveRisk","updateRiskInfo","resetDropdowns","onSelectedItemChange","_removeItemFromGroup","removeItemFromOwnershipGroup","_openGroupRoleModal","groupRoleModalController","_openGroupCompanyModal","companyModal","groupCompanyModalController","_openGroupProductModal","productModal","groupProductModalController","existingProducts","_openGroupBusinessProcessModal","businessProcessModal","groupBusinessProcessModalController","existingBusinessProcesses","_openGroupRiskModal","groupRiskModalController","existingRisks","openGroupItemModal","openGroupRoleModal","openGroupCompanyModal","openGroupProductModal","openGroupBusinessProcessModal","openGroupRiskModal","removeItemFromGroup","groupItemsListController","_getGroupItems","getEmergencyAccessGroupRoles","_getEmergencyAccessGroupRoles","_getAvailableItems","_getAvailableBusinessProcesses","getAvailableOwnerBusinessProcesses","_getAvailableOwnerBusinessProcesses","_getAllBusinessProcesses","getAvailableOwnerItems","_getAvailableOwnerItems","_getAllItems","_getAvailableRisks","getAvailableRisksByOwner","_getAvailableRisksByOwner","_getAllRisksForOwner","_getRisksByRiskCriteria","_updateRiskCriteria","getGroupOwnerItems","_getGroupOwnerItems","_addItemToGroup","_removeItemFromOwnershipGroup","removeOwnerFromOwnershipGroupItem","_removeOwnerFromOwnershipGroupItem","removeItemFromOwnershipGroupOwner","_x42","_removeItemFromOwnershipGroupOwner","_saveOwner","saveOwner","selectedGroupItem","_openGroupItemOwnerModal","groupItemOwnerModalController","_removeOwnerFromGroupItem","openGroupItemOwnerModal","removeOwnerFromGroupItem","groupItemOwnersListController","setupModal","_setupModal","setRulesets","_setRulesets","rolesDropdownDataSource","companiesDropdownDataSource","_yield$ownershipGroup4","_yield$ownershipGroup5","_updateDropdowns","definePutData","_saveItem","updateDropdowns","saveItem","setOwnerItems","_setOwnerItems","ownerItemsLoading","selectedGroupOwner","ownerItems","_openGroupOwnerItemModal","ownerItemModal","groupOwnerItemsModalController","_removeOwnerItemFromGroupOwner","ownerItem","ItemIds","removeOwnerItemFromGroupOwner","groupOwnerItemsListController","changeOwnershipGroupObjectType","ownershipGroupsDataServiceFactory","groupItemsList","ownershipGroupItemsDataServiceFactory","ownershipGroupOwnerDataServiceFactory","groupOwnersList","groupItemOwnersList","groupOwnerItemsList","requesterGroup","_saveRequesterGroup","createOrUpdateGroup","_createOrUpdateGroup","saveRequesterGroup","_importRequesterGroups","importRequesterGroups","_getRequesterGroups","requesterGroupsLoading","requesterGroups","changeSelectedRequesterGroup","onSelectedRequesterGroupChanged","_openRequesterGroupModal","requesterGroupModal","newRequesterGroupId","requesterGroupModalController","_deleteRequesterGroup","_vm$selectedRequester","selectedRequesterGroup","_exportRequesterGroups","exportRequesterGroups","importRequesterGroupsController","deleteRequesterGroup","openRequesterGroupModal","requesterGroupsListController","getRequesterGroupUsers","_getRequesterGroupUsers","addUserToGroup","_addUserToGroup","removeUserFromGroup","_removeUserFromGroup","RequesterGroupId","groupUserId","availableUsersGridColumns","_addUser","processedUser","addUserProcessing","availableUser","requesterGroupUserModalController","_removeUserFromRequesterGroup","removeUserFromRequesterGroup","requesterGroupUsersListController","requesterGroupsList","requesterGroupsDataServiceFactory","requesterGroupUsersList","supervisorAssignmentsDataService","_getSupervisors","supervisorsDropdownLoading","supervisorsDataSource","_createSupervisorAssignments","createAssignmentPending","selectedSupervisor","createSupervisorAssignment","createSupervisorAssignments","getSupervisors","ImportSupervisorModalController","_importSupervisorAssignments","importSupervisorAssignments","supervisorAssignmentsGridColumns","_checkIfHcmExists","checkIfHcmExists","supervisorAssignmentsGridOptions","supervisorAssignmentsGridDataSource","getSupervisorAssignments","existingUserAssignments","hcmExists","IsHcm","_openCreateSupervisorsModal","createModal","createSupervisorModalController","_exportSupervisorReviews","exportSupervisorAssignments","_deleteSupervisorAssignment","supervisorAssignmentsGrid","deleteSupervisorAssignment","SupervisorId","origConfig","openImportSupervisorsModal","openCreateSupervisorsModal","exportSupervisorReviews","supervisorAssignmentsController","_getSupervisorAssignments","getSupervisorAssignmentMappings","_getSupervisorAssignmentMappings","getProductMappingFields","_getProductMappingFields","getMappingFields","_getMappingFields","getPluginMappingFields","_getPluginMappingFields","getInternalMappingFields","_getInternalMappingFields","getUniversalMappingFields","_getUniversalMappingFields","_createSupervisorAssignment","_exportSupervisorAssignments","createAutoSupervisorAssignmentMapping","_createAutoSupervisorAssignmentMapping","autoGenerateMappingsSupervisorAssignments","_autoGenerateMappingsSupervisorAssignments","updateAutoSupervisorAssignmentMapping","_updateAutoSupervisorAssignmentMapping","deleteAutoSupervisorAssignmentMapping","_deleteAutoSupervisorAssignmentMapping","pluginId","mappingId","supervisorId","mapping","allProducts","mappingType","productToAdd","_getHcmMappingFields","pluginMappingFieldDropdownLoading","findHCMPlugin","hcmPlugin","hcmMappingFieldsDataSource","_findHCMPlugin","HcmPlugin","productResponse","universalReponse","systemMappingFieldDropdownLoading","systemMappingFieldsDataSource","_getSystemMappingFields","_saveAssignmentMapping","saveMappingPending","PluginMappingFieldId","PluginMappingField","SystemMappingFieldId","SystemMappingField","saveAssignmentMapping","getHcmMappingFields","getSystemMappingFields","getCurrentMappings","_getCurrentMappings","supervisorMappings","userMappings","_openAutoMappingModal","autoMappingModal","autoMappingAssignmentModalController","_deleteMapping","_generateAssignments","generatingAssignments","openAutoMappingModal","deleteMapping","generateAssignments","mappingMenuOptions","autoMappingAssignmentsController","supervisorAssignments","supervisorAssignmentsDataServiceFactory","autoMappingAssignments","getCompanyMapping","_getCompanyMapping","getCompanyAutoMap","_getCompanyAutoMap","createAutoMap","_createAutoMap","createMapping","_createMapping","createBulkMapping","_createBulkMapping","deleteCompanyMaster","_deleteCompanyMaster","deleteProductMapping","_deleteProductMapping","companyMapping","createCompanyTemplate","_createCompanyTemplate","renameCompanyTemplate","_renameCompanyTemplate","deleteCompanyTemplate","_deleteCompanyTemplate","addCompany","_addCompany","deleteCompany","_deleteCompany","companyMasterId","getUserId","_getUserId","updateGrid","_updateGrid","generateCrossPlatformAutoMapping","_generateCrossPlatformAutoMapping","deleteUserMaster","_deleteUserMaster","exportAutoMapping","_exportAutoMapping","importUserMapping","_importUserMapping","updateManualMapGrid","_updateManualMapGrid","submitUserMapping","_submitUserMapping","_getAllRoles","exportExcludedRoles","_exportExcludedRoles","importExcludedRoles","_importExcludedRoles","updateExcludedRole","_updateExcludedRole","exportExcludedUsers","_exportExcludedUsers","importExcludedUsers","_importExcludedUsers","updateExcludedUser","_updateExcludedUser","getSystemRoles","_getSystemRoles","getSystemRolesNonPaged","_getSystemRolesNonPaged","exportSystemRoles","_exportSystemRoles","getEmergencyAccessApproversByRole","_getEmergencyAccessApproversByRole","addUserAsApprover","_addUserAsApprover","addEmergencyAccessSystemRole","_addEmergencyAccessSystemRole","updateSystemRole","_updateSystemRole","addEmergencyAccessApprover","_addEmergencyAccessApprover","importSystemRoles","_importSystemRoles","removeEmergencyAccessApprover","_removeEmergencyAccessApprover","roleIdentifier","emergencyAccessApproverId","getMasterUsers","_getMasterUsers","exportSystemUsers","_exportSystemUsers","updateUserIdentity","_updateUserIdentity","importSystemUsers","_importSystemUsers","createUserMap","_createUserMap","deleteUserMap","_deleteUserMap","mapObject","getNotificationTypes","_getNotificationTypes","getSubscriptions","_getSubscriptions","createSubscription","_createSubscription","removeSubscription","_removeSubscription","updateTypeDescription","_updateTypeDescription","_getRoleTemplates","createRoleTemplate","_createRoleTemplate","renameRoleTemplate","_renameRoleTemplate","deleteRoleTemplate","_deleteRoleTemplate","getRolesForProduct","_getRolesForProduct","_deleteRole","exportRoleTemplates","_exportRoleTemplates","importRoleTemplates","_importRoleTemplates","companyTemplatesFactory","notificationsDataServiceFactory","maintainSystemRolesDataServiceFactory","roleTemplatesFactory","companyMappingDataServiceFactory","crossPlatformUsersDataServiceFactory","excludedUsersDataServiceFactory","excludedRolesDataServiceFactory","maintainSystemUsersDataServiceFactory","excludedRolesDataService","maintainSystemRolesDataService","_createExcludedRolesGrid","excludedRolesColumns","customProductNames","excludedRolesGridOptions","excludedRolesGridDataSource","customProduct","_excludeRole","ShouldExclude","excludedRolesGrid","Exclude","importExcludedRolesController","excludeRole","createExcludedRolesGrid","excludedRolesController","excludedUsersDataService","maintainSystemUsersDataService","_excludeUser","exclude","_yield$excludedUsersD","importExcludedUsersController","gridDatasource","excludeUser","_yield$maintainSystem","excludedUsersController","excludedUsers","excludedRoles","userRestrictionsDataService","fastpathUser","inheritedCompanies","setupInheritedCompaniesGrid","inheritedCompanyGridOptions","inheritedCompanyGridDataSource","getUserCompanyMappings","SystemUserMapping","setupManualCompaniesGrid","manualCompanyGridOptions","manualCompanyGridDataSource","getUserCompanies","ManualCompanyMappings","companyAccess","createCompanyMap","_createCompanyMap","_disableCompanyRestrictions","disableCompanyRestrictions","toggleCompany","handleCompanyMap","FpUserId","CompanyMasterIds","CompanyRestrictionType","inheritedProducts","setupInheritedProductsGrid","inheritedProductGridOptions","inheritedProductGridDataSource","getUserMappings","setupManualProductsGrid","manualProductGridOptions","manualProductGridDataSource","ManualProductMappings","productAccess","createProductMap","_createProductMap","_disableProductRestrictions","disableProductRestrictions","toggleProduct","handleProductMap","ProductRestrictionType","FastpathUserListController","getFastpathUsers","_getFastpathUsers","_yield$userRestrictio","_openCompanyRestrictionsModal","companyRestrictionsModalController","_openProductRestrictionsModal","productRestrictionsModalController","openCompanyRestrictionsModal","openProductRestrictionsModal","_getUserCompanies","_getUserCompanyMappings","_getUserMappings","fastpathUserList","userRestrictionsFactory","_addNewGroup","addNewGroup","selectedApprovers","showWarning","fromEdit","approversGridColumns","newLevelId","_addNewLevel","_updateLevel","levelFormSubmit","ApprovalGroupId","updateLevel","addNewLevel","allApproversRequiredChanged","RequiresAllApprovers","ApprovalsRequired","approversSelectionChanged","ApproverIds","approversGrid","approversGridOptions","approversGridDataSource","_addApproverToLevel","formattedApprover","addApproverToLevel","getGroups","_getGroups","gettingGroupsInProgress","groupsDataSource","getLevels","_getLevels","_yield$approvalGroups","gettingLevelsInProgress","levelsDataSource","Approvers","sendNewGroupToTop","_openGroupModal","approvalGroupModalController","_openLevelModal","levelsModal","levelModalController","selectedLevelChanged","_openApproversModal","approversModal","selectedLevelId","approversModalController","clearLevels","_deleteGroupLevel","Level","_removeApprover","_openApprovalGroupImportModal","approvalGroupModal","approvalGroupImportModalController","selectedGroupId","approversDataSource","openGroupModal","openApproversModal","deleteGroupLevel","openLevelModal","removeApprover","openApprovalGroupImportModal","approvalGroupMenuOptions","approvalGroupLevelMenuOptions","approvalGroupsController","companyMappingDataService","_getMasterCompanies","masterCompanies","_bulkMap","selectedProductCompany","selectedMasterCompanies","allCompaniesForAllProducts","bulkMap","getMasterCompanies","selectedCompanyProduct","manualMapGridOptions","manualMapDataSource","dynamicColumns","_acceptAutoMap","CompanyMasterRequests","autoMapResultsDataSource","CompanyMappings","acceptAutoMap","removeProductFromAutoMap","launchedFromProductId","launchedFromProductName","templateRow","autoMapResultsGridOptions","selectedCompanyForManualMapping","selectedCompanyProductClicked","_updateMapping","productAlreadyExists","postMapping","_postMapping","callRemove","launchedFromProductID","encodeURIComponent","removeMappingFromDataSource","updateMapping","setupProducts","createGridOptions","getAllCompanyStatistics","_setupProducts","_getAllCompanyStatistics","companyByProductStatistics","totalUnmappedCompaniesCount","UnMappedCompanyCount","productColumns","_removeProductMapping","_openAutoMapCompaniesModal","autoMapCompaniesModal","autoMapCompaniesModalController","_openManualMapCompanyModal","_selectedCompanyProductClicked","manualMapCompanyModal","manualMapCompaniesModalController","_openBulkMapCompaniesModal","bulkMapCompaniesModal","BulkMapCompaniesModalController","_openUnmappedCompaniesForProductModal","unmappedCompaniesForProductModalController","removeProductMapping","openAutoMapCompaniesModal","openManualMapCompanyModal","openBulkMapCompaniesModal","openUnmappedCompaniesForProductModal","companyMappingController","availableCompaniesGridDataSource","tc","companiesAccumulator","currentCompany","previousInformation","usableCompanyInstance","companyIDsList","CompanyIDs","availableCompaniesGridColumns","CompanyTemplateId","removeCompanyFromGrid","addCompanyToTemplate","addedCompany","CompanyTemplateName","CompanyIds","availableCompaniesGridOptions","preselectedId","_yield$companyTemplat","templateCompany","changeSelectedCompanyTemplate","deletePending","_openCompanyModal","companyTemplateModal","companyModalController","openCompanyModal","companyTemplateCompaniesListController","actionString","templateNamesMatch","onSelectTemplate","openCompanyTemplateModal","_openCompanyTemplateModal","companyTemplateModalController","companyTemplatesListController","configurationOptions","default","PS","ORFC","OR","SAP","getExistingCompanyLogo","getConfigValues","setupRolesDropdown","showAuditTrailTab","availableTimeZones","_getConfigValues","IM_DaysBeforeExpirationReminder","IM_AutomaticDelegationDaysThreshold","IM_DefaultExpirationEnabled","IM_DefaultExpirationDays","AutogeneratedUserRoles","replaceAll","selectedRoleIds","configValuesDiffer","_setupRolesDropdown","_yield$dataService$ge2","_yield$configurationD2","providersList","_getExistingCompanyLogo","_yield$configurationD3","logoProcessing","_putConfigurationSetting","origVal","snapshotTimeHasChanged","tabSelected","ssChildTabSelected","putConfigurationSetting","configValuesHaveChanged","configArray","submitAccessRiskMonitor","productOptions","submitCompanyInfo","companyInfo","submitSecurityDesigner","submitSystemConfiguration","systemConfigurations","$setPristine","submitAccessCertifications","accessCertifications","Cert_SnapshotTime","snapshotTimeSetting","currentUtcDateTime","setMonth","setYear","configNames","showPasswordCriteria","_vm$availableProducts","_vm$availableProducts2","_vm$availableProducts3","AAD","reset","imChildTabSelected","scChildTabSelected","acChildTabSelected","currentConfig","originalConfig","_submitReportManagement","updateSettingsPending","updateConfiguration","submitReportManagement","reportManagementController","_getSapCuaConnections","origValues","_updateCuaConnectionValues","cuaPostData","AppServerHost","Client","CuaSystem","IsCuaEnabled","Language","PoolSize","SystemID","SystemNumber","updateCuaConnectionValues","getSapCuaConnections","cuaConnectionConfigurationController","emailMappingADProducts","emailMappingAADProducts","hasNS","hasSap","getReminderSchedule","getIMApplications","salesforceOnly","automaticDelegations","showEmailMappingADFieldsConfiguration","showEmailMappingAADFieldsConfiguration","updateReminderSchedule","_updateReminderSchedule","reminderStartTime","IM_ExpirationReminderEnabled","IM_ApprovalReminderEnabled","reminderSchedule","_updateIdentityManagerSettingsConfigValues","_getReminderSchedule","savedReminderStartTime","equal","_getIMApplications","imApplications","universalOnly","_yield$$http$get3","roleTemplatesDataSource","updateIdentityManagerSettingsConfigValues","equalityCheck","toggleAutomaticDelegations","refreshConfig","updatedConfiguration","defaultRoleTemplateInvalid","IM_DefaultRoleTemplateForNewUserRequestsEnabled","IM_DefaultRoleTemplateForNewUserRequests","identityManagerConfigTabController","editRestrictedADProducts","editRestrictedAADProducts","processingActionsDataSource","unchangedConfig","getProductConfiguration","getSAPCollectionSchedule","showRestrictEditOfADFieldsConfiguration","showRestrictEditOfAADFieldsConfiguration","_getProductConfiguration","_yield$manageDataData","productConfiguration","unchangedProductConfig","disableOnTerminateConfigName","showRoleDescriptionConfigName","IM_CollectUsage_DaysToCheck","SAP_IM_CollectUsage_DaysToCheck","parseInt","hasProductType","showCreateRequests","showImProvider","hasRestrictEdit","IM_CreateRequestsFromCertReviews","IM_Provider","showProductSettings","roleOwnershipGroupsLoading","updateProductConfigPending","originalCollectionStatus","scheduleCollectionIsOn","originalCollectionStartTime","scheduleCollectionStartTime","updateSAPCollectionSchedule","_updateConfigurationSetting","updateConfigurationSetting","_updateProductConfiguration","updateProductConfiguration","refreshCoreConfig","_getSAPCollectionSchedule","collectionSchedule","savedCollectionStartTime","_updateSAPCollectionSchedule","collectionScheduleUpdateInProgress","productConfigurationController","_getProductProvisioning","provisioning","prov","originalProvisioning","_updateProductProvisioning","updateProvisioningPending","IM_EnableProvisioning","IM_ProvisioningAdmins","valueChanged","provisioningChanged","updateProductProvisioning","getProductProvisioning","productProvisioningController","crossPlatformUsersDataService","lastSelectedUser","getLastSelectedUserId","selectedUserModal","productsInModal","mapModel","UserMaps","_getLastSelectedUserId","UserMappings","userMap","checkIfEnoughProductsAreSelected","productsValid","nullOutMapping","selectedMapping","checkUserMapping","manualMapGrid","productsAsString","Products","buttonCount","_newEditCrossPlatformUserModal","newCrossPlatformUserModalController","_setColumns","lockNewUserButton","autoMapUpdatePending","newEditCrossPlatformUserModal","openImportAutoMapModal","importUserMappingModalController","mappingStatusRowCount","crossPlatformUsersController","canSetEmergencyAccess","eaDisabled","approversExist","_canSetEmergencyAccess","defaultEAOGId","defaultEAOwnershipGroupId","_checkIfApproversNeeded","dataLoading","approversNeeded","setupAvailableUsersGrid","_editSystemRole","SecurityRoleTypeId","IsAutoApproved","IgnoreCertification","Reviewed","EmergencyAccessRequest","selectedApproverIds","editSystemRole","checkIfApproversNeeded","previouslyReviewed","multipleProducts","hasMultiple","configureSystemRolesGrid","_configureSystemRolesGrid","eaColumn","systemRolesGridColumns","systemRolesGridOptions","systemRolesGridDataSource","isAssignableRolesCount","isAutoApprovedRolesCount","ignoreCertificationRolesCount","isEmergencyAccessRolesCount","isReviewedRolesCount","_openEditSystemRoleModal","editSystemRoleModal","editSystemRoleModalController","importModalController","_yield$maintainSystem2","openEditSystemRoleModal","notificationsDataService","setupToggleState","notificationTypes","allSubscriptions","mySubscriptions","HasProductFilter","Notifications","subscription","NotificationTypeId","notificationsController","setupUsers","subscribed","su","subscribedUsers","au","editedTypeDescription","editDescription","notificationManagerModalController","removeProductSubscription","_removeProductSubscription","subscriptionId","sub","removeTypeSubscription","_removeTypeSubscription","_toggleProductNotifications","toggling","_toggleTypeNotifications","changeSelectedType","toggleProductNotifications","toggleTypeNotifications","NotificationTypesListController","productDropdownChanged","addedRole","addingRole","RoleTemplateId","removeRoleFromGrid","removedRole","deleteProcessing","_openRoleModal","openRoleModal","roleTemplateRolesListController","roleTemplateForm","roleTemplatesLoading","changeSelectedRoleTemplate","openRoleTemplateModal","_openRoleTemplateModal","roleTemplateModal","roleTemplateModalController","importRoleTemplatesController","roleTemplatesListController","getConfiguration","_getConfiguration","isEligible","_submitIndirectAccessRiskEligible","updateRiskEligiblePending","riskEligibleToggleChange","submitIndirectAccessRiskEligible","riskEligibilityController","productImageClass","configValuesUnchanged","configValueChange","configList","armProductConfigurationController","_saveUser","BusinessUnit","_importUsers","saveUser","importUsers","systemUsersGrid","FpUserName","suggestion","_configureSystemUsersGrid","systemUsersGridColumns","systemUsersGridOptions","systemUsersGridDataSource","_openEditImportModal","editImportModal","editImportUserModalController","_openSystemUserMappingModal","mappingModal","systemUserMappingModalController","openEditImportModal","openSystemUserMappingModal","configureSystemUsersGrid","maintainSystemUsersGridController","unChangedAutoMapConfig","autoMapConfig","getNewProductProps","propsLoading","getSystemFields","t7","systemFields","logo","unChangedConfiguration","_getSystemFields","_yield$supervisorAssi","universalFields","_yield$supervisorAssi2","productSpecificFields","productConfigValueChange","updatedProducts","AutoMappingSystemFieldId","xplatConfigForm","systemConfigProductConfigurationController","userFieldMappingsController","primarySystem","autoMapXplatEnabled","primarySystemProductName","selectedFieldId","originalFieldId","systemUserProductMappingsController","getSelectedFieldId","setSystemFields","_getSelectedFieldId","_data$find","_setSystemFields","_openEditMappingModal","editSystemUserMappingModalController","openEditMappingModal","ownershipGroupsModule","requesterGroupsModule","supervisorAssignmentsModule","userRestrictionsModule","systemConfigurationFactoriesModule","systemConfigurationSetupModule","approvalGroups","companyTemplatesList","companyTemplateCompaniesList","crossPlatformUsers","maintainSystemRoles","notifications","notificationTypesList","roleTemplatesList","roleTemplateRolesList","reportManagement","identityManagerConfigTab","identityManagerProductConfiguration","identityManagerProductProvisioning","identityManagerCuaConnectionConfiguration","armProductRiskEligibility","armProductConfiguration","maintainSystemUsersGrid","systemConfigProductConfiguration","userFieldMappings","systemUserProductMappings","connectionsDataService","setPlugins","setConfig","setHybridConnections","_setPlugins","supportedPlugins","disabledPlugins","_setConfig","_setHybridConnections","_yield$connectionsDat","getHybridConnections","hybridConnectionsArray","configOptions","logoClass","plugins","apiClient","apiClientDataService","availableRolesDataSource","createApiClient","_createApiClient","roleIds","savingApiClient","_updateApiClient","updateApiClient","updatedOrCreatedId","apiClientFormSubmit","loadRoles","listApiClients","getApiClient","_getApiClient","dateString","randomNumber","inputTag","loadingApiClient","selectedApiClient","SelectedRoles","Secrets","random","InputTag","originalClientStatusIsActive","_deleteApiClient","deleteApiClient","_listApiClients","mostRecentApiClientId","mostRecentApiClient","apiClients","loadingApiClients","changeApiClientRowSelected","_loadRoles","_updateSecretStatus","apiClientId","secretId","updateSecretStatus","clientSecretsGridDataSource","_generateSecret","generateSecret","_deleteSecret","deleteSecret","_changeApiClientSelected","loadSecretsGrid","_openApiClientModal","apiClientModal","newApiClientController","_loadSecretsGrid","clientSecretsColumns","clientSecretsGridOptions","openApiClientModal","changeApiClientSelected","changeInputType","inputControl","getElementById","imageControl","className","copyTextToClipboard","currentTenantId","currentTenantApiRoute","ApiRoute","apiClientMenuOptions","getLatestProductImports","_getLatestProductImports","_getHybridConnections","getPlugins","_getPlugins","getConnectionSql","_getConnectionSql","getLogAnalyticConnections","_getLogAnalyticConnections","getProductSchedule","_getProductSchedule","getProductSql","_getProductSql","getSapProduct","_getSapProduct","getImportRoles","_getImportRoles","getOracleEpmServiceTypes","_getOracleEpmServiceTypes","getSfPermissionConfig","_getSfPermissionConfig","getSfPermissionConfigByObject","_getSfPermissionConfigByObject","importSecurity","_importSecurity","importFromFileUpload","_importFromFileUpload","createNewProduct","_createNewProduct","updateProductName","_updateProductName","updateProductSchedule","_updateProductSchedule","disableProductSchedule","_disableProductSchedule","_updateConfig","updateSqlConfig","_updateSqlConfig","createSqlConfig","_createSqlConfig","createLogAnalyticsConfig","_createLogAnalyticsConfig","updateLogAnalyticsConfig","_updateLogAnalyticsConfig","validateNsConfig","_validateNsConfig","updateSapProduct","_updateSapProduct","createSapProduct","_createSapProduct","createSfFieldPermissionConfig","_createSfFieldPermissionConfig","removeSfFieldPermissionConfig","_removeSfFieldPermissionConfig","_callee25","_context25","_callee26","_context26","_callee27","_context27","_callee28","_context28","_callee29","_context29","modules","customProductType","atProductType","ModuleId","newProduct","newId","rolesDataService","sortedProducts","sortByName","radios","focused","customProducts","ProductImportTilesArray","latestImportArray","setImportTiles","getModules","getConnections","Visibility","callLatest","triggerProductImportInProgressStatus","setConfigValues","allFpAuditConfigs","_setConfigValues","_callLatest","importingProduct","productIndex","_getConnections","sapProducts","isSap","isSql","getCustomProduct","getSqlProduct","_getCustomProduct","CustomProduct_User","CustomProduct_DatabaseName","DatabaseName","CustomProduct_Instance","Instance","CustomProduct_HostName","HostName","CustomProduct_Port","Port","CustomProduct_Password","ConnectionExists","_getSqlProduct","SQL_User","SQL_DatabaseName","SQL_Instance","SQL_HostName","SQL_Port","SQL_Password","sapProduct","_openNewProductModal","newProductController","getProductImageClass","setRadioSelected","radio","classList","openNewProductModal","localeCompare","connectionsController","uploadOnlyProducts","updateNSRoleDropdown","configChanged","nsRolesChanged","getImportStatusClass","openEditProductName","editProductNameModalController","productImportTiles","productTiles","navObjects","_setProductSpecificDropdowns","serviceTypeDropdownDataSource","selectedServiceType","getNsRoles","_getNsRoles","rolesDropdownIsLoading","nsRoleDataSource","nsSelectedItems","_importProduct","securityImportTypes","isFileImport","isSecurityImport","checkFileImport","getFormData","_importOracle","transactionMonitoring","importFlow","getRequestBodyByProductId","nsImportAllRoles","permissionsFlow","rawFlow","urlId","SdImportType","sapImportType","ApiImportType","WD_ApiImportType","oracleServiceTypeId","setProductSpecificDropdowns","_changes$nsRolesNeeds","onNsRolesUpdate","importProduct","importOracle","showSapImportType","navObject","ModuleID","nsRolesNeedsUpdate","Controller","dateFormatterFactory","_getImportSchedule","updatedSchedule","scheduleImportIsOn","createNewSchedule","disableSchedule","_createNewSchedule","adjustedTime","enteredHours","enteredMinutes","_disableSchedule","scheduleChanged","updated","changed","formatDay","dayObject","hasChangeTracking","versionOptions","originalProduct","configItem","setSalesForceObjects","connectionData","originalLogAnalyticConfigs","logAnalyticConfigs","getConfigNames","logAnalyticConfigsHaveChanged","_update","updateSqlConnection","updateNsRoles","Account","NS_Account","TokenKey","NS_TokenKey","TokenSecret","NS_TokenSecret","onUpdateNsRoleDropdown","configs","WorkspaceId","DaysToImport","_updateSqlConnection","_setSalesForceObjects","fieldPermissionConfigurationGridColumns","fieldPermissionConfigurationGridOptions","fieldPermissionConfigurationGridDataSource","invalidOrMissingCredentials","objectsDropdownDataSource","_updateField","objectsDropdownChange","updateField","update","productValuesHaveChanged","ax7ImportDisabledUsersChange","AX7_AS_ShowDisabledUsers","AX7_AS_ImportDisabledUserAccess","ax7ImportDisabledUserAccessChange","sfImportTypeChange","SF_ImportType","SF_UserName","SF_Password","SF_SecurityToken","SF_Url","SF_ClientId","SF_ClientSecret","configUpdate","showSAPSdConnectionSettings","getConfigByProductValues","getSAPSdConnectionSettings","_submitProduct","_getConfigByProductValues","_getSAPSdConnectionSettings","sapSDConfig","origSapSDConfig","_updateSAPSdConnectionSettings","updateSdPending","SystemId","productPutData","updateSAPSdConnectionSettings","sdConfigValuesHaveChanged","submitProduct","_updateCustomProduct","sqlData","productConfigData","currentProductConfig","originalProductConfig","updatePassword","fpAuditConfig","updateCustomProduct","startTimeForScheduleTMImport","getTMImportSchedule","_getTMImportSchedule","selectedFreqForScheduleTMImport","selectedDayOfWeekForScheduleTMImport","selectedDayOfMonthForScheduleTMImport","ScheduleTMImportIsOn","productImportScheduled","updateTMScheduleImport","_updateTMSchedule","updateTMSchedule","scheduleTMImportStatusChanged","updateProductScheduleStatus","transactionMonitoringScheduleController","hybridController","_saveDomain","saveDomain","domainsDataSource","_openDomainModal","domainModal","domainModalController","_deleteDomain","domainId","openDomainModal","deleteDomain","activeDirectoryDomainsController","connections","connectionImport","connectionSchedule","connectionSettings","sapConnection","sapConnectionSettings","customProductConnection","customProductConnectionSettings","transactionMonitoringSchedule","partialHybridConnectionsInformation","activeDirectoryDomains","routeStatus","apiClientDataServiceFactory","integrationsFactoriesModule","pluginsModule","apiClientsModule","productConnectionsModule","_getModules","getModulesByObjectId","_getModulesByObjectId","getSecurableObjects","_getSecurableObjects","_removeRole","removeRoleAccess","_removeRoleAccess","addRoleAccess","_addRoleAccess","getRoleById","_getRoleById","addAssignments","_addAssignments","removeAssignments","_removeAssignments","createUser","_createUser","setUserRole","_setUserRole","updateUser","_updateUser","_removeSubstitute","deleteUserRole","_deleteUserRole","_removeOOFHours","downloadUsersTemplate","_downloadUsersTemplate","_getCriteria","_yield$passwordCriter","gettingCriteriaInProgress","originalPasswordCriteria","passwordCriteria","SpecialChars","requireSpecialChar","_saveOrUpdatePasswordCriteria","updatePasswordCriteriaPending","MinLength","MaxLength","RequireCapitalLetter","RequireNumber","updatePasswordCriteria","addPasswordCriteria","saveOrUpdatePasswordCriteria","criteriaValuesHaveChanged","criteriaArray","requireSpecialCharChanged","passwordCriteriaController","_getPasswordCriteria","_addPasswordCriteria","_updatePasswordCriteria","setGridLayout","_setGridLayout","auditLogGridColumns","auditLogGridOptions","createGridDataSource","encoded","auditLogGridDataSource","auditLogsController","savingUser","allowLocalAccounts","Protocol","_addNewUser","existingUser","existingProvider","needsProvider","checkEmail","loginEmail","getAccount","EmailAddress","IdentityProvider","showInvalidIdpMessage","firstName","lastName","IdentityProviderId","IdentityUserId","_showInvalidIdpMessage","showCloseButton","_checkEmail","_getAccount","addNewUser","_checkLocalAccounts","AllowLocalAccounts","listOfUsers","findSubstituteNames","preselectUserId","_toggleUsersActiveState","_toggleRoleState","SelectedRoleCheckbox","_openNewModal","newUserModal","newUsersModalController","_editUser","editUserModalController","changeNameTo","editModeOn","_openSubstituteModal","substituteName","_openUserImportModal","importUsersModalController","editUser","openSubstituteModal","previousSelectedUser","assignRolesGridDataSource","toggleUsersActiveState","toggleRoleState","openNewModal","openUserImportModal","checkLocalAccounts","assignRolesGridOptions","objectModel","allRoles","usersController","_createRole","newRoleName","createRole","modulesDataSource","_openNewRoleModal","newRoleModal","newRoleModalController","mostRecentRole","selectedModule","selectedRoleChanged","isRemoval","selectRoles","_selectRoles","_roles$","selectionProcessing","RoleAccesses","setColumnHeaderToggle","homeRolesGridDataSource","allSelectionProcessing","dropdownFilter","dynamicFilter","_selectAllRoles","homeRolesGrid","allSelectedCheckbox","openNewRoleModal","selectedModuleChanged","homeRolesGridColumns","homeRolesGridOptions","securableobjects","_item","selectAllRoles","dropdownFilters","rolesController","securityAssignmentDataService","createUserDataSource","securityAssignmentUsersGridDataSource","objectModelAssignUsersToRole","foundUser","SelectedUserCheckbox","roleChanged","checkAllSelected","selectUsers","_selectAllUsers","assignmentsGrid","_selectUsers","_users$","securityAssignmentShowUsersGridOptions","rolesDataServiceFactory","securityAssignment","securityAssignmentDataServiceFactory","usersDataServiceFactory","passwordCriteriaDataServiceFactory","auditLogs","appSharedModule","accessRiskMonitorModule","accessCertificationsModule","auditTrailModule","securityDesignerModule","identityManagerModule","reportManagementModule","transactionMonitoringModule","systemConfigurationModule","integrationsModule","securitySetupModule","constant","appVersion","ready","fix_height","heightWithoutNavbar","navbarHeigh","wrapperHeigh","scroll","scrollTop","removeClass","g","h","RaygunObject","getElementsByTagName","async","parentNode","insertBefore","onerror","Error","q","elasticQueryService","idx","addGroup","subType","rules","toFilters","toQuery","toDateQuery","RH","groupClassHelper","elasticFields","onRemove","depth","getGroupClassName","getType","clearValues","guide","getTemplateUrl","booleans","booleansOrder","datesNeeded","timeNeeded","inputNeeded","multiNeeded","periodNeeded","pluralPeriodNeeded","open2","popup2","year","endTime","getChoices","defaultValues","choice","choices","mappedData","defaultValue","valueToAdd","levels","queryObject","matchingField","existingDateFilterIndex","filterValueObject","existingFilterIndex","parseQueryGroup","dateFormat","userFilters","queryArray","startTimeHours","startTimeMinutes","endTimeHours","endTimeMinutes","multiFilter","time","parseFilterGroup","dateQueryArray","parseDateFilterGroup","$templateCache","debounce","searchFilter","listFilter","groupFilter","newItem","closeList","saveTrigger","minlength","full","major","minor","dot","rEscapableCharacters","String","removedItem","lastQuery","getLabel","itemIsCorrected","$document","container","contained","ownerDocument","nodeType","rnumnonpx","getOffset","docElem","win","box","getBoundingClientRect","doc","documentElement","defaultView","getWindow","pageYOffset","clientTop","pageXOffset","clientLeft","bindFocusBlur","inputElement","isFocused","isMousedown","isBlur","blurHandler","nodeName","triggerHandler","focusHandler","mousedownHandler","clickHandler","activeElement","isSelectElement","addEventListener","removeEventListener","off","scrollActiveOption","y","height_menu","height_item","scroll_top","scroll_bottom","offsetHeight","styles","getComputedStyle","parseFloat","isBorderBox","cssExpand","getStyleValue","augmentWidthOrHeight","getWidthOrHeight","groupsIsEmpty","getValue","valueName","getter","locals","previousValue","currentItem","intersection","xArr","yArr","xFilter","yFilter","invert","filteredX","filteredY","out","$animate","oiUtils","oiSelect","NG_OPTIONS_REGEXP","VALUES_REGEXP","optionsExp","oiOptions","selectAsName","keyName","groupByName","disableWhenName","trackByName","valueMatches","valueTitle","keyTitle","keyUpDownWerePressed","matchesWereReset","timeoutPromise","multiple","multipleLimit","newItemFn","valuesName","filteredValuesName","valuesFnName","selectAsFn","displayFn","groupByFn","disableWhenFn","filteredValuesFn","valuesFn","trackByFn","multiplePlaceholderFn","multiplePlaceholder","listPlaceholderFn","listPlaceholder","placeholderFn","optionsFn","oiSelectOptions","isOldAngular","$isEmpty","exists","listElement","querySelector","elementOptions","cleanModel","editItemIsCorrected","waitTime","editItemFn","noop","removeItemFn","searchFilterOptionsFn","dropdownFilterOptionsFn","listFilterOptionsFn","groupFilterOptionsFn","newItemModel","$query","unbindFocusBlur","valueChangedManually","blinkClass","delay","cleanInput","listItemHide","inputHide","restoreInput","modelExists","$modelValue","isOpen","getMatches","resetMatches","saveOn","triggerName","isTriggered","isNewItem","selectedOrder","order","selectorPosition","getDisableWhen","showLoader","bottom","setOption","trackBy","selectAs","isEmptyList","getGroupName","compact","selectedAs","$selectedAs","oldQuery","$promise","$resolved","isFunction","outputValues","filteredList","filteredOutput","context","optionGroupName","optionGroup","optionGroups","collectionKeys","groupPos","updateGroupPos","backspaceFocus","autofocus","readonly","tabindex","removeAttribute","maxlength","$observe","Infinity","multipleValue","currentPlaceholder","inputValue","tempClasses","isLoading","modelOption","$item","setSelection","keyUp","keyCode","keyDown","isNumber","getSearchLabel","getDropdownLabel","getGroupLabel","oiSelectEscape","isFound","output1","output2","output3","output4","toLocaleLowerCase","inputLabel","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","___CSS_LOADER_URL_REPLACEMENT_8___","___CSS_LOADER_URL_REPLACEMENT_9___","___CSS_LOADER_URL_REPLACEMENT_10___","___CSS_LOADER_URL_REPLACEMENT_11___","___CSS_LOADER_URL_REPLACEMENT_12___","___CSS_LOADER_URL_REPLACEMENT_13___","___CSS_LOADER_URL_REPLACEMENT_14___","___CSS_LOADER_URL_REPLACEMENT_15___","___CSS_LOADER_URL_REPLACEMENT_16___","___CSS_LOADER_URL_REPLACEMENT_17___","___CSS_LOADER_URL_REPLACEMENT_18___","___CSS_LOADER_URL_REPLACEMENT_19___","___CSS_LOADER_URL_REPLACEMENT_20___","___CSS_LOADER_URL_REPLACEMENT_21___","___CSS_LOADER_URL_REPLACEMENT_22___","___CSS_LOADER_URL_REPLACEMENT_23___","___CSS_LOADER_URL_REPLACEMENT_24___","___CSS_LOADER_URL_REPLACEMENT_25___","___CSS_LOADER_URL_REPLACEMENT_26___","___CSS_LOADER_URL_REPLACEMENT_27___","___CSS_LOADER_URL_REPLACEMENT_28___","___CSS_LOADER_URL_REPLACEMENT_29___","___CSS_LOADER_URL_REPLACEMENT_30___","___CSS_LOADER_URL_REPLACEMENT_31___","___CSS_LOADER_URL_REPLACEMENT_32___","___CSS_LOADER_URL_REPLACEMENT_33___","___CSS_LOADER_URL_REPLACEMENT_34___","___CSS_LOADER_URL_REPLACEMENT_35___","___CSS_LOADER_URL_REPLACEMENT_36___","___CSS_LOADER_URL_REPLACEMENT_37___","___CSS_LOADER_URL_REPLACEMENT_38___","___CSS_LOADER_URL_REPLACEMENT_39___","___CSS_LOADER_URL_REPLACEMENT_40___","___CSS_LOADER_URL_REPLACEMENT_41___","___CSS_LOADER_URL_REPLACEMENT_42___","___CSS_LOADER_URL_REPLACEMENT_43___","___CSS_LOADER_URL_REPLACEMENT_44___","___CSS_LOADER_URL_REPLACEMENT_45___","___CSS_LOADER_URL_REPLACEMENT_46___","___CSS_LOADER_URL_REPLACEMENT_47___","___CSS_LOADER_URL_REPLACEMENT_48___","___CSS_LOADER_URL_REPLACEMENT_49___","___CSS_LOADER_URL_REPLACEMENT_50___","___CSS_LOADER_URL_REPLACEMENT_51___","___CSS_LOADER_URL_REPLACEMENT_52___","___CSS_LOADER_URL_REPLACEMENT_53___","___CSS_LOADER_URL_REPLACEMENT_54___","___CSS_LOADER_URL_REPLACEMENT_55___","___CSS_LOADER_URL_REPLACEMENT_56___","___CSS_LOADER_URL_REPLACEMENT_57___","___CSS_LOADER_URL_REPLACEMENT_58___","___CSS_LOADER_URL_REPLACEMENT_59___","___CSS_LOADER_URL_REPLACEMENT_60___","___CSS_LOADER_URL_REPLACEMENT_61___","___CSS_LOADER_URL_REPLACEMENT_62___","___CSS_LOADER_URL_REPLACEMENT_63___","___CSS_LOADER_URL_REPLACEMENT_64___","___CSS_LOADER_URL_REPLACEMENT_65___","___CSS_LOADER_URL_REPLACEMENT_66___","___CSS_LOADER_URL_REPLACEMENT_67___","___CSS_LOADER_URL_REPLACEMENT_68___","___CSS_LOADER_URL_REPLACEMENT_69___","___CSS_LOADER_URL_REPLACEMENT_70___","___CSS_LOADER_URL_REPLACEMENT_71___","___CSS_LOADER_URL_REPLACEMENT_72___","___CSS_LOADER_URL_REPLACEMENT_73___","___CSS_LOADER_URL_REPLACEMENT_74___","___CSS_LOADER_URL_REPLACEMENT_75___","___CSS_LOADER_URL_REPLACEMENT_76___","___CSS_LOADER_URL_REPLACEMENT_77___","___CSS_LOADER_URL_REPLACEMENT_78___","___CSS_LOADER_URL_REPLACEMENT_79___","___CSS_LOADER_URL_REPLACEMENT_80___","___CSS_LOADER_URL_REPLACEMENT_81___","___CSS_LOADER_URL_REPLACEMENT_82___","___CSS_LOADER_URL_REPLACEMENT_83___","___CSS_LOADER_URL_REPLACEMENT_84___","___CSS_LOADER_URL_REPLACEMENT_85___","___CSS_LOADER_URL_REPLACEMENT_86___","___CSS_LOADER_URL_REPLACEMENT_87___","___CSS_LOADER_URL_REPLACEMENT_88___","___CSS_LOADER_URL_REPLACEMENT_89___","___CSS_LOADER_URL_REPLACEMENT_90___","___CSS_LOADER_URL_REPLACEMENT_91___","___CSS_LOADER_URL_REPLACEMENT_92___","___CSS_LOADER_URL_REPLACEMENT_93___","___CSS_LOADER_URL_REPLACEMENT_94___","___CSS_LOADER_URL_REPLACEMENT_95___","___CSS_LOADER_URL_REPLACEMENT_96___","___CSS_LOADER_URL_REPLACEMENT_97___","___CSS_LOADER_URL_REPLACEMENT_98___","___CSS_LOADER_URL_REPLACEMENT_99___","___CSS_LOADER_URL_REPLACEMENT_100___","___CSS_LOADER_URL_REPLACEMENT_101___","___CSS_LOADER_URL_REPLACEMENT_102___","___CSS_LOADER_URL_REPLACEMENT_103___","___CSS_LOADER_URL_REPLACEMENT_104___","___CSS_LOADER_URL_REPLACEMENT_105___","___CSS_LOADER_URL_REPLACEMENT_106___","___CSS_LOADER_URL_REPLACEMENT_107___","___CSS_LOADER_URL_REPLACEMENT_108___","___CSS_LOADER_URL_REPLACEMENT_109___","___CSS_LOADER_URL_REPLACEMENT_110___","___CSS_LOADER_URL_REPLACEMENT_111___","___CSS_LOADER_URL_REPLACEMENT_112___","___CSS_LOADER_URL_REPLACEMENT_113___","___CSS_LOADER_URL_REPLACEMENT_114___","___CSS_LOADER_URL_REPLACEMENT_115___","___CSS_LOADER_URL_REPLACEMENT_116___"],"mappings":"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,kBACA,kBACA,gBACA,sBACA,cACA,iBACA,kBACA,gBACA,kBACA,eACA,oBACA,cACA,gBACA,oBACA,gBACA,gBACA,gBACA,gBACA,iBACA,mBACA,kBACA,iBACA,kBACA,gBACA,oBACA,qBACA,oBACA,kBACA,kBACA,iBACA,eACA,kBACA,eACA,oBACA,mBACA,kBACA,oBACA,iCACA,8BACA,mCACA,4BACA,0BACA,6BACA,4BACA,iCACA,0BACA,6BACA,6BACA,4BACA,4BACA,gBACA,mBACA,mBACA,eACA,gBACA,yBACA,mBACA,gBACA,iBACA,uBACA,oBACA,iBACA,gBACA,uBACA,wBACA,uBACA,iBACA,kBACA,oBACA,kBACA,iBACA,kBACA,oBACA,wBACA,kBACA,qBACA,kBACA,iBACA,kBACA,uBACA,iBACA,uBACA,iBACA,kBACA,mBACA,mBACA,mBACA,sBACA,mBACA,sBACA,qBACA,oBACA,oBACA,kBACA,oBACA,qBACA,kBACA,qBACA,oBACA,oBACA,iBACA,kBACA,iBACA,qBACA,+BACA,uBACA,0BACA,6BACA,4BACA,wBACA,4BACA,0BACA,uBACA,iBACA,kBACA,kBACA,gBACA,iBACA,8BACA,8BACA,kBACA,qBACA,iBACA,eACA,sBACA,qBACA,wBACA,iBACA,kBACA,iBACA,kBACA,qBACA,oBACA,mBACA,kBACA,oBACA,iBACA,qBACA,sBACA,mBACA,kBACA,oBACA,qBACA,mBACA,qBACA,iBACA,mBACA,kBACA,eACA,kBACA,8BACA,8BACA,iCACA,kBACA,iBACA,sBACA,qBACA,kBACA,wBACA,yBACA,qBACA,sBACA,sBACA,uBACA,sBACA,uBACA,iBACA,iBACA,mBACA,qBACA,kBACA,uBACA,mBACA,mBACA,wBACA,oBACA,uBACA,mBACA,gBACA,wBACA,mBACA,mBACA,mBACA,oBACA,qBACA,wBACA,sBACA,gBACA,sBACA,kBACA,kBACA,kBACA,oBACA,iBACA,qBACA,mBACA,kBACA,sBACA,mBACA,mBACA,4BACA,uBACA,oBACA,qBACA,oBACA,qBACA,wBACA,mBACA,mBACA,oBACA,sBACA,YACA,cACA,aACA,cACA,aACA,cACA,gBACA,iBACA,cACA,eACA,eACA,YACA,eACA,eACA,cACA,eACA,cACA,gBACA,aACA,kBACA,iBACA,iBACA,eACA,aACA,gBACA,aACA,YACA,aACA,gBACA,iBACA,YACA,cACA,cACA,mBACA,iBACA,YACA,eACA,gBACA,eACA,gBACA,iBACA,aACA,iBACA,eACA,eACA,iBACA,gBACA,gBACA,eACA,mBACA,oBACA,eACA,cACA,aACA,aACA,eACA,gBACA,cACA,cACA,oBACA,mBACA,YACA,YACA,kBACA,iBACA,iBACA,aACA,iBACA,eACA,cACA,cACA,gBACA,iBACA,aACA,gBACA,iBACA,qBACA,cACA,gBACA,eACA,cACA,gBACA,cACA,eACA,aACA,aACA,qBACA,mBACA,kBACA,cACA,gBACA,iBACA,mBACA,eACA,cACA,qBACA,eACA,kBACA,mBACA,kBACA,sBACA,kBACA,iBACA,qBACA,mBACA,qBACA,yBACA,qBACA,mBACA,gBACA,qBACA,qBACA,wBACA,qBACA,mBACA,mBACA,kBACA,mBACA,gBACA,qBACA,sBACA,sBACA,kBACA,gBACA,kBACA,uBACA,kBACA,mBACA,qBACA,qBACA,iBACA,uBACA,cACA,mBACA,cACA,cACA,kBACA,iBACA,iBACA,kBACA,sBACA,iBACA,sBACA,eACA,MACA,oBACA,qBACA,UACA,OACA,MACA,QACA,OACA,MACA,UACA,UACA,YACA,YACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,gBACA,UACA,gBACA,UACA,WACA,mBACA,iBACA,mBACA,gBACA,iBACA,kBACA,gBACA,oBACA,kBACA,mBACA,kBACA,kBACA,kBACA,oBACA,gBACA,mBACA,kBACA,kBACA,qBACA,kBACA,gBACA,qBACA,cACA,eACA,gBACA,mBACA,gBACA,oBACA,gBACA,eACA,mBACA,eACA,gBACA,gBACA,eACA,cACA,eACA,mBACA,gBACA,cACA,cACA,gBACA,oBACA,kBACA,iBACA,oBACA,gBACA,eACA,mBACA,iBACA,gBACA,kBACA,mBACA,kBACA,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,gBACA,oBACA,gBACA,KACA,UACA,MACA,QACA,OACA,QACA,YACA,WACA,MACA,UACA,sBACA,gBACA,mBACA,eACA,gBACA,mBACA,cACA,kBACA,mBACA,iBACA,iBACA,OACA,SACA,UACA,QACA,YACA,QACA,MACA,mBACA,iBACA,iBACA,MACA,UACA,SACA,KACA,UACA,eACA,mBACA,uBACA,kBACA,gBACA,iBACA,gBACA,oBACA,kBACA,eACA,mBACA,oBACA,kBACA,sBACA,eACA,mBACA,mBACA,qBACA,iBACA,oBACA,iBACA,oBACA,iBACA,gBACA,eACA,kBACA,iBACA,oBACA,gBACA,mBACA,kBACA,iBACA,uBACA,oBACA,iBACA,gBACA,iBACA,iBACA,oBACA,eACA,eACA,iBACA,cACA,SACA,WACA,MACA,UACA,MACA,MACA,YACA,SACA,MACA,YACA,YACA,cACA,aACA,aACA,aACA,kBACA,YACA,oBACA,cACA,cACA,aACA,iBACA,WACA,MACA,MACA,OACA,QC9kBG,IAAM2pQ,GACO,CACZC,QAAS,CACL,CAAEvhR,KAAM,iBAAkBsiC,WAAW,GACrC,CAAEtiC,KAAM,0BAA2BsiC,WAAW,GAC9C,CAAEtiC,KAAM,qCAAsCsiC,WAAW,GACzD,CAAEtiC,KAAM,qCAAsCsiC,WAAW,GACzD,CAAEtiC,KAAM,qCAAsCsiC,WAAW,GACzD,CAAEtiC,KAAM,kCAAmCsiC,WAAW,GACtD,CAAEtiC,KAAM,sCAAuCsiC,WAAW,IAE9Dk/O,GAAI,CAAC,CAAExhR,KAAM,qCAAsCsiC,WAAW,IAC9Dm/O,KAAM,CAAC,CAAEzhR,KAAM,uCAAwCsiC,WAAW,IAC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0B,+B,+CCAzC,QAAe,IAA0B,0B,+CCAzC,QAAe,IAA0B,0B,+CCAzC,QAAe,IAA0B,sB,+CCAzC,QAAe,IAA0B,yB,+CCAzC,QAAe,IAA0B,0B,+CCAzC,QAAe,IAA0B,uB,+CCAzC,QAAe,IAA0B,8B,+CCAzC,QAAe,IAA0B,uB,+CCAzC,QAAe,IAA0B,2B,+CCAzC,QAAe,IAA0B,2B,+CCAzC,QAAe,IAA0B,yB,+CCAzC,QAAe,IAA0B,qC,+CCAzC,QAAe,IAA0B,4B,+CCAzC,QAAe,IAA0B,wB,+CCAzC,QAAe,IAA0B,mB,+CCAzC,QAAe,IAA0B,mB,+CCAzC,QAAe,IAA0B,uB,+CCAzC,QAAe,IAA0B,uB,+CCAzC,QAAe,IAA0B,oB,+CCAzC,QAAe,IAA0B,oB,+CCAzC,QAAe,IAA0B,oB,+CCAzC,QAAe,IAA0B,mB,+CCAzC,QAAe,IAA0B,mB,+CCAzC,QAAe,IAA0B,mB,+CCAzC,QAAe,IAA0B,oB,+CCAzC,QAAe,IAA0B,oB,+CCAzC,QAAe,IAA0B,oB,+CCAzC,QAAe,IAA0B,sB,8CCAzC,QAAe,IAA0B,oC,+CCAzC,QAAe,IAA0B,mC,+CCAzC,QAAe,IAA0B,+B,+CCAzC,QAAe,IAA0B,8B,+CCAzC,QAAe,IAA0B,2B,+CCAzC,QAAe,IAA0B,0B,+CCAzC,QAAe,IAA0B,+B,+CCAzC,QAAe,IAA0B,8B,+CCAzC,QAAe,IAA0B,+B,8CCAzC,QAAe,IAA0B,4B,+CCAzC,QAAe,IAA0B,8B,+CCAzC,QAAe,IAA0B,6B,+CCAzC,QAAe,IAA0B,+B,8CCAzC,QAAe,IAA0B,uB,+CCAzC,QAAe,IAA0B,2C,+CCAzC,QAAe,IAA0B,0C,+CCAzC,QAAe,IAA0B,oC,+CCAzC,QAAe,IAA0B,6B,+CCAzC,QAAe,IAA0B,+B,8CCAzC,QAAe,IAA0B,2C,+CCAzC,QAAe,IAA0B,uC,+CCAzC,QAAe,IAA0B,sC,8CCAzC,QAAe,IAA0B,gD,+CCAzC,QAAe,IAA0B,gC,+CCAzC,QAAe,IAA0B,+B,+CCAzC,QAAe,IAA0B,2B,8CCAzC,QAAe,IAA0B,0B,+CCAzC,QAAe,IAA0B,yB,+CCAzC,QAAe,IAA0B,gB,+CCAzC,QAAe,IAA0B,iC,8CCAzC,QAAe,IAA0B,gC,+CCAzC,QAAe,IAA0B,gC,+CCAzC,QAAe,IAA0B,+B,+CCAzC,QAAe,IAA0B,8B,+CCAzC,QAAe,IAA0B,gC,+CCAzC,QAAe,IAA0B,sB,+CCAzC,QAAe,IAA0B,6B,+CCAzC,QAAe,IAA0B,mC,+CCAzC,QAAe,IAA0B,2B,+CCAzC,QAAe,IAA0B,8B,+CCAzC,QAAe,IAA0B,gC,+CCAzC,QAAe,IAA0B,+B,+CCAzC,QAAe,IAA0B,6B,+CCAzC,QAAe,IAA0B,wB,8CCAzC,QAAe,IAA0B,wB,+CCAzC,QAAe,IAA0B,oC,+CCAzC,QAAe,IAA0B,kC,8CCAzC,QAAe,IAA0B,kC,+CCAzC,QAAe,IAA0B,kC,+CCAzC,QAAe,IAA0B,2B,+CCAzC,QAAe,IAA0B,sB,+CCAzC,QAAe,IAA0B,kC,+CCAzC,QAAe,IAA0B,4C,+CCAzC,QAAe,IAA0B,4C,+CCAzC,QAAe,IAA0B,6C,+CCAzC,osY","file":"main.3f7d5597623705683c2a.js","sourcesContent":["export default /*@ngInject*/ function (authenticationService) {\r\n startSetup();\r\n\r\n async function startSetup() {\r\n const authenticated = await authenticationService.isAuthenticated();\r\n let currentUser;\r\n\r\n if (authenticated) {\r\n currentUser = await authenticationService.getUser();\r\n }\r\n\r\n if (currentUser) {\r\n setup(currentUser);\r\n }\r\n }\r\n\r\n function setup(user) {\r\n let localTenant = localStorage.getItem(\"selectedTenant\");\r\n\r\n ChurnZero.push(['setAppKey', churnZeroAppKey]);\r\n\r\n if (localTenant && user.email) {\r\n localTenant = JSON.parse(localTenant);\r\n ChurnZero.push(['setContact', localTenant.CustomerId, user.email]);\r\n }\r\n }\r\n}\r\n","import churnZeroConfig from '../Config/churnZero.config';\r\n\r\nexport default /*@ngInject*/ function ($scope, $http, $filter, $timeout, $rootScope, $window, dataService, $location, helperService, configurationDataService, authenticationService) {\r\n\r\n $scope.navigateToMvcPage = function (path) {\r\n $window.open(appUrl + path, '_self');\r\n };\r\n $scope.$on('logoUpdated', getCompanyLogo);\r\n $scope.helperService = helperService;\r\n $scope.userInfo = {};\r\n\r\n activate();\r\n\r\n async function activate() {\r\n $scope.tenantID = await checkForSelectedTenant();\r\n await getUserTenants();\r\n $scope.getFavorites();\r\n await getNavigation();\r\n getCompanyLogo();\r\n }\r\n\r\n async function getCompanyLogo() {\r\n $scope.logoLoading = true;\r\n try {\r\n const { data } = await configurationDataService.getCompanyLogo();\r\n $scope.companyLogo = data;\r\n $scope.logoLoading = false;\r\n } catch {\r\n // if the call errors or returns null load default FP logo\r\n $scope.companyLogo = null;\r\n $scope.logoLoading = false;\r\n }\r\n \r\n }\r\n\r\n function checkForSelectedTenant() {\r\n var selectedTenantAsObject = angular.fromJson(localStorage.getItem(\"selectedTenant\"));\r\n if (selectedTenantAsObject) {\r\n return selectedTenantAsObject.Name;\r\n } else {\r\n $window.open(appUrl + 'redirect', '_self');\r\n }\r\n }\r\n\r\n async function getUserTenants() {\r\n const currentUser = await authenticationService.getUser();\r\n $scope.userInfo = currentUser;\r\n if (currentUser) {\r\n let response = await $http({\r\n method: 'GET',\r\n url: apiUrl + `api/auth/tenants/user/${currentUser.userId}`\r\n });\r\n\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $rootScope.availableTenantsForUser = response.data;\r\n resetSelectedTenant(response.data);\r\n }\r\n }\r\n\r\n $scope.backToReportViewer = function () {\r\n // Prevent dashboard charts from breaking;\r\n delete $rootScope.packery;\r\n\r\n if ($rootScope.tabs) {\r\n $rootScope.IsReport = true;\r\n\r\n if ($rootScope.currentSelectedTab != null) {\r\n $location.path($rootScope.currentSelectedTab.link).search('');\r\n $rootScope.tabChangedEventFired = true;\r\n }\r\n }\r\n\r\n };\r\n\r\n $scope.stringEndsInDetailed = function (string) {\r\n if (string.endsWith(\"Detailed\")) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n $scope.stringEndsInRoleDetail = function (string) {\r\n if (string.endsWith(\"Role Detail\")) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n $scope.showNavItem = function (navItem) {\r\n return navItem.length > 0;\r\n };\r\n\r\n $scope.emptySearchQuery = function () {\r\n $scope.navCtrl.query = \"\";\r\n };\r\n\r\n $scope.$on('handleFavoriteBroadcast', function () {\r\n $scope.getFavorites();\r\n });\r\n\r\n $scope.selectTenantFromNavigation = function (Tenant) {\r\n if (Tenant.LicensingOnly) {\r\n // If switching to a Licensing Only tenant we need to remove the selectedTenant from local storage to cause redirect\r\n localStorage.removeItem(\"selectedTenant\");\r\n $window.location.href = appUrl;\r\n }\r\n else if (!Tenant.OnHold) {\r\n localStorage.setItem(\"selectedTenant\", JSON.stringify(angular.copy(Tenant)));\r\n $window.location.href = appUrl;\r\n }\r\n else {\r\n swal('Attention:', 'The ' + Tenant.Name + ' environment is currently on hold. Please contact Fastpath Support for further assistance.', 'warning');\r\n }\r\n };\r\n\r\n $scope.getFavorites = function () {\r\n var selectedTenantInLocalStorage = localStorage.getItem(\"selectedTenant\");\r\n if (selectedTenantInLocalStorage) {\r\n if (selectedTenantInLocalStorage != null) {\r\n dataService.getFavorites()\r\n .then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $rootScope.allFavorites = response.data;\r\n });\r\n }\r\n }\r\n };\r\n\r\n $rootScope.navigateToFavorite = function (favorite) {\r\n $location.path(favorite.Url.substr(1));\r\n };\r\n\r\n\r\n //Load Menu only if authenticated\r\n async function getNavigation() {\r\n let authenticated = await authenticationService.isAuthenticated();\r\n if (authenticated) {\r\n dataService.getNavigation().then(function (response) {\r\n\r\n $rootScope.UserNavigationList = [];\r\n response.data.forEach(function (row) {\r\n $rootScope.UserNavigationList[row.ObjectID] = true;\r\n });\r\n\r\n $scope.navLinks = response.data;\r\n localStorage.setItem(\"NavigationObjects\", angular.toJson(response.data));\r\n });\r\n }\r\n }\r\n\r\n $scope.$on('navigation-or-security-change', function (event, args) {\r\n getNavigation();\r\n });\r\n\r\n $scope.removeStaticHeight = function ($event) {\r\n $timeout(function () {\r\n $event.currentTarget.children.forceStyleOfMetisMenu.style.height = \"\";\r\n }, 400);\r\n };\r\n\r\n $scope.changeTypeClass = function (firstLevel, secondLevel, activeOrInValue) {\r\n\r\n firstLevel = $filter('removeSpaces')(firstLevel);\r\n\r\n var splitItUp = $location.path().split(\"/\");\r\n var currentRoute = splitItUp[1];\r\n if (firstLevel === currentRoute) {\r\n if (splitItUp[2] === secondLevel) {\r\n return firstLevel = activeOrInValue;\r\n }\r\n }\r\n };\r\n\r\n $scope.changeCurrentPageClass = function (firstLevel, secondLevel, page, activeOrInValue) {\r\n\r\n firstLevel = $filter('removeSpaces')(firstLevel);\r\n page = $filter('removeSpaces')(page);\r\n\r\n var splitItUp = $location.path().split(\"/\");\r\n var currentRoute = splitItUp[1];\r\n if (firstLevel === currentRoute) {\r\n if (splitItUp[2] === secondLevel) {\r\n if (splitItUp[3] === page) {\r\n return firstLevel = activeOrInValue;\r\n }\r\n }\r\n }\r\n };\r\n\r\n $scope.changeItemClass = function (firstLevel, activeOrInValue) {\r\n firstLevel = $filter('removeSpaces')(firstLevel);\r\n\r\n var splitItUp = $location.path().split(\"/\");\r\n var currentRoute = splitItUp[1];\r\n if (firstLevel === currentRoute) {\r\n return firstLevel = activeOrInValue;\r\n }\r\n };\r\n\r\n $scope.changeReportView = function (moduleName, reportName, objectID, type) {\r\n helperService.changeReportView(moduleName, reportName, objectID, type);\r\n $scope.emptySearchQuery();\r\n };\r\n\r\n $scope.changeView = function (moduleName, viewName, type) {\r\n helperService.changeView(moduleName, viewName, type);\r\n $scope.emptySearchQuery();\r\n\r\n };\r\n\r\n function resetSelectedTenant(tenants) {\r\n let currentTenant = JSON.parse(localStorage.getItem(\"selectedTenant\"));\r\n\r\n if (currentTenant?.ID) {\r\n currentTenant = tenants.filter(tenant => tenant.ID === currentTenant.ID).first();\r\n localStorage.setItem(\"selectedTenant\", JSON.stringify(currentTenant));\r\n }\r\n\r\n churnZeroConfig(authenticationService);\r\n }\r\n}","export default /*@ngInject*/ function ($scope, $rootScope, $interval, authenticationService) {\r\n\r\n var vm = $scope.vm = {};\r\n vm.currentYear = new Date();\r\n\r\n $scope.logOut = function () {\r\n authenticationService.logOut();\r\n };\r\n\r\n $rootScope.applicationTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n\r\n function startClock() {\r\n var tick = function () {\r\n $rootScope.applicationClock = Date.now();\r\n };\r\n tick();\r\n $interval(tick, 1000);\r\n }\r\n\r\n startClock();\r\n\r\n}","export default /*@ngInject*/ function ($scope, $window, authenticationService) {\r\n\r\n var vm = $scope.vm = {};\r\n vm.currentYear = new Date();\r\n\r\n $scope.LogIn = function () {\r\n logInViaOkta();\r\n };\r\n\r\n function logInViaOkta() {\r\n authenticationService.login();\r\n }\r\n}","export default function () {\r\n return { loadingValue: true, savedValue: false, spinnerStart: new Date() };\r\n}","import swal from 'sweetalert2';\r\nimport churnZeroConfig from '../Config/churnZero.config';\r\nimport createSpinner from '../Functions/createSpinner';\r\n\r\nexport default /*@ngInject*/ function ($scope, $http, $filter, $window, helperService, authenticationService, errorsDataService) {\r\n\r\n $scope.multipleCompanies = false;\r\n $scope.showCompanies = true;\r\n $scope.signLicenseAgreement = false;\r\n $scope.loadingTenants = false;\r\n\r\n $scope.appUrl = appUrl;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n let authenticated = await authenticationService.isAuthenticated();\r\n if (!authenticated) {\r\n $window.open(appUrl + 'login', '_self');\r\n } else {\r\n $scope.getTenants();\r\n }\r\n }\r\n\r\n $scope.getTenants = async function () {\r\n\r\n $scope.loadingTenants = true;\r\n $scope.currentUser = await authenticationService.getUser();\r\n $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/auth/tenants/user/${$scope.currentUser.userId}`\r\n }).then(function successCallback(response) {\r\n $scope.loadingTenants = false;\r\n\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n var onlyTenant = response.data[0];\r\n\r\n var tenantBeforeRedirect = localStorage.getItem(\"tenantBeforeRedirect\");\r\n localStorage.removeItem(\"tenantBeforeRedirect\");\r\n\r\n //Validates that tenant being preselected is in the response\r\n var tenantBeforeRedirectIsValid = response.data.find(function (object) {\r\n var parsedTenant = JSON.parse(tenantBeforeRedirect);\r\n if (parsedTenant) {\r\n return object.ID == parsedTenant.ID;\r\n }\r\n });\r\n\r\n if (tenantBeforeRedirectIsValid) {\r\n $scope.selectTenant(JSON.parse(tenantBeforeRedirect));\r\n }\r\n\r\n // 0 Tenants\r\n else if (response.data.length === 0) {\r\n $scope.alertNoTenantsFound();\r\n }\r\n\r\n // 1 Tenant\r\n else if (response.data.length === 1) {\r\n $scope.selectTenant(onlyTenant);\r\n }\r\n // Multiple Tenants\r\n else {\r\n $scope.multipleCompanies = true;\r\n $scope.showCompanySelectionView(response);\r\n }\r\n }, function errorCallback(response) {\r\n $scope.loadingTenants = false;\r\n if (response.status === 404) {\r\n $scope.alertNoTenantsFound();\r\n } else if (response.status === 401) {\r\n $scope.alertUnauthorized();\r\n } else if (response.status === 500) {\r\n $scope.alertServerErrorHasOccured();\r\n }\r\n });\r\n };\r\n\r\n $scope.alertNoTenantsFound = function () {\r\n\r\n swal({ title: 'No tenant mapping:', text: 'You are not assigned access in any tenants. Please contact your Fastpath Assure administrator if you need access.', type: 'warning', showCancelButton: false }).then(function () {\r\n $window.open(appUrl + 'login', '_self');\r\n }, function (dismiss) {\r\n\r\n });\r\n\r\n };\r\n\r\n $scope.alertServerErrorHasOccured = function () {\r\n swal({ title: 'Internal Server Error', type: 'warning', showCancelButton: false }).then(function () {\r\n $window.open(appUrl + 'login', '_self');\r\n }, function (dismiss) {\r\n\r\n });\r\n };\r\n\r\n $scope.alertUnauthorized = function () {\r\n swal({ title: 'Unauthorized', type: 'warning', showCancelButton: false }).then(function () {\r\n $window.open(appUrl + 'login', '_self');\r\n }, function (dismiss) {\r\n\r\n });\r\n };\r\n\r\n $scope.showCompanySelectionView = function (response) {\r\n $scope.tenantsForUser = response.data;\r\n };\r\n\r\n $scope.selectTenant = function (Tenant) {\r\n if (Tenant.LicensingOnly) {\r\n $scope.licensingOnly = true;\r\n $scope.tenantIDForlicensingUpload = Tenant.ID;\r\n checkLatestImports();\r\n if ($scope.multipleCompanies) {\r\n $scope.multipleCompanies = false;\r\n }\r\n return;\r\n }\r\n\r\n if (Tenant.OnHold == false) {\r\n $scope.checkSignEula(Tenant);\r\n }\r\n else {\r\n swal('Attention:', 'The ' + Tenant.Name + ' environment is currently on hold. Please contact Fastpath Support for further assistance.', 'warning');\r\n }\r\n };\r\n\r\n $scope.checkSignEula = function (Tenant) {\r\n\r\n if (Tenant.EULASigned === true) {\r\n $scope.checklocalStorageAndRedirect(Tenant);\r\n } else {\r\n $scope.LicenseAgreementWindow(Tenant);\r\n }\r\n };\r\n\r\n $scope.LicenseAgreementWindow = function (Tenant) {\r\n $scope.showCompanies = false;\r\n $scope.signLicenseAgreement = true;\r\n $scope.tenantAgreeingToTerms = Tenant;\r\n };\r\n\r\n $scope.checklocalStorageAndRedirect = function (Tenant) {\r\n Tenant = angular.copy(Tenant);\r\n localStorage.setItem(\"selectedTenant\", JSON.stringify(Tenant));\r\n\r\n var selectedTenantAsObject = angular.fromJson(localStorage.getItem(\"selectedTenant\"));\r\n $scope.selectedTenantID = selectedTenantAsObject.Name;\r\n var locationBeforeRedirect = localStorage.getItem(\"locationBeforeRedirect\");\r\n localStorage.removeItem(\"locationBeforeRedirect\");\r\n\r\n\r\n if (locationBeforeRedirect != null) {\r\n $window.location.href = locationBeforeRedirect;\r\n }\r\n else {\r\n $window.location.href = appUrl;\r\n }\r\n\r\n churnZeroConfig(authenticationService);\r\n };\r\n\r\n $scope.DeclineLicenseAgreement = function () {\r\n document.location.href = appUrl + \"login\";\r\n };\r\n\r\n $scope.AcceptLicenseAgreement = async function () {\r\n var tenantAgreeingToTerms = angular.copy($scope.tenantAgreeingToTerms);\r\n tenantAgreeingToTerms.EULASigned = true;\r\n localStorage.setItem(\"selectedTenant\", JSON.stringify(tenantAgreeingToTerms));\r\n var data = {\r\n \"TenantId\": tenantAgreeingToTerms.ID,\r\n \"UserId\": $scope.currentUser.userId\r\n };\r\n\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/auth/tenants/signeula',\r\n headers: {\r\n 'TenantId': tenantAgreeingToTerms.ID\r\n },\r\n data: data\r\n }).then(function successCallback(response) {\r\n $scope.checklocalStorageAndRedirect(tenantAgreeingToTerms);\r\n }, function errorCallback(response) {\r\n swal('Error', response.data, 'warning');\r\n });\r\n };\r\n\r\n $scope.importLicensingFile = async function (files) {\r\n const optInText = `Does your organization have a complete picture of its access risk? In addition to running an analysis of your current license information, 'Opt-In' for a free Segregation of Duties assessment . We will run an analysis on your F&O Security data, down to the lowest security level, and report the number of conflict risks associated with the access. Please 'Opt-In' below for your free Segregation of Duties analysis.`\r\n try {\r\n await swal({\r\n title: 'Opt In for Segregation of Duties Assessment?',\r\n type: 'question',\r\n showCancelButton: true,\r\n showConfirmButton: true,\r\n text: optInText,\r\n cancelButtonText: 'Decline',\r\n confirmButtonText: 'Opt-In'\r\n });\r\n processImport(files, true);\r\n } catch {\r\n processImport(files, false);\r\n }\r\n \r\n }\r\n\r\n async function processImport(files, sodOptin) {\r\n let formData = new FormData(),\r\n file = files.first().file;\r\n $scope.showLoading = new createSpinner();\r\n formData.append(file.name, file);\r\n formData.append('SodOptIn', sodOptin);\r\n\r\n try {\r\n await $http.put(`${apiUrl}api/universal/ax7/import/files/license`, formData, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'TenantId': $scope.tenantIDForlicensingUpload }\r\n });\r\n await helperService.successfulSaveButton($scope.showLoading);\r\n files[0].cancel();\r\n swal('File Upload Complete', 'File was uploaded successfully. Analysis is in progress. Your results will be emailed to you when the Analysis is complete', 'success');\r\n $scope.importInProgress = true;\r\n } catch (error) {\r\n errorsDataService.catch(error);\r\n $scope.showLoading.loadingValue = false;\r\n }\r\n }\r\n\r\n async function checkLatestImports() {\r\n $scope.checkingLatest = true;\r\n try {\r\n let { data } = await $http.get(apiUrl + 'api/universal/imports/products/latest', {\r\n headers: { 'TenantId': $scope.tenantIDForlicensingUpload }\r\n });\r\n if (data.find(productImport => productImport.Status === 'InProgress')) {\r\n $scope.importInProgress = true;\r\n }\r\n $scope.checkingLatest = false;\r\n } catch (error) {\r\n $scope.checkingLatest = false;\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($scope, authenticationService) {\r\n\r\n var vm = $scope.vm = {};\r\n vm.currentYear = new Date();\r\n\r\n activate();\r\n\r\n function activate() {\r\n authenticationService.handleAuthentication();\r\n }\r\n}","export default /*@ngInject*/ function ($scope, $rootScope, signalRTenantFactory, signalRUserFactory, objectIdDataService, $http, dataService, $window, $location, helperService, authenticationService, whiteListService) {\r\n\r\n // This is the parent controller/viewmodel for 'angular.module('main')' and its $scope is accesible\r\n // down controllers set by the routing engine. This controller is bound to the Report.cshtml in the\r\n // Home view-folder.\r\n\r\n $scope.helperService = helperService;\r\n\r\n $rootScope.reloadConfigurationValues = function () {\r\n $http.get(apiUrl + 'api/core/configuration').then(function (response) {\r\n var configValues = {};\r\n response.data.forEach(function (row) {\r\n configValues[row.Name] = row.Value;\r\n });\r\n $rootScope.ConfigurationValues = configValues;\r\n var stringified = JSON.stringify(configValues);\r\n\r\n localStorage.setItem(\"ConfigurationValues\", stringified);\r\n });\r\n };\r\n\r\n activate();\r\n\r\n function activate() {\r\n loadUserSecurityObjects();\r\n $rootScope.reloadConfigurationValues();\r\n }\r\n\r\n $scope.$on('reportLocationEvent', function (event, data) {\r\n $scope.ReportScriptLocation = data;\r\n });\r\n\r\n dataService.getProducts().then(function (response) {\r\n $rootScope.availableProductsForUser = response.data;\r\n });\r\n\r\n $scope.$on('userpreferences-change', function (event, args) {\r\n $scope.LoadUserPreferences();\r\n });\r\n\r\n $rootScope.currentHoveredCell = function (e) {\r\n let data = { cellData: e.target[0].innerText };\r\n let template = kendo.template(\"#: cellData #\");\r\n let tooltip = template(data);\r\n return tooltip;\r\n };\r\n\r\n kendo.ui.Tooltip.fn._show = function (show) {\r\n return function (target) {\r\n const e = {\r\n sender: this,\r\n target: target,\r\n preventDefault: function () {\r\n this.isDefaultPrevented = true;\r\n }\r\n };\r\n if (typeof this.options.beforeShow === \"function\") {\r\n this.options.beforeShow.call(this, e);\r\n }\r\n if (!e.isDefaultPrevented) {\r\n show.call(this, target);\r\n }\r\n };\r\n }(kendo.ui.Tooltip.fn._show);\r\n\r\n $rootScope.currentHoveredCellOptions = {\r\n beforeShow: function (e) {\r\n var innerText = e.target[0].innerText;\r\n var innerHTML = e.target[0].innerHTML;\r\n if (innerText === \"\" || innerText === null || innerHTML.has('= Number(tabLimit) - 1) {\r\n disablepin = true;\r\n }\r\n //If there are already four reports when the fifth one is added make the pin disabled by default\r\n $rootScope.tabs.unshift({ title: viewName, content: content, id: helperService.getTabIndex() + 1, link: link, pinned: false, disablepin: disablepin, isComponent: isComponent });\r\n }\r\n }\r\n\r\n $rootScope.tabChangedEventFired = false;\r\n };\r\n\r\n\r\n //Capture the route change and redirect to the login page if not authenticated\r\n\r\n\r\n //Load the security objects the user has access to\r\n async function loadUserSecurityObjects() {\r\n //Load the navigation objects into local storage for use in routestartchange\r\n const { data } = await $http.get(apiUrl + 'api/core/usersecurity');\r\n \r\n $rootScope.UserSecurityList = [];\r\n data.forEach(row => {\r\n $rootScope.UserSecurityList[row.ObjectID] = true;\r\n });\r\n\r\n localStorage.setItem(\"UserSecurityObjects\", angular.toJson(data));\r\n\r\n return data\r\n };\r\n\r\n //Load Menu only if authenticated\r\n async function getNavigation() {\r\n let authenticated = await authenticationService.isAuthenticated();\r\n if (authenticated) {\r\n const { data } = dataService.getNavigation();\r\n\r\n $rootScope.UserNavigationList = [];\r\n data.forEach(row => {\r\n $rootScope.UserNavigationList[row.ObjectID] = true;\r\n });\r\n\r\n $scope.navLinks = data;\r\n localStorage.setItem(\"NavigationObjects\", angular.toJson(data));\r\n }\r\n }\r\n\r\n //Navigate to the route if the user has access or send them to the error page\r\n $scope.navigateToRoute = function (objectID) {\r\n var targetPath = $location.path();\r\n var targetSearch = $location.search();\r\n var targetHash = $location.hash();\r\n\r\n trackModuleForChurnZero(targetPath);\r\n\r\n if (objectID != null) {\r\n $location.path(targetPath).search(targetSearch).hash(targetHash);\r\n } else {\r\n //If there is no objectID route to the error page unless the route is the home page\r\n //Excepts for routes with no object IDs - see whiteListService.js\r\n\r\n var whiteList = whiteListService.getWhiteListedRoutes();\r\n\r\n var containedInWhiteList = whiteList.find(function (item) {\r\n return item == targetPath.toUpperCase();\r\n }) != null;\r\n\r\n if (!containedInWhiteList) {\r\n $location.path('/403');\r\n } else {\r\n $location.path(targetPath).search(targetSearch).hash(targetHash);\r\n }\r\n }\r\n };\r\n\r\n //Get the parent ID from the name in the route\r\n $scope.getParentIDFromName = function (ParentName) {\r\n var navigationObjectList;\r\n\r\n navigationObjectList = angular.fromJson(localStorage.getItem(\"NavigationObjects\"));\r\n var foundObject = navigationObjectList.find(function (object) {\r\n return object.Name.replace(/ /g, '').toUpperCase() == ParentName.toUpperCase();\r\n });\r\n\r\n if (foundObject != null) {\r\n return foundObject.ObjectID;\r\n }\r\n\r\n\r\n };\r\n\r\n //Watch for role change and update navigation and user security object lists\r\n $scope.$on('navigation-or-security-change', async function (event, args) {\r\n await loadUserSecurityObjects();\r\n await getNavigation();\r\n });\r\n\r\n $scope.$on('$routeChangeStart', async function (next, current) {\r\n //If it's a Place check if the PlaceIsReport route property is set to true\r\n //If it's a Report set IsReport to true\r\n //IsReport controls the visibility of the tab viewer on the Index page\r\n\r\n var dataPromise;\r\n\r\n //Previous URL used for loading places and reports in the tab viewer. determines if it's a new route or route.reload is called\r\n $rootScope.previousURL = $location.url();\r\n $rootScope.currentRoute = current;\r\n\r\n let authenticated = await authenticationService.isAuthenticated();\r\n if (authenticated) {\r\n if ($rootScope.UserPreferences == null) {\r\n\r\n dataPromise = $scope.LoadUserPreferences(current);\r\n dataPromise.then(function (result) {\r\n $scope.LoadTabViewerData(current);\r\n });\r\n }\r\n else {\r\n $scope.LoadTabViewerData(current);\r\n }\r\n } else {\r\n localStorage.setItem(\"locationBeforeRedirect\", $location.url());\r\n if (localStorage.getItem(\"selectedTenant\")) {\r\n localStorage.setItem(\"tenantBeforeRedirect\", localStorage.getItem(\"selectedTenant\"));\r\n }\r\n document.location.href = appUrl + \"login\";\r\n }\r\n\r\n if ($location.path() != \"/\") {\r\n helperService.setFavoriteValue().then(function (result) {\r\n if (result === 1) {\r\n $scope.favorited = { value: true };\r\n } else {\r\n $scope.favorited = { value: false };\r\n }\r\n });\r\n }\r\n\r\n });\r\n\r\n $scope.$on(\"$locationChangeStart\", function (event, next, current) {\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId(objectId);\r\n if (securityObject) {\r\n $window.document.title = securityObject.Name;\r\n } else {\r\n $window.document.title = \"Fastpath Assure\";\r\n }\r\n $scope.navigateToRoute(objectId);\r\n });\r\n });\r\n}\r\n\r\nfunction trackModuleForChurnZero(targetPath) {\r\n const regEx = /^([^\\/]*\\/){1}[^\\/]*/,\r\n match = targetPath.match(regEx);\r\n\r\n if (match.length && match.first() !== \"/\") {\r\n ChurnZero.push(['setModule', match.first().substring(1)]);\r\n } else {\r\n ChurnZero.push(['setModule', 'Dashboard']);\r\n }\r\n}\r\n\r\n","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (user, source, $uibModalInstance, authenticationService, dataService, usersDataService, errorsDataService, helperService, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.source = source;\r\n\r\n vm.onSave = onSave;\r\n vm.cancel = cancel;\r\n vm.clearOOFHours = clearOOFHours;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n let users = await dataService.getUsers();\r\n users.data = users.data.filter(user => user.Active);\r\n vm.users = $filter('orderBy')(users.data, 'UserLogonName');\r\n\r\n if (source === 'usersPage') {\r\n vm.user = Object.assign({}, user);\r\n } else {\r\n const currentUser = await authenticationService.getUser();\r\n vm.user = vm.users.find(u => u.UserID === currentUser.userId);\r\n }\r\n\r\n if (vm.user.SubstituteReviewer) {\r\n let substitute = vm.users.find(u => u.UserID === vm.user.SubstituteReviewer.SubstituteUserId);\r\n vm.substitute = substitute;\r\n }\r\n if (vm.user.OutOfOfficeHours) mapHours();\r\n vm.users = vm.users.filter(u => u.UserID !== vm.user.UserID);\r\n }\r\n\r\n async function addSubstitute() {\r\n\r\n const data = {\r\n UserId: vm.user.UserID,\r\n SubstituteReviewerId: vm.substitute.UserID\r\n };\r\n await usersDataService.addSubstitute(vm.user.UserID, data);\r\n }\r\n\r\n async function changeSubstitute() {\r\n\r\n const data = {\r\n UserId: vm.user.UserID,\r\n SubstituteReviewerId: vm.substitute.UserID\r\n };\r\n await usersDataService.changeSubstitute(vm.user.UserID, data);\r\n }\r\n\r\n async function addOOFHours() {\r\n\r\n let fromTimeMinutes = vm.fromTime.getMinutes();\r\n let fromTimeHours = vm.fromTime.getHours();\r\n\r\n vm.fromDate.setMinutes(fromTimeMinutes);\r\n vm.fromDate.setHours(fromTimeHours);\r\n\r\n let toTimeMinutes = vm.toTime.getMinutes();\r\n let toTimeHours = vm.toTime.getHours();\r\n\r\n vm.toDate.setMinutes(toTimeMinutes);\r\n vm.toDate.setHours(toTimeHours);\r\n\r\n const data = {\r\n UserId: vm.user.UserID,\r\n StartDate: vm.fromDate,\r\n EndDate: vm.toDate\r\n };\r\n await usersDataService.addOOFHours(vm.user.UserID, data);\r\n }\r\n\r\n function mapHours() {\r\n\r\n vm.fromTime = new Date(vm.user.OutOfOfficeHours.StartDate);\r\n vm.toTime = new Date(vm.user.OutOfOfficeHours.EndDate);\r\n vm.fromDate = new Date(vm.user.OutOfOfficeHours.StartDate);\r\n vm.toDate = new Date(vm.user.OutOfOfficeHours.EndDate);\r\n }\r\n\r\n async function onSave() {\r\n\r\n vm.save = new createSpinner();\r\n\r\n try {\r\n if (vm.user.SubstituteReviewer && vm.substitute) await changeSubstitute();\r\n else if (!vm.user.SubstituteReviewer && vm.substitute) await addSubstitute();\r\n else if (vm.user.SubstituteReviewer && !vm.substitute) await usersDataService.removeSubstitute(vm.user.UserID);\r\n\r\n if (vm.fromTime && vm.substitute) await addOOFHours(); // Can use any date/time model since they're all required\r\n else if (vm.user.OutOfOfficeHours && vm.substitute && !vm.fromTime) await usersDataService.removeOOFHours(vm.user.UserID);\r\n\r\n await helperService.successfulSaveButton(vm.save);\r\n cancel();\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n vm.save = null;\r\n }\r\n }\r\n\r\n function clearOOFHours() {\r\n vm.fromTime = null;\r\n vm.fromDate = null;\r\n vm.toTime = null;\r\n vm.toDate = null;\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n}","import substituteModalController from \"../../Components/Users/SubstituteModal/substituteModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $filter, $window, helperService, $uibModal, $http, applicationInsightsService, risksDataService, dataService) {\r\n\r\n var vm = $scope.vm = {};\r\n\r\n $scope.isAutoCriteriaCollapsed = true;\r\n $scope.OOFManagerCollapsed = true;\r\n $scope.objectSearchFieldCollapsed = true;\r\n $scope.preferredCompanyFieldCollapsed = true;\r\n $scope.preferredProductFieldCollapsed = true;\r\n $scope.defaultGroupReviewsCollapsed = true;\r\n $scope.settingsList = [];\r\n\r\n var Setting = function (params) {\r\n this.Name = params.Name;\r\n this.Type = params.Type;\r\n this.Description = params.Description;\r\n this.IsAutoCriteriaCollapsed = params.IsAutoCriteriaCollapsed;\r\n };\r\n\r\n\r\n\r\n //When the UserPreferenceList is populated in app.report.rootViewModel then populate the settings list for the settings flyout\r\n $rootScope.$watch('UserPreferenceList', function () {\r\n getProducts();\r\n if ($rootScope.UserPreferenceList != null && $scope.settingsList.length == 0) {\r\n $rootScope.UserPreferenceList.forEach(function (pref) {\r\n $scope.settingsList.push(\r\n new Setting({\r\n Name: pref.Name,\r\n Type: pref.Type,\r\n Description: pref.Description,\r\n IsAutoCriteriaCollapsed: true\r\n })\r\n );\r\n });\r\n }\r\n\r\n if ($rootScope.UserPreferenceList) {\r\n $rootScope.UserPreferenceList.forEach(function (setting) {\r\n if (setting.Type === 'ObjectSearchField') {\r\n $scope.searchObject = setting.Value;\r\n }\r\n \r\n if (setting.Type === 'PreferredCompany') {\r\n $scope.preferredCompany = setting.Value;\r\n }\r\n\r\n if (setting.Type === 'PreferredProduct') {\r\n $scope.preferredProduct = setting.Value;\r\n }\r\n if (setting.Type === 'DefaultGroupReviews') {\r\n $scope.defaultGroupReview = setting.Value;\r\n }\r\n });\r\n getCompanies();\r\n }\r\n\r\n });\r\n\r\n $scope.helperService = helperService;\r\n\r\n async function getCompanies() {\r\n let response = await risksDataService.getCompanies();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $scope.noCompanyDefaultDropdownObject = { \"Name\": \"No Default Company\", \"ID\": null };\r\n response.data = response.data.filter(c => c.UserHasAccess === true);\r\n response.data.unshift($scope.noCompanyDefaultDropdownObject);\r\n $scope.defaultCompanySelected = response.data.find(obj => obj.Name === $scope.preferredCompany);\r\n let indexOfDefaultCompanySelected = response.data.indexOf($scope.defaultCompanySelected);\r\n if ($scope.preferredCompany !== null) {\r\n $scope.selectedCompany = response.data[indexOfDefaultCompanySelected];\r\n } else {\r\n $scope.selectedCompany = response.data[0];\r\n }\r\n $scope.companyDataSource = response.data;\r\n }\r\n\r\n async function getProducts() {\r\n let response = await dataService.getProducts();\r\n $scope.productsDataSource = response.data;\r\n if ($scope.productsDataSource.length === 1) {\r\n $scope.checkForMultipleProducts = false;\r\n } else {\r\n $scope.checkForMultipleProducts = true;\r\n }\r\n $scope.productsDataSource = $filter('orderBy')($scope.productsDataSource, 'Name');\r\n $scope.noDefaultProductDropdownObject = { \"Name\": \"No Default Product\", \"isCustom\": false, \"ID\": null }; \r\n $scope.productsDataSource.unshift($scope.noDefaultProductDropdownObject);\r\n $scope.defaultProductSelected = $scope.productsDataSource.find(obj => obj.Name === $scope.preferredProduct);\r\n let indexOfDefaultProductSelected = $scope.productsDataSource.indexOf($scope.defaultProductSelected);\r\n if ($scope.productsDataSource.length > 0) {\r\n if ($scope.preferredProduct !== null) {\r\n $scope.selectedProduct = $scope.productsDataSource[indexOfDefaultProductSelected];\r\n } else {\r\n $scope.selectedProduct = $scope.productsDataSource[0];\r\n }\r\n }\r\n }\r\n\r\n //If right side bar closes minimize all the descriptions\r\n $rootScope.$watch('rightSidebar', function () {\r\n if ($rootScope.rightSidebar == false) {\r\n if ($scope.settingsList != null) {\r\n $scope.settingsList.forEach(function (setting) {\r\n setting.IsAutoCriteriaCollapsed = true;\r\n });\r\n }\r\n }\r\n });\r\n\r\n $scope.showHideDescription = function (passedSetting) {\r\n $scope.settingsList.forEach(function (setting) {\r\n if (setting.Value != passedSetting.Value) {\r\n setting.IsAutoCriteriaCollapsed = true;\r\n }\r\n });\r\n passedSetting.IsAutoCriteriaCollapsed = !passedSetting.IsAutoCriteriaCollapsed;\r\n };\r\n\r\n $scope.showHideOOFManagerDescription = function () {\r\n $scope.OOFManagerCollapsed = !$scope.OOFManagerCollapsed;\r\n };\r\n\r\n $scope.showHideObjectSearchFieldDescription = function () {\r\n $scope.objectSearchFieldCollapsed = !$scope.objectSearchFieldCollapsed;\r\n };\r\n\r\n $scope.showHidePreferredCompanyFieldDescription = function () {\r\n $scope.preferredCompanyFieldCollapsed = !$scope.preferredCompanyFieldCollapsed;\r\n };\r\n\r\n $scope.showHidePreferredProductFieldDescription = function () {\r\n $scope.preferredProductFieldCollapsed = !$scope.preferredProductFieldCollapsed;\r\n };\r\n\r\n $scope.showHideDefaultGroupReviewsDescription = function () {\r\n $scope.defaultGroupReviewsCollapsed = !$scope.defaultGroupReviewsCollapsed;\r\n };\r\n\r\n\r\n $scope.objectSearchFieldButton = function (searchFieldSelected) {\r\n if (searchFieldSelected === true) {\r\n $scope.searchObject = 'AltName';\r\n } else {\r\n $scope.searchObject = 'Name';\r\n }\r\n }\r\n\r\n $scope.defaultGroupReviewsButton = function (groupReviewSelected) {\r\n if (groupReviewSelected === true) {\r\n $scope.defaultGroupReview = 'ReviewType';\r\n } else {\r\n $scope.defaultGroupReview = 'User';\r\n }\r\n }\r\n\r\n $scope.openOOFManagerModal = function () {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/Users/SubstituteModal/substituteModal.html',\r\n controller: substituteModalController,\r\n controllerAs: 'smvm',\r\n backdrop: 'static',\r\n resolve: {\r\n user: () => null,\r\n source: () => 'userPreferences'\r\n }\r\n });\r\n };\r\n\r\n $scope.notificationFunction = function (archive) {\r\n if (archive.options) {\r\n if (archive.options.onTap) {\r\n archive.options.onTap(archive);\r\n }\r\n }\r\n };\r\n\r\n $scope.closeArchivedNotification = function (archive) {\r\n $rootScope.archivedNotifications.remove(function (n) {\r\n return n == archive;\r\n });\r\n };\r\n\r\n $scope.clearAllArchivedNotifications = function (archive) {\r\n $rootScope.archivedNotifications = [];\r\n };\r\n\r\n $rootScope.toggleSetting = function (name, value) {\r\n var data = {\r\n \"Name\": name,\r\n \"Value\": value\r\n };\r\n\r\n applicationInsightsService.trackEvent('UserPreference', { Name: name, Value: value });\r\n $http.put(apiUrl + 'api/core/userpreferences/' + name, data)\r\n .then(function (response) {\r\n $rootScope.$broadcast('userpreferences-change');\r\n\r\n //Code to hide/show the tab viewer when the user changes the ShowReportTabs preference\r\n if (name == \"ShowReportTabs\") {\r\n var enabled = value == \"0\" ? false : true;\r\n\r\n if (enabled == false) {\r\n $rootScope.tabs = [];\r\n }\r\n\r\n if ($rootScope.currentRoute) {\r\n if ($rootScope.currentRoute.data == null) {\r\n //Do nothing, the route is loaded but there isn't a data tag so most likely it isn't a report\r\n }\r\n else if ($rootScope.currentRoute.data.IsPlaceReport != null && $rootScope.currentRoute.data.IsPlaceReport == true) {\r\n $rootScope.IsReport = enabled;\r\n if (enabled == true && $rootScope.tabs.length == 0) {\r\n $window.location.href = $rootScope.previousURL;\r\n }\r\n }\r\n else if ($rootScope.currentRoute.data.IsReport != null && $rootScope.currentRoute.data.IsReport == true) {\r\n $rootScope.IsReport = enabled;\r\n $rootScope.tabChangedEventFired = true;\r\n if (enabled == true && $rootScope.tabs.length == 0) {\r\n $window.location.href = $rootScope.previousURL;\r\n }\r\n }\r\n }\r\n else {\r\n //If the current route isn't set change the report tab hide/show value\r\n $rootScope.IsReport = enabled;\r\n }\r\n }\r\n });\r\n\r\n };\r\n\r\n $scope.updateValue = function (name, value) {\r\n if (value === \"No Default Company\" || value === \"No Default Product\") {\r\n value = null;\r\n }\r\n var data = {\r\n \"Name\": name,\r\n \"Value\": value\r\n };\r\n\r\n applicationInsightsService.trackEvent('UserPreference', { Name: name, Value: value });\r\n $http.put(apiUrl + 'api/core/userpreferences/' + name, data)\r\n .then(function (response) {\r\n $rootScope.$broadcast('userpreferences-change');\r\n });\r\n\r\n };\r\n\r\n}","import { Modal } from \"bootstrap\";\r\nimport createSpinner from \"../Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $uibModalInstance, authenticationService, helperService, $http, $filter, $route) {\r\n\r\n var modalVm = $scope.modalVm = {};\r\n\r\n modalVm.validDate = validDate;\r\n\r\n modalVm.frequencies = ['Daily', 'Weekly', 'Monthly', 'Quarterly', 'Yearly'];\r\n\r\n modalVm.daysInWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n\r\n modalVm.daysInMonth = helperService.getDayOfMonthDropdownOptions();\r\n\r\n $scope.dropdownTypeOptions = [\r\n { text: \"CSV\", value: \"Csv\" },\r\n { text: \"Excel\", value: \"Excel\" },\r\n { text: \"PDF\", value: \"PDF\" }\r\n ];\r\n\r\n activate();\r\n\r\n function populateModels() {\r\n\r\n if ($rootScope.scheduleToEdit) {\r\n //Edit Schedule\r\n modalVm.modalInEditMode = true;\r\n var scheduleToEdit = $rootScope.scheduleToEdit;\r\n delete $rootScope.scheduleToEdit;\r\n\r\n $http.get(apiUrl + 'api/core/reportschedules/' + scheduleToEdit).then(function successCallback(response) {\r\n var data = angular.copy(response.data);\r\n modalVm.scheduleId = data.ID;\r\n modalVm.requireSignature = data.RequireSignature;\r\n modalVm.description = data.Description;\r\n $http.get(apiUrl + 'api/core/savedreports/' + data.SavedReportID).then(function (reportResponse) {\r\n var savedReportData = [];\r\n savedReportData.push(reportResponse.data);\r\n\r\n modalVm.savedReportsDataSource = savedReportData;\r\n modalVm.selectedSavedReport = modalVm.savedReportsDataSource[0];\r\n modalVm.selectedFreq = data.Frequency;\r\n modalVm.zeroRowsCheckbox = data.SendReportWithZeroRows;\r\n modalVm.selectedDayOfWeek = modalVm.daysInWeek.find(function (days) { return days === data.DayOfWeek; });\r\n\r\n modalVm.selectedDayOfMonth = modalVm.daysInMonth.find(function (days) { return days.Value === data.DayOfMonth; });\r\n\r\n modalVm.selectedExcelUsers = [];\r\n modalVm.selectedPDFUsers = [];\r\n modalVm.selectedCSVUsers = [];\r\n\r\n\r\n if (data.StartTime) {\r\n modalVm.startDateString = new Date(data.StartTime);\r\n }\r\n\r\n if (data.EndTime) {\r\n modalVm.endDateString = new Date(data.EndTime);\r\n }\r\n\r\n data.Outputs.forEach(function (row) {\r\n if (row.Format === 'Excel') {\r\n const matchedUser = modalVm.availableUsers.find(user => user.UserID === row.UserID);\r\n if (matchedUser) {\r\n modalVm.selectedExcelUsers.push(matchedUser);\r\n }\r\n }\r\n if (row.Format === 'PDF') {\r\n const matchedUser = modalVm.availableUsers.find(user => user.UserID === row.UserID);\r\n if (matchedUser) {\r\n modalVm.selectedPDFUsers.push(matchedUser);\r\n }\r\n }\r\n if (row.Format === 'Csv') {\r\n const matchedUser = modalVm.availableUsers.find(user => user.UserID === row.UserID);\r\n if (matchedUser) {\r\n modalVm.selectedCSVUsers.push(matchedUser);\r\n }\r\n }\r\n });\r\n })\r\n });\r\n\r\n } else if ($rootScope.savedReportToSchedule) {\r\n //Add Schedule to pre-selected Saved Report\r\n modalVm.modalHasPreSelectedSavedReport = true;\r\n var savedReportToSchedule = $rootScope.savedReportToSchedule;\r\n delete $rootScope.savedReportToSchedule;\r\n\r\n modalVm.selectedSavedReport = modalVm.savedReportsDataSource.filter(e => e.Id === savedReportToSchedule)[0];\r\n modalVm.requireSignature = false;\r\n modalVm.startDateString = new Date();\r\n modalVm.endDatePicker = null;\r\n modalVm.zeroRowsCheckbox = false;\r\n modalVm.selectedDayOfWeek = null;\r\n modalVm.selectedDayOfMonth = null;\r\n modalVm.selectedPDFUsers = [];\r\n modalVm.selectedExcelUsers = [];\r\n modalVm.selectedCSVUsers = [];\r\n modalVm.description = null;\r\n\r\n } else {\r\n //New Schedule\r\n modalVm.requireSignature = false;\r\n modalVm.startDateString = new Date();\r\n modalVm.endDatePicker = null;\r\n modalVm.zeroRowsCheckbox = false;\r\n modalVm.selectedDayOfWeek = null;\r\n modalVm.selectedDayOfMonth = null;\r\n modalVm.selectedPDFUsers = [];\r\n modalVm.selectedExcelUsers = [];\r\n modalVm.selectedCSVUsers = [];\r\n modalVm.description = null;\r\n }\r\n }\r\n\r\n async function activate() {\r\n let response = await $http.get(apiUrl + 'api/core/users');\r\n response.data = $filter('orderBy')(response.data, 'UserLogonName');\r\n response.data = $filter('filter')(response.data, { Active: true });\r\n modalVm.availableUsers = response.data;\r\n\r\n if ($rootScope.scheduleToEdit) {\r\n populateModels();\r\n }\r\n else {\r\n const currentUser = await authenticationService.getUser();\r\n //Populate Saved Report dropdown list\r\n $http.get(`${apiUrl}api/core/savedreports/users/${currentUser.userId}`).then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n modalVm.savedReportsDataSource = response.data;\r\n populateModels();\r\n });\r\n }\r\n }\r\n\r\n $scope.cleanCriteriaForSchedule = function () {\r\n var criteria = {};\r\n criteria.outputs = [];\r\n\r\n modalVm.selectedExcelUsers.forEach(function (row) {\r\n criteria.outputs.push({\r\n \"DeliveryType\": \"Email\",\r\n \"Format\": \"Excel\",\r\n \"ScheduleID\": null,\r\n \"UserID\": row.UserID\r\n });\r\n });\r\n\r\n modalVm.selectedPDFUsers.forEach(function (row) {\r\n criteria.outputs.push({\r\n \"DeliveryType\": \"Email\",\r\n \"Format\": \"PDF\",\r\n \"ScheduleID\": null,\r\n \"UserID\": row.UserID\r\n });\r\n });\r\n\r\n modalVm.selectedCSVUsers.forEach(function (row) {\r\n criteria.outputs.push({\r\n \"DeliveryType\": \"Email\",\r\n \"Format\": \"Csv\",\r\n \"ScheduleID\": null,\r\n \"UserID\": row.UserID\r\n });\r\n });\r\n\r\n criteria.DayOfMonths = [];\r\n criteria.Days = [];\r\n criteria.Months = [];\r\n\r\n if (modalVm.selectedDayOfMonth && modalVm.selectedFreq === 'Monthly') {\r\n criteria.DayOfMonths = [modalVm.selectedDayOfMonth.Value];\r\n }\r\n if (modalVm.selectedDayOfWeek && modalVm.selectedFreq === 'Weekly') {\r\n criteria.Days = [modalVm.selectedDayOfWeek];\r\n }\r\n\r\n return criteria;\r\n };\r\n\r\n $scope.scheduleReport = function () {\r\n var criteria = $scope.cleanCriteriaForSchedule();\r\n\r\n const postData = {\r\n \"SavedReportID\": modalVm.selectedSavedReport.Id,\r\n \"DayOfMonth\": criteria.DayOfMonths[0],\r\n \"DayOfWeek\": criteria.Days[0],\r\n \"Frequency\": modalVm.selectedFreq,\r\n \"StartTime\": modalVm.startDateString,\r\n \"EndTime\": modalVm.endDateString,\r\n \"TimeZone\": $rootScope.applicationTimeZone,\r\n \"RequireSignature\": modalVm.requireSignature,\r\n \"SendReportWithZeroRows\": modalVm.zeroRowsCheckbox,\r\n \"Outputs\": criteria.outputs,\r\n \"Description\": modalVm.description\r\n };\r\n\r\n modalVm.disableButton = new createSpinner();\r\n\r\n $http.post(apiUrl + 'api/core/reportschedules', postData).then(async function (response) {\r\n modalVm.killModal = true;\r\n await helperService.successfulSaveButton(modalVm.disableButton).then(function (result) {\r\n if (!modalVm.modalHasPreSelectedSavedReport) {\r\n $route.reload();\r\n }\r\n $uibModalInstance.close();\r\n });\r\n\r\n }, function (response) {\r\n modalVm.disableButton.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $scope.updateScheduleReport = function () {\r\n var criteria = $scope.cleanCriteriaForSchedule();\r\n\r\n const putData = {\r\n \"ID\": modalVm.scheduleId,\r\n \"Outputs\": criteria.outputs,\r\n \"DayOfMonth\": criteria.DayOfMonths[0],\r\n \"DayOfWeek\": criteria.Days[0],\r\n \"Frequency\": modalVm.selectedFreq,\r\n \"StartTime\": modalVm.startDateString,\r\n \"EndTime\": modalVm.endDateString,\r\n \"TimeZone\": $rootScope.applicationTimeZone, \r\n \"SendReportWithZeroRows\": modalVm.zeroRowsCheckbox,\r\n \"RequireSignature\": modalVm.requireSignature,\r\n \"Description\": modalVm.description\r\n };\r\n\r\n modalVm.disableButton = new createSpinner();\r\n\r\n $http.put(apiUrl + 'api/core/reportschedules/' + modalVm.scheduleId, putData).then(async function (response) {\r\n modalVm.killModal = true;\r\n await helperService.successfulSaveButton(modalVm.disableButton).then(function (result) {\r\n $uibModalInstance.close();\r\n $route.reload();\r\n });\r\n\r\n }, function (response) {\r\n modalVm.disableButton.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n function validDate(date) {\r\n if (angular.isDate(date)) return true;\r\n else return false;\r\n }\r\n\r\n modalVm.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}","import createSpinner from '../Functions/createSpinner';\r\nimport ReportSchedulerModalController from './ReportSchedulerModalController';\r\n\r\nexport /*@ngInject*/ function reportToolbarController($scope, $rootScope, $uibModal, authenticationService, SavedReportSelectorService, $http, $q, helperService, applicationInsightsService, configurationDataService) {\r\n\r\n $scope.helperService = helperService;\r\n $scope.shouldBeOpen = true;\r\n $scope.config = {};\r\n\r\n configurationDataService.getConfigurationValues().then(response => {\r\n response.data.forEach(row => {\r\n $scope.config[row.Name] = row.Value;\r\n });\r\n });\r\n\r\n $scope.showImportExportForUpdate = showImportExportForUpdate;\r\n\r\n $scope.openManageSavedLayoutsModal = function () {\r\n $uibModal.open({\r\n templateUrl: 'App/Shared/Partials/ManageSavedLayoutsModal.html',\r\n controller: manageSavedLayoutsModalController,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n };\r\n\r\n function countShowingColumns(array) {\r\n var filteredArray = array.filter(col => !col.hidden);\r\n return filteredArray.length;\r\n }\r\n\r\n $scope.hideShowColumn = function (columns, column) {\r\n\r\n if (column.isLast != true) {\r\n //If there are two columns left visible and one is being removed set the last column to isLast which prevents that column from being removed and changes the look\r\n if (countShowingColumns(columns) === 2 && !column.hidden) {\r\n var lastColumn = columns.find(col => !col.hidden && col.field !== column.field);\r\n if (lastColumn) {\r\n lastColumn.isLast = true;\r\n }\r\n } else if (!column.isLast) {\r\n //Reset the isLast value to false if there is more than one column left\r\n columns.forEach(function (col) {\r\n col.isLast = false;\r\n });\r\n }\r\n\r\n\r\n //Don't change the last column\r\n var index = columns.indexOf(column);\r\n\r\n if (column.hidden === true) {\r\n $scope.grid.showColumn(index);\r\n } else {\r\n $scope.grid.hideColumn(index);\r\n for (var i = 0; i < $scope.grid.columns.length; i++) {\r\n //Remove width on columns in places so auto fit can resize them\r\n $scope.grid.columns[i].width = null;\r\n if ($scope.grid.columns[i].hidden == false) {\r\n $scope.grid.autoFitColumn(i + 1);\r\n //6 is an arbitrary number for the possible columns visible on a given page\r\n //When setting auto fit on a report with a large number of columns it can slow down the UI\r\n //6 could be set to the number of columns currently viewable on the screen if that information can be accessed\r\n if (i > 6) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n $scope.openSaveReportModal = async function () {\r\n $scope.disableToolbarButtons = true;\r\n $scope.FilterAppliedToGrid = $scope.grid.getOptions().dataSource.filter;\r\n if ($scope.populateCriteriaModel) {\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n const currentUser = await authenticationService.getUser();\r\n $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/core/savedreports/users/${currentUser.userId}`\r\n }).then(function (response) {\r\n $scope.disableToolbarButtons = false;\r\n\r\n var raw = response.data,\r\n item,\r\n i;\r\n\r\n $scope.CurrentSavedReports = [];\r\n\r\n for (i = response.data.length - 1; i >= 0; i--) {\r\n item = raw[i];\r\n\r\n if (item.ReportDefinition.ReportId == $scope.reportId) {\r\n $scope.CurrentSavedReports.push(item);\r\n }\r\n\r\n }\r\n\r\n if ($scope.CurrentSavedReports.length == 0) {\r\n $scope.showOverwrite = false;\r\n }\r\n else {\r\n $scope.showOverwrite = true;\r\n }\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Shared/Partials/SaveReportModal.html',\r\n controller: SaveReportModalController,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n\r\n }, function errorCallback(response) {\r\n $scope.disableToolbarButtons = false;\r\n });\r\n\r\n };\r\n\r\n $scope.openScheduleReportModal = async function () {\r\n $scope.disableToolbarButtons = true;\r\n const currentUser = await authenticationService.getUser();\r\n\r\n $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/core/savedreports/users/${currentUser.userId}`\r\n }).then(function (response) {\r\n $scope.disableToolbarButtons = false;\r\n\r\n var raw = response.data,\r\n item,\r\n i;\r\n\r\n $scope.CurrentSavedReports = [];\r\n $scope.isScheduleEnabled = false;\r\n\r\n for (i = response.data.length - 1; i >= 0; i--) {\r\n item = raw[i];\r\n\r\n if (item.ReportDefinition.ReportId == $scope.reportId) {\r\n $scope.CurrentSavedReports.push(item);\r\n }\r\n }\r\n\r\n if ($scope.CurrentSavedReports.length == 0) {\r\n $scope.showScheduleReport = false;\r\n }\r\n else {\r\n $scope.showScheduleReport = true;\r\n }\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Shared/Partials/ScheduleReportModal.html',\r\n controller: scheduleReportModalToolbarController,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n\r\n }, function errorCallback(response) {\r\n $scope.disableToolbarButtons = false;\r\n });\r\n\r\n };\r\n\r\n $scope.findCurrentSavedReportByObjectID = async function (objectID) {\r\n var deferred = $q.defer();\r\n const currentUser = await authenticationService.getUser();\r\n\r\n $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/core/savedreports/users/${currentUser.userId}`\r\n }).then(function (response) {\r\n var raw = response.data,\r\n item,\r\n i,\r\n currentSavedReports = [];\r\n\r\n for (i = response.data.length - 1; i >= 0; i--) {\r\n item = raw[i];\r\n\r\n if (item.ReportDefinition.ObjectId == objectID && item.detailed == $scope.isDetailed) {\r\n currentSavedReports.push(item);\r\n }\r\n\r\n }\r\n\r\n deferred.resolve(currentSavedReports);\r\n\r\n return deferred.promise;\r\n });\r\n\r\n };\r\n\r\n $scope.openSignReportModal = function () {\r\n if ($scope.populateCriteriaModel) $scope.populateCriteriaModel();\r\n $uibModal.open({\r\n component: 'signReport',\r\n backdrop: 'static',\r\n resolve: {\r\n archiveReport: () => $scope.config['ArchiveSignedReports'] === '1',\r\n objectId: () => $scope.ObjectId,\r\n sortsAndFilters: () => $scope.sortsAndFilters,\r\n report: () => {\r\n return {\r\n id: $scope.reportId,\r\n name: $scope.reportName,\r\n definition: $scope.bundleReportDefinition($scope.grid.getOptions(), $scope.reportDetailsModel)\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.openSaveFilterModal = function () {\r\n $scope.FilterAppliedToGrid = $scope.grid.getOptions().dataSource.filter;\r\n\r\n if ($scope.FilterAppliedToGrid?.filters) {\r\n $scope.filtersDataSource.read();\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Shared/Partials/SaveFilterModal.html',\r\n controller: SaveFilterModalController,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n\r\n } else {\r\n helperService.showErrorMessage('There is no filter to save');\r\n }\r\n\r\n };\r\n\r\n $scope.openFilterManagerModal = function () {\r\n\r\n $scope.filtersDataSource.read();\r\n $uibModal.open({\r\n templateUrl: 'App/Shared/Partials/FilterManagerModal.html',\r\n controller: FilterManagerModalController,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n };\r\n\r\n $scope.bundleReportDefinition = function (gridOptions, reportDetailsModel) {\r\n var reportDefinition = { 'Filters': null, 'Sortings': null, 'Columns': null, 'Criteria': null };\r\n reportDefinition.Sortings = helperService.halPrepareSortArray(gridOptions.dataSource.sort);\r\n reportDefinition.Columns = helperService.cleanReportColumns(gridOptions.columns);\r\n\r\n var filters = helperService.halPrepareFilterArray(gridOptions.dataSource.filter);\r\n // Needed for saving report until report toolbar is refactored\r\n if ($scope.$parent.$parent.drvm) $scope.vm.filterCriteria = $scope.$parent.$parent.drvm.filterCriteria;\r\n if ($scope.vm.filterCriteria) {\r\n if ($scope.vm.filterCriteria.query) {\r\n let standardFilters = $scope.vm.filterCriteria.query.filter(filter => {\r\n return !filter.CriteriaValue;\r\n });\r\n filters = filters.concat(standardFilters);\r\n\r\n var criteriaToAdd = $scope.vm.filterCriteria.query.filter(filter => {\r\n return filter.CriteriaValue;\r\n });\r\n }\r\n if ($scope.vm.filterCriteria.dateQuery) {\r\n reportDefinition.DateFilters = $scope.vm.filterCriteria.dateQuery;\r\n }\r\n if ($scope.sortsAndFilters) {\r\n if ($scope.sortsAndFilters.DateFilters.length > 0) {\r\n reportDefinition.DateFilters = reportDefinition?.DateFilters ? reportDefinition.DateFilters.concat($scope.sortsAndFilters.DateFilters).unique() : $scope.sortsAndFilters.DateFilters.slice();\r\n }\r\n if ($scope.dateCriteria && $scope.sortsAndFilters.Filters.some(filter => filter.FieldName === $scope.dateCriteria[0].FieldName)) {\r\n const missingDateRangeFilters = $scope.sortsAndFilters.Filters.filter(filter => filter.FieldName === $scope.dateCriteria[0].FieldName);\r\n filters = filters.concat(missingDateRangeFilters);\r\n }\r\n if ($scope.sortsAndFilters.Filters.length > 0) {\r\n filters = $scope.sortsAndFilters.Filters;\r\n }\r\n }\r\n }\r\n\r\n reportDefinition.Filters = filters;\r\n reportDefinition.Criteria = SavedReportSelectorService.cleanReportCriteria(reportDetailsModel, criteriaToAdd);\r\n\r\n return reportDefinition;\r\n };\r\n\r\n $scope.bundleReportDefinitionCriteriaAndColumnsOnly = function (gridOptions, reportDetailsModel) {\r\n var reportDefinition = { 'Filters': null, 'Sortings': null, 'Columns': null, 'Criteria': null },\r\n filtersToAdd = [],\r\n criteriaToAdd = [];\r\n\r\n reportDefinition.Columns = helperService.cleanReportColumns(gridOptions.columns);\r\n\r\n if ($scope.vm.filterCriteria && $scope.vm.filterCriteria.query) {\r\n filtersToAdd = $scope.vm.filterCriteria.query.filter(filter => {\r\n return !filter.CriteriaValue;\r\n });\r\n\r\n criteriaToAdd = $scope.vm.filterCriteria.query.filter(filter => {\r\n return filter.CriteriaValue;\r\n });\r\n }\r\n\r\n if ($scope.sortsAndFilters) {\r\n if ($scope.sortsAndFilters.DateFilters) {\r\n reportDefinition.DateFilters = $scope.sortsAndFilters.DateFilters.slice();\r\n }\r\n if ($scope.dateCriteria && $scope.sortsAndFilters.Filters.some(filter => filter.FieldName === $scope.dateCriteria[0].FieldName)) {\r\n const missingDateRangeFilters = $scope.sortsAndFilters.Filters.filter(filter => filter.FieldName === $scope.dateCriteria[0].FieldName);\r\n filtersToAdd = filtersToAdd.concat(missingDateRangeFilters);\r\n }\r\n }\r\n\r\n reportDefinition.Filters = filtersToAdd;\r\n reportDefinition.Criteria = SavedReportSelectorService.cleanReportCriteria(reportDetailsModel, criteriaToAdd);\r\n return reportDefinition;\r\n };\r\n\r\n $scope.createExport = function (exportType, criteriaAndColumnsOnly) {\r\n if ($rootScope.tabs.length > 0) {\r\n let currentTab = $rootScope.tabs.find(tab => tab.id === $rootScope.currentSelectedTab.id);\r\n exportReport(currentTab.reportExportDetails, exportType, criteriaAndColumnsOnly);\r\n } else {\r\n exportReport($scope, exportType, criteriaAndColumnsOnly);\r\n }\r\n };\r\n\r\n function showImportExportForUpdate() {\r\n if ($scope.reportId === '779d0031-0b70-45ef-a0a4-b9ff21e18bec' || $scope.reportId === 'e6fb0090-a804-4ff3-9adc-2d0cbf6d3145' || $scope.reportId === '2003341d-f20e-4158-b348-fdff5d72f3fc' || $scope.reportId === '5a13fd83-5a18-4e56-baae-e983155df690' || $scope.reportId === '93ee5c13-f999-4309-af99-faf053f86bbf' || $scope.reportId === '0759018b-bcf9-4e8d-9dd5-5b6d30a90281' || $scope.reportId === '298f7386-3e76-4439-ad30-8499091f9b75' || $scope.reportId === 'c881e291-0c47-4707-8838-557a95a036cf' || $scope.reportId === '33e95fb8-e4e0-400c-ae74-c5cab633a300' || $scope.reportId === '57185a9c-af02-43b1-b4e1-19932a26851c' || $scope.reportId === 'c900515c-7f3c-429b-983e-b1ffba2ac471' || $scope.reportId === '81f86436-1d25-4201-ae9a-9c0dcb2964be' || $scope.reportId === 'b280b98b-f119-4b3a-8d2d-fccef20e9195' || $scope.reportId === '220923c6-5810-4ecd-8a81-f40d07917388' || $scope.reportId === 'cd4dd7bf-3379-4105-a81f-152e42c0cd0a') {\r\n return true;\r\n }\r\n };\r\n\r\n function exportReport(reportInfo, exportType, criteriaAndColumnsOnly) {\r\n\r\n var exportName = reportInfo.reportName;\r\n\r\n applicationInsightsService.trackEvent('Export', { Name: reportInfo.reportName, ObjectId: reportInfo.ObjectId, Type: exportType });\r\n\r\n var reportDefinition = null;\r\n\r\n if (criteriaAndColumnsOnly) {\r\n reportDefinition = $scope.bundleReportDefinitionCriteriaAndColumnsOnly(reportInfo.grid.getOptions(), reportInfo.reportDetailsModel);\r\n } else {\r\n reportDefinition = $scope.bundleReportDefinition(reportInfo.grid.getOptions(), reportInfo.reportDetailsModel);\r\n }\r\n\r\n var postData = {\r\n \"Name\": exportName,\r\n \"Format\": exportType,\r\n \"PreferredTimeZone\": $rootScope.applicationTimeZone,\r\n \"ReportDefinition\": {\r\n \"ReportId\": reportInfo.reportId,\r\n \"Columns\": reportDefinition.Columns,\r\n \"Sortings\": reportDefinition.Sortings,\r\n \"Criteria\": reportInfo.sortsAndFilters != null && reportInfo.sortsAndFilters.Criteria != null ? reportDefinition.Criteria.concat(reportInfo.sortsAndFilters.Criteria) : reportDefinition.Criteria,\r\n \"Filters\": reportDefinition.Filters,\r\n \"DateFilters\": reportDefinition.DateFilters\r\n }\r\n };\r\n\r\n if (exportType === 'CsvUpdate') {\r\n let routeString;\r\n if (reportInfo.reportId === 'b280b98b-f119-4b3a-8d2d-fccef20e9195') {\r\n routeString = \"api/audittrail/ns/places/datachanges/export\";\r\n } else if (reportInfo.reportId === '220923c6-5810-4ecd-8a81-f40d07917388') {\r\n routeString = \"api/audittrail/ns/v2/places/allchanges/export\";\r\n } else {\r\n routeString = \"api/audittrail/datachanges/export\";\r\n }\r\n\r\n $http.post(apiUrl + routeString, postData).then(function (response) {\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n } else {\r\n $http.post(apiUrl + 'api/core/exports', postData).then(function (response) {\r\n\r\n var fullExportName;\r\n if (exportType === 'Excel') {\r\n fullExportName = exportName + '.xlsx';\r\n } else if (exportType === 'PDF') {\r\n fullExportName = exportName + '.pdf';\r\n } else if (exportType === 'Csv') {\r\n fullExportName = exportName + '.csv';\r\n }\r\n\r\n response.data = { ExportId: response.data, ExportName: fullExportName };\r\n\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n }\r\n\r\n $scope.exportToExcel = function (refreshModel) {\r\n if ($scope.populateCriteriaModel) $scope.populateCriteriaModel();\r\n if (refreshModel) {\r\n $scope.grid.dataSource.data([]);\r\n $scope.createExport('Excel', true);\r\n } else {\r\n var serverLength = $scope.grid.dataSource._total;\r\n if (serverLength > 999999) {\r\n helperService.showErrorMessage('An export must be under 1,000,000 rows');\r\n } else {\r\n $scope.createExport('Excel', false);\r\n }\r\n }\r\n };\r\n\r\n $scope.exportToPDF = function (refreshModel) {\r\n if ($scope.populateCriteriaModel) $scope.populateCriteriaModel();\r\n if (refreshModel) {\r\n $scope.grid.dataSource.data([]);\r\n $scope.createExport('PDF', true);\r\n } else {\r\n $scope.createExport('PDF', false);\r\n }\r\n };\r\n\r\n $scope.exportToCSV = function (refreshModel) {\r\n if ($scope.populateCriteriaModel) $scope.populateCriteriaModel();\r\n if (refreshModel) {\r\n $scope.grid.dataSource.data([]);\r\n $scope.createExport('Csv', true);\r\n } else {\r\n $scope.createExport('Csv', false);\r\n }\r\n };\r\n\r\n $scope.exportToCSVForUpdate = function (refreshModel) {\r\n if ($scope.populateCriteriaModel) $scope.populateCriteriaModel();\r\n if (refreshModel) {\r\n $scope.grid.dataSource.data([]);\r\n $scope.createExport('CsvUpdate', true);\r\n } else {\r\n $scope.createExport('CsvUpdate', false);\r\n }\r\n };\r\n\r\n $scope.newReport = function () {\r\n $scope.showOverwrite = false;\r\n };\r\n\r\n $scope.launchSavedReportFromScheduleReport = function () {\r\n $scope.showScheduleReport = false;\r\n };\r\n\r\n $scope.changeView = function (moduleName, viewName, type) {\r\n helperService.changeView(moduleName, viewName, type);\r\n };\r\n\r\n}\r\n\r\nfunction SaveReportModalController($scope, $uibModalInstance, applicationInsightsService, $http, helperService) {\r\n\r\n //Save Report\r\n $scope.saveReport = function (name, description) {\r\n\r\n $scope.pleaseWait = new createSpinner();\r\n\r\n applicationInsightsService.trackEvent('SaveReport', { Name: $scope.reportName, ObjectId: $scope.ObjectId });\r\n\r\n var reportDefinition = $scope.bundleReportDefinition($scope.grid.getOptions(), $scope.reportDetailsModel),\r\n postData = {\r\n \"Description\": description,\r\n \"Name\": name,\r\n \"ReportDefinition\": {\r\n \"ReportId\": $scope.reportId,\r\n \"Columns\": reportDefinition.Columns,\r\n \"Sortings\": reportDefinition.Sortings,\r\n \"Criteria\": $scope.sortsAndFilters != null && $scope.sortsAndFilters.Criteria != null ? reportDefinition.Criteria.concat($scope.sortsAndFilters.Criteria) : reportDefinition.Criteria,\r\n \"Filters\": reportDefinition.Filters,\r\n \"DateFilters\": reportDefinition.DateFilters\r\n }\r\n };\r\n\r\n $http.post(apiUrl + 'api/core/savedreports', postData).then(async function (response) {\r\n $scope.killModal = true;\r\n await helperService.successfulSaveButton($scope.pleaseWait).then(function (result) {\r\n $uibModalInstance.close();\r\n });\r\n\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n $scope.pleaseWait.loadingValue = false;\r\n });\r\n\r\n };\r\n\r\n $scope.overwriteReport = function (selectedReport) {\r\n\r\n $scope.pleaseWait = new createSpinner();\r\n\r\n var reportDefinition = $scope.bundleReportDefinition($scope.grid.getOptions(), $scope.reportDetailsModel),\r\n postData = {\r\n \"Description\": selectedReport.Description,\r\n \"Name\": selectedReport.Name,\r\n \"ReportDefinition\": {\r\n \"ReportId\": $scope.ReportId,\r\n \"Columns\": reportDefinition.Columns,\r\n \"Sortings\": reportDefinition.Sortings,\r\n \"Criteria\": $scope.sortsAndFilters != null && $scope.sortsAndFilters.Criteria != null ? reportDefinition.Criteria.concat($scope.sortsAndFilters.Criteria) : reportDefinition.Criteria,\r\n \"Filters\": reportDefinition.Filters,\r\n \"DateFilters\": reportDefinition.DateFilters\r\n }\r\n };\r\n\r\n postData.Id = selectedReport.Id;\r\n $http.put(apiUrl + 'api/core/savedreports/' + selectedReport.Id, postData).then(async function (response) {\r\n $scope.killModal = true;\r\n await helperService.successfulSaveButton($scope.pleaseWait).then(function (result) {\r\n $uibModalInstance.close();\r\n });\r\n\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n $scope.pleaseWait.loadingValue = false;\r\n });\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n}\r\n\r\nfunction scheduleReportModalToolbarController($scope, $uibModalInstance, $uibModal, $rootScope, dataService, $http, helperService) {\r\n\r\n //Schedule Report\r\n $scope.scheduleReport = function (scheduleReportId) {\r\n $uibModalInstance.close();\r\n\r\n if (scheduleReportId) {\r\n $rootScope.savedReportToSchedule = scheduleReportId;\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Controllers/ReportSchedulerModal.html',\r\n controller: ReportSchedulerModalController,\r\n backdrop: 'static',\r\n size: 'md'\r\n });\r\n }\r\n };\r\n\r\n $scope.saveReportToSchedule = function (name, description) {\r\n var reportDefinition = $scope.bundleReportDefinition($scope.grid.getOptions(), $scope.reportDetailsModel),\r\n postData = {\r\n \"Description\": description,\r\n \"Name\": name,\r\n \"ReportDefinition\": {\r\n \"ReportId\": $scope.reportId,\r\n \"Columns\": reportDefinition.Columns,\r\n \"Sortings\": reportDefinition.Sortings,\r\n \"Criteria\": reportDefinition.Criteria = $scope.sortsAndFilters != null && $scope.sortsAndFilters.Criteria != null ? reportDefinition.Criteria.concat($scope.sortsAndFilters.Criteria) : reportDefinition.Criteria,\r\n \"Filters\": reportDefinition.Filters,\r\n \"DateFilters\": reportDefinition.DateFilters\r\n }\r\n };\r\n $http.post(apiUrl + 'api/core/savedreports', postData).then(function (response) {\r\n\r\n $uibModalInstance.close();\r\n\r\n dataService.getSavedReportsByID(response.data).then(function (response) {\r\n $rootScope.savedReportToSchedule = response.data.Id;\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Controllers/ReportSchedulerModal.html',\r\n controller: ReportSchedulerModalController,\r\n backdrop: 'static',\r\n size: 'md'\r\n });\r\n });\r\n\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n}\r\n\r\nfunction SaveFilterModalController($scope, $uibModalInstance, applicationInsightsService, $http, helperService) {\r\n $scope.form = {};\r\n $scope.form.filterType = \"0\";\r\n\r\n $scope.saveFilter = function () {\r\n if ($scope.userForm.$valid) {\r\n $scope.pleaseWait = new createSpinner();\r\n let FilterList = helperService.halPrepareFilterArray($scope.grid.getOptions().dataSource.filter);\r\n let filterSaveObject = {\r\n Name: $scope.user.name,\r\n Description: !$scope.user.description ? null : $scope.user.description,\r\n Filters: FilterList,\r\n Type: $scope.form.filterType,\r\n ReportId: $scope.ObjectId\r\n };\r\n\r\n applicationInsightsService.trackEvent('SaveFilter', { Name: $scope.reportName, ObjectId: $scope.ObjectId });\r\n \r\n\r\n $http.post(apiUrl + 'api/core/userreportfilters', filterSaveObject)\r\n .then(async function (response) {\r\n $scope.killModal = true;\r\n await helperService.successfulSaveButton($scope.pleaseWait).then(function (result) {\r\n $uibModalInstance.close();\r\n $scope.filtersDataSource.read();\r\n });\r\n }, function (response) {\r\n $scope.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n}\r\n\r\nfunction FilterManagerModalController($scope, $uibModalInstance) {\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n}\r\n\r\nfunction manageSavedLayoutsModalController($scope, $uibModalInstance, $http, helperService) {\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n }; // end done\r\n\r\n $scope.manageSavedLayoutsDataSource = new kendo.data.DataSource({\r\n transport: {\r\n\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/core/reportlayouts').then(function (response) {\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n var columnsForGridOptions = [\r\n { field: \"LayoutName\", title: \"Report Name\", filterable: false },\r\n { field: \"ProductID\", title: \"Product\", template: '{{dataItem.ProductID | convertProductIdToProductName}}', filterable: false },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n ];\r\n\r\n $scope.manageSavedLayoutsGridOptions = helperService.setNonPageableGridOptions(columnsForGridOptions);\r\n\r\n $scope.deleteLayout = function (id) {\r\n var rows = $scope.manageSavedLayoutsDataSource.data();\r\n\r\n rows.forEach(function (row) {\r\n if (row.ID.toString() === id.toString()) {\r\n\r\n var url = apiUrl + 'api/core/reportlayouts/' + row.ID;\r\n $http.delete(url).\r\n then(function (response) {\r\n rows.remove(row);\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n });\r\n };\r\n\r\n\r\n}","export default /*@ngInject*/ function ($scope, helperService) {\r\n $scope.helperService = helperService;\r\n}\r\n","export default /*@ngInject*/ function ($scope, $rootScope, $timeout, $location, helperService) {\r\n\r\n var removedTab = false;\r\n var tabAdded = false;\r\n\r\n if ($rootScope.tabs == null) {\r\n $rootScope.tabs = [];\r\n }\r\n\r\n if ($rootScope.tabs != null) {\r\n $rootScope.$watch('tabs.length', function () {\r\n if ($rootScope.tabs.length > 1) {\r\n\r\n if ($rootScope.tabs.length >= Number(tabLimit) + 1) {\r\n for (var i = $rootScope.tabs.length - 1; i > 0; i--) {\r\n if ($rootScope.tabs[i].pinned == false) {\r\n $rootScope.tabs.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n $timeout(function () {\r\n if (!removedTab) {\r\n $scope.active = helperService.getTabIndex();\r\n }\r\n removedTab = false;\r\n\r\n\r\n }, 1);\r\n\r\n\r\n //If there is more than one tab enable all the close buttons\r\n angular.forEach($rootScope.tabs, function (tab) {\r\n tab.hideCloseButton = false;\r\n });\r\n }\r\n\r\n //If only one tab is left hide the close button\r\n if ($rootScope.tabs.length == 1) {\r\n $rootScope.tabs[0].hideCloseButton = true;\r\n }\r\n\r\n //Only one tab was present when new report was run, set current tab to first tab\r\n if ($rootScope.tabs.length == 2) {\r\n removedTab = false;\r\n $scope.setCurrentTab($rootScope.tabs[0]);\r\n }\r\n\r\n }, true);\r\n }\r\n\r\n\r\n $scope.tabChanged = function (tab) {\r\n if (tab.link != null) {\r\n $location.path(tab.link, false);\r\n $rootScope.tabChangedEventFired = true;\r\n }\r\n };\r\n\r\n $scope.setCurrentTab = function (tab) {\r\n if (tab.link != null) {\r\n $rootScope.currentSelectedTab = tab;\r\n //When removing current tab this changes the URL to the new current tab\r\n if (removedTab) {\r\n $location.path(tab.link).search('');\r\n $rootScope.tabChangedEventFired = true;\r\n }\r\n }\r\n };\r\n\r\n\r\n $scope.tabIndex = function () {\r\n $scope.active = $scope.active - 1;\r\n };\r\n\r\n $scope.removeTab = function (event, index, tab) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if ($rootScope.tabs.length > 1) {\r\n\r\n removedTab = true;\r\n\r\n //Remove tab\r\n $rootScope.tabs.splice(index, 1);\r\n\r\n //If the current tab is being deleted then the active tab needs changed\r\n if (tab.id == $scope.active) {\r\n $scope.active = $scope.active;\r\n }\r\n\r\n setDisablePin(false);\r\n\r\n\r\n }\r\n\r\n };\r\n\r\n $scope.pinThisTab = function (event, index, tab) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n tab.pinned = !tab.pinned;\r\n\r\n\r\n //Move the pinned tab to the end of the\r\n var tabArrayIndex = $rootScope.tabs.findIndex($rootScope.tabs.find({ id: tab.id }));\r\n $rootScope.tabs.splice(tabArrayIndex, 1);\r\n\r\n var firstAvailableIndex = $rootScope.tabs.length;\r\n for (var i = 0; i < $rootScope.tabs.length; i++) {\r\n if ($rootScope.tabs[i].pinned) {\r\n firstAvailableIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n $rootScope.tabs.splice(firstAvailableIndex, 0, tab);\r\n\r\n var count = 0;\r\n $rootScope.tabs.forEach(function (tab) {\r\n count += tab.pinned ? 1 : 0;\r\n });\r\n //Disable the fifth pin if four are already pinned to leave room for a new report\r\n if (count >= Number(tabLimit) - 1) {\r\n setDisablePin(true);\r\n }\r\n else {\r\n setDisablePin(false);\r\n }\r\n\r\n if (tab.id == $scope.active) {\r\n $scope.active = tab.id;\r\n }\r\n };\r\n\r\n var setDisablePin = function (value) {\r\n angular.forEach($rootScope.tabs, function (tab) {\r\n if (tab.pinned == false) {\r\n tab.disablepin = value;\r\n }\r\n });\r\n };\r\n\r\n}\r\n","export default /*@ngInject*/ function ($scope, $rootScope, $route, ViewProductImportPageService, $filter, dataService, authenticationService, KPIOverrideDefinitions, KPIGeneratorService, helperService, CustomReportServices, homeDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.runReport = runReport;\r\n vm.savedReportsDataSource = [];\r\n vm.usersByProductStatistics = [];\r\n vm.companiesByProductStatistics = [];\r\n vm.listOfCards = [];\r\n vm.expandNewDashboardSection = expandNewDashboardSection;\r\n vm.cancelNewDashboard = expandNewDashboardSection;\r\n vm.createDashboardIsCollapsed = false;\r\n vm.focusNewDashboardName = false;\r\n vm.dashboardName = '';\r\n vm.launchReport = launchReport;\r\n vm.fusionChartEvents = {};\r\n vm.launchReportFromTable = launchReportFromTable;\r\n vm.launchReportFromTile = launchReportFromTile;\r\n vm.createPartialSavedReportAndNavigate = createPartialSavedReportAndNavigate;\r\n vm.postCardsToApi = postCardsToApi;\r\n vm.reloadPackery = reloadPackery;\r\n vm.cardChangedVisibility = cardChangedVisibility;\r\n vm.deleteDashboard = deleteDashboard;\r\n vm.createDashboard = createDashboard;\r\n vm.dashboardSelected = dashboardSelected;\r\n vm.setDashboardSettings = setDashboardSettings;\r\n vm.showLabels = showLabels;\r\n\r\n function runReport(savedReport) {\r\n CustomReportServices.loadSavedReport(savedReport);\r\n }\r\n\r\n vm.$onInit = init;\r\n\r\n async function init() {\r\n setEvents();\r\n setFusionChart();\r\n\r\n await setupDashboard();\r\n await setSavedReportsByUser();\r\n await setUsersByProductStatistics();\r\n await setCompaniesByProductStatistics();\r\n\r\n vm.reloadPackery();\r\n vm.postCardsToApi();\r\n }\r\n\r\n function setEvents() {\r\n $scope.$on('$routeChangeStart', () => {\r\n delete $rootScope.packery;\r\n\r\n if (vm.listOfCards) {\r\n vm.listOfCards.forEach(card => {\r\n if (card.ChartId) {\r\n var fusionChart = FusionCharts.items[card.ChartId];\r\n if (fusionChart) {\r\n fusionChart.dispose();\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n $rootScope.$on('packery-card-changed-position', (event, args) => {\r\n vm.listOfCards.forEach(row => {\r\n args.forEach(card => {\r\n if (card.cardId === row.Id) {\r\n row.Ordinal = card.cardIndex;\r\n }\r\n });\r\n });\r\n\r\n vm.postCardsToApi();\r\n vm.reloadPackery();\r\n });\r\n }\r\n\r\n function setFusionChart() {\r\n vm.fusionChartEvents = {\r\n beforeRender: () => {\r\n $rootScope.packery.layout();\r\n },\r\n renderComplete: () => {\r\n $rootScope.packery.layout();\r\n },\r\n dataPlotClick: (ev, props) => {\r\n var objectId = ev.sender.args.dataSource.reportObjectId;\r\n\r\n if (ev.sender.args.type === 'stackedcolumn2d') {\r\n let filters = [\r\n { 'Label': ev.sender.args.dataSource.reportCategory, 'Value': props.categoryLabel },\r\n { 'Label': ev.sender.args.dataSource.reportSeries, 'Value': props.datasetName }\r\n ]\r\n vm.createPartialSavedReportAndNavigate(filters, objectId);\r\n } else {\r\n var field = ev.sender.args.dataSource.reportField;\r\n var row = ev.sender.args.dataSource.data[props.index];\r\n\r\n vm.createPartialSavedReportAndNavigate([{ 'Label': field, 'Value': row.Label }], objectId);\r\n }\r\n }\r\n };\r\n }\r\n\r\n async function setSavedReportsByUser() {\r\n const currentUser = await authenticationService.getUser();\r\n let { data } = await dataService.getSavedReportsByUser(currentUser.userId);\r\n\r\n vm.savedReportsDataSource = $filter('orderBy')(data, 'Name');\r\n }\r\n\r\n async function setUsersByProductStatistics() {\r\n const { data } = await homeDataService.getUserStatistics();\r\n\r\n vm.usersByProductStatistics = data;\r\n }\r\n\r\n async function setCompaniesByProductStatistics() {\r\n const { data } = await homeDataService.getCompanyStatistics();\r\n\r\n vm.companiesByProductStatistics = data;\r\n }\r\n\r\n async function setupDashboard() {\r\n let response = await homeDataService.getDashboards();\r\n \r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n\r\n vm.listOfDashboards = response.data;\r\n\r\n var defaultDashboard = $rootScope.UserPreferences['DefaultDashboard'];\r\n\r\n var selectedDashboard = null;\r\n\r\n if (defaultDashboard) {\r\n selectedDashboard = vm.listOfDashboards.filter(e => e.Id.toLowerCase() === defaultDashboard.toLowerCase())[0];\r\n }\r\n\r\n if (selectedDashboard) {\r\n vm.selectedDashboard = vm.listOfDashboards.filter(e => e.Id === selectedDashboard.Id)[0];\r\n } else {\r\n vm.selectedDashboard = response.data[0];\r\n }\r\n\r\n response = await homeDataService.getCards();\r\n\r\n response.data = $filter('filter')(response.data, { HasAccess: 'true' });\r\n var listOfCards = response.data;\r\n\r\n listOfCards = $filter('orderBy')(listOfCards, 'Ordinal');\r\n\r\n\r\n //Card Defaults\r\n listOfCards.forEach(card => {\r\n card.Icon = 'icons8-combo-chart';\r\n });\r\n\r\n response = await homeDataService.getCharts();\r\n\r\n response.data.forEach(row => {\r\n\r\n var selectedCard = null;\r\n\r\n listOfCards.forEach(card => {\r\n if (card.ChartId === row.Id) {\r\n selectedCard = card;\r\n }\r\n });\r\n\r\n if (selectedCard) {\r\n switch (row.ChartType) {\r\n case 'table':\r\n selectedCard.Chart = KPIGeneratorService.createGenericTableChart(row);\r\n break;\r\n case 'doughnut2d':\r\n selectedCard.Chart = KPIGeneratorService.createGenericDoughnutChart(row);\r\n break;\r\n case 'column2d':\r\n selectedCard.Chart = KPIGeneratorService.createGenericColumnChart(row);\r\n break;\r\n case 'tile':\r\n selectedCard.Chart = KPIGeneratorService.createGenericTile(row);\r\n break;\r\n case 'stackedcolumn2d':\r\n selectedCard.Chart = KPIGeneratorService.createGenericStackedColumnChart(row);\r\n break;\r\n default:\r\n selectedCard.Chart = KPIGeneratorService.createGenericColumnChart(row);\r\n break;\r\n }\r\n }\r\n\r\n listOfCards.forEach(card => {\r\n KPIOverrideDefinitions.overrideById(card);\r\n });\r\n });\r\n\r\n\r\n vm.listOfCards = listOfCards;\r\n vm.setDashboardSettings();\r\n\r\n vm.listOfCards.forEach(card => {\r\n\r\n if (card.Visible && card.Chart) {\r\n homeDataService.getChartByCard(card.Chart.APIUrl).then(response => {\r\n if (card.Chart.CardType === 'tile') {\r\n card.Chart = KPIGeneratorService.setTileChartValues(card.Chart, response.data);\r\n }\r\n\r\n if (card.Chart.CardType === 'stackedcolumn2d') {\r\n card.Chart.DataSource.dataset = response.data.DataSet;\r\n card.Chart.DataSource.categories = response.data.Categories;\r\n response.data = KPIGeneratorService.setPropertiesForStackedChart(response.data);\r\n }\r\n else {\r\n card.Chart.DataSource.data = response.data;\r\n response.data = KPIGeneratorService.setPropertiesForChart(response.data);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n function expandNewDashboardSection() {\r\n vm.createDashboardIsCollapsed = !vm.createDashboardIsCollapsed;\r\n vm.focusNewDashboardName = true;\r\n }\r\n\r\n function launchReport(objectId) {\r\n ViewProductImportPageService.launchReportByObjectId(objectId);\r\n }\r\n\r\n function launchReportFromTable(label, card) {\r\n var field = card.Chart.DataSource.reportField;\r\n vm.createPartialSavedReportAndNavigate([{ 'Label': field, 'Value': label }], card.Chart.ObjectId);\r\n }\r\n\r\n function launchReportFromTile(card) {\r\n vm.createPartialSavedReportAndNavigate([], card.Chart.ObjectId);\r\n }\r\n\r\n function createPartialSavedReportAndNavigate(filters, objectId) {\r\n $rootScope.loadedSavedReport = KPIGeneratorService.createSavedReportStub(filters, objectId);\r\n ViewProductImportPageService.launchReportByObjectId(objectId);\r\n }\r\n\r\n async function postCardsToApi() {\r\n var postData = { 'Cards': [] };\r\n\r\n vm.listOfCards.forEach(card => {\r\n if (vm.selectedDashboard.Id === card.DashboardId) {\r\n\r\n var item = {\r\n Id: card.Id,\r\n Ordinal: card.Ordinal,\r\n Visible: card.Visible,\r\n Expanded: card.Expanded,\r\n DashboardId: card.DashboardId\r\n };\r\n\r\n postData.Cards.push(item);\r\n }\r\n });\r\n if (postData.Cards.length > 0) {\r\n await homeDataService.createCard(postData);\r\n }\r\n }\r\n\r\n function reloadPackery() {\r\n if ($rootScope.packery) {\r\n $rootScope.packery.layout();\r\n }\r\n }\r\n\r\n function cardChangedVisibility(card) {\r\n if (card.Visible) {\r\n if (card.DashboardId === \"00000000-0000-0000-0000-000000000000\") {\r\n card.DashboardId = vm.selectedDashboard.Id;\r\n }\r\n\r\n homeDataService.getChartByCard(card.Chart.APIUrl).then(response => {\r\n if (card.Chart.CardType === 'tile') {\r\n card.Chart = KPIGeneratorService.setTileChartValues(card.Chart, response.data);\r\n }\r\n if (card.Chart.CardType === 'stackedcolumn2d') {\r\n card.Chart.DataSource.dataset = response.data.DataSet;\r\n card.Chart.DataSource.categories = response.data.Categories;\r\n response.data = KPIGeneratorService.setPropertiesForStackedChart(response.data);\r\n }\r\n else {\r\n card.Chart.DataSource.data = response.data;\r\n response.data = KPIGeneratorService.setPropertiesForChart(response.data);\r\n }\r\n\r\n });\r\n }\r\n vm.postCardsToApi();\r\n vm.reloadPackery();\r\n }\r\n\r\n async function deleteDashboard() {\r\n try {\r\n await homeDataService.deleteDashboard(vm.selectedDashboard.Id);\r\n\r\n $route.reload();\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n }\r\n }\r\n\r\n async function createDashboard() {\r\n let postData = {\r\n \"Name\": vm.dashboardName\r\n },\r\n response;\r\n\r\n try {\r\n response = await homeDataService.createDashboard(postData);\r\n\r\n vm.selectedDashboard = { \"Id\": response.data };\r\n dashboardSelected();\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n }\r\n }\r\n\r\n async function dashboardSelected() {\r\n let data = {\r\n Name: \"DefaultDashboard\",\r\n Value: vm.selectedDashboard.Id\r\n };\r\n\r\n try {\r\n await homeDataService.getDashboard(data)\r\n $rootScope.UserPreferences['DefaultDashboard'] = vm.selectedDashboard.Id;\r\n $route.reload();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function setDashboardSettings() {\r\n vm.listOfCards.forEach(card => {\r\n if (!vm.selectedDashboard.Cards.some(c => c.Id === card.Id)) {\r\n card.Visible = false;\r\n card.Ordinal = 0;\r\n return;\r\n }\r\n vm.selectedDashboard.Cards.forEach(selectedCard => {\r\n if (card.Id === selectedCard.Id) {\r\n card.Expanded = selectedCard.Expanded;\r\n card.Ordinal = selectedCard.Ordinal;\r\n card.Visible = selectedCard.Visible;\r\n card.DashboardId = selectedCard.DashboardId;\r\n }\r\n });\r\n });\r\n vm.listOfCards = $filter('orderBy')(vm.listOfCards, 'Ordinal');\r\n }\r\n\r\n\r\n function showLabels(dataSource, showlabels, valuesToFlip) {\r\n if (showlabels) {\r\n valuesToFlip.forEach(row => {\r\n dataSource.chart[row] = \"1\";\r\n });\r\n } else {\r\n valuesToFlip.forEach(row => {\r\n dataSource.chart[row] = \"0\";\r\n });\r\n }\r\n }\r\n\r\n}","import controller from \"./home.controller\";\r\n\r\n/* home.component.js */\r\n\r\n/**\r\n * @desc component home\r\n * @example \r\n */\r\n\r\nconst home = {\r\n controller: controller,\r\n controllerAs: 'hvm',\r\n templateUrl: '/App/Components/home/home.tmpl.html'\r\n};\r\n\r\nexport default home;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (dataService, modelValue, $uibModalInstance, helperService, myDownloadsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.addUserToList = addUserToList;\r\n vm.deleteSelectedUser = deleteSelectedUser;\r\n vm.dismiss = dismiss;\r\n vm.submitSelectedUsers = submitSelectedUsers;\r\n\r\n vm.exportId = modelValue.Id;\r\n vm.ownerId = modelValue.OwnerId;\r\n vm.selectedUserIds = [];\r\n\r\n async function activate() {\r\n await getUsers();\r\n await getCurrentSharedUsers();\r\n\r\n vm.disableSave = true;\r\n\r\n vm.selectedUsersList.forEach(function (selectedUser) {\r\n vm.availableUsersList = vm.availableUsersList.filter(user => user.UserID !== selectedUser.SharedUserId);\r\n }); \r\n\r\n vm.availableUsersCopy = [...vm.availableUsersList];\r\n\r\n }\r\n\r\n activate();\r\n\r\n async function getUsers() {\r\n let { data } = await dataService.getUsers();\r\n\r\n vm.availableUsersList = data.filter(user => user.Active && user.UserID !== vm.ownerId);\r\n\r\n }\r\n\r\n async function getCurrentSharedUsers() {\r\n vm.pleaseWait = new createSpinner();\r\n vm.pleaseWait.loadingValue = true;\r\n try {\r\n let { data } = await myDownloadsDataService.getCurrentSharedUsers(vm.exportId);\r\n vm.selectedUsersList = data.length > 0 ? data : [];\r\n vm.loadedUsers = [...vm.selectedUsersList];\r\n vm.pleaseWait.loadingValue = false;\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n }\r\n\r\n function addUserToList(user) {\r\n vm.disableSave = false;\r\n vm.availableUsersList.forEach(function (row, i) {\r\n if (row.UserID === user.UserID) {\r\n vm.availableUsersList.splice(i, 1);\r\n vm.selectedUsersList.push(\r\n {\r\n ExportId: vm.exportId,\r\n SharedUserId: user.UserID,\r\n SharedUserName: user.UserLogonName\r\n }\r\n ); \r\n } \r\n });\r\n }\r\n\r\n function deleteSelectedUser(selectedUser) {\r\n vm.disableSave = false;\r\n vm.selectedUsersList.forEach(function (row, i) {\r\n if (row.SharedUserId === selectedUser.SharedUserId) {\r\n vm.selectedUsersList.splice(i, 1);\r\n vm.current = row;\r\n vm.availableUsersList.push(\r\n {\r\n UserID: row.SharedUserId,\r\n UserLogonName: row.SharedUserName\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n async function submitSelectedUsers() {\r\n vm.updateInProgress = new createSpinner();\r\n vm.selectedUsersList.forEach(function (user) {\r\n vm.selectedUserIds.push(user.SharedUserId);\r\n });\r\n\r\n let postData = {\r\n ExportId: vm.exportId,\r\n UserIds: vm.selectedUserIds\r\n };\r\n\r\n try {\r\n await myDownloadsDataService.updateSharedUsers(postData, vm.exportId);\r\n await helperService.successfulSaveButton(vm.updateInProgress);\r\n cancel();\r\n } catch {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (modelValue, $uibModalInstance, helperService, myDownloadsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.dismiss = dismiss;\r\n vm.saveDownload = saveDownload;\r\n vm.editItem = modelValue.Name;\r\n\r\n async function saveDownload() {\r\n vm.saving = new createSpinner();\r\n const data = { 'Id': modelValue.Id, 'Name': vm.editItem };\r\n\r\n try {\r\n await myDownloadsDataService.saveNameChange(modelValue.Id, data);\r\n await helperService.successfulSaveButton(vm.saving);\r\n cancel();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import shareExportsModalController from \"./shareExportsModal.controller\";\r\nimport editDownloadModalController from \"./editDownloadModal.controller\"\r\n\r\nexport default /*@ngInject*/ function ($filter, authenticationService, ExportReportService, $uibModal, myDownloadsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.determineStatusLabelClass = determineStatusLabelClass;\r\n vm.setExportingOpacity = setExportingOpacity;\r\n vm.deleteExport = deleteExport;\r\n vm.downloadItemClicked = downloadItemClicked;\r\n vm.downloadItem = downloadItem;\r\n vm.clearObjectSelection = clearObjectSelection;\r\n vm.openEditDownloadModal = openEditDownloadModal;\r\n vm.changeRadioFilter = changeRadioFilter;\r\n vm.selectDownload = selectDownload;\r\n vm.selectAllDownloads = selectAllDownloads;\r\n vm.checkSelectAll = checkSelectAll;\r\n vm.exportsAreLoading = false;\r\n vm.showFilters = false;\r\n vm.selectMultiple = false;\r\n vm.exportIds = { ExportIds: [] };\r\n vm.menuOptions = [\r\n {\r\n text: 'Download',\r\n click: function ($itemScope, $event, modelValue) {\r\n downloadItem(modelValue);\r\n },\r\n displayed: function ($itemScope, $event, modelValue) {\r\n return (modelValue.Status === 'ReadyForDownload' || modelValue.Status === 'Downloaded');\r\n }\r\n },\r\n {\r\n text: 'Edit',\r\n click: function ($itemScope, $event, modelValue) {\r\n openEditDownloadModal(modelValue);\r\n },\r\n displayed: function (modelValue) {\r\n return (modelValue.exportItem.Owner.UserLogonName === vm.userName);\r\n },\r\n hasTopDivider: true\r\n },\r\n {\r\n text: 'Share Export',\r\n click: function (modelValue) {\r\n openShareExportModal(modelValue.exportItem);\r\n },\r\n displayed: function (modelValue) {\r\n return (modelValue.exportItem.Owner.UserLogonName === vm.userName);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: function ($itemScope, $event, modelValue) {\r\n deleteExport(modelValue);\r\n },\r\n displayed: function (modelValue) {\r\n return (modelValue.exportItem.Owner.UserLogonName === vm.userName);\r\n }\r\n }\r\n ];\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getExports();\r\n getExportsSharedWithUser();\r\n vm.selectedDownloads = [];\r\n vm.downloadsRadioFilter = 1;\r\n }\r\n\r\n async function getExports() {\r\n vm.exportsAreLoading = true;\r\n\r\n try {\r\n vm.currentUser = await authenticationService.getUser();\r\n vm.userName = vm.currentUser.fullName;\r\n let { data } = await myDownloadsDataService.getExports(vm.currentUser.userId);\r\n data = $filter('orderBy')(data, 'CreatedOn', 'desc');\r\n\r\n vm.listOfExports = data;\r\n vm.myDownloads = [...vm.listOfExports];\r\n\r\n vm.exportsAreLoading = false;\r\n } catch {\r\n vm.exportsAreLoading = false;\r\n }\r\n }\r\n\r\n async function getExportsSharedWithUser() {\r\n vm.exportsAreLoading = true;\r\n vm.listOfSharedExports = [];\r\n\r\n try {\r\n let { data } = await myDownloadsDataService.getExportsSharedWithUser(vm.currentUser.userId);\r\n data = $filter('orderBy')(data, 'CreatedOn', 'desc');\r\n\r\n vm.listOfSharedExports = data;\r\n\r\n // Only show filter bar if there are downloads shared with user\r\n if (vm.listOfSharedExports.length > 0) {\r\n vm.showFilters = true;\r\n } else {\r\n vm.showFilters = false;\r\n }\r\n\r\n if (vm.downloadsRadioFilter === 0) {\r\n changeRadioFilter('Shared With Me');\r\n }\r\n\r\n vm.exportsAreLoading = false;\r\n } catch {\r\n vm.exportsAreLoading = false;\r\n }\r\n }\r\n\r\n function determineStatusLabelClass(ActionName) {\r\n if (ActionName === 'Excel') {\r\n return 'excel-file-icon';\r\n } else if (ActionName === 'PDF') {\r\n return 'pdf-file-icon';\r\n } else if (ActionName === 'Csv') {\r\n return 'csv-file-icon';\r\n }\r\n }\r\n\r\n function setExportingOpacity(status) {\r\n if (status === 'Exporting') {\r\n return 'file-exporting-opacity';\r\n }\r\n }\r\n\r\n async function deleteExport(item) {\r\n vm.exportsAreLoading = true;\r\n vm.exportIds.ExportIds = vm.selectedDownloads.map(item => item.Id);\r\n try {\r\n if (vm.selectMultiple) {\r\n await myDownloadsDataService.deleteMultiple(vm.exportIds);\r\n } else {\r\n await myDownloadsDataService.deleteExport(item.Id);\r\n }\r\n\r\n await getExports();\r\n getExportsSharedWithUser();\r\n clearObjectSelection();\r\n\r\n if (!vm.listOfExports.length) {\r\n vm.selectMultiple = false;\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function downloadItemClicked(item) {\r\n if (item.Status !== 'Error' && !vm.selectMultiple && item.Status !== 'Exporting') {\r\n downloadItem(item);\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n async function downloadItem(item) {\r\n vm.exportsAreLoading = true;\r\n vm.noErrorDownloadItems = vm.selectedDownloads.filter(download => download.Status !== 'Error');\r\n vm.exportIds.ExportIds = vm.noErrorDownloadItems.map(item => item.Id);\r\n\r\n try {\r\n if (vm.selectMultiple) {\r\n await myDownloadsDataService.downloadMultiple(vm.exportIds, vm.noErrorDownloadItems);\r\n } else {\r\n ExportReportService.downloadReportExport(item);\r\n }\r\n await getExports();\r\n getExportsSharedWithUser();\r\n clearObjectSelection();\r\n } catch {\r\n clearObjectSelection();\r\n }\r\n }\r\n\r\n async function openShareExportModal(modelValue) {\r\n let shareExportModal = await $uibModal.open({\r\n templateUrl: '/App/Components/myDownloads/shareExportsModal.tmpl.html',\r\n controller: shareExportsModalController,\r\n controllerAs: 'semvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n modelValue: () => modelValue\r\n }\r\n });\r\n\r\n try {\r\n await shareExportModal.result;\r\n await getExports();\r\n getExportsSharedWithUser();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openEditDownloadModal(modelValue) {\r\n let editDownloadModal = await $uibModal.open({\r\n templateUrl: '/App/Components/myDownloads/editDownloadModal.tmpl.html',\r\n controller: editDownloadModalController,\r\n controllerAs: 'edmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n modelValue: () => modelValue\r\n }\r\n });\r\n\r\n try {\r\n await editDownloadModal.result;\r\n await getExports();\r\n getExportsSharedWithUser();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function selectDownload(download) {\r\n if (download.selected) {\r\n vm.selectedDownloads.push(download);\r\n } else {\r\n vm.selectedDownloads.splice(vm.selectedDownloads.indexOf(download), 1);\r\n }\r\n\r\n checkSelectAll();\r\n\r\n }\r\n\r\n function checkSelectAll() {\r\n vm.allDownloadsSelected = vm.listOfExports.every(item => item.selected);\r\n }\r\n function selectAllDownloads() {\r\n vm.listOfExports.forEach(item => {\r\n if (item.Status !== 'Exporting') {\r\n if (vm.searchBoxSelectedObjects) {\r\n if (item.Name.toUpperCase().includes(vm.searchBoxSelectedObjects.toUpperCase())) {\r\n item.selected = vm.allDownloadsSelected;\r\n }\r\n } else {\r\n item.selected = vm.allDownloadsSelected;\r\n }\r\n }\r\n });\r\n\r\n vm.selectedDownloads = vm.listOfExports.filter(item => item.selected);\r\n }\r\n\r\n function clearObjectSelection() {\r\n vm.listOfExports.forEach(item => item.selected = false); \r\n vm.selectedDownloads = [];\r\n vm.allDownloadsSelected = false;\r\n }\r\n\r\n function changeRadioFilter(type) {\r\n switch (type) {\r\n case 'My Downloads':\r\n vm.listOfExports = vm.myDownloads;\r\n clearObjectSelection();\r\n break;\r\n case 'Shared With Me':\r\n //When case type is 'Shared With Me', push each object to new array and assign proper values so Object Names align with 'vm.listOfExports' list - this ensures that the html works/displays cohesively\r\n vm.listOfExports = vm.listOfSharedExports.reduce((newList, row) => {\r\n newList.push({\r\n Id: row.ExportId,\r\n Name: row.ExportName,\r\n Status: row.ExportStatus,\r\n CreatedOn: row.CreatedOn,\r\n Type: row.ExportType,\r\n Owner: {\r\n UserLogonName: row.OwnerName\r\n }\r\n });\r\n return newList;\r\n }, []);\r\n clearObjectSelection();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}","/* myDownloads.component.js */\r\n\r\nimport myDownloadsController from \"./myDownloads.controller\";\r\n\r\n/**\r\n * @desc component to display My Downloads\r\n * @example \r\n */\r\n\r\nconst myDownloads = {\r\n controller: myDownloadsController,\r\n controllerAs: 'mdvm',\r\n templateUrl: '/App/Components/myDownloads/myDownloads.tmpl.html'\r\n};\r\n\r\nexport default myDownloads;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($timeout, authenticationService, emailNavigationService, $http, $window, $location, helperService, controlLibraryDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.signReport = signReport;\r\n vm.uploadFiles = uploadFiles;\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.pageParams = $location.search();\r\n vm.tenantInlocalStorage = angular.fromJson(localStorage.getItem(\"selectedTenant\"));\r\n await redirectIfNeeded();\r\n getReportInfo();\r\n }\r\n\r\n async function redirectIfNeeded() {\r\n vm.currentUser = await authenticationService.getUser();\r\n\r\n if (vm.pageParams.tenantid) {\r\n if (vm.pageParams.tenantid === vm.tenantInlocalStorage.ID) {\r\n vm.sufficientSecurityAccess = true;\r\n return;\r\n }\r\n else {\r\n findTenantFromEmail();\r\n }\r\n }\r\n else {\r\n vm.sufficientSecurityAccess = true;\r\n return;\r\n }\r\n }\r\n\r\n async function findTenantFromEmail() {\r\n let validTenant, { data } = await emailNavigationService.availableTenants(vm.currentUser.userId)\r\n validTenant = data.find(tenant => tenant.ID === vm.pageParams.tenantid);\r\n\r\n if (validTenant) {\r\n vm.redirectToTenant = true;\r\n localStorage.setItem(\"selectedTenant\", JSON.stringify(angular.copy(validTenant)));\r\n $window.location.reload();\r\n } else {\r\n vm.insufficientSecurityAccess = true;\r\n }\r\n }\r\n\r\n async function getReportInfo() {\r\n let { data } = await $http.get(`${apiUrl}api/core/savedReports/${vm.pageParams.reportid}`);\r\n vm.reportInfo = data;\r\n }\r\n\r\n async function signReport() {\r\n let signReportObject = {\r\n \"SavedReportId\": vm.pageParams.reportid,\r\n \"Notes\": vm.notes\r\n };\r\n\r\n //If executionid is included in the query string add it to the API call\r\n if (vm.pageParams.executionid) {\r\n signReportObject = $.extend({}, signReportObject, { \"ExecutionId\": vm.pageParams.executionid });\r\n }\r\n\r\n if (vm.tenantInlocalStorage.ID === vm.pageParams.tenantid) {\r\n try {\r\n let { data } = await $http.post(`${apiUrl}api/core/cases/report/${vm.pageParams.reportid}`, signReportObject)\r\n localStorage.removeItem('locationBeforeRedirect');\r\n if (vm.attachments.flow.files.length > 0) {\r\n const requestId = data;\r\n await uploadFiles(vm.attachments.flow.files, requestId);\r\n }\r\n await helperService.showConfirmationMessageNoButtons(\"Success\", \"Report has been signed. You will now be redirected to the homepage\");\r\n $timeout(function () {\r\n $window.open(appUrl, '_self');\r\n }, 3500);\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n }\r\n } else {\r\n helperService.showErrorMessage(`You are not logged into the correct tenant for this report. Please log into the ${vm.correctTenant} tenant.`);\r\n }\r\n\r\n }\r\n\r\n async function uploadFiles(files, requestId) {\r\n let fd = new FormData();\r\n vm.saving = new createSpinner();\r\n\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"Signature\");\r\n fd.append(\"DataTypeId\", requestId);\r\n\r\n await controlLibraryDataService.addAttachments(fd);\r\n await helperService.successfulSaveButton(vm.saving);\r\n }\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n}\r\n"," import signReportFromEmailController from \"./signReportFromEmail.controller\";\r\n\r\n/* signReportFromEmail.component.js */\r\n\r\n/**\r\n * @desc component for Signing Reports via Email link\r\n * @example \r\n */\r\n\r\nconst signReportFromEmail = {\r\n controller: signReportFromEmailController,\r\n controllerAs: 'srfevm',\r\n templateUrl: '/App/Components/signReportFromEmail/signReportFromEmail.tmpl.html'\r\n};\r\n\r\nexport default signReportFromEmail;","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./site.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./site.scss\";\n export default content && content.locals ? content.locals : undefined;\n","export default /*@ngInject*/ function ($routeProvider, $locationProvider) {\r\n $routeProvider.when('/', { template: '', caseInsensitiveMatch: true, data: {} });\r\n\r\n\r\n //-- Access Control --\r\n\r\n //-- ARM Places --\r\n $routeProvider.when('/AccessControl/Place/RoleAccess', { templateUrl: '/App/Components/roleAccess/roleAccess.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/roleAccess/roleAccess.html', PlaceName: 'Role Access' } });\r\n $routeProvider.when('/AccessControl/Place/RoleAccessDetailed', { templateUrl: '/App/Components/roleAccess/roleAccess.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/roleAccess/roleAccess.html', PlaceName: 'Role Access Detailed' } });\r\n $routeProvider.when('/AccessControl/Place/ResponsibilityAccess', { templateUrl: '/App/Components/responsibilityAccess/responsibilityAccess.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/responsibilityAccess/responsibilityAccess.html', PlaceName: 'Responsibility Access' } });\r\n $routeProvider.when('/AccessControl/Place/ResponsibilityAccessDetailed', { templateUrl: '/App/Components/responsibilityAccess/responsibilityAccess.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/responsibilityAccess/responsibilityAccess.html', PlaceName: 'Responsibility Access Detailed' } });\r\n $routeProvider.when('/AccessControl/Place/UserAccess', { templateUrl: '/App/Components/userAccess/userAccess.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/userAccess/userAccess.html', PlaceName: 'User Access' } });\r\n $routeProvider.when('/AccessControl/Place/UserAccessDetailed', { templateUrl: '/App/Components/UserAccessDetailed/UserAccessDetailedView.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/UserAccessDetailed/UserAccessDetailedView.html', PlaceName: 'User Access Detailed' } });\r\n $routeProvider.when('/AccessControl/Place/Dynamics365forFinanceandSupplyChainQuantification', { templateUrl: '/App/Components/D365ArmQuantification/D365ArmQuantification.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Place/RoleRisk', { templateUrl: '/App/Components/roleRisks/roleRisks.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/roleRisks/roleRisks.html', PlaceName: 'Role Risk' } });\r\n $routeProvider.when('/AccessControl/Place/RoleRiskDetailed', { templateUrl: '/App/Components/roleRisks/roleRisks.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/roleRisks/roleRisks.html', PlaceName: 'Role Risk Detailed' } });\r\n $routeProvider.when('/AccessControl/Place/SAPCodeChecker', { templateUrl: '/App/Components/SAPCodeChecker/SAPCodeCheckerView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Place/SAPRiskQuantification', { templateUrl: '/App/Components/SAPRiskQuantification/SAPRiskQuantification.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Place/NetSuiteRiskQuantification', { templateUrl: '/App/Components/NetSuiteArmQuantification/NSQuantificationSelection.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Place/NetSuiteRiskQuantification/Details', { templateUrl: '/App/Components/NetSuiteArmQuantification/NetSuiteArmQuantificationView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Place/RoleBusinessProcess', { templateUrl: '/App/Components/roleBusinessProcess/roleBusinessProcess.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/roleBusinessProcess/roleBusinessProcess.html', PlaceName: 'Role Business Process' } });\r\n $routeProvider.when('/AccessControl/Place/RoleBusinessProcessDetailed', { templateUrl: '/App/Components/roleBusinessProcess/roleBusinessProcess.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/roleBusinessProcess/roleBusinessProcess.html', PlaceName: 'Role Business Process Detailed' } });\r\n $routeProvider.when('/AccessControl/Place/UserBusinessProcess', { templateUrl: '/App/Components/userBusinessProcess/userBusinessProcess.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/userBusinessProcess/userBusinessProcess.html', PlaceName: 'User Business Process' } });\r\n $routeProvider.when('/AccessControl/Place/UserBusinessProcessDetailed', { templateUrl: '/App/Components/UserBusinessProcessDetailed/userBusinessProcessDetailed.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/UserBusinessProcessDetailed/userBusinessProcessDetailed.html', PlaceName: 'User Business Process Detailed' } });\r\n $routeProvider.when('/AccessControl/Place/ResponsibilityRisk', { templateUrl: '/App/Components/responsibilityRisk/responsibilityRisk.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/responsibilityRisk/responsibilityRisk.html', PlaceName: 'Responsibility Risk' } });\r\n $routeProvider.when('/AccessControl/Place/ResponsibilityRiskDetailed', { templateUrl: '/App/Components/responsibilityRisk/responsibilityRisk.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/responsibilityRisk/responsibilityRisk.html', PlaceName: 'Responsibility Risk Detailed' } });\r\n $routeProvider.when('/AccessControl/Place/UserRisk', { templateUrl: '/App/Components/userRisk/userRisk.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/userRisk/userRisk.html', PlaceName: 'User Risk' } });\r\n $routeProvider.when('/AccessControl/Place/UserRiskDetailed', { templateUrl: '/App/Components/userRiskDetailed/userRiskDetailed.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/userRiskDetailed/userRiskDetailed.html', PlaceName: 'User Risk Detailed' } });\r\n $routeProvider.when('/AccessControl/Place/UserRiskRoleDetail', { templateUrl: '/App/Components/userRiskDetailed/userRiskDetailed.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/userRiskDetailed/userRiskDetailed.html', PlaceName: 'User Risk Role Detail' } });\r\n $routeProvider.when('/AccessControl/Place/NetSuiteSecurityDesigner', { templateUrl: '/App/Components/NetSuiteSecurityDesigner/NetSuiteSecurityDesignerView.html', caseInsensitiveMatch: true, data: {} });\r\n\r\n //-- ARM Setup --\r\n $routeProvider.when('/AccessControl/Setup/maintainRiskRuleset', { templateUrl: '/App/Components/maintainRiskRuleset/maintainRiskRuleset.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/maintainMitigations', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/maintainRiskLevels', { templateUrl: '/App/Components/maintainRiskLevels/riskLevels.tmpl.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/maintainBusinessCycles', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/maintainStatuses', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/assignRisks', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/transferRuleset', { templateUrl: '/App/Components/transferRuleset/transferRuleset.html', caseInsensitiveMatch: true });\r\n $routeProvider.when('/AccessControl/Setup/manageArchives', { templateUrl: '/App/Components/ManageArchives/ManageArchivesView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/startNewAudit', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/maintainbusinessprocesses', { templateUrl: '/App/Components/MaintainBusinessProcess/maintainBusinessProcess.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/controllibrary', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/OracleAutoMitigations', { templateUrl: '/App/Components/Oracle/ApplyAutoMitigation/ApplyAutoMitigationView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/OracleCloudAutoMitigations', { template: '', caseInsensitiveMatch: true, resolve: { product: function () { return 'orfc'; } } });\r\n $routeProvider.when('/AccessControl/Setup/PeoplesoftAutoMitigations', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/ApplyDefaultMitigations', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessControl/Setup/SAPMaintainPowerfulProfiles', { template: '', caseInsensitiveMatch: true, data: {} });\r\n\r\n //-- Access Certifications --\r\n $routeProvider.when('/AccessCertifications/Report/:reportName/:objectID', { templateUrl: '/App/Components/DynamicReports/ReportViewer.html', caseInsensitiveMatch: true, data: { IsReport: true } });\r\n $routeProvider.when('/AccessCertifications/Place/MyReviews', { templateUrl: '/App/Components/Certifications/MyReviews/myReviews.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessCertifications/Place/AllReviews', { templateUrl: '/App/Components/Certifications/AllReviews/certificationsAllReview.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessCertifications/Setup/ReviewSchedules', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/AccessCertifications/Setup/NotificationTeams', { template: '', caseInsensitiveMatch: true, data: {} });\r\n\r\n //-- Transaction Monitoring --\r\n $routeProvider.when('/TransactionMonitoring/Place/OracleControlManagement', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/TransactionMonitoring/Report/:reportName/:objectID', { templateUrl: '/App/Components/DynamicReports/ReportViewer.html', caseInsensitiveMatch: true, data: { IsReport: true } });\r\n $routeProvider.when('/TransactionMonitoring/Place/OracleIncidents', { template: '', caseInsensitiveMatch: true, data: { IsPlaceReport: true, isComponent: true, ViewLocation: 'transaction-monitoring-incident-management', PlaceName: 'Oracle Incidents' } });\r\n\r\n //-- Audit Trail --\r\n $routeProvider.when('/ChangeTracking/Setup/MaintainTrackingTemplates', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/ChangeTracking/Setup/WorkdayMaintainTemplates', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/ChangeTracking/Setup/ApplyTrackingTemplates', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/ChangeTracking/Setup/TrackingTemplateDetails', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/ChangeTracking/Setup/ReportGenerator', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/ChangeTracking/Setup/MaintainOptionSets', { template: '', caseInsensitiveMatch: true });\r\n $routeProvider.when('/ChangeTracking/Setup/MaintainTemplates', { templateUrl: '/App/Components/NetSuiteAuditTrail/MaintainTemplates/maintainTemplates.html', caseInsensitiveMatch: true });\r\n $routeProvider.when('/ChangeTracking/Setup/OracleCloudMaintainProducts', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/ChangeTracking/Setup/OracleCloudMaintainSnapshotReports', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/ChangeTracking/Setup/MaintainUserGroups', { template: '', caseInsensitiveMatch: true });\r\n $routeProvider.when('/ChangeTracking/Setup/SalesforceMaintainObjectTracking', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/ChangeTracking/Place/ManageDocumentation', { template: '', caseInsensitiveMatch: true });\r\n $routeProvider.when('/ChangeTracking/Place/NetSuiteAllChanges', { template: '', caseInsensitiveMatch: true, data: { IsPlaceReport: true, isComponent: true, ViewLocation: 'all-changes', PlaceName: 'NetSuite All Changes' } });\r\n $routeProvider.when('/ChangeTracking/Place/CurrentSnapshot', { template: '', caseInsensitiveMatch: true, data: { IsPlaceReport: true, isComponent: true, ViewLocation: 'current-snapshot', PlaceName: 'Current Snapshot' } });\r\n $routeProvider.when('/ChangeTracking/Place/DataChanges', { templateUrl: '/App/Components/DataChanges/DataChangesView.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/DataChanges/DataChangesView.html', PlaceName: 'Data Changes' } });\r\n $routeProvider.when('/ChangeTracking/Place/SalesforceDataChanges', { templateUrl: '/App/Components/DataChanges/DataChangesView.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/DataChanges/DataChangesView.html', PlaceName: 'Data Changes' } });\r\n $routeProvider.when('/ChangeTracking/Place/WorkdayDataChanges', { templateUrl: '/App/Components/DataChanges/DataChangesView.html', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'App/Components/DataChanges/DataChangesView.html', PlaceName: 'Data Changes' } });\r\n $routeProvider.when('/ChangeTracking/Place/SalesforceSetupDataChanges', { template: '', caseInsensitiveMatch: true, data: { IsPlaceReport: true, ViewLocation: 'setup-changes', PlaceName: 'Setup Changes', isComponent: true } });\r\n $routeProvider.when('/ChangeTracking/Place/NetSuiteDataChanges', { template: '', caseInsensitiveMatch: true, data: { IsPlaceReport: true, isComponent: true, ViewLocation: 'netsuite-data-changes', PlaceName: 'NetSuite Data Changes' } });\r\n $routeProvider.when('/ChangeTracking/Place/OracleCloudDataChanges', { template: '', caseInsensitiveMatch: true, data: { IsPlaceReport: true, isComponent: true, ViewLocation: 'oracle-cloud-data-changes', PlaceName: 'Oracle Cloud Data Changes' } });\r\n $routeProvider.when('/ChangeTracking/Place/SnapshotChanges', { template: '', caseInsensitiveMatch: true, data: { IsPlaceReport: true, isComponent: true, ViewLocation: 'snapshot-changes', PlaceName: 'Snapshot Changes' } });\r\n $routeProvider.when('/ChangeTracking/Place/SnapshotComparison', { template: '', caseInsensitiveMatch: true, data: { IsPlaceReport: true, isComponent: true, ViewLocation: 'snapshot-comparison', PlaceName: 'Snapshot Comparison' } });\r\n $routeProvider.when('/ChangeTracking/Setup/DataChangesConfiguration', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/ChangeTracking/Setup/SnapshotConfiguration', { template: '', caseInsensitiveMatch: true });\r\n $routeProvider.when('/ChangeTracking/Setup/ManageData', { template: '', caseInsensitiveMatch: true, data: {} });\r\n\r\n //-- Identity Manager --\r\n $routeProvider.when('/IdentityManager/Setup/ApprovalRules', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/IdentityManager/Place/OpenRequests', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/IdentityManager/Place/OutstandingApprovals', { template: '', caseInsensitiveMatch: true, data: {} });\r\n\r\n $routeProvider.when('/IdentityManager/Place/RequestHistory', { template: '', caseInsensitiveMatch: true, data: { IsPlaceReport: true, isComponent: true, ViewLocation: 'request-history', PlaceName: 'Request History' } });\r\n $routeProvider.when('/IdentityManager/Place/RequestHistoryDetailed', { template: '', caseInsensitiveMatch: true, data: { IsPlaceReport: true, isComponent: true, ViewLocation: 'request-history', PlaceName: 'Request History Detailed' } });\r\n\r\n $routeProvider.when('/IdentityManager/Place/RequestManagement', { templateUrl: '/App/Components/RequestManagement/RequestManagementSelection.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/IdentityManager/Place/RequestManagement/New', { templateUrl: '/App/Components/RequestManagement/Paths/RequestManagementNewView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/IdentityManager/Place/RequestManagement/Modify', { templateUrl: '/App/Components/RequestManagement/Paths/RequestManagementModifyView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/IdentityManager/Place/RequestManagement/Terminate', { templateUrl: '/App/Components/RequestManagement/Paths/RequestManagementTerminateView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/IdentityManager/RequestDetails', { templateUrl: '/App/Components/IdentityManagerRequestDetails/IdentityManagerRequestDetailsView.html', caseInsensitiveMatch: true });\r\n $routeProvider.when('/IdentityManager/Review', { templateUrl: '/App/Components/IdentityManagerRequestDetails/IdentityManagerRequestDetailsView.html', caseInsensitiveMatch: true });\r\n\r\n //-- Security Designer --\r\n $routeProvider.when('/SecurityDesigner/Place/Dynamics365forFinanceandSupplyChainRoles', { templateUrl: '/App/Components/AXSecurityDesigner/Roles/AXSecurityDesignerRolesView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SecurityDesigner/Place/Dynamics365forFinanceandSupplyChainDuties', { templateUrl: '/App/Components/AXSecurityDesigner/Duties/AXSecurityDesignerDutiesView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SecurityDesigner/Place/Dynamics365forFinanceandSupplyChainPrivileges', { templateUrl: '/App/Components/AXSecurityDesigner/Privileges/AXSecurityDesignerPrivilegesView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SecurityDesigner/Place/Dynamics365forFinanceandSupplyChainSecurityModels', { templateUrl: '/App/Components/AXSecurityDesigner/SecurityModels/AXSecurityDesignerSecurityModelsView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SecurityDesigner/Dynamics365forFinanceandSupplyChainSimulationDetails', { templateUrl: '/App/Components/AXSecurityDesigner/SimulationDetails/AXSecurityDesignerSimulationDetailsView.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SecurityDesigner/Place/Dynamics365forFinanceandSupplyChainTaskRecordings', { templateUrl: '/App/Components/AXSecurityDesigner/taskRecordingManager/taskRecordingManager.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SecurityDesigner/Place/DynamicsAXTaskRecordings', { templateUrl: '/App/Components/AXSecurityDesigner/taskRecordingManager/taskRecordingManager.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SecurityDesigner/Place/Dynamics365forFinanceandSupplyChainSecurityMigration', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SecurityDesigner/Place/SAPSimulations', { template: '', caseInsensitiveMatch: true, data: {} });\r\n\r\n //-- Report Management --\r\n $routeProvider.when('/ReportManagement/Place/SavedReports', { template: '' });\r\n $routeProvider.when('/ReportManagement/Place/Schedules', { template: '' });\r\n\r\n //-- System Configuration --\r\n $routeProvider.when('/SystemConfiguration/Place/ApprovalGroups', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Place/CompanyTemplates', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Place/CrossPlatformCompanies', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Place/CrossPlatformUsers', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Place/MaintainSystemRoles', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Place/MaintainSystemUsers', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Place/Notifications', { template: '', caseInsensitiveMatch: true });\r\n $routeProvider.when('/SystemConfiguration/Place/OwnershipGroups', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Place/RequesterGroups', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Place/RoleTemplates', { templateUrl: '/App/Components/RoleTemplates/roleTemplates.tmpl.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Place/SupervisorAssignments', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Place/SystemSettings', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Place/UserRestrictions', { templateUrl: 'App/Components/userRestrictions/userRestrictions.tmpl.html', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Setup/ExcludedUsers', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SystemConfiguration/Setup/ExcludedRoles', { template: '', caseInsensitiveMatch: true, data: {} });\r\n\r\n //-- Integrations --\r\n $routeProvider.when('/Integrations/Place/Connections', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/Integrations/Place/Plugins', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/Integrations/Place/APIClients', { template: '', caseInsensitiveMatch: true, data: {} });\r\n\r\n //-- Security Setup --\r\n $routeProvider.when('/SecuritySetup/Place/AuditLogs', { template: '', caseInsensitiveMatch: true, data: { IsPlaceReport: true, isComponent: true, ViewLocation: 'audit-logs', PlaceName: 'Audit Logs' } });\r\n $routeProvider.when('/SecuritySetup/Place/Roles', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SecuritySetup/Place/SecurityAssignment', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/SecuritySetup/Place/Users', { template: '', caseInsensitiveMatch: true, data: {} });\r\n \r\n //-- Dynamic Report Viewers --\r\n $routeProvider.when('/SecurityDesigner/Report/:reportName/:objectID', { templateUrl: '/App/Components/DynamicReports/ReportViewer.html', caseInsensitiveMatch: true, data: { IsReport: true } });\r\n $routeProvider.when('/AccessControl/Report/:reportName/:objectID', { templateUrl: '/App/Components/DynamicReports/ReportViewer.html', caseInsensitiveMatch: true, data: { IsReport: true } });\r\n $routeProvider.when('/SecuritySetup/Report/:reportName/:objectID', { templateUrl: '/App/Components/DynamicReports/ReportViewer.html', caseInsensitiveMatch: true, data: { IsReport: true } });\r\n $routeProvider.when('/SystemConfiguration/Report/:reportName/:objectID', { templateUrl: '/App/Components/DynamicReports/ReportViewer.html', caseInsensitiveMatch: true, data: { IsReport: true } });\r\n $routeProvider.when('/ReportManagement/Report/:reportName/:objectID', { templateUrl: '/App/Components/DynamicReports/ReportViewer.html', caseInsensitiveMatch: true, data: { IsReport: true } });\r\n $routeProvider.when('/IdentityManager/Report/:reportName/:objectID', { templateUrl: '/App/Components/DynamicReports/ReportViewer.html', caseInsensitiveMatch: true, data: { IsReport: true } });\r\n $routeProvider.when('/ChangeTracking/Report/:reportName/:objectID', { templateUrl: '/App/Components/DynamicReports/ReportViewer.html', caseInsensitiveMatch: true, data: { IsReport: true } });\r\n $routeProvider.when('/Integrations/Report/:reportName/:objectID', { templateUrl: '/App/Components/DynamicReports/ReportViewer.html', caseInsensitiveMatch: true, data: { IsReport: true } });\r\n\r\n //-- No Module --\r\n $routeProvider.when('/SignReport', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/Downloads', { template: '', caseInsensitiveMatch: true, data: {} });\r\n $routeProvider.when('/Inbox', { template: '', caseInsensitiveMatch: true, data: {} });\r\n\r\n //-- Security Error --\r\n $routeProvider.when('/403', { templateUrl: '/App/Shared/Partials/SecurityError.html', caseInsensitiveMatch: true, data: {} });\r\n\r\n $routeProvider.otherwise({ redirectTo: '/' });\r\n $locationProvider.html5Mode(true).hashPrefix('!');\r\n\r\n}","export default /*@ngInject*/ function (authenticationService) {\r\n setupRaygun();\r\n\r\n async function setupRaygun() {\r\n const authenticated = await authenticationService.isAuthenticated();\r\n let currentUser;\r\n\r\n rg4js('apiKey', raygunApiKey);\r\n rg4js('options', {\r\n enableCrashReporting: true,\r\n debugMode: true,\r\n disablePulse: true,\r\n excludedHostnames: ['localhost']\r\n });\r\n\r\n if (authenticated) {\r\n currentUser = await authenticationService.getUser();\r\n }\r\n\r\n if (currentUser) {\r\n setUser(currentUser);\r\n }\r\n }\r\n}\r\n\r\nfunction setUser (currentUser) {\r\n let localTenant,\r\n user = {\r\n identifier: currentUser.userId,\r\n fullName: currentUser.fullName,\r\n email: currentUser.email,\r\n isAnonymous: false\r\n };\r\n\r\n localTenant = localStorage.getItem(\"selectedTenant\");\r\n\r\n if (localTenant) {\r\n localTenant = JSON.parse(localTenant);\r\n user.uuid = localTenant.ID;\r\n }\r\n\r\n rg4js('setUser', user);\r\n}","export default /*@ngInject*/ function ($rootScope) {\r\n $rootScope.helpObject = {\r\n domain: helpUrl,\r\n specificArticle: \"hc/en-us/articles/\",\r\n home: \"hc/en-us\"\r\n };\r\n\r\n $rootScope.archivedNotifications = [];\r\n}","export default /*@ngInject*/ function (applicationInsightsServiceProvider) {\r\n var options = { applicationName: '' };\r\n // Configuration options are described below\r\n applicationInsightsServiceProvider.configure(applicationInsightsKey, options);\r\n}","export default /*@ngInject*/ function(usSpinnerConfigProvider) {\r\n usSpinnerConfigProvider.setTheme('medBlack', {\r\n lines: 9, length: 10, width: 4, radius: 10, color: 'black', opacity: 0.25, speed: 1.2, trail: 60, position: 'absolute', top: '20%', left: '50%'\r\n });\r\n\r\n usSpinnerConfigProvider.setTheme('medWhite', {\r\n lines: 9, length: 10, width: 4, radius: 10, color: 'white', opacity: 0.25, speed: 1.2, trail: 60, position: 'absolute', top: '20%', left: '50%'\r\n });\r\n usSpinnerConfigProvider.setTheme('largeWhite', {\r\n lines: 9, length: 14, width: 7, radius: 16, color: 'white', opacity: 0.25, speed: 1.2, trail: 60, position: 'absolute', top: '20%', left: '50%'\r\n });\r\n\r\n usSpinnerConfigProvider.setTheme('largeBlack', {\r\n lines: 9, length: 14, width: 7, radius: 16, color: 'black', opacity: 0.25, speed: 1.2, trail: 60, position: 'absolute', top: '20%', left: '50%'\r\n });\r\n\r\n usSpinnerConfigProvider.setTheme('smallWhite', {\r\n lines: 9, length: 4, width: 2, radius: 4, scale: 1, color: 'white', opacity: 0.25, speed: 1.2, trail: 60, position: 'absolute'\r\n });\r\n\r\n usSpinnerConfigProvider.setTheme('smallBlack', {\r\n lines: 9, length: 4, width: 2, radius: 4, scale: 1, color: 'black', opacity: 0.25, speed: 1.2, trail: 60, position: 'absolute'\r\n });\r\n\r\n usSpinnerConfigProvider.setTheme('smallDarkGray', {\r\n lines: 9, length: 10, width: 8, radius: 14, scale: 0.25, color: '#2e3238', opacity: 0.25, speed: 1.2, trail: 60, position: 'absolute'\r\n });\r\n}\r\n","export default /* @ngInject */ function ($translateProvider) {\r\n\r\n $translateProvider\r\n .translations('en', {\r\n\r\n SEARCH: 'Search for something...'\r\n\r\n })\r\n .translations('es', {\r\n\r\n SEARCH: 'Busca algo ...'\r\n });\r\n\r\n $translateProvider.preferredLanguage('en');\r\n}","// Intercepting HTTP calls with AngularJS.\r\n\r\nexport default /*@ngInject*/ function ($provide, $httpProvider) {\r\n\r\n // Intercept http calls.\r\n $provide.factory('APIInterceptor', function ($q) {\r\n\r\n var tenantID = null;\r\n var value = localStorage.getItem(\"selectedTenant\");\r\n if (value != null) {\r\n\r\n var selectedTenantAsObject = angular.fromJson(localStorage.getItem(\"selectedTenant\"));\r\n tenantID = selectedTenantAsObject.ID;\r\n\r\n }\r\n\r\n //var tenantID = localStorageService.get('localStorageTenant')\r\n return {\r\n // On request success\r\n request: function (config) {\r\n // console.log(config); // Contains the data about the request before it is sent.\r\n if (tenantID != null) {\r\n config.headers['TenantId'] = tenantID;\r\n\r\n }\r\n // Return the config or wrap it in a promise if blank.\r\n\r\n return config || $q.when(config);\r\n },\r\n\r\n // On request failure\r\n requestError: function (rejection) {\r\n // console.log(rejection); // Contains the data about the error on the request.\r\n\r\n // Return the promise rejection.\r\n return $q.reject(rejection);\r\n }\r\n };\r\n });\r\n\r\n // Add the interceptor to the $httpProvider.\r\n $httpProvider.interceptors.push('APIInterceptor');\r\n\r\n}","// Intercepting HTTP calls with AngularJS.\r\n\r\nexport default /*@ngInject*/ function ($provide, $httpProvider) {\r\n\r\n // Intercept http calls.\r\n $provide.factory('AuthInterceptor', function ($q, $window, authenticationService) {\r\n\r\n $httpProvider.defaults.withCredentials = true;\r\n\r\n return {\r\n // On request success\r\n request: async function (config) {\r\n let authClient = authenticationService.getAuthClient();\r\n let oktaAccess = await authClient.tokenManager.get('accessToken');\r\n if (oktaAccess) {\r\n let expired = await authClient.tokenManager.hasExpired(oktaAccess);\r\n\r\n if (expired) {\r\n try {\r\n oktaAccess = await authClient.tokenManager.renew('accessToken');\r\n console.log('Token was expired and renewed key', oktaAccess);\r\n }\r\n catch {\r\n authClient.tokenManager.clear();\r\n document.location.href = appUrl + \"login\";\r\n }\r\n }\r\n }\r\n config.headers = config.headers || {};\r\n\r\n if (oktaAccess) {\r\n // check endpoint mapping if provided\r\n config.headers.Authorization = 'Bearer ' + oktaAccess.accessToken;\r\n return config;\r\n }\r\n\r\n return config || $q.when(config)\r\n },\r\n\r\n // On request failure\r\n requestError: function (rejection) {\r\n // console.log(rejection); // Contains the data about the error on the request.\r\n\r\n // Return the promise rejection.\r\n return $q.reject(rejection);\r\n }\r\n };\r\n });\r\n\r\n // Add the interceptor to the $httpProvider.\r\n $httpProvider.interceptors.push('AuthInterceptor');\r\n\r\n}","// Intercepting HTTP calls with AngularJS.\r\n\r\nimport swal from \"sweetalert2\";\r\n\r\nexport default /*@ngInject*/ function ($provide, $httpProvider) {\r\n\r\n $provide.factory('SecurityHttpInterceptor', function ($q, $location, authenticationService) {\r\n return {\r\n 'responseError': async function (response) {\r\n // Replaces Data object with flat message\r\n\r\n function isObject(val) {\r\n return val instanceof Object;\r\n }\r\n\r\n if (isObject(response.data)) {\r\n response.data = response.data.Message;\r\n }\r\n\r\n switch (response.status) {\r\n case 403:\r\n let authenticated = await authenticationService.isAuthenticated();\r\n if (authenticated) {\r\n $location.path('/403');\r\n } else {\r\n document.location.href = appUrl + \"login\";\r\n }\r\n break;\r\n case 408:\r\n swal('Timeout Error', 'The report has exceeded the timeout limit. Please refine your criteria and run the report again.', 'warning');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return $q.reject(response);\r\n },\r\n 'response': function (response) {\r\n\r\n if (response.data._embedded) {\r\n\r\n var data = response.data._embedded;\r\n\r\n for (var prop in data) {\r\n break;\r\n }\r\n\r\n data.reportData = data[prop];\r\n delete data[prop];\r\n\r\n }\r\n\r\n return response;\r\n }\r\n };\r\n });\r\n\r\n // Add the interceptor to the $httpProvider.\r\n $httpProvider.interceptors.push('SecurityHttpInterceptor');\r\n\r\n}\r\n","export default /*@ngInject*/ function (flowFactoryProvider) {\r\n flowFactoryProvider.factory = function (opts) {\r\n var Flow = require('@flowjs/ng-flow/dist/ng-flow-standalone.js'); \r\n return new Flow(opts);\r\n };\r\n}","export default /*@ngInject*/ function ($route, $rootScope, $location) {\r\n var original = $location.path;\r\n $location.path = function (path, reload) {\r\n if (reload === false) {\r\n var lastRoute = $route.current;\r\n var un = $rootScope.$on('$locationChangeSuccess', function () {\r\n $route.current = lastRoute;\r\n un();\r\n });\r\n }\r\n return original.apply($location, [path]);\r\n };\r\n}","import angular from 'angular';\r\n\r\nimport '@progress/kendo-ui/js/kendo.dropdownlist';\r\nimport '@progress/kendo-ui/js/kendo.grid';\r\nimport '@progress/kendo-ui/js/kendo.filtercell';\r\nimport '@progress/kendo-ui/js/kendo.multiselect';\r\nimport '@progress/kendo-ui/js/kendo.datetimepicker';\r\nimport '@progress/kendo-ui/js/kendo.tooltip';\r\nimport '@progress/kendo-ui/js/kendo.angular';\r\n\r\n\r\nexport const halSchemaKendoGrid = { data: \"_embedded.reportData\", total: \"TotalItems\" };\r\n\r\nexport default angular\r\n .module('app.shared.kendo', [\r\n 'kendo.directives'\r\n ])\r\n .name;","import { OktaAuth } from '@okta/okta-auth-js';\r\n\r\nexport default /*@ngInject*/ function ($window, $location) {\r\n const service = {\r\n getAuthClient,\r\n getUser,\r\n isAuthenticated,\r\n login,\r\n handleAuthentication,\r\n logOut\r\n };\r\n\r\n return service;\r\n\r\n let authClient;\r\n\r\n function getAuthClient() {\r\n if (!authClient) {\r\n authClient = new OktaAuth({\r\n clientId: clientId,\r\n redirectUri: `${appUrl}callback`,\r\n issuer: issuer,\r\n postLogoutRedirectUri: appUrl + 'login'\r\n });\r\n // Triggered when a token has expired\r\n authClient.tokenManager.on('expired', async function (key, expiredToken) {\r\n console.log('Token with key', key, ' has expired:');\r\n console.log(expiredToken);\r\n });\r\n // Triggered when a token has been renewed\r\n authClient.tokenManager.on('renewed', function (key, newToken, oldToken) {\r\n console.log('Token with key', key, 'has been renewed');\r\n console.log('Old token:', oldToken);\r\n console.log('New token:', newToken);\r\n });\r\n // Triggered when an OAuthError is returned via the API (typically during token renew)\r\n authClient.tokenManager.on('error', function (err) {\r\n console.log('TokenManager error:', err);\r\n // err.name\r\n // err.message\r\n // err.errorCode\r\n // err.errorSummary\r\n // err.tokenKey\r\n // err.accessToken\r\n });\r\n }\r\n return authClient;\r\n }\r\n\r\n async function getUser() {\r\n let authClient = getAuthClient();\r\n const oktaIdToken = await authClient.tokenManager.get('idToken');\r\n if (oktaIdToken) {\r\n const decodedToken = await authClient.token.decode(oktaIdToken.idToken);\r\n const userInfo = decodedToken.payload;\r\n let isUserAuthenticated = await isAuthenticated();\r\n\r\n return Object.freeze({\r\n email: userInfo.email,\r\n fullName: userInfo.name,\r\n userId: userInfo.fastpathuserid,\r\n isAuthenticated: isUserAuthenticated\r\n });\r\n }\r\n else {\r\n login();\r\n }\r\n }\r\n\r\n async function isAuthenticated() {\r\n // Checks if there is a current accessToken in the TokenManger.\r\n let authClient = getAuthClient();\r\n let accessToken = await authClient.tokenManager.get('accessToken');\r\n return accessToken;\r\n }\r\n\r\n function login(originalUrl) {\r\n sessionStorage.setItem('okta-app-url', originalUrl || $location.url())\r\n\r\n let authClient = getAuthClient();\r\n authClient.token.getWithRedirect({\r\n responseType: 'id_token',\r\n scopes: [\r\n 'openid',\r\n 'email',\r\n 'profile'\r\n ]\r\n });\r\n }\r\n\r\n async function handleAuthentication() {\r\n let authClient = getAuthClient();\r\n const response = await authClient.token.parseFromUrl();\r\n if (response.tokens.idToken) {\r\n authClient.tokenManager.add('idToken', response.tokens.idToken);\r\n }\r\n if (response.tokens.accessToken) {\r\n authClient.tokenManager.add('accessToken', response.tokens.accessToken);\r\n }\r\n // Retrieve the saved URL and navigate back\r\n let url = localStorage.getItem('locationBeforeRedirect');\r\n if (!url) { url = \"\" };\r\n $window.open(appUrl + url, '_self');\r\n }\r\n\r\n function logOut() {\r\n let authClient = getAuthClient();\r\n authClient.signOut();\r\n localStorage.clear();\r\n }\r\n}","export default /*@ngInject*/ function ($http, $filter) {\r\n\r\n //Product Multiselect\r\n this.checkSavedReportForProducts = function (savedReport, data, selected) {\r\n if (savedReport && savedReport.ReportDefinition.Criteria.length > 0) {\r\n\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"Product\"; });\r\n\r\n var emptyArray = [];\r\n\r\n selectedDefinitions.forEach(function (definition, i) {\r\n definition.Filters.forEach(function (row, i) {\r\n emptyArray.push(data.filter(e => e.ID === row.Value)[0]);\r\n });\r\n });\r\n\r\n if (emptyArray.length > 0) {\r\n return emptyArray;\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n //Single Product\r\n this.checkSavedReportForSingleProduct = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"Product\"; });\r\n if (selectedDefinitions.length > 0) {\r\n return data.filter(e => e.ID === selectedDefinitions[0].Filters[0].Value)[0];\r\n } else {\r\n return selected;\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForDate = function (savedReport, criteriaType, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === criteriaType; });\r\n\r\n if (selectedDefinitions && selectedDefinitions.length > 0) {\r\n var date = new Date(selectedDefinitions[0].CriteriaValue);\r\n return date;\r\n }\r\n else {\r\n return selected;\r\n }\r\n\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForRoles = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"Role\"; });\r\n\r\n var emptyArray = [];\r\n\r\n selectedDefinitions.forEach(function (definition, i) {\r\n definition.Filters.forEach(function (row, i) {\r\n emptyArray.push(data.filter(e => e.ID === row.Value)[0]);\r\n });\r\n });\r\n if (emptyArray.length > 0) {\r\n return emptyArray;\r\n } else {\r\n return selected;\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.getSavedReportRoles = function (savedReport) {\r\n\r\n const savedReportRoles = savedReport.ReportDefinition.Criteria.filter(c => c.CriteriaType === 'Role');\r\n const savedReportProduct = savedReport.ReportDefinition.Criteria.filter(c => c.CriteriaType === 'Product');\r\n\r\n let fullRoles = [];\r\n\r\n async function asyncForEach(array, callback) {\r\n for (let index = 0; index < array.length; index++) {\r\n await callback(array[index], index, array);\r\n }\r\n }\r\n const getFullRoles = async () => {\r\n await asyncForEach(savedReportRoles, async (role) => {\r\n try {\r\n let res = await $http.get(`${apiUrl}api/universal/securityroles/${role.Filters[0].Value}/product/${savedReportProduct[0].Filters[0].Value}`);\r\n fullRoles.push(res.data);\r\n } catch (err) {\r\n throw err;\r\n }\r\n });\r\n const sortedFullRoles = fullRoles.sort((a, b) => a.Name - b.Name);\r\n return sortedFullRoles;\r\n };\r\n\r\n const roles = getFullRoles();\r\n return roles;\r\n };\r\n\r\n this.checkSavedReportForRisks = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"Risk\"; });\r\n\r\n var emptyArray = [];\r\n\r\n selectedDefinitions.forEach(function (definition, i) {\r\n definition.Filters.forEach(function (row, i) {\r\n emptyArray.push(data.filter(e => e.Id === row.Value)[0]);\r\n });\r\n });\r\n\r\n if (emptyArray.length > 0) {\r\n return emptyArray;\r\n } else {\r\n return selected;\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForCompanies = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"Company\"; });\r\n\r\n var emptyArray = [];\r\n\r\n selectedDefinitions.forEach(function (definition, i) {\r\n definition.Filters.forEach(function (row, i) {\r\n emptyArray.push(data.filter(e => e.ID === row.Value)[0]);\r\n });\r\n });\r\n\r\n if (emptyArray.length > 0) {\r\n return emptyArray;\r\n } else {\r\n return selected;\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForObjectTypes = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"SecurityObjectType\"; });\r\n var selectedValue;\r\n\r\n selectedDefinitions.forEach(function (definition, i) {\r\n var Id = definition.Filters.find(function (n) { return n.FieldName === 'SecurityObjectTypeIdentifier'; });\r\n selectedValue = data.filter(e => e.Identifier === Id.Value)[0];\r\n });\r\n\r\n if (selectedValue) {\r\n return selectedValue;\r\n } else {\r\n return data[0];\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForObjects = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"SecurityObject\"; });\r\n var selectedValue;\r\n\r\n selectedDefinitions.forEach(function (definition, i) {\r\n var Id = definition.Filters.find(function (n) { return n.FieldName === 'SecurityObjectIdentifier'; });\r\n selectedValue = data.filter(e => e.Identifier === Id.Value)[0];\r\n });\r\n if (selectedValue) {\r\n return selectedValue;\r\n } else {\r\n return selected;\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.getSavedReportSelectedObject = function (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"SecurityObject\"; });\r\n var selectedValueIdentifier;\r\n\r\n selectedDefinitions.forEach(definition => {\r\n var Id = definition.Filters.find(n => n.FieldName === 'SecurityObjectIdentifier');\r\n selectedValueIdentifier = Id.Value;\r\n });\r\n if (selectedValueIdentifier) {\r\n return $http.get(apiUrl + 'api/universal/securityobjects/' + selectedValueIdentifier)\r\n .then(response => {\r\n return response.data;\r\n });\r\n } else {\r\n return Promise.resolve();\r\n }\r\n };\r\n\r\n this.checkSavedReportForUsers = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"User\"; });\r\n var selectedValue;\r\n var emptyArray = [];\r\n selectedDefinitions.forEach(function (definition, i) {\r\n\r\n var UserMasterId = definition.Filters.find(function (n) { return n.FieldName === \"UserMasterId\"; });\r\n if (UserMasterId) {\r\n selectedValue = data.filter(e => e.ID === UserMasterId.Value)[0];\r\n }\r\n else {\r\n definition.Filters.forEach(function (row, i) {\r\n emptyArray.push(data.filter(e => e.InternalId === row.Value)[0]);\r\n });\r\n }\r\n\r\n });\r\n if (emptyArray.length > 0) {\r\n return emptyArray;\r\n } else if (selectedValue) {\r\n return selectedValue;\r\n } else {\r\n return selected;\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForBusinessProcesses = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"BusinessProcessId\"; });\r\n var emptyArray = [];\r\n selectedDefinitions.forEach(function (definition, i) {\r\n definition.Filters.forEach(function (row, i) {\r\n emptyArray.push(data.filter(e => e.Id === row.Value)[0]);\r\n });\r\n });\r\n if (emptyArray.length > 0) {\r\n return emptyArray;\r\n } else {\r\n return selected;\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForRuleset = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"Ruleset\"; });\r\n\r\n if (selectedDefinitions.length === 1) {\r\n var selectedValue = data.filter(e => e.RulesetId === selectedDefinitions[0].Filters[0].Value)[0];\r\n }\r\n\r\n if (selectedValue) {\r\n return selectedValue;\r\n }\r\n else {\r\n return selected.filter(e => e.IsDefault === true)[0];\r\n }\r\n\r\n } else {\r\n if (selected.length > 0) {\r\n return selected.filter(e => e.IsDefault === true)[0];\r\n }\r\n }\r\n };\r\n\r\n this.checkSavedReportForResponsibilities = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"Responsibility\"; });\r\n\r\n var emptyArray = [];\r\n\r\n selectedDefinitions.forEach(function (definition, i) {\r\n definition.Filters.forEach(function (row, i) {\r\n emptyArray.push(data.filter(e => e.ID === row.Value)[0]);\r\n });\r\n });\r\n if (emptyArray.length > 0) {\r\n return emptyArray;\r\n } else {\r\n return selected;\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForRecordTypeMultiSelect = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"RecordType\" || n.CriteriaType === \"TemplateId\" || n.CriteriaType === \"UserGroupId\"; });\r\n\r\n let emptyArray = [];\r\n\r\n selectedDefinitions.forEach(function (definition, i) {\r\n definition.Filters.forEach(function (row, i) {\r\n const matchingItem = data.find(e => e.Id === row.Value);\r\n if (matchingItem) {\r\n emptyArray.push(matchingItem);\r\n }\r\n });\r\n });\r\n\r\n if (emptyArray.length > 0) {\r\n return emptyArray;\r\n } else {\r\n return selected;\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForRecordType = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"RecordType\"; });\r\n return data.filter(e => e.Id === selectedDefinitions[0].Filters[0].Value)[0];\r\n\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForRecord = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"Record\"; });\r\n\r\n if (selectedDefinitions.length === 1) {\r\n return data.filter(e => e.RecordId === selectedDefinitions[0].Filters[0].Value)[0];\r\n } else {\r\n return selected;\r\n }\r\n\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForStatus = function (savedReport, data, selected) {\r\n if (savedReport) {\r\n var selectedDefinitions = savedReport.ReportDefinition.Criteria.filter(function (n) { return n.CriteriaType === \"Status\"; });\r\n\r\n var emptyArray = [];\r\n\r\n selectedDefinitions.forEach(function (definition, i) {\r\n definition.Filters.forEach(function (row, i) {\r\n emptyArray.push(data.filter(e => e.ID === row.Value)[0]);\r\n });\r\n });\r\n\r\n if (emptyArray.length > 0) {\r\n return emptyArray;\r\n } else {\r\n return selected;\r\n }\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.checkSavedReportForIntraResponsibility = function (savedReport, selected) {\r\n if (savedReport) {\r\n var selectedDefinition = savedReport.ReportDefinition.Criteria.find(function (n) { return n.CriteriaType === \"IntraResponsibilityOnly\"; });\r\n return selectedDefinition ? selectedDefinition.Filters[0].Value : false;\r\n } else {\r\n return selected;\r\n }\r\n };\r\n\r\n this.orderAndRemoveColumns = function (currentColumns, newColumns) {\r\n\r\n var newFields = newColumns.map(function (el) { return el.FieldName; });\r\n currentColumns.forEach(function (column, i) {\r\n var columnIsContained = newFields.indexOf(column.field);\r\n column.ordinal = columnIsContained;\r\n\r\n\r\n\r\n if (column.title !== \"\" && column.title !== \"Edit\") {\r\n\r\n delete column['headerAttributes'];\r\n delete column['footerAttributes'];\r\n delete column['attributes'];\r\n\r\n if (columnIsContained === -1) {\r\n //field does not exist\r\n column.hidden = true;\r\n } else if (columnIsContained > -1) {\r\n //field is contained in newColumns\r\n column.hidden = false;\r\n }\r\n } else {\r\n //column does not have a title so it is ignored by this function\r\n }\r\n });\r\n\r\n currentColumns = $filter('orderBy')(currentColumns, 'ordinal');\r\n return currentColumns;\r\n };\r\n\r\n this.convertSortingsForGrid = function (currentSort, newSort) {\r\n var convertedNewSorts = [];\r\n\r\n newSort.forEach(function (column, i) {\r\n var convertedFormat = {\r\n\r\n \"field\": column.FieldName,\r\n \"dir\": column.SortDirection.toLowerCase(),\r\n \"compare\": null\r\n };\r\n convertedNewSorts.push(convertedFormat);\r\n });\r\n\r\n return convertedNewSorts;\r\n };\r\n\r\n\r\n this.queryGridWithOptions = function (loadedSavedReport, grid, manuallyCallReady) {\r\n if (loadedSavedReport) {\r\n\r\n var newOptions = angular.copy(loadedSavedReport.ReportDefinition);\r\n var currentOptions = grid.getOptions();\r\n\r\n if (newOptions.Columns.length > 0) {\r\n currentOptions.columns = this.orderAndRemoveColumns(currentOptions.columns, newOptions.Columns);\r\n }\r\n\r\n if (newOptions.Sortings.length > 0) {\r\n currentOptions.dataSource.sort = this.convertSortingsForGrid(currentOptions.dataSource.sort, newOptions.Sortings);\r\n }\r\n\r\n grid.setOptions({ \"columns\": currentOptions.columns });\r\n grid.dataSource._filter = null;\r\n grid.dataSource._sort = currentOptions.dataSource.sort;\r\n grid.dataSource.read();\r\n\r\n } else if (manuallyCallReady) {\r\n grid.dataSource.page(1);\r\n }\r\n //Set all columns that are not hidden to false\r\n grid.columns.forEach(function (col) {\r\n if (col.hidden === null) {\r\n col.hidden = false;\r\n }\r\n });\r\n };\r\n\r\n this.queryAuditLogsGridWithOptions = function (loadedSavedReport, grid, manuallyCallReady) {\r\n if (loadedSavedReport) {\r\n\r\n var newOptions = angular.copy(loadedSavedReport.ReportDefinition);\r\n var currentOptions = grid.getOptions();\r\n\r\n if (newOptions.Columns.length > 0) {\r\n currentOptions.columns = this.orderAndRemoveColumns(currentOptions.columns, newOptions.Columns);\r\n }\r\n\r\n if (newOptions.Sortings.length > 0) {\r\n currentOptions.dataSource.sort = this.convertSortingsForGrid(currentOptions.dataSource.sort, newOptions.Sortings);\r\n }\r\n\r\n grid.setOptions({ \"columns\": currentOptions.columns });\r\n\r\n if (newOptions.Filters.length === 1) {\r\n const filter = newOptions.Filters[0];\r\n grid.dataSource._filter = {\r\n field: filter.FieldName,\r\n operator: filter.Operator,\r\n value: filter.Value\r\n }\r\n } else if (newOptions.Filters.length > 1) {\r\n grid.dataSource._filter = {};\r\n grid.dataSource._filter.filters = [];\r\n newOptions.Filters.forEach(filter => {\r\n let object = {\r\n field: filter.FieldName,\r\n operator: filter.Operator,\r\n value: filter.Value\r\n };\r\n grid.dataSource._filter.filters.push(object);\r\n })\r\n }\r\n\r\n grid.dataSource._sort = currentOptions.dataSource.sort;\r\n grid.dataSource.read();\r\n\r\n } else if (manuallyCallReady) {\r\n grid.dataSource.page(1);\r\n }\r\n //Set all columns that are not hidden to false\r\n grid.columns.forEach(function (col) {\r\n if (col.hidden === null) {\r\n col.hidden = false;\r\n }\r\n });\r\n };\r\n\r\n this.cleanReportCriteria = function (criteriaMultiple, criteriaToAdd) {\r\n var criteria = [];\r\n\r\n //If criteria exists, clean it\r\n if (criteriaMultiple) {\r\n criteriaMultiple.forEach(function (row) {\r\n if (row.ParameterName === \"SecurityObjectType\") {\r\n if (row.Value) {\r\n if (row.Value.Id) {\r\n var singleCriteria = {\r\n \"CriteriaType\": row.DisplayName,\r\n \"CriteriaValue\": row.DisplayValue,\r\n \"Filters\": [\r\n {\r\n \"FieldName\": 'SecurityObjectTypeIdentifier',\r\n \"Operator\": \"Equals\",\r\n \"Value\": row.Value.Id\r\n }\r\n ]\r\n };\r\n criteria.push(singleCriteria);\r\n }\r\n }\r\n } else if (row.ParameterName === \"SecurityObject\") {\r\n if (row.Value) {\r\n if (row.Value.Id) {\r\n var singleCriteria = {\r\n \"CriteriaType\": row.DisplayName,\r\n \"CriteriaValue\": row.DisplayValue,\r\n \"Filters\": [\r\n {\r\n \"FieldName\": 'SecurityObjectIdentifier',\r\n \"Operator\": \"Equals\",\r\n \"Value\": row.Value.Id\r\n }\r\n ]\r\n };\r\n criteria.push(singleCriteria);\r\n }\r\n }\r\n } else {\r\n if (row.Value && row.Value !== 'AllObjectsInMultiSelect' && row.Value !== -1) {\r\n var singleCriteria = {\r\n \"CriteriaType\": row.DisplayName,\r\n \"CriteriaValue\": row.DisplayValue,\r\n\r\n \"Filters\": [\r\n {\r\n \"FieldName\": row.ParameterName,\r\n \"Operator\": \"Equals\",\r\n \"Value\": row.Value\r\n }\r\n ]\r\n };\r\n criteria.push(singleCriteria);\r\n }\r\n }\r\n });\r\n }\r\n //If criteria exists, clean it\r\n if (criteriaToAdd) {\r\n criteriaToAdd.forEach(function (row) {\r\n var singleCriteria = {\r\n \"CriteriaDisplayName\": row.CriteriaDisplayName,\r\n \"CriteriaValue\": row.CriteriaValue,\r\n\r\n \"Filters\": [\r\n {\r\n \"FieldName\": row.FieldName,\r\n \"Operator\": row.Operator,\r\n \"Value\": row.Value\r\n }\r\n ]\r\n };\r\n criteria.push(singleCriteria);\r\n });\r\n }\r\n return criteria;\r\n };\r\n\r\n}","const allSupportedProducts = [\r\n {\r\n Name: 'NetSuite',\r\n ID: 'NS',\r\n Type: 'NS',\r\n LogoClass: 'netSuite-avatar-logo',\r\n SecurityId: '16300',\r\n Config: [\r\n { Name: \"NS_Account\", Encrypted: false },\r\n { Name: \"NS_InactiveRoles\", Encrypted: false },\r\n { Name: \"NS_InactiveUsers\", Encrypted: false },\r\n { Name: \"NS_ImportUserNameOnly\", Encrypted: false },\r\n { Name: \"NS_TokenKey\", Encrypted: true },\r\n { Name: \"NS_TokenSecret\", Encrypted: true }\r\n ]\r\n },\r\n {\r\n Name: 'Salesforce',\r\n ID: 'SF',\r\n Type: 'SF',\r\n LogoClass: 'salesforce-avatar-logo',\r\n SecurityId: '18300',\r\n Config: [\r\n { Name: \"SF_ImportInactive\", Encrypted: false },\r\n { Name: \"SF_ImportMetadata\", Encrypted: false },\r\n { Name: \"SF_Password\", Encrypted: true },\r\n { Name: \"SF_SecurityToken\", Encrypted: true },\r\n { Name: \"SF_UserName\", Encrypted: true },\r\n { Name: \"SF_Url\", Encrypted: false },\r\n { Name: \"SF_ClientId\", Encrypted: false },\r\n { Name: \"SF_ImportType\", Encrypted: false },\r\n { Name: \"SF_ClientSecret\", Encrypted: true }\r\n\r\n ]\r\n },\r\n {\r\n Name: 'Dynamics 365 for Finance and Supply Chain',\r\n ID: 'AX7',\r\n Type: 'AX7',\r\n LogoClass: 'dynamics-365-avatar-logo',\r\n SecurityId: '4300',\r\n Config: [\r\n { Name: \"AX7_ActiveDirectoryClientAppID\", Encrypted: false },\r\n { Name: \"AX7_ActiveDirectoryTenant\", Encrypted: false },\r\n { Name: \"AX7_EnvironmentUrl\", Encrypted: false },\r\n { Name: \"AX7_AppSecret\", Encrypted: true },\r\n { Name: \"AX7_AS_ShowDisabledUsers\", Encrypted: false },\r\n { Name: \"AX7_AS_ImportDisabledUserAccess\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Dynamics 365 Customer Engagement',\r\n ID: 'D365S',\r\n Type: 'D365S',\r\n LogoClass: 'dynamics-365-sales-avatar-logo',\r\n SecurityId: '26300',\r\n Config: [\r\n { Name: \"D365S_AuthType\", Encrypted: false },\r\n { Name: \"D365S_Password\", Encrypted: true },\r\n { Name: \"D365S_Url\", Encrypted: false },\r\n { Name: \"D365S_UserName\", Encrypted: false },\r\n { Name: \"D365S_Organization\", Encrypted: false },\r\n { Name: \"D365S_ProductSKU\", Encrypted: false },\r\n { Name: \"D365S_ImportDisabledUsers\", Encrypted: false },\r\n { Name: \"D365S_ClientId\", Encrypted: false },\r\n { Name: \"D365S_ClientSecret\", Encrypted: true },\r\n { Name: \"D365S_ApiUri\", Encrypted: false },\r\n { Name: \"D365S_Domain\", Encrypted: false }\r\n ],\r\n AuthTypeOptions: [\r\n { Id: \"1\", Name: \"AAD\" },\r\n { Id: \"2\", Name: \"AD\" },\r\n { Id: \"3\", Name: \"IFD\" }\r\n ]\r\n },\r\n {\r\n Name: 'Dynamics GP',\r\n ID: 'GP',\r\n Type: 'GP',\r\n LogoClass: 'gp-avatar-logo',\r\n SecurityId: '22300',\r\n Config: [\r\n { Name: \"GP_UseConfigAD\", Encrypted: false },\r\n { Name: \"GP_Database\", Encrypted: false },\r\n { Name: \"GP_FPAuditDatabase\", Encrypted: false },\r\n { Name: \"GP_HostName\", Encrypted: false },\r\n { Name: \"GP_Instance\", Encrypted: false },\r\n { Name: \"GP_Port\", Encrypted: false },\r\n { Name: \"GP_Version\", Encrypted: false },\r\n { Name: \"GP_User\", Encrypted: false },\r\n { Name: \"GP_Password\", Encrypted: true },\r\n { Name: \"GP_InactiveUsers\", Encrypted: false }\r\n ],\r\n VersionOptions: [\r\n { Id: \"0\", Name: \"GP 9\" },\r\n { Id: \"1\", Name: \"GP 10\" },\r\n { Id: \"2\", Name: \"GP 2010\" },\r\n { Id: \"3\", Name: \"GP 2013\" },\r\n { Id: \"4\", Name: \"GP 2013 R2\" },\r\n { Id: \"5\", Name: \"GP 2015\" },\r\n { Id: \"7\", Name: \"GP 2015 R2\" },\r\n { Id: \"6\", Name: \"GP 2016\" },\r\n { Id: \"8\", Name: \"GP 2016 R2\" },\r\n { Id: \"9\", Name: \"GP 2018\" },\r\n { Id: \"10\", Name: \"GP 2018 R2\" }\r\n ]\r\n },\r\n {\r\n Name: 'Intacct',\r\n ID: 'INT',\r\n Type: 'INT',\r\n LogoClass: 'intacct-avatar-logo',\r\n SecurityId: '15300',\r\n Config: [\r\n { Name: \"INT_RoleBasedSecurity\", Encrypted: false },\r\n { Name: \"INT_BusinessUser\", Encrypted: false },\r\n { Name: \"INT_CRMUser\", Encrypted: false },\r\n { Name: \"INT_EmployeeUser\", Encrypted: false },\r\n { Name: \"INT_PlatformUser\", Encrypted: false },\r\n { Name: \"INT_ProjectManagerUser\", Encrypted: false },\r\n { Name: \"INT_Inactive\", Encrypted: false },\r\n { Name: \"INT_UserNameLabel\", Encrypted: false },\r\n { Name: \"INT_CompanyID\", Encrypted: false },\r\n { Name: \"INT_UserID\", Encrypted: false },\r\n { Name: \"INT_SenderID\", Encrypted: false },\r\n { Name: \"INT_Password\", Encrypted: true },\r\n { Name: \"INT_LockedOut\", Encrypted: false },\r\n { Name: \"INT_GatewayPassword\", Encrypted: true },\r\n { Name: \"INT_HasConsole\", Encrypted: false },\r\n { Name: \"INT_ConsoleCompanyID\", Encrypted: false },\r\n { Name: \"INT_ConsolePassword\", Encrypted: true },\r\n { Name: \"INT_ConsoleUserID\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Oracle',\r\n ID: 'OR',\r\n Type: 'OR',\r\n LogoClass: 'oracle-avatar-logo',\r\n SecurityId: '17304',\r\n Config: [\r\n { Name: \"OR_HostName\", Encrypted: false },\r\n { Name: \"OR_ServiceName\", Encrypted: false },\r\n { Name: \"OR_Port\", Encrypted: false },\r\n { Name: \"OR_User\", Encrypted: false },\r\n { Name: \"OR_Password\", Encrypted: true },\r\n { Name: \"OR_RBACEnabled\", Encrypted: false },\r\n { Name: \"OR_BreakoutByOrg\", Encrypted: false },\r\n { Name: \"OR_IncludeInvOrgs\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'SAP',\r\n ID: 'SAP',\r\n Type: 'SAP',\r\n LogoClass: 'sap-avatar-logo',\r\n SecurityId: '20300',\r\n Config: [\r\n { Name: \"SAP_ImportInactiveUsers\", Encrypted: false },\r\n { Name: \"SAP_ImportQuantificationData\", Encrypted: false },\r\n { Name: \"SAP_ImportConsumptionData\", Encrypted: false },\r\n { Name: \"SAP_LimitRoleAuthorizationData\", Encrypted: false },\r\n { Name: \"SAP_ImportDialogUsers\", Encrypted: false },\r\n { Name: \"SAP_ImportSystemUsers\", Encrypted: false },\r\n { Name: \"SAP_ImportCommunicationUsers\", Encrypted: false },\r\n { Name: \"SAP_ImportServiceUsers\", Encrypted: false },\r\n { Name: \"SAP_ImportReferenceUsers\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'SAP Business One',\r\n ID: 'SAPB1',\r\n Type: 'SAPB1',\r\n LogoClass: 'sapb1-avatar-logo',\r\n SecurityId: '27070300',\r\n Config: []\r\n },\r\n {\r\n Name: 'Dynamics NAV',\r\n ID: 'NAV',\r\n Type: 'NAV',\r\n LogoClass: 'nav-avatar-logo',\r\n SecurityId: '23070300',\r\n Config: [\r\n { Name: \"NAV_Database\", Encrypted: false },\r\n { Name: \"NAV_FPAuditDatabase\", Encrypted: false },\r\n { Name: \"NAV_HostName\", Encrypted: false },\r\n { Name: \"NAV_Instance\", Encrypted: false },\r\n { Name: \"NAV_Port\", Encrypted: false },\r\n { Name: \"NAV_User\", Encrypted: false },\r\n { Name: \"NAV_Password\", Encrypted: true },\r\n { Name: \"NAV_Version\", Encrypted: false },\r\n { Name: \"NAV_ImportDisabledUsers\", Encrypted: false },\r\n { Name: \"NAV_ImportADUserGroups\", Encrypted: false },\r\n { Name: \"NAV_WSCompany\", Encrypted: false },\r\n { Name: \"NAV_WSDomain\", Encrypted: false },\r\n { Name: \"NAV_WSHostName\", Encrypted: false },\r\n { Name: \"NAV_WSInstance\", Encrypted: false },\r\n { Name: \"NAV_WSPort\", Encrypted: false },\r\n { Name: \"NAV_WSUser\", Encrypted: false },\r\n { Name: \"NAV_WSPassword\", Encrypted: true }\r\n ],\r\n VersionOptions: [\r\n { Id: \"0\", Name: \"NAV 2013\" },\r\n { Id: \"1\", Name: \"NAV 2013 R2\" },\r\n { Id: \"2\", Name: \"NAV 2015\" },\r\n { Id: \"3\", Name: \"NAV 2016\" },\r\n { Id: \"4\", Name: \"NAV 2017\" },\r\n { Id: \"5\", Name: \"NAV 2018\" },\r\n { Id: \"6\", Name: \"NAV 4/5/2009\" }\r\n ]\r\n },\r\n {\r\n Name: 'Dynamics AX',\r\n ID: 'AX',\r\n Type: 'AX',\r\n LogoClass: 'ax-avatar-logo',\r\n SecurityId: '21300',\r\n Config: [\r\n { Name: \"AX_AS_Import_AzureJobCollectionName\", Encrypted: false },\r\n { Name: \"AX_AS_Import_AzureJobId\", Encrypted: false },\r\n { Name: \"AX_ConnectorHostName\", Encrypted: false },\r\n { Name: \"AX_ConnectorPort\", Encrypted: false },\r\n { Name: \"AX_Language\", Encrypted: false },\r\n { Name: \"AX_SqlDatabase\", Encrypted: false },\r\n { Name: \"AX_SqlFPAuditDatabase\", Encrypted: false },\r\n { Name: \"AX_SqlHostName\", Encrypted: false },\r\n { Name: \"AX_SqlInstance\", Encrypted: false },\r\n { Name: \"AX_SqlPort\", Encrypted: false },\r\n { Name: \"AX_SqlUser\", Encrypted: false },\r\n { Name: \"AX_Version\", Encrypted: false },\r\n { Name: \"AX_AS_ImportDisabledUsers\", Encrypted: false },\r\n { Name: \"AX_SqlPassword\", Encrypted: true }\r\n ],\r\n VersionOptions: [\r\n { Id: \"1\", Name: \"AX 2012\" },\r\n { Id: \"2\", Name: \"AX 2012 R2\" },\r\n { Id: \"3\", Name: \"AX 2012 R3\" }\r\n ]\r\n },\r\n {\r\n Name: 'Acumatica',\r\n ID: 'AC',\r\n Type: 'AC',\r\n LogoClass: 'acumatica-avatar-logo',\r\n SecurityId: '19070300',\r\n Config: [\r\n { Name: \"AC_ImportDisabledUsers\", Encrypted: false },\r\n { Name: \"AC_ImportType\", Encrypted: false },\r\n { Name: \"AC_Company\", Encrypted: false },\r\n { Name: \"AC_Locale\", Encrypted: false },\r\n { Name: \"AC_BaseUrl\", Encrypted: false },\r\n { Name: \"AC_UserName\", Encrypted: false },\r\n { Name: \"AC_Password\", Encrypted: true },\r\n { Name: \"AC_SqlDatabase\", Encrypted: false },\r\n { Name: \"AC_SqlHostname\", Encrypted: false },\r\n { Name: \"AC_SqlInstance\", Encrypted: false },\r\n { Name: \"AC_SqlPort\", Encrypted: false },\r\n { Name: \"AC_SqlUser\", Encrypted: false },\r\n { Name: \"AC_SqlPassword\", Encrypted: true }\r\n ]\r\n },\r\n {\r\n Name: 'PeopleSoft',\r\n ID: 'PS',\r\n Type: 'PS',\r\n LogoClass: 'peoplesoft-avatar-logo',\r\n SecurityId: '28070300',\r\n Config: [\r\n { Name: \"PS_ImportLockedAccounts\", Encrypted: false },\r\n { Name: \"PS_HostName\", Encrypted: false },\r\n { Name: \"PS_Password\", Encrypted: true },\r\n { Name: \"PS_Port\", Encrypted: false },\r\n { Name: \"PS_ServiceName\", Encrypted: false },\r\n { Name: \"PS_User\", Encrypted: false },\r\n { Name: \"PS_IM_BaseUrl\", Encrypted: false },\r\n { Name: \"PS_IM_Password\", Encrypted: true },\r\n { Name: \"PS_IM_Port\", Encrypted: false },\r\n { Name: \"PS_IM_UserName\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Oracle Cloud',\r\n ID: 'ORFC',\r\n Type: 'ORFC',\r\n LogoClass: 'orfc-avatar-logo',\r\n SecurityId: '30070300',\r\n Config: [\r\n { Name: \"ORFC_UserName\", Encrypted: false },\r\n { Name: \"ORFC_BaseUrl\", Encrypted: false },\r\n { Name: \"ORFC_ImportSuspendedUsers\", Encrypted: false },\r\n { Name: \"ORFC_Password\", Encrypted: true }\r\n ]\r\n },\r\n {\r\n Name: 'JD Edwards',\r\n ID: 'JDE',\r\n Type: 'JDE',\r\n LogoClass: 'jde-avatar-logo',\r\n SecurityId: '29070300',\r\n Config: [\r\n { Name: \"JDE_ImportDisabledUsers\", Encrypted: false },\r\n { Name: \"JDE_User\", Encrypted: false },\r\n { Name: \"JDE_HostName\", Encrypted: false },\r\n { Name: \"JDE_ServiceName\", Encrypted: true },\r\n { Name: \"JDE_Port\", Encrypted: false },\r\n { Name: \"JDE_SystemDataSchema\", Encrypted: false },\r\n { Name: \"JDE_BusinessDataSchema\", Encrypted: false },\r\n { Name: \"JDE_ObjectLibrarianSchema\", Encrypted: false },\r\n { Name: \"JDE_Password\", Encrypted: true },\r\n { Name: \"JDE_VersionSchema\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Dynamics AX 2009',\r\n ID: 'AX5',\r\n Type: 'AX5',\r\n LogoClass: 'ax-avatar-logo',\r\n SecurityId: '31070300',\r\n Config: [\r\n { Name: \"AX5_ImportDisabledUsers\", Encrypted: false },\r\n { Name: \"AX5_ConnectorPort\", Encrypted: false },\r\n { Name: \"AX5_ConnectorHostName\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Dynamics SL',\r\n ID: 'SL',\r\n Type: 'SL',\r\n LogoClass: 'sl-avatar-logo',\r\n SecurityId: '24070300',\r\n Config: [\r\n { Name: \"SL_FPAuditDatabase\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Active Directory',\r\n ID: 'AD',\r\n Type: 'AD',\r\n LogoClass: 'active-directory-avatar-logo',\r\n SecurityId: '33300',\r\n Config: [\r\n { Name: \"AD_HostName\", Encrypted: false },\r\n { Name: \"AD_Port\", Encrypted: false },\r\n { Name: \"AD_ImportDisabledUsers\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Entra ID',\r\n ID: 'AAD',\r\n Type: 'AAD',\r\n LogoClass: 'azure-active-directory-avatar-logo',\r\n SecurityId: '34300',\r\n Config: [\r\n { Name: \"AAD_ClientId\", Encrypted: false },\r\n { Name: \"AAD_ClientSecret\", Encrypted: true },\r\n { Name: \"AAD_TenantId\", Encrypted: false },\r\n { Name: \"AAD_ImportDisabledUsers\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Dynamics 365 Business Central',\r\n ID: 'D365Bc',\r\n Type: 'D365Bc',\r\n LogoClass: 'dynamics-365-businesscentral-avatar-logo',\r\n SecurityId: '35070300',\r\n Config: [\r\n { Name: \"D365Bc_Company\", Encrypted: false },\r\n { Name: \"D365Bc_ClientSecret\", Encrypted: true },\r\n { Name: \"D365Bc_Key\", Encrypted: true },\r\n { Name: \"D365Bc_Password\", Encrypted: true },\r\n { Name: \"D365Bc_InstanceName\", Encrypted: false },\r\n { Name: \"D365Bc_TenantId\", Encrypted: false },\r\n { Name: \"D365Bc_ClientId\", Encrypted: false },\r\n { Name: \"D365Bc_AuthType\", Encrypted: false },\r\n { Name: \"D365Bc_User\", Encrypted: false },\r\n { Name: \"D365Bc_BaseUrl\", Encrypted: false },\r\n { Name: \"D365Bc_ODataPort\", Encrypted: false },\r\n { Name: \"D365Bc_IsOnPremise\", Encrypted: false },\r\n { Name: \"D365Bc_ImportDisabledUsers\", Encrypted: false },\r\n { Name: \"D365Bc_UseLegacyPermissionEndpoints\", Encrypted: false },\r\n { Name: \"D365Bc_UseSecurityGroups\", Encrypted: false }\r\n ],\r\n AuthTypeOptions: [\r\n { Id: \"1\", Name: \"Web Service Access Key\" },\r\n { Id: \"2\", Name: \"OAuth\" },\r\n { Id: \"3\", Name: \"Windows\" }\r\n ]\r\n },\r\n {\r\n Name: 'Coupa',\r\n ID: 'CPA',\r\n Type: 'CPA',\r\n LogoClass: 'coupa-avatar-logo',\r\n SecurityId: '36070300',\r\n Config: [\r\n { Name: \"CPA_BaseUrl\", Encrypted: false },\r\n { Name: \"CPA_ApiKey\", Encrypted: true },\r\n { Name: \"CPA_ImportInactiveUsers\", Encrypted: false },\r\n { Name: \"CPA_ClientSecret\", Encrypted: true },\r\n { Name: \"CPA_ClientId\", Encrypted: false },\r\n { Name: \"CPA_AuthenticationType\", Encrypted: false },\r\n { Name: \"CPA_ExcludeSupplierUsers\", Encrypted: false }\r\n ],\r\n AuthTypeOptions: [\r\n { Id: \"1\", Name: \"API Key\" },\r\n { Id: \"2\", Name: \"OAuth2\" }\r\n ]\r\n },\r\n {\r\n Name: 'SAP GRC',\r\n ID: 'SapGrc',\r\n Type: 'SapGrc',\r\n LogoClass: 'sap-avatar-logo',\r\n SecurityId: '37070300',\r\n Config: [\r\n { Name: \"SapGrc_AppServerHost\", Encrypted: false },\r\n { Name: \"SapGrc_SystemNumber\", Encrypted: false },\r\n { Name: \"SapGrc_SystemId\", Encrypted: false },\r\n { Name: \"SapGrc_User\", Encrypted: false },\r\n { Name: \"SapGrc_Password\", Encrypted: true },\r\n { Name: \"SapGrc_Client\", Encrypted: false },\r\n { Name: \"SapGrc_Language\", Encrypted: false },\r\n { Name: \"SapGrc_PoolSize\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Workday',\r\n ID: 'WD',\r\n Type: 'WD',\r\n LogoClass: 'workday-avatar-logo',\r\n SecurityId: '38300',\r\n Config: [\r\n { Name: \"WD_ImportInactiveUsers\", Encrypted: false },\r\n { Name: \"WD_BreakoutByCompany\", Encrypted: false },\r\n { Name: \"WD_Server\", Encrypted: false },\r\n { Name: \"WD_Tenant\", Encrypted: false },\r\n { Name: \"WD_User\", Encrypted: false },\r\n { Name: \"WD_Password\", Encrypted: true },\r\n { Name: \"WD_AuthType\", Encrypted: false },\r\n { Name: \"WD_RefreshToken\", Encrypted: false },\r\n { Name: \"WD_ClientId\", Encrypted: false },\r\n { Name: \"WD_ClientSecret\", Encrypted: true },\r\n { Name: \"WD_ApiImportType\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Zuora',\r\n ID: 'Zuo',\r\n Type: 'Zuo',\r\n LogoClass: 'zuo-avatar-logo',\r\n SecurityId: '39070300',\r\n Config: [\r\n { Name: \"Zuo_BaseUrl\", Encrypted: false },\r\n { Name: \"Zuo_ClientId\", Encrypted: false },\r\n { Name: \"Zuo_ClientSecret\", Encrypted: true },\r\n { Name: \"Zuo_ImportInactiveUsers\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Oracle Cloud EPM',\r\n ID: 'OREPM',\r\n Type: 'OREPM',\r\n LogoClass: 'orfc-avatar-logo',\r\n SecurityId: '40070300',\r\n Config: []\r\n },\r\n {\r\n Name: 'Azure',\r\n ID: 'AZ',\r\n Type: 'AZ',\r\n LogoClass: 'azure-avatar-logo',\r\n SecurityId: '43300',\r\n Config: [\r\n { Name: \"AZ_ClientId\", Encrypted: false },\r\n { Name: \"AZ_ClientSecret\", Encrypted: true },\r\n { Name: \"AZ_TenantId\", Encrypted: false },\r\n { Name: \"AAD_ImportDisabledUsers\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'SAP Ariba',\r\n ID: 'ARB',\r\n Type: 'ARB',\r\n LogoClass: 'ariba-avatar-logo',\r\n SecurityId: '45300',\r\n Config: [\r\n { Name: \"ARB_ApiUrl\", Encrypted: false },\r\n { Name: \"ARB_TokenUrl\", Encrypted: false },\r\n { Name: \"ARB_ApiKey\", Encrypted: true },\r\n { Name: \"ARB_Realm\", Encrypted: false },\r\n { Name: \"ARB_Base64ClientSecret\", Encrypted: true }\r\n ]\r\n },\r\n {\r\n Name: 'Azure DevOps',\r\n ID: 'ADO',\r\n Type: 'ADO',\r\n LogoClass: 'azure-devops-avatar-logo',\r\n SecurityId: '46300',\r\n Config: [\r\n { Name: \"ADO_AzureResource\", Encrypted: false },\r\n { Name: \"ADO_PersonalAccessToken\", Encrypted: true },\r\n { Name: \"ADO_Organization\", Encrypted: false }\r\n ]\r\n },\r\n {\r\n Name: 'Concur',\r\n ID: 'CNC',\r\n Type: 'CNC',\r\n LogoClass: 'concur-avatar-logo',\r\n SecurityId: '47300',\r\n Config: [\r\n { Name: \"CNC_ClientId\", Encrypted: false },\r\n { Name: \"CNC_ClientSecret\", Encrypted: true },\r\n { Name: \"CNC_CompanyUsername\", Encrypted: false },\r\n { Name: \"CNC_CompanyPassword\", Encrypted: true }\r\n ]\r\n }\r\n];\r\n\r\nexport default allSupportedProducts;","import allSupportedProducts from \"../GlobalVariables/ProductLookUp\";\r\n\r\nexport default /*@ngInject*/ function (helperService, $location) {\r\n var self = this;\r\n\r\n self.viewImportReport = function (productType) {\r\n var selectedProduct = allSupportedProducts.filter(e => e.Type === productType)[0];\r\n var productName = '';\r\n var objectName = \"Import Details\";\r\n\r\n if (selectedProduct) {\r\n productName = selectedProduct.Name;\r\n objectName = productName + \" Import Details\";\r\n }\r\n\r\n var userSecurityList = angular.fromJson(localStorage.getItem(\"UserSecurityObjects\"));\r\n\r\n productName = helperService.removeSpaces(productName);\r\n\r\n var objectId = null;\r\n\r\n if (userSecurityList) {\r\n var userSecurityObject = userSecurityList.find(function (object) {\r\n return object.Name === objectName;\r\n });\r\n\r\n if (userSecurityObject !== null) {\r\n objectId = userSecurityObject.ObjectID;\r\n $location.path('/Integrations/Report/' + productName + 'ImportDetails/' + objectId).search('');\r\n }\r\n }\r\n\r\n };\r\n\r\n self.launchReportByObjectId = function (objectId) {\r\n\r\n var userSecurityObject = helperService.getSecurityObjectById(objectId);\r\n\r\n if (userSecurityObject) {\r\n\r\n var ModuleName = helperService.moduleLookUpById(userSecurityObject.ParentID);\r\n\r\n if (userSecurityObject.TypeID === 2) {\r\n helperService.changeView(ModuleName, userSecurityObject.Name, userSecurityObject.TypeName);\r\n } else {\r\n helperService.changeReportView(ModuleName, userSecurityObject.Name, userSecurityObject.ObjectID, userSecurityObject.TypeName);\r\n }\r\n }\r\n\r\n };\r\n\r\n}","export default /*@ngInject*/ function ($filter) {\r\n const vm = this,\r\n baseUrl = 'api/core/charts/';\r\n\r\n vm.createGenericTableChart = createGenericTableChart;\r\n vm.createGenericTile = createGenericTile;\r\n vm.createGenericDoughnutChart = createGenericDoughnutChart;\r\n vm.createGenericColumnChart = createGenericColumnChart;\r\n vm.createGenericStackedColumnChart = createGenericStackedColumnChart;\r\n vm.setPropertiesForChart = setPropertiesForChart;\r\n vm.setPropertiesForStackedChart = setPropertiesForStackedChart;\r\n vm.setTileChartValues = setTileChartValues;\r\n vm.createSavedReportStub = createSavedReportStub;\r\n\r\n function createGenericTableChart(item) {\r\n return {\r\n ObjectId: item.ObjectID,\r\n CardType: 'table',\r\n APIUrl: baseUrl + item.Id + '/data',\r\n DataSource: {\r\n reportObjectId: item.ObjectID,\r\n reportField: item.LabelColumn,\r\n data: []\r\n }\r\n };\r\n }\r\n\r\n function createGenericTile (item) {\r\n return {\r\n ObjectId: item.ObjectID,\r\n CardType: 'tile',\r\n APIUrl: baseUrl + item.Id + '/data',\r\n DataSource: {\r\n reportObjectId: item.ObjectID,\r\n reportField: item.LabelColumn,\r\n data: []\r\n }\r\n };\r\n }\r\n\r\n function createGenericDoughnutChart (item) {\r\n return {\r\n ObjectId: item.ObjectID,\r\n CardType: item.ChartType,\r\n APIUrl: baseUrl + item.Id + '/data',\r\n ToggleOnWhenFullScreen: [\"showlegend\"],\r\n DataSource: {\r\n reportObjectId: item.ObjectID,\r\n reportField: item.LabelColumn,\r\n chart: {\r\n \"showvalues\": \"0\",\r\n \"showlabels\": \"0\",\r\n \"showlegend\": \"1\",\r\n \"doughnutRadius\": \"100\",\r\n \"plottooltext\": \"$Label: $Value ($percentValue)\",\r\n \"theme\": \"ocean\"\r\n },\r\n data: []\r\n }\r\n };\r\n }\r\n\r\n function createGenericColumnChart (item) {\r\n return {\r\n ObjectId: item.ObjectID,\r\n CardType: item.ChartType,\r\n APIUrl: baseUrl + item.Id + '/data',\r\n ToggleOnWhenFullScreen: [\"showvalues\", \"showlabels\"],\r\n DataSource: {\r\n reportObjectId: item.ObjectID,\r\n reportField: item.LabelColumn,\r\n chart: {\r\n \"showvalues\": \"1\",\r\n \"showlabels\": \"1\",\r\n \"showlegend\": \"0\",\r\n \"showborder\": \"0\",\r\n \"theme\": \"ocean\"\r\n },\r\n data: []\r\n }\r\n };\r\n }\r\n\r\n function createGenericStackedColumnChart (item) {\r\n return {\r\n ObjectId: item.ObjectID,\r\n CardType: item.ChartType,\r\n APIUrl: baseUrl + item.Id + '/stackeddata',\r\n DataSource: {\r\n reportObjectId: item.ObjectID,\r\n reportCategory: item.CategoryColumn,\r\n reportSeries: item.SeriesColumn,\r\n chart: {\r\n \"showsum\": \"0\",\r\n \"theme\": \"ocean\",\r\n \"showborder\": \"0\",\r\n \"drawcrossline\": \"1\"\r\n },\r\n categories: [],\r\n dataset: []\r\n }\r\n };\r\n }\r\n\r\n function setPropertiesForChart (data) {\r\n data.forEach(function (row) {\r\n switch (row.Label) {\r\n case 'Ignore':\n row.color = \"878787\";\n break;\n case 'High':\n row.color = \"EC7063\";\n break;\n case 'Medium':\n row.color = \"FFAD5D\";\n break;\n case 'Low':\n row.color = \"558DBF\";\n break;\r\n case 'Overdue':\r\n case 'Incomplete':\r\n row.color = \"E74C3C\";\r\n break;\r\n case 'Not Started':\r\n row.color = \"696969\";\r\n break;\r\n case 'In Progress':\r\n row.color = \"FF9934\";\r\n break;\r\n case 'Completed':\r\n row.color = \"008A00\";\r\n break;\r\n }\n row.link = \"j-\";\r\n });\r\n\r\n return data;\r\n }\r\n\r\n function setPropertiesForStackedChart (data) {\r\n data.DataSet.forEach(function (row) {\r\n switch (row.SeriesName) {\r\n case 'Overdue':\r\n case 'Incomplete':\r\n row.color = \"E74C3C\";\r\n break;\r\n case 'Not Started':\r\n row.color = \"696969\";\r\n break;\r\n case 'In Progress':\r\n row.color = \"FF9934\";\r\n break;\r\n case 'Completed':\r\n row.color = \"008A00\";\r\n break;\r\n }\r\n row.link = \"j-\";\r\n });\r\n }\r\n\r\n function setTileChartValues (chart, data) {\r\n var itemObject = $filter('filter')(data, { Label: \"!Total\" })[0];\r\n chart.ItemCount = itemObject.Value;\r\n chart.ItemLabel = itemObject.Label;\r\n chart.TotalCount = $filter('filter')(data, { Label: \"Total\" })[0].Value;\r\n chart.Percent = Math.round(chart.ItemCount / chart.TotalCount * 100, 2);\r\n\r\n return chart;\r\n }\r\n\r\n function createSavedReportStub(filters, objectId) {\r\n\r\n var filtersArray = [];\r\n\r\n filters.forEach(function (row) {\r\n var filterModel = {\r\n \"FieldName\": row.Label,\r\n \"Operator\": \"Equals\",\r\n \"Value\": row.Value\r\n };\r\n filtersArray.push(filterModel);\r\n });\r\n\r\n var loadedSavedReport = {\r\n \"ReportDefinition\": {\r\n \"Columns\": [],\r\n \"Criteria\": [],\r\n \"Filters\": filtersArray,\r\n \"ObjectId\": objectId,\r\n \"Sortings\": []\r\n }\r\n };\r\n return loadedSavedReport;\r\n }\r\n}","export const customDatePickerFilter = {\r\n extra: false, //do not show extra filters\r\n operators: { // redefine the string operators\r\n date: {\r\n gt: \"Is after\",\r\n lt: \"Is before\",\r\n isempty: \"Is empty\",\r\n isnotempty: \"Is not empty\"\r\n }\r\n },\r\n cell: {\r\n template: function (e) {\r\n e.element.kendoDatePicker({\r\n format: \"M/d/yy\"\r\n });\r\n\r\n }\r\n }\r\n};\r\n\r\n// added for User Product Profile access grid issue with filtering nullable date values\r\nexport const customDatePickerFilterNullable = {\r\n extra: false, //do not show extra filters\r\n operators: { // redefine the string operators\r\n date: {\r\n gte: \"Is after or equal to\",\r\n isnull: \"Is empty\",\r\n isnotnull: \"Is not empty\"\r\n }\r\n },\r\n cell: {\r\n template: function (e) {\r\n e.element.kendoDatePicker({\r\n format: \"M/d/yy\"\r\n });\r\n\r\n }\r\n }\r\n};\r\n\r\nexport const customDatePickerNotNullableFilter = {\r\n extra: false, //do not show extra filters\r\n operators: { // redefine the string operators\r\n date: {\r\n gt: \"Is after\",\r\n lt: \"Is before\"\r\n }\r\n },\r\n cell: {\r\n template: function (e) {\r\n e.element.kendoDatePicker({\r\n format: \"M/d/yy\"\r\n });\r\n }\r\n }\r\n};\r\n\r\nexport const customBooleanFilter = {\r\n messages: {\r\n isTrue: \"True\",\r\n isFalse: \"False\"\r\n }\r\n};\r\n\r\nexport const customYesNoBooleanFilter = {\r\n messages: {\r\n isTrue: \"Yes\",\r\n isFalse: \"No\"\r\n }\r\n};\r\nexport const customBooleanYesNoFilter = {\r\n messages: {\r\n isTrue: \"Yes\",\r\n isFalse: \"No\"\r\n }\r\n};\r\n\r\nexport const customAutoCompleteFilter = {\r\n operators: {\r\n string: {\r\n contains: \"Contains\",\r\n doesnotcontain: \"Does not contain\",\r\n eq: \"Equal to\",\r\n neq: \"Not equal to\",\r\n startswith: 'Starts with',\r\n endswith: 'Ends with',\r\n isempty: 'Is empty',\r\n isnotempty: 'Is not empty'\r\n },\r\n number: {\r\n eq: \"Equal to\",\r\n neq: \"Not equal to\",\r\n gte: \"Greater than or equal to\",\r\n gt: \"Greater than\",\r\n lte: \"Less than or equal to\",\r\n lt: \"Less than\"\r\n }\r\n },\r\n cell: {\r\n template: function (e) {\r\n e.element.kendoAutoComplete({\r\n serverFiltering: false,\r\n valuePrimitive: true,\r\n noDataTemplate: ''\r\n });\r\n }\r\n }\r\n};\r\n\r\nexport const customNotStringEmptyFilter = {\r\n extra: false, //do not show extra filters\r\n operators: {\r\n number: {\r\n eq: \"Equal to\",\r\n neq: \"Not equal to\",\r\n gte: \"Greater than or equal to\",\r\n gt: \"Greater than\",\r\n lte: \"Less than or equal to\",\r\n lt: \"Less than\",\r\n isempty: \"Is empty\",\r\n isnotempty: \"Is not empty\"\r\n },\r\n date: {\r\n gt: \"Is after\",\r\n lt: \"Is before\",\r\n isempty: \"Is empty\",\r\n isnotempty: \"Is not empty\"\r\n }\r\n }\r\n};\r\n\r\nexport const customAutoCompleteFilterEqualToOnly = {\r\n operators: {\r\n string: {\r\n eq: \"Equal to\"\r\n }\r\n },\r\n cell: {\r\n template: function (e) {\r\n e.element.kendoAutoComplete({\r\n serverFiltering: false,\r\n valuePrimitive: true,\r\n noDataTemplate: ''\r\n });\r\n }\r\n }\r\n};\r\n\r\nexport const standardGridPageSize = 50;","import { customAutoCompleteFilter } from \"../GlobalVariables/filterVariables\";\r\nimport swal from \"sweetalert2\";\r\n\r\nexport default /*@ngInject*/ function ($http, $rootScope, $q, $timeout, $filter, helperService, $location, applicationInsightsService) {\r\n\r\n this.clearGridFilters = function (a) {\r\n a.filter({});\r\n };\r\n\r\n this.setfilterManagerGridOptions = function () {\r\n var filterManagerGridOptions = {\r\n\r\n height: 400,\r\n scrollable: { virtual: true },\r\n columns: [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"ReportName\", title: \"Report Name\", filterable: customAutoCompleteFilter },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n ],\r\n sortable: true,\r\n resizable: true,\r\n //columnMenu: true,\r\n reorderable: true,\r\n selectable: true,\r\n allowCopy: true,\r\n pageable: { numeric: false, previousNext: false, messages: { display: \"Total: {2}\" } }\r\n };\r\n\r\n return filterManagerGridOptions;\r\n\r\n };\r\n\r\n this.setfiltersDataSource = function (objectId) {\r\n\r\n var dataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/core/userreportfilters/reports/' + objectId)\r\n .then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n return dataSource;\r\n };\r\n\r\n this.getAccessDetailsForRowUserRisks = function (xscope, grid) {\r\n var selectedData = grid.dataItem(grid.select());\r\n\r\n if (selectedData) {\r\n\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/arm/risks/' + selectedData.RiskId + '/products'\r\n }).then(response => {\r\n return response;\r\n }).catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n this.getAccessDetailsForEachProduct = function (products, grid) {\r\n var selectedData = grid.dataItem(grid.select());\r\n\r\n var promises = [];\r\n var accessDetailsForEachProduct = [];\r\n var promise = $q.when();\r\n\r\n products.forEach(function (row, i) {\r\n\r\n\r\n var partialUrlString = '/places/accessdetails/risk/' + selectedData.RiskId + '/company/' + selectedData.CompanyMasterID + '/user/' + selectedData.UserMasterID;\r\n\r\n var urlString;\r\n var productType = row.Type\r\n\r\n if (productType === 'NS') {\r\n urlString = apiUrl + 'api/arm/ns' + partialUrlString;\r\n } else if (productType === 'INT') {\r\n urlString = apiUrl + 'api/arm/int' + partialUrlString;\r\n } else if (productType === 'OR') {\r\n urlString = apiUrl + 'api/arm/or' + partialUrlString;\r\n } else if (productType === 'SF') {\r\n urlString = apiUrl + 'api/arm/sf' + partialUrlString;\r\n } else if (productType === 'AC') {\r\n urlString = apiUrl + 'api/arm/ac' + partialUrlString;\r\n } else {\r\n urlString = apiUrl + 'api/arm/' + productType + partialUrlString;\r\n }\r\n\r\n if (urlString) {\r\n promise = promise.then(function () {\r\n return $http({\r\n method: 'GET',\r\n url: urlString\r\n }).then(response => {\r\n accessDetailsForEachProduct.push({ 'Product': row, 'DataSource': response.data });\r\n return accessDetailsForEachProduct;\r\n }).catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n });\r\n };\r\n\r\n });\r\n return promise;\r\n };\r\n\r\n\r\n\r\n this.getAccessDetailsForRow = function (xscope, grid) {\r\n var selectedData = grid.dataItem(grid.select());\r\n\r\n if (selectedData) {\r\n var userId = selectedData.UserID;\r\n var companyId = selectedData.CompanyID;\r\n var accessTypeId = selectedData.AccessTypeID;\r\n var securityObjectId = selectedData.SecurityObjectID;\r\n var securityObjectTypeId = selectedData.SecurityObjectTypeID;\r\n var productId = selectedData.ProductID;\r\n\r\n var urlString;\r\n var accessDetailsParams = { userId: userId, companyId: companyId, securityObjectId: securityObjectId, securityObjectTypeId: securityObjectTypeId, productId: productId, accessTypeId: accessTypeId };\r\n\r\n urlString = apiUrl + 'api/arm/' + productId + '/places/accessdetails';\r\n\r\n if (urlString) {\r\n\r\n return $http({\r\n method: 'GET',\r\n url: urlString,\r\n params: accessDetailsParams\r\n }).then(response => {\r\n return response;\r\n }).catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n }\r\n };\r\n\r\n this.getATChangeCountForRow = function (xscope, grid) {\r\n var selectedData = grid.dataItem(grid.select());\r\n\r\n if (selectedData) {\r\n var userId = selectedData.UserID;\r\n var companyId = selectedData.CompanyID;\r\n var accessTypeId = selectedData.AccessTypeID;\r\n var securityObjectId = selectedData.SecurityObjectID;\r\n var securityObjectTypeId = selectedData.SecurityObjectTypeID;\r\n var productId = selectedData.ProductID;\r\n\r\n var urlString;\r\n var atDetailsParams = { userId: userId, securityObjectId: securityObjectId, securityObjectTypeId: securityObjectTypeId, accessTypeId: accessTypeId, companyId: companyId };\r\n\r\n if (productId === 'NS') {\r\n urlString = apiUrl + 'api/audittrail/ns/places/accessdetailscount';\r\n }\r\n\r\n\r\n if (urlString) {\r\n\r\n $http({\r\n method: 'GET',\r\n url: urlString,\r\n params: atDetailsParams\r\n }).then(function (response) {\r\n xscope.changeCount = response.data;\r\n\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n } else {\r\n xscope.changeCount = 0;\r\n }\r\n }\r\n };\r\n\r\n this.deleteFilterFilterManager = function (a, id) {\r\n var rows = a.filtersDataSource.data();\r\n\r\n rows.forEach(function (row) {\r\n if (row.Id.toString() === id.toString()) {\r\n\r\n $http({\r\n method: 'DELETE',\r\n url: apiUrl + 'api/core/userreportfilters/' + row.Id\r\n }).then(function successCallback(response) {\r\n rows.remove(row);\r\n\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n });\r\n };\r\n\r\n this.saveGridLayout = function (xscope, productId) {\r\n\r\n var gridOptions = xscope.grid.getOptions();\r\n\r\n var Columns = JSON.stringify(gridOptions.columns);\r\n var Groupings = JSON.stringify(gridOptions.dataSource.group);\r\n var Sortings = JSON.stringify(gridOptions.dataSource.sort);\r\n\r\n var dataItemForPost = { ObjectId: xscope.ObjectId, Columns: Columns, Sortings: Sortings, ProductId: productId };\r\n\r\n function postLayoutToDB(dataItemForPost) {\r\n //Get the report name before writing the custom event to insights\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/objects/' + xscope.ObjectId\r\n }).then(function (response) {\r\n applicationInsightsService.trackEvent('SaveLayout', { ProductId: productId, Name: response.data.Name, ObjectId: xscope.ObjectId });\r\n });\r\n\r\n $http.post(apiUrl + 'api/core/reportlayouts/', dataItemForPost).\r\n then(function (response) {\r\n helperService.showConfirmationMessage(\"Success\", \"Report Layout Saved\");\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/reportlayouts/object/' + xscope.ObjectId,\r\n params: { productId: productId }\r\n }).then(function (response) {\r\n //it exists - override by deleting and creating new\r\n var existingLayoutId = response.data.ID;\r\n\r\n function overWriteSavedLayout() {\r\n var data = {\r\n \"ID\": existingLayoutId,\r\n \"Columns\": Columns,\r\n \"Groupings\": Groupings,\r\n \"Sortings\": Sortings\r\n };\r\n\r\n //Get the report name before writing the custom event to insights\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/objects/' + xscope.ObjectId\r\n }).then(function (response) {\r\n applicationInsightsService.trackEvent('SaveLayout', { ProductId: productId, Name: response.data.Name, ObjectId: xscope.ObjectId });\r\n });\r\n\r\n $http.put(apiUrl + 'api/core/reportlayouts/' + existingLayoutId, data).then(function (response) {\r\n helperService.showConfirmationMessage(\"Success\", \"Report Layout Saved\");\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n swal(helperService.areYouSureParams('Overwrite Layout', 'Are you sure you want to overwrite this Layout?', 'Overwrite')).then(function () {\r\n overWriteSavedLayout();\r\n }, function (dismiss) {\r\n return;\r\n });\r\n\r\n }, function (response) {\r\n //it doesnt exist - create\r\n postLayoutToDB(dataItemForPost);\r\n });\r\n };\r\n\r\n this.loadSavedDynamicGridLayout = function (xscope, productId) {\r\n\r\n var deferred = $q.defer();\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/reportlayouts/object/' + xscope.ObjectId,\r\n params: { productId: productId }\r\n }).then(function (response) {\r\n deferred.resolve(JSON.parse(response.data.Columns));\r\n }, function (response) {\r\n deferred.reject();\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n this.loadSavedGridLayout = function (xscope, productId) {\r\n $timeout(function () {\r\n\r\n if (xscope.grid) {\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/reportlayouts/object/' + xscope.ObjectId,\r\n params: { productId: productId }\r\n }).then(function (response) {\r\n\r\n //xscope.mainGridColumns = JSON.parse(response.data.Columns);\r\n\r\n var currentOptions = xscope.grid.getOptions();\r\n\r\n var loadedColumns = JSON.parse(response.data.Columns);\r\n\r\n xscope.grid.setOptions({ \"columns\": loadedColumns });\r\n\r\n\r\n }, function (response) {\r\n return;\r\n });\r\n }\r\n\r\n }, 500);\r\n\r\n };\r\n\r\n this.loadSavedReportLayout = function (xscope, inLayout) {\r\n\r\n $timeout(function () {\r\n var layout = JSON.parse(inLayout);\r\n var loadedColumns = JSON.parse(layout.Columns);\r\n var loadedGroupings = JSON.parse(layout.Groupings);\r\n var loadedSortings = JSON.parse(layout.Sortings);\r\n\r\n if (xscope.grid) {\r\n var currentOptions = xscope.grid.getOptions();\r\n\r\n if (loadedColumns) {\r\n currentOptions.columns = loadedColumns;\r\n }\r\n if (loadedGroupings) {\r\n currentOptions.dataSource.group = loadedGroupings;\r\n }\r\n if (loadedSortings) {\r\n currentOptions.dataSource.sort = loadedSortings;\r\n }\r\n xscope.grid.setOptions(currentOptions);\r\n }\r\n }, 500);\r\n };\r\n\r\n this.Criteria = function () {\r\n this.ParameterName = '',\r\n this.Value = '',\r\n this.DisplayName = '',\r\n this.DisplayValue = '';\r\n };\r\n\r\n this.CreateCriteria = function (ParameterName, DisplayName, DisplayValue, Value) {\r\n var criteria = {};\r\n\r\n //field Name\r\n criteria.ParameterName = ParameterName,\r\n\r\n //Must Match criteria type enum:\r\n //SecurityObject = 1, SecurityObjectType = 2, Product = 3, User = 4, Company = 5, Risk = 6, Role = 7, Responsibility = 8, StartDate = 9, EndDate = 10, GroupId = 11, GroupType = 12, RecordType = 13, Record = 14, Status = 15, IntraResponsibilityOnly = 16, Date = 17, TemplateId = 18\r\n criteria.DisplayName = DisplayName,\r\n\r\n criteria.DisplayValue = DisplayValue,\r\n\r\n criteria.Value = Value;\r\n\r\n return criteria;\r\n };\r\n\r\n var Layout = {\r\n Columns: '',\r\n Groupings: '',\r\n Sortings: ''\r\n };\r\n\r\n this.loadSavedReport = function (savedReport) {\r\n //Get detailed information about report\r\n var objectId = helperService.getSecurityObjectDetailsFromReportId(savedReport.ReportDefinition.ReportId).ObjectID;\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/objects/' + objectId\r\n }).then(function (response) {\r\n \r\n var reportName = helperService.removeSpaces(response.data.Name);\r\n var moduleNameNoSpaces = helperService.removeSpaces(response.data.ParentObject.Name);\r\n $rootScope.loadedSavedReport = angular.copy(savedReport);\r\n\r\n if (response.data.TypeID === 2) {\r\n helperService.changeView(moduleNameNoSpaces, reportName, 'Place');\r\n } else {\r\n $location.path(moduleNameNoSpaces + '/Report/' + reportName + '/' + response.data.ObjectID);\r\n }\r\n\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n this.getRelativeDateTypes = function () {\r\n\r\n return [\r\n {\r\n Name: 'Date Range',\r\n Id: 4\r\n },\r\n {\r\n Name: 'Previous',\r\n Id: 0\r\n },\r\n {\r\n Name: 'Current',\r\n Id: 1\r\n },\r\n {\r\n Name: 'Last',\r\n Id: 2\r\n }\r\n ];\r\n };\r\n this.getPeriodTypes = function () {\r\n\r\n return [\r\n {\r\n Name: 'Day',\r\n PluralName: 'Day(s)',\r\n Id: 0\r\n },\r\n {\r\n Name: 'Week',\r\n PluralName: 'Week(s)',\r\n Id: 1\r\n },\r\n {\r\n Name: 'Month',\r\n PluralName: 'Month(s)',\r\n Id: 2\r\n },\r\n {\r\n Name: 'Quarter',\r\n PluralName: 'Quarter(s)',\r\n Id: 3\r\n },\r\n {\r\n Name: 'Year',\r\n PluralName: 'Year(s)',\r\n Id: 4\r\n }\r\n ];\r\n };\r\n\r\n this.convertCriteriaValueToNull = function (object, propertyName) {\r\n if (object[propertyName] === \"-1\") {\r\n object[propertyName] = null;\r\n }\r\n }\r\n\r\n}\r\n","export default /*@ngInject*/ function ($http, FileSaver, helperService) {\r\n const service = {\r\n downloadReportExport,\r\n downloadReportExportFromNotification\r\n };\r\n\r\n return service;\r\n\r\n function downloadReportExport(item) {\r\n $http.get(apiUrl + 'api/core/exports/download/' + item.Id, { responseType: \"blob\" }).then(function successCallback(response) {\r\n if (item.Type === 'PDF') {\r\n FileSaver.saveAs(response.data, item.Name + '.pdf');\r\n } else if (item.Type === 'Excel') {\r\n FileSaver.saveAs(response.data, item.Name + '.xlsx');\r\n } else if (item.Type === 'Csv') {\r\n FileSaver.saveAs(response.data, item.Name + '.csv');\r\n }\r\n\r\n if (item.Status === 'ReadyForDownload') {\r\n item.Status = 'Downloaded';\r\n }\r\n\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n function downloadReportExportFromNotification(item) {\r\n $http.get(apiUrl + 'api/core/exports/download/' + item.ExportId, { responseType: \"blob\" }).then(function successCallback(response) {\r\n FileSaver.saveAs(response.data, item.ExportName);\r\n }, function errorCallback(response) {\r\n if (response.status === 404) {\r\n helperService.showErrorMessage(\"Export no longer exists\");\r\n } else {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n });\r\n }\r\n\r\n\r\n}","import createSpinner from \"../Functions/createSpinner\";\r\nimport swal from \"sweetalert2\";\r\nimport allSupportedProducts from \"../GlobalVariables/ProductLookUp\";\r\n\r\nexport default /*@ngInject*/ function ($http, $rootScope, $window, $location, $timeout, $route, $filter, authenticationService, applicationInsightsService) {\r\n const service = {\r\n setDateToBeginningOfDay,\r\n setDateToEndOfDay,\r\n calculatePercentage,\r\n convertDateToSelectedTimeZone,\r\n convertUTCDateTimeStringToDateString,\r\n setNonPageableGridOptions,\r\n getSecurityObjectById,\r\n compareTwoObjectsForMatch,\r\n returnTrueIfValuesDiffer,\r\n successfulSaveButton,\r\n determineDataChangesLinkProduct,\r\n productNameLookUp,\r\n moduleLookUpById,\r\n manageDataTypeNameLookUp,\r\n convertConfigValueToTrueFalse,\r\n allPluginsTurnedOff,\r\n valueMapperFunction,\r\n multiValueMapperFunction,\r\n roleMapperFunction,\r\n userMapperFunction,\r\n generateRandomUuid,\r\n setMainGridOptions,\r\n goToHomePage,\r\n backToPreviousPage,\r\n smallLoad,\r\n determineContainerClass,\r\n setProductImageClass,\r\n setProviderImageClass,\r\n setStatusCssClass,\r\n setStatusIconColor,\r\n getDayOfMonthDropdownOptions,\r\n getMonthsDropdownOptions,\r\n cleanReportColumns,\r\n halPrepareSortArray,\r\n halPrepareFilterArray,\r\n prepareSortsAndFilters,\r\n getFilterDropdownOptions,\r\n returnNullIfAllIsFound,\r\n deselectAllObjectsIfOtherIsClicked,\r\n displayPipeBetween,\r\n displayPipeBetweenObjectsDrop,\r\n convertFiltersForGrid,\r\n applyFilterCatchError,\r\n getObjectDetails,\r\n removeSpaces,\r\n changeMainLocation,\r\n getTabIndex,\r\n changeReportView,\r\n changeView,\r\n setFavoriteValue,\r\n getConfigurationValue,\r\n setConfigurationValue,\r\n setConfigurationValueClosePopup,\r\n checkFavorite,\r\n areYouSureParams,\r\n areYouSureParamsWithHTML,\r\n showErrorMessage,\r\n showConfirmationMessage,\r\n showConfirmationMessageNoButtons,\r\n navigateTo,\r\n refreshPage,\r\n goBack,\r\n clone,\r\n camelCaseToSentence,\r\n splitHeaderText,\r\n headerStringTransformer,\r\n getBaseURL,\r\n isJson,\r\n objectExists,\r\n getApplicationName,\r\n getProductName,\r\n getSecurityObjectDetailsFromObjectId,\r\n getSecurityObjectDetailsFromObjectIdAndProductType,\r\n getSecurityObjectDetailsFromReportId,\r\n getAccessName,\r\n getUserName,\r\n toUTF8Array,\r\n setPluginImageClass\r\n };\r\n\r\n return service;\r\n\r\n function setDateToBeginningOfDay(startDate) {\r\n startDate = $filter('date')(new Date(startDate), 'longDate');\r\n startDate = new Date(startDate);\r\n return startDate;\r\n }\r\n\r\n function setDateToEndOfDay(endDate) {\r\n endDate = $filter('date')(new Date(endDate), 'longDate');\r\n endDate = new Date(endDate);\r\n endDate.setHours(24);\r\n endDate.setSeconds(endDate.getSeconds() - 1);\r\n return endDate;\r\n }\r\n\r\n function convertDateToSelectedTimeZone(date, decimalOffset) {\r\n date = new Date(date);\r\n var offset = date.getTimezoneOffset();\r\n var selectedTimeZoneOff = decimalOffset;\r\n\r\n var utc = date.getTime() + (date.getTimezoneOffset() * 60000);\r\n var nd = new Date(utc + (3600000 * selectedTimeZoneOff));\r\n\r\n return nd;\r\n }\r\n\r\n function calculatePercentage(value, total) {\r\n //round to 2 decimals\r\n return Number(Math.round((value / total) * 100 + 'e2') + 'e-2');\r\n }\r\n\r\n //Ignores Time Zone\r\n function convertUTCDateTimeStringToDateString(dateTime) {\r\n const dateObj = new Date(dateTime),\r\n month = dateObj.getUTCMonth() + 1,\r\n day = dateObj.getUTCDate(),\r\n year = dateObj.getUTCFullYear();\r\n\r\n return year + \"/\" + month + \"/\" + day;\r\n }\r\n\r\n function setNonPageableGridOptions(columns, height) {\r\n\r\n var gridOptions = {\r\n sortable: true,\r\n scrollable: true,\r\n reorderable: true,\r\n resizable: true,\r\n allowCopy: true,\r\n pageable: { numeric: false, previousNext: false, messages: { display: \"Total: {2}\" } },\r\n columns: columns,\r\n height: height\r\n\r\n };\r\n\r\n return gridOptions;\r\n }\r\n\r\n function getSecurityObjectById(objectId) {\r\n var userSecurityList = angular.fromJson(localStorage.getItem(\"UserSecurityObjects\"));\r\n\r\n var userSecurityObject = null;\r\n\r\n if (userSecurityList) {\r\n userSecurityObject = userSecurityList.find(function (object) { return object.ObjectID == objectId; });\r\n return userSecurityObject;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n function compareTwoObjectsForMatch(object1, object2, compareList) {\r\n\r\n var compareResults = [];\r\n\r\n compareList.forEach(function (row) {\r\n var list1 = JSON.stringify($filter('orderBy')(object1[row.Key], row.Sort));\r\n var list2 = JSON.stringify($filter('orderBy')(object2[row.Key], row.Sort));\r\n var match = list1 === list2;\r\n compareResults[row.Key] = match;\r\n });\r\n\r\n var result = false;\r\n\r\n for (var i in compareResults) {\r\n if (compareResults[i] === false) {\r\n result = true;\r\n break;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function returnTrueIfValuesDiffer(valuesToCheck, origArray, currentArray) {\r\n if (origArray && currentArray) {\r\n\r\n for (var i = 0; i < valuesToCheck.length; i++) {\r\n var item = valuesToCheck[i];\r\n var configValue = currentArray[item];\r\n var origConfigValue = origArray[item];\r\n\r\n if (configValue !== origConfigValue) {\r\n if (origConfigValue === null) {\r\n if (configValue !== \"\") {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n function successfulSaveButton(inlineSaver) {\r\n\r\n return new Promise(function (resolve, reject) {\r\n\r\n var currentTime = new Date().getTime();\r\n var startTime = inlineSaver.spinnerStart.getTime();\r\n\r\n var difference = currentTime - startTime;\r\n var minSpinTime = 800;\r\n\r\n function setValues() {\r\n inlineSaver.loadingValue = false;\r\n inlineSaver.savedValue = true;\r\n $timeout(function () {\r\n inlineSaver.savedValue = false;\r\n resolve();\r\n }, 2000);\r\n }\r\n\r\n if (difference > minSpinTime) {\r\n //User has waited long enough\r\n setValues();\r\n } else {\r\n $timeout(function () {\r\n setValues();\r\n }, minSpinTime - difference);\r\n }\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n function determineDataChangesLinkProduct(TicketProvider) {\r\n if (TicketProvider === 'Zendesk') {\r\n return 'zendesk-avatar-logo';\r\n } else if (TicketProvider === 'Jira') {\r\n return 'jira-avatar-logo';\r\n }\r\n }\r\n\r\n function productNameLookUp(productId) {\r\n var product = allSupportedProducts.filter(e => e.ID == productId)[0];\r\n if (product) {\r\n return product.Name;\r\n }\r\n }\r\n\r\n function moduleLookUpById(parentId) {\r\n var NavigationObjects = angular.fromJson(localStorage.getItem(\"NavigationObjects\"));\r\n var module = NavigationObjects.filter(e => e.ObjectID == parentId)[0];\r\n if (module) {\r\n return module.Name;\r\n }\r\n }\r\n\r\n function manageDataTypeNameLookUp(typeId) {\r\n if (typeId === 1) {\r\n return 'Archive';\r\n } else if (typeId === 2) {\r\n return 'Purge';\r\n } else if (typeId === 3) {\r\n return 'Restore';\r\n }\r\n }\r\n\r\n function convertConfigValueToTrueFalse(configName) {\r\n var configValues = JSON.parse(localStorage.getItem(\"ConfigurationValues\"));\r\n if (configValues[configName] == \"1\") {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n function allPluginsTurnedOff() {\r\n var configValues = JSON.parse(localStorage.getItem(\"ConfigurationValues\"));\r\n if (configValues.ZDK_Active === '1' || configValues.JIRA_Active === '1') {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n function valueMapperFunction(options, dataSource, primaryKey) {\r\n var firstMatch = null;\r\n\r\n if (dataSource) {\r\n firstMatch = dataSource.find(function (n) {\r\n return n[primaryKey] === options.value;\r\n });\r\n }\r\n\r\n if (!firstMatch) {\r\n return {};\r\n } else {\r\n return firstMatch;\r\n }\r\n }\r\n\r\n function multiValueMapperFunction(options, dataSource, primaryKey) {\r\n let matches = null;\r\n\r\n if (dataSource) {\r\n matches = dataSource.filter(item => options.value.some(value => value === item[primaryKey]));\r\n }\r\n return matches;\r\n }\r\n\r\n async function roleMapperFunction(roleIdentifiers) {\r\n\r\n const data = {\r\n Roles: roleIdentifiers.map(identifier => {\r\n return { Identifier: identifier };\r\n })\r\n };\r\n\r\n const res = await $http.post(`${apiUrl}api/universal/securityroles/valuemapper`, data);\r\n\r\n return res.data;\r\n\r\n }\r\n\r\n async function userMapperFunction(userIds) {\r\n const data = {\r\n UserMasters: userIds.map(id => {\r\n return { ID: id };\r\n })\r\n };\r\n\r\n const res = await $http.post(`${apiUrl}api/universal/usermaster/valuemapper`, data);\r\n\r\n return res.data;\r\n\r\n }\r\n\r\n function generateRandomUuid(dataArray) {\r\n dataArray.forEach(function (row, i) {\r\n row.PrimaryKey = i;\r\n });\r\n\r\n return dataArray;\r\n }\r\n\r\n function setMainGridOptions(columns, gridHeight) {\r\n\r\n var mainGridOptions = {\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n noRecords: {\r\n template: \"
No items to display
\"\r\n },\r\n resizable: true,\r\n reorderable: true,\r\n groupable: false,\r\n sortable: true,\r\n height: gridHeight,\r\n selectable: true,\r\n allowCopy: true,\r\n pageable: {\r\n responsive: false\r\n },\r\n columns: columns\r\n\r\n };\r\n\r\n return mainGridOptions;\r\n }\r\n\r\n function goToHomePage() {\r\n $location.path('').search({});\r\n }\r\n\r\n function backToPreviousPage() {\r\n localStorage.setItem(\"previousUrl\", window.location.href, { path: \"/\" });\r\n $window.history.back();\r\n }\r\n\r\n function smallLoad() {\r\n var options = { radius: 4, width: 1, length: 2 };\r\n return options;\r\n }\r\n\r\n function determineContainerClass(type) {\r\n switch (type) {\r\n case 'Success':\r\n return 'toast-success';\r\n case 'Error':\r\n return 'toast-error';\r\n case 'Warning':\r\n return 'toast-warning';\r\n case 'Info':\r\n return 'toast-info';\r\n case 'InProgress':\r\n return 'toast-loading';\r\n }\r\n }\r\n\r\n function setProductImageClass(ProductTypeOrName) {\r\n const productImageMap = {\r\n 'OR': 'oracle-avatar-logo',\r\n 'AX7': 'dynamics-365-avatar-logo',\r\n 'D365S': 'dynamics-365-sales-avatar-logo',\r\n 'GP': 'gp-avatar-logo',\r\n 'NS': 'netSuite-avatar-logo',\r\n 'SAP': 'sap-avatar-logo',\r\n 'SF': 'salesforce-avatar-logo',\r\n 'Salesforce': 'salesforce-avatar-logo',\r\n 'INT': 'intacct-avatar-logo',\r\n 'Intacct': 'intacct-avatar-logo',\r\n 'NAV': 'nav-avatar-logo',\r\n 'AX': 'ax-avatar-logo',\r\n 'SL': 'sl-avatar-logo',\r\n 'SAPB1': 'sapb1-avatar-logo',\r\n 'SapGrc': 'sap-avatar-logo',\r\n 'AC': 'acumatica-avatar-logo',\r\n 'PS': 'peoplesoft-avatar-logo',\r\n 'Peoplesoft': 'peoplesoft-avatar-logo',\r\n 'ORFC': 'orfc-avatar-logo',\r\n 'OREPM': 'orfc-avatar-logo',\r\n 'JDE': 'jde-avatar-logo',\r\n 'AX5': 'ax-avatar-logo',\r\n 'AAD': 'azure-active-directory-avatar-logo',\r\n 'ALA': 'ala-avatar-logo',\r\n 'AD': 'active-directory-avatar-logo',\r\n 'D365Bc': 'dynamics-365-businesscentral-avatar-logo',\r\n 'CPA': 'coupa-avatar-logo',\r\n 'WD': 'workday-avatar-logo',\r\n 'Workday': 'workday-avatar-logo',\r\n 'Zuo': 'zuo-avatar-logo',\r\n 'Freshservice': 'freshservice-avatar-logo',\r\n 'AuditBoard': 'auditboard-avatar-logo',\r\n 'AZ': 'azure-avatar-logo',\r\n 'ADO': 'azure-devops-avatar-logo',\r\n 'ARB': 'ariba-avatar-logo',\r\n 'CNC': 'concur-avatar-logo'\r\n };\r\n if (!productImageMap[ProductTypeOrName]) {\r\n return 'tile-23fa3370-b057-489e-b6bb-49aa2a2fa040';\r\n }\r\n if (ProductTypeOrName) {\r\n return productImageMap[ProductTypeOrName];\r\n }\r\n }\r\n\r\n function setProviderImageClass(identityProvider) {\r\n if (!identityProvider) {\r\n return;\r\n }\r\n\r\n let image = null;\r\n switch (identityProvider) {\r\n case '7b29af8a-c18f-4e26-9b78-d118aa87d577':\r\n image = 'FastpathAccount';\r\n break;\r\n case '3763bd0e-9d71-4c6b-9874-450773e0a47e':\r\n image = 'AADExchange';\r\n break;\r\n default:\r\n image = 'SAML2';\r\n break;\r\n }\r\n\r\n return image;\r\n }\r\n\r\n function setStatusCssClass(status) {\r\n if (status === 'Pending') {\r\n return 'label-warning';\r\n } if (status === 'Approved') {\r\n return 'label-success';\r\n } if (status === 'Denied') {\r\n return 'label-danger';\r\n } if (status === 'Completed') {\r\n return 'label-success';\r\n } if (status === 'Cancelled') {\r\n return null;\r\n } if (status === 'ProcessingError') {\r\n return 'label-danger';\r\n } if (status === 'AwaitingADAccountCreation') {\r\n return 'label-warning';\r\n } if (status === 'AwaitingEffectiveDateProcessing') {\r\n return 'label-warning';\r\n } if (status === 'ApprovalInProgress') {\r\n return 'label-warning';\r\n } if (status === 'InProgress') {\r\n return 'label-warning';\r\n }\r\n }\r\n\r\n function setStatusIconColor(status) {\r\n if (status === 'Pending') {\r\n return 'text-warning';\r\n } if (status === 'Approved') {\r\n return 'text-success';\r\n } if (status === 'Denied') {\r\n return 'text-danger';\r\n } if (status === 'Completed') {\r\n return 'text-success';\r\n } if (status === 'Cancelled') {\r\n return null;\r\n } if (status === 'ProcessingError') {\r\n return 'text-danger';\r\n } if (status === 'AwaitingADAccountCreation') {\r\n return 'text-warning';\r\n } if (status === 'AwaitingEffectiveDateProcessing') {\r\n return 'text-warning';\r\n } if (status === 'ApprovalInProgress') {\r\n return 'text-warning';\r\n }\r\n }\r\n\r\n function getDayOfMonthDropdownOptions() {\r\n return [{ Name: 1, Value: 1 }, { Name: 2, Value: 2 }, { Name: 3, Value: 3 }, { Name: 4, Value: 4 }, { Name: 5, Value: 5 }, { Name: 6, Value: 6 }, { Name: 7, Value: 7 }, { Name: 8, Value: 8 }, { Name: 9, Value: 9 }, { Name: 10, Value: 10 }, { Name: 11, Value: 11 }, { Name: 12, Value: 12 }, { Name: 13, Value: 13 }, { Name: 14, Value: 14 }, { Name: 15, Value: 15 }, { Name: 16, Value: 16 }, { Name: 17, Value: 17 }, { Name: 18, Value: 18 }, { Name: 19, Value: 19 }, { Name: 20, Value: 20 }, { Name: 21, Value: 21 }, { Name: 22, Value: 22 }, { Name: 23, Value: 23 }, { Name: 24, Value: 24 }, { Name: 25, Value: 25 }, { Name: 26, Value: 26 }, { Name: 27, Value: 27 }, { Name: 28, Value: 28 }, { Name: 29, Value: 29 }, { Name: 30, Value: 30 }, { Name: 31, Value: 31 }, { Name: 'Last Day of Month', Value: -1 }];\r\n }\r\n\r\n function getMonthsDropdownOptions() {\r\n return [{ Name: 'January', Value: 1 }, { Name: 'February', Value: 2 }, { Name: 'March', Value: 3 }, { Name: 'April', Value: 4 }, { Name: 'May', Value: 5 }, { Name: 'June', Value: 6 }, { Name: 'July', Value: 7 }, { Name: 'August', Value: 8 }, { Name: 'September', Value: 9 }, { Name: 'October', Value: 10 }, { Name: 'November', Value: 11 }, { Name: 'December', Value: 12 }];\r\n }\r\n\r\n function cleanReportColumns(columns) {\r\n var formattedArray = [];\r\n if (columns) {\r\n columns.forEach(function (row, i) {\r\n if (row.hidden === false || !row.hidden) {\r\n if (row.field) {\r\n var formattedRow = { \"FieldName\": row.field, \"DisplayName\": row.title, \"Ordinal\": i };\r\n formattedArray.push(formattedRow);\r\n }\r\n }\r\n });\r\n }\r\n return formattedArray;\r\n }\r\n\r\n function halPrepareSortArray(sort) {\r\n var formattedSortArray = [];\r\n if (sort) {\r\n sort.forEach(function (row) {\r\n var formattedRow = { \"FieldName\": row.field, \"SortDirection\": row.dir.toUpperCase() };\r\n formattedSortArray.push(formattedRow);\r\n });\r\n }\r\n return formattedSortArray;\r\n }\r\n\r\n function halPrepareFilterArray(filter) {\r\n var formattedFilterArray = [];\r\n if (filter && filter.filters) {\r\n filter.filters.forEach(function (row) {\r\n\r\n if (row.operator === 'eq') {\r\n row.operator = \"Equals\";\r\n } else if (row.operator === 'contains') {\r\n row.operator = \"Contains\";\r\n } else if (row.operator === 'gte') {\r\n row.operator = \"GreaterThanOrEqual\";\r\n } else if (row.operator === 'gt') {\r\n row.operator = \"GreaterThan\";\r\n } else if (row.operator === 'lte') {\r\n row.operator = \"LessThanOrEqual\";\r\n } else if (row.operator === 'lt') {\r\n row.operator = \"LessThan\";\r\n } else if (row.operator === 'neq') {\r\n row.operator = \"NotEquals\";\r\n } else if (row.operator === 'doesnotcontain') {\r\n row.operator = \"DoesNotContain\";\r\n } else if (row.operator === 'startswith') {\r\n row.operator = \"StartsWith\";\r\n } else if (row.operator === 'endswith') {\r\n row.operator = \"EndsWith\";\r\n }\r\n\r\n var formattedRow = {\r\n \"FieldName\": row.field,\r\n \"Operator\": row.operator,\r\n \"Value\": row.value\r\n };\r\n formattedFilterArray.push(formattedRow);\r\n });\r\n }\r\n return formattedFilterArray;\r\n }\r\n\r\n function prepareSortsAndFilters(options) {\r\n return {\r\n \"Filters\": halPrepareFilterArray(options.data.filter),\r\n \"Sorts\": halPrepareSortArray(options.data.sort)\r\n };\r\n }\r\n\r\n function getFilterDropdownOptions() {\r\n return {\r\n dataTextField: \"Name\",\r\n dataValueField: \"Id\",\r\n optionLabel: {\r\n Name: \"Select Filter\",\r\n FilterString: {}\r\n },\r\n template: \"#: Name #\"\r\n };\r\n }\r\n\r\n function returnNullIfAllIsFound(listOfIds) {\r\n\r\n var allExists = false;\r\n\r\n listOfIds.forEach(function (row, i) {\r\n if (row == 'AllObjectsInMultiSelect') {\r\n allExists = true;\r\n }\r\n });\r\n\r\n if (allExists) {\r\n return null;\r\n } else {\r\n return listOfIds;\r\n }\r\n }\r\n\r\n function deselectAllObjectsIfOtherIsClicked(itemsSelected, allValue) {\r\n var returnValue = [];\r\n if (itemsSelected && itemsSelected.length > 0) {\r\n if ((itemsSelected[itemsSelected.length - 1].ID != null && itemsSelected[itemsSelected.length - 1].ID != 'AllObjectsInMultiSelect') || (itemsSelected[itemsSelected.length - 1].Id != null && itemsSelected[itemsSelected.length - 1].Id != 'AllObjectsInMultiSelect') || (itemsSelected[itemsSelected.length - 1].InternalId != null && itemsSelected[itemsSelected.length - 1].InternalId != 'AllObjectsInMultiSelect')) {\r\n itemsSelected.forEach(function (row, i) {\r\n if ((row.ID != null && row.ID === 'AllObjectsInMultiSelect') || (row.Id != null && row.Id === 'AllObjectsInMultiSelect') || (row.InternalId != null && row.InternalId === 'AllObjectsInMultiSelect')) {\r\n itemsSelected.splice(i, 1);\r\n returnValue = itemsSelected;\r\n } else {\r\n returnValue = itemsSelected;\r\n }\r\n });\r\n } else {\r\n returnValue = [allValue];\r\n }\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n function displayPipeBetween(name, product) {\r\n if (product) {\r\n return name + ' | ' + product;\r\n } else {\r\n return name;\r\n }\r\n }\r\n\r\n function displayPipeBetweenObjectsDrop(name, altName, objectType, product) {\r\n var altNamePlusName = $filter('addPipeBeforeWord')(name, altName);\r\n if (product) {\r\n product = productNameLookUp(product);\r\n return altNamePlusName + ' | ' + objectType + ' | ' + product;\r\n } else {\r\n return altNamePlusName;\r\n }\r\n }\r\n\r\n function convertFiltersForGrid(currentFilter, newFilter) {\r\n var convertedNewFilters = [];\r\n\r\n newFilter.forEach(function (column, i) {\r\n\r\n if (column.Operator === \"Equals\") {\r\n column.Operator = \"eq\";\r\n } else if (column.Operator === \"Contains\") {\r\n column.Operator = \"contains\";\r\n } else if (column.Operator === \"GreaterThanOrEqual\") {\r\n column.Operator = \"gte\";\r\n } else if (column.Operator === \"GreaterThan\") {\r\n column.Operator = \"gt\";\r\n } else if (column.Operator === \"LessThanOrEqual\") {\r\n column.Operator = \"lte\";\r\n } else if (column.Operator === \"LessThan\") {\r\n column.Operator = \"lt\";\r\n } else if (column.Operator === \"NotEquals\") {\r\n column.Operator = \"neq\";\r\n } else if (column.Operator === \"DoesNotContain\") {\r\n column.Operator = \"doesnotcontain\";\r\n } else if (column.Operator === \"StartsWith\") {\r\n column.Operator = \"startswith\";\r\n } else if (column.Operator === \"EndsWith\") {\r\n column.Operator = \"endswith\";\r\n }\r\n\r\n var convertedFormat = { \"value\": column.Value, \"operator\": column.Operator, \"field\": column.FieldName, \"ignoreCase\": true };\r\n convertedNewFilters.push(convertedFormat);\r\n });\r\n\r\n return { \"filters\": convertedNewFilters, \"logic\": \"and\" };\r\n }\r\n\r\n function applyFilterCatchError(xscope) {\r\n var currentOptions = xscope.grid.getOptions();\r\n\r\n if (xscope.vm.selectedFilter != null && xscope.vm.selectedFilter.Filters != null && xscope.vm.selectedFilter.Filters.length > 0) {\r\n currentOptions.dataSource.filter = convertFiltersForGrid(currentOptions.dataSource.filter, xscope.vm.selectedFilter.Filters);\r\n\r\n try {\r\n xscope.grid.dataSource._filter = currentOptions.dataSource.filter;\r\n xscope.grid.dataSource.read();\r\n }\r\n catch (error) {\r\n console.log(error);\r\n xscope.gridDataSource.filter({});\r\n }\r\n }\r\n }\r\n\r\n function getObjectDetails(objectId) {\r\n return $http.get(apiUrl + 'api/core/objects/' + objectId).then(getComplete);\r\n\r\n //Return results\r\n function getComplete(response) {\r\n return response;\r\n }\r\n }\r\n\r\n function removeSpaces(stringValue) {\r\n var stringType = typeof stringValue;\r\n if (stringType === \"string\") {\r\n return stringValue.replace(/[\\s]/g, '');\r\n } else {\r\n return stringValue;\r\n }\r\n }\r\n\r\n function changeMainLocation(link, module, viewName, type) {\r\n $location.path(link).search('');\r\n }\r\n\r\n function getTabIndex() {\r\n var hightestId = -1;\r\n\r\n if ($rootScope.tabs != null) {\r\n for (var i = 0; i < $rootScope.tabs.length; i++) {\r\n if ($rootScope.tabs[i].id > hightestId) {\r\n hightestId = $rootScope.tabs[i].id;\r\n }\r\n }\r\n }\r\n\r\n return hightestId;\r\n }\r\n\r\n function changeReportView(moduleName, reportName, objectID, type) {\r\n\r\n var moduleNameNoSpaces = removeSpaces(moduleName);\r\n var reportNameNoSpaces = removeSpaces(reportName);\r\n\r\n var link = '/' + moduleNameNoSpaces + \"/\" + type + \"/\" + reportNameNoSpaces + \"/\" + objectID;\r\n\r\n if ($rootScope.previousURL == link) {\r\n $route.reload(link);\r\n } else {\r\n $location.path(link).search('');\r\n }\r\n }\r\n\r\n function changeView(moduleName, viewName, type) {\r\n var moduleNameNoSpaces = removeSpaces(moduleName);\r\n var viewNameNoSpaces = removeSpaces(viewName);\r\n var link = null;\r\n if (moduleNameNoSpaces != null && type != null && viewNameNoSpaces != null) {\r\n link = '/' + moduleNameNoSpaces + \"/\" + type + \"/\" + viewNameNoSpaces;\r\n } else if (moduleNameNoSpaces != null) {\r\n link = '/' + moduleNameNoSpaces;\r\n }\r\n\r\n if ($rootScope.previousURL == link) {\r\n $route.reload(link);\r\n } else {\r\n $location.path(link).search('');\r\n }\r\n\r\n }\r\n\r\n function setFavoriteValue() {\r\n var url = $location.path();\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/favorites/url/',\r\n params: { url: url }\r\n })\r\n .then(function successCallback(response) {\r\n if (response.data) {\r\n return 1;\r\n }\r\n\r\n }, function errorCallback(response) {\r\n if (response.status === 404) {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n function getConfigurationValue(name) {\r\n\r\n var findConfigDfrd = $.Deferred();\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/configuration'\r\n }).then(function (response) {\r\n\r\n var foundValue = null;\r\n var config = {};\r\n\r\n response.data.forEach(function (row) {\r\n config[row.Name] = row.Value;\r\n });\r\n\r\n foundValue = config[name];\r\n\r\n findConfigDfrd.resolve(foundValue);\r\n\r\n });\r\n\r\n return $.when(findConfigDfrd).done(function () {\r\n }).promise();\r\n }\r\n\r\n function setConfigurationValue(name, value) {\r\n\r\n var putData = {\r\n \"Configurations\": []\r\n };\r\n\r\n putData.Configurations.push({\r\n \"Name\": name,\r\n \"Value\": value\r\n });\r\n\r\n $http.put(apiUrl + 'api/core/configuration', putData).then(function successCallback(response) {\r\n\r\n }, function (response) {\r\n showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n function setConfigurationValueClosePopup(name, value, vm) {\r\n\r\n var putData = {\r\n \"Configurations\": []\r\n };\r\n\r\n putData.Configurations.push({\r\n \"Name\": name,\r\n \"Value\": value\r\n });\r\n\r\n vm.updatePending = new createSpinner();\r\n\r\n $http.put(apiUrl + 'api/core/configuration', putData).then(function successCallback(response) {\r\n successfulSaveButton(vm.updatePending);\r\n //Close popover after the save\r\n $timeout(function () {\r\n vm.popoverIsOpen = false;\r\n }, 1500);\r\n }, function (response) {\r\n showErrorMessage(response.data);\r\n vm.updatePending.loadingValue = false;\r\n });\r\n }\r\n\r\n async function checkFavorite(favorited) {\r\n\r\n applicationInsightsService.trackEvent('CheckFavorite', { URL: $location.path(), Favorited: favorited });\r\n const currentUser = await authenticationService.getUser();\r\n\r\n if (favorited) {\r\n\r\n var postData = {\r\n \"UserId\": currentUser.userId,\r\n \"Url\": $location.path()\r\n };\r\n\r\n $http.post(apiUrl + 'api/core/favorites', postData).then(function successCallback(response) {\r\n $rootScope.$broadcast('handleFavoriteBroadcast');\r\n //Post Success\r\n }, function errorCallback(response) {\r\n //alert('post failed')\r\n });\r\n }\r\n else {\r\n\r\n var url = $location.path();\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/favorites/url/',\r\n params: { url: url }\r\n\r\n }).then(function successCallback(response) {\r\n\r\n $http.delete(apiUrl + 'api/core/favorites/' + response.data.Id)\r\n .then(function successCallback(response) {\r\n $rootScope.$broadcast('handleFavoriteBroadcast');\r\n //Delete Success\r\n }, function errorCallback(response) {\r\n\r\n });\r\n });\r\n }\r\n }\r\n\r\n function areYouSureParams(title, text, confirmButton, cancelButtonText) {\r\n var cancelButton = 'Cancel';\r\n if (cancelButtonText != null) {\r\n cancelButton = cancelButtonText;\r\n }\r\n return { title: title, text: text, type: 'warning', showCancelButton: true, confirmButtonText: confirmButton, cancelButtonText: cancelButton };\r\n }\r\n\r\n function areYouSureParamsWithHTML(title, html, confirmButton, cancelButtonText) {\r\n var cancelButton = 'Cancel';\r\n if (cancelButtonText != null) {\r\n cancelButton = cancelButtonText;\r\n }\r\n return { title: title, html: html, type: 'warning', showCancelButton: true, confirmButtonText: confirmButton, cancelButtonText: cancelButton };\r\n }\r\n\r\n function showErrorMessage(message) {\r\n if (message) {\r\n message = message.split('Validation failed:').pop();\r\n message = message.split('Invalid request:').pop();\r\n }\r\n\r\n swal({\r\n title: 'Error',\r\n text: message,\r\n type: 'warning'\r\n });\r\n\r\n }\r\n\r\n function showConfirmationMessage(title, text) {\r\n swal({ title: title, text: text, type: 'success' });\r\n }\r\n\r\n function showConfirmationMessageNoButtons(title, text) {\r\n swal({\r\n title: title,\r\n text: text,\r\n type: 'success',\r\n showCancelButton: false,//No cancel button\r\n showConfirmButton: false //No confirm button\r\n });\r\n }\r\n\r\n function navigateTo(path) {\r\n $location.path(path);\r\n }\r\n\r\n function refreshPage(path) {\r\n $window.location.href = MyApp.rootPath + path;\r\n }\r\n\r\n function goBack() {\r\n $window.history.back();\r\n }\r\n\r\n function clone(obj) {\r\n return JSON.parse(JSON.stringify(obj));\r\n }\r\n\r\n function camelCaseToSentence(string) {\r\n if (!angular.isString(string)) {\r\n return string;\r\n }\r\n var addSpace = string.replace(/([A-Z])/g, ' $1').trim();\r\n var removeSpaces = addSpace.replace('A X', 'AX').replace('S O D', 'SOD').replace('Net Suite', 'NetSuite').replace('S A P', 'SAP').replace('Dynamics365', 'Dynamics 365');\r\n return removeSpaces;\r\n }\r\n\r\n function splitHeaderText(grid, gridOptions) {\r\n var columns = angular.copy(grid.columns);\r\n\r\n columns.forEach(function (row, i) {\r\n row[\"title\"] = headerStringTransformer(row.field);\r\n });\r\n\r\n gridOptions.columns = columns;\r\n\r\n }\r\n\r\n function headerStringTransformer(headerText) {\r\n headerText = headerText.replace('FP_', '');\r\n headerText = headerText.replace(/([a-z])([A-Z])/g, '$1 $2');\r\n headerText = headerText.replace(/([A-Z])([A-Z][a-z])/g, '$1 $2');\r\n //Inserts space before numbers\r\n headerText = headerText.replace(/(\\d+)/g, function (_, num) {\r\n return ' ' + num + ' ';\r\n });\r\n headerText = headerText.replace('Net Suite', 'NetSuite');\r\n headerText = headerText.replace('Audit Board', 'AuditBoard');\r\n return headerText;\r\n }\r\n\r\n function getBaseURL() {\r\n return appUrl;\r\n }\r\n\r\n function isJson(str) {\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n function objectExists(securityObjectID) {\r\n\r\n var navigationObjectList = [];\r\n var exists = false;\r\n\r\n // localStorage.removeItem(\"UserSecurityObjects\");\r\n\r\n if (localStorage.getItem(\"UserSecurityObjects\") != null) {\r\n navigationObjectList = angular.fromJson(localStorage.getItem(\"UserSecurityObjects\"));\r\n\r\n exists = !navigationObjectList.none(function (n) {\r\n return n.ObjectID == securityObjectID;\r\n });\r\n\r\n } else {\r\n exists = true;\r\n }\r\n\r\n return exists;\r\n }\r\n\r\n //IM functions\r\n function getApplicationName(applicationId, availableApplications) {\r\n var applicationName = '';\r\n if (availableApplications != null) {\r\n var application = availableApplications.filter(e => e.Id == applicationId)[0];\r\n\r\n if (application != null) {\r\n applicationName = application.Name;\r\n }\r\n }\r\n\r\n return applicationName;\r\n }\r\n\r\n function getProductName(productId, availableApplications) {\r\n var getProductName = '';\r\n if (availableApplications) {\r\n var product = availableApplications.filter(e => e.ProductID == productId)[0];\r\n\r\n if (product != null) {\r\n getProductName = product.ProductName;\r\n } else {\r\n return productId;\r\n }\r\n }\r\n\r\n return getProductName;\r\n }\r\n\r\n function getSecurityObjectDetailsFromObjectId(objectId) {\r\n if (objectId) {\r\n var UserSecurityObjects = localStorage.getItem('UserSecurityObjects');\r\n if (UserSecurityObjects) {\r\n UserSecurityObjects = JSON.parse(UserSecurityObjects);\r\n var securityObject = UserSecurityObjects.filter(e => e.ObjectID == objectId)[0];\r\n return securityObject;\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n function getSecurityObjectDetailsFromObjectIdAndProductType(objectId, productType) {\r\n if (objectId && productType) {\r\n var UserSecurityObjects = localStorage.getItem('UserSecurityObjects');\r\n if (UserSecurityObjects) {\r\n UserSecurityObjects = JSON.parse(UserSecurityObjects);\r\n if (productType === 'customProduct') {\r\n productType = null;\r\n }\r\n var securityObject = UserSecurityObjects.filter(e => e.ObjectID == objectId && e.ProductType == productType)[0];\r\n return securityObject;\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n function getSecurityObjectDetailsFromReportId(reportId) {\r\n if (reportId) {\r\n var UserSecurityObjects = localStorage.getItem('UserSecurityObjects');\r\n if (UserSecurityObjects) {\r\n UserSecurityObjects = JSON.parse(UserSecurityObjects);\r\n var securityObject = UserSecurityObjects.filter(e => e.ReportID == reportId)[0];\r\n if (securityObject) {\r\n return securityObject;\r\n } else {\r\n // user doesn't have access to this so send them to 403 page\r\n $location.path('/403');\r\n }\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n function getAccessName(access) {\r\n var accessObject = JSON.parse(access);\r\n\r\n return accessObject.Name;\r\n }\r\n\r\n function getUserName(user) {\r\n //Get the user name from the user JSON\r\n var userName = '';\r\n if (user != null) {\r\n if (user.Name || (user.ProductId === 'OR' && user.Name)) userName = user.Name;\r\n else if (user.UserName) userName = user.UserName;\r\n else if (user.DisplayName) userName = user.DisplayName;\r\n else if (user.Email) userName = user.Email;\r\n else if (user.ProductId === 'PS') userName = user.Id\r\n\r\n else {\r\n if (user.UserMaster != null) {\r\n userName = user.UserMaster.Name;\r\n }\r\n if (user.FullName) {\r\n userName = user.FullName;\r\n } else {\r\n userName = user.FirstName + \" \" + user.LastName;\r\n }\r\n }\r\n }\r\n return userName;\r\n }\r\n\r\n function toUTF8Array(str) {\r\n var utf8 = [];\r\n for (var i = 0; i < str.length; i++) {\r\n var charcode = str.charCodeAt(i);\r\n if (charcode < 0x80) utf8.push(charcode);\r\n else if (charcode < 0x800) {\r\n utf8.push(0xc0 | (charcode >> 6),\r\n 0x80 | (charcode & 0x3f));\r\n }\r\n else if (charcode < 0xd800 || charcode >= 0xe000) {\r\n utf8.push(0xe0 | (charcode >> 12),\r\n 0x80 | ((charcode >> 6) & 0x3f),\r\n 0x80 | (charcode & 0x3f));\r\n }\r\n // surrogate pair\r\n else {\r\n i++;\r\n // UTF-16 encodes 0x10000-0x10FFFF by\r\n // subtracting 0x10000 and splitting the\r\n // 20 bits of 0x0-0xFFFFF into two halves\r\n charcode = 0x10000 + (((charcode & 0x3ff) << 10)\r\n | (str.charCodeAt(i) & 0x3ff));\r\n utf8.push(0xf0 | (charcode >> 18),\r\n 0x80 | ((charcode >> 12) & 0x3f),\r\n 0x80 | ((charcode >> 6) & 0x3f),\r\n 0x80 | (charcode & 0x3f));\r\n }\r\n }\r\n return utf8;\r\n }\r\n\r\n function setPluginImageClass(pluginName) {\r\n const pluginImageMap = {\r\n 'Active Directory': 'active-directory-avatar-logo',\r\n 'Jira': 'jira-avatar-logo',\r\n 'ServiceNow': 'service-now-avatar-logo',\r\n 'Workiva': 'workiva-avatar-logo',\r\n 'Zendesk': 'zendesk-avatar-logo',\r\n 'Freshservice': 'freshservice-avatar-logo',\r\n 'AuditBoard': 'auditboard-avatar-logo',\r\n 'Azure Log Analytics': 'ala-avatar-logo'\r\n\r\n\r\n };\r\n if (pluginName) {\r\n return pluginImageMap[pluginName];\r\n }\r\n }\r\n}","export default /*@ngInject*/ function reportsService($rootScope) {\r\n\r\n let service = {\r\n getFields,\r\n getSavedReportFilters,\r\n getSavedReportDateFilters,\r\n fixFieldNamesForApi,\r\n saveTabReportInfo\r\n };\r\n\r\n return service;\r\n\r\n function getFields(columns) {\r\n return columns.map(column => {\r\n let newColumn = {};\r\n if (column.Criteria) {\r\n newColumn = {\r\n type: 'Multi',\r\n link: column.Criteria._links.query.href,\r\n fieldName: column.Criteria.FilterField,\r\n textField: column.FieldName,\r\n identifier: column.Criteria.Value,\r\n label: column.Criteria.Label\r\n };\r\n } else {\r\n newColumn.type = column.DataType;\r\n newColumn.fieldName = column.FieldName;\r\n }\r\n newColumn.displayName = column.DisplayName;\r\n newColumn.isNullable = column.IsNullable;\r\n return newColumn;\r\n });\r\n }\r\n\r\n function getSavedReportFilters() {\r\n let query = [];\r\n let criteria = $rootScope.loadedSavedReport.ReportDefinition.Criteria;\r\n let filters = $rootScope.loadedSavedReport.ReportDefinition.Filters;\r\n\r\n if (criteria.some(c => !c.CriteriaType)) {\r\n let multiFilters = criteria.filter(c => !c.CriteriaType);\r\n multiFilters.forEach(f => {\r\n f.Filters[0].ValueName = f.CriteriaValue;\r\n f.Filters[0].DisplayName = f.CriteriaDisplayName;\r\n });\r\n multiFilters = multiFilters.map(filter => filter.Filters);\r\n multiFilters.forEach(filter => {\r\n query = query.concat(filter);\r\n });\r\n }\r\n\r\n if (filters.length > 0) {\r\n query = query.concat(filters);\r\n }\r\n\r\n return query;\r\n\r\n }\r\n\r\n function getSavedReportDateFilters() {\r\n let dateQuery = [];\r\n let dateFilters = $rootScope.loadedSavedReport.ReportDefinition.DateFilters;\r\n\r\n if (dateFilters && dateFilters.length > 0) {\r\n dateQuery = dateFilters;\r\n }\r\n\r\n return dateQuery;\r\n\r\n }\r\n\r\n function fixFieldNamesForApi(data, itemType) {\r\n if (data.Filters.length > 0) {\r\n const altNameFilterIndex = data.Filters.findIndex(filter => filter.FieldName === \"AltName\");\r\n const nameFilterIndex = data.Filters.findIndex(filter => filter.FieldName === \"Name\");\r\n const idFilterIndex = data.Filters.findIndex(filter => filter.FieldName === \"ID\");\r\n const descFilterIndex = data.Filters.findIndex(filter => filter.FieldName === \"Description\");\r\n if (altNameFilterIndex > -1) {\r\n data.Filters[altNameFilterIndex].FieldName = itemType + \"AltName\";\r\n }\r\n if (nameFilterIndex > -1) {\r\n data.Filters[nameFilterIndex].FieldName = itemType + \"Name\";\r\n }\r\n if (idFilterIndex > -1) {\r\n data.Filters[idFilterIndex].FieldName = itemType + \"ID\";\r\n }\r\n if (descFilterIndex > -1) {\r\n data.Filters[descFilterIndex].FieldName = itemType + \"Description\";\r\n }\r\n }\r\n if (data.Sorts.length > 0) {\r\n const altNameSortIndex = data.Sorts.findIndex(sort => sort.FieldName === \"AltName\");\r\n const nameSortIndex = data.Sorts.findIndex(sort => sort.FieldName === \"Name\");\r\n const idSortIndex = data.Sorts.findIndex(filter => filter.FieldName === \"ID\");\r\n const descSortIndex = data.Sorts.findIndex(filter => filter.FieldName === \"Description\");\r\n if (altNameSortIndex > -1) {\r\n data.Sorts[altNameSortIndex].FieldName = itemType + \"AltName\";\r\n }\r\n if (nameSortIndex > -1) {\r\n data.Sorts[nameSortIndex].FieldName = itemType + \"Name\";\r\n }\r\n if (idSortIndex > -1) {\r\n data.Sorts[idSortIndex].FieldName = itemType + \"ID\";\r\n }\r\n if (descSortIndex > -1) {\r\n data.Sorts[descSortIndex].FieldName = itemType + \"Description\";\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function saveTabReportInfo(xscope) {\r\n let currentTab = $rootScope.tabs.find(tab => tab.title === xscope.reportName);\r\n let exportDetails = {\r\n reportId: xscope.reportId,\r\n reportName: xscope.reportName,\r\n ObjectId: xscope.ObjectId,\r\n grid: xscope.grid,\r\n reportDetailsModel: xscope.reportDetailsModel,\r\n sortsAndFilters: xscope.sortsAndFilters\r\n };\r\n currentTab.reportExportDetails = exportDetails;\r\n }\r\n\r\n}","import angular from 'angular';\r\nimport authenticationService from './Services/authentication.service';\r\nimport SavedReportService from './Services/savedReportSelector';\r\nimport whiteListService from './Services/whiteListService';\r\nimport ViewProductImportPageService from './Services/viewProductImportPageService';\r\nimport KPIOverrideDefinitions from '../Components/Home/KPIOverrideDefinitions';\r\nimport KPIGeneratorService from '../Components/Home/KPIGeneratorService';\r\nimport CustomReportServices from './Services/reportService';\r\nimport ExportReportService from './Services/exportReportService';\r\nimport helperService from './Services/helper.service';\r\nimport ReportsService from '../Components/Reports/reports.service';\r\n\r\nexport default angular\r\n .module('app.shared.services', [])\r\n .service('authenticationService', authenticationService)\r\n .service('helperService', helperService)\r\n .service('whiteListService', whiteListService)\r\n .service('ViewProductImportPageService', ViewProductImportPageService)\r\n .service('KPIOverrideDefinitions', KPIOverrideDefinitions)\r\n .service('KPIGeneratorService', KPIGeneratorService)\r\n .service('CustomReportServices', CustomReportServices)\r\n .service('ExportReportService', ExportReportService)\r\n .service('SavedReportSelectorService', SavedReportService)\r\n .service('reportsService', ReportsService)\r\n .name;","export default /*@ngInject*/ function () {\r\n\r\n this.getWhiteListedRoutes = function () {\r\n return [\r\n \"/\",\r\n \"/SIGNREPORT\",\r\n \"/DOWNLOADS\",\r\n \"/INBOX\",\r\n \"/SECURITYDESIGNER/DYNAMICS365FORFINANCEANDSUPPLYCHAINSIMULATIONDETAILS\",\r\n \"/IDENTITYMANAGER/REQUESTDETAILS\",\r\n \"/IDENTITYMANAGER/REVIEW\",\r\n \"/CHANGETRACKING/SETUP/TRACKINGTEMPLATEDETAILS\",\r\n \"/SECURITYDESIGNER/DYNAMICS365FORFINANCEANDSUPPLYCHAINTASKRECORDINGMANAGER\"\r\n ];\r\n };\r\n}","export default function () {\r\n const vm = this;\r\n \r\n vm.overrideById = overrideById;\r\n\r\n function overrideById (row) {\r\n switch (row.Id) {\r\n case \"162d34b9-8bf3-4216-8789-14a15ad9f790\":\r\n row.Icon = \"icons8-user-menu-male\";\r\n break;\r\n case \"8bbeb9d7-9a8c-4cc5-ae49-8140094933a0\":\r\n row.Icon = \"icons8-business-building\";\r\n break;\r\n case \"d64548f3-75bb-4b0e-8182-c6aaa34d7021\":\r\n row.Icon = \"icons8-warning-shield\";\r\n break;\r\n case \"b39d354f-bfda-4478-8a2c-cbce21f6f30b\":\r\n row.Icon = \"icons8-info\";\r\n break;\r\n case \"41fa31b1-7599-465b-944b-b59e83ce9983\":\r\n row.Icon = \"icons8-play-2\";\r\n break;\r\n case \"f84d3aa4-e22d-4550-99af-4d35c48f1294\":\r\n row.Icon = \"icons8-star\";\r\n break;\r\n }\r\n }\r\n}","export default /*@ngInject*/ function dataService($http, $injector) {\r\n const service = {\r\n getNavigation: getNavigation,\r\n getProducts: getProducts,\r\n getProductTypes: getProductTypes,\r\n getFavorites: getFavorites,\r\n getRoles: getRoles,\r\n getSecurityObjects: getSecurityObjects,\r\n getSavedReports: getSavedReports,\r\n getSavedReportsByUser: getSavedReportsByUser,\r\n getSavedReportsByID: getSavedReportsByID,\r\n getUsers: getUsers,\r\n getUserMaster: getUserMaster,\r\n getClaims: getClaims,\r\n getCompanyMasters: getCompanyMasters,\r\n getCompaniesByProductId: getCompaniesByProductId\r\n };\r\n\r\n return service;\r\n\r\n function getNavigation() {\r\n return $http.get(apiUrl + 'api/core/usersecurity/navigation')\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getProducts() {\r\n return $http.get(apiUrl + 'api/universal/products')\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getProductTypes() {\r\n return $http.get(apiUrl + 'api/universal/producttypes')\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getFavorites() {\r\n return $http.get(apiUrl + 'api/core/favorites')\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getRoles() {\r\n return $http.get(apiUrl + 'api/core/role')\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getSecurityObjects() {\r\n return $http.get(apiUrl + 'api/universal/securityobjects')\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getSavedReports() {\r\n return $http.get(apiUrl + 'api/core/savedreports')\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getSavedReportsByUser(userId) {\r\n return $http.get(apiUrl + 'api/core/savedreports/users/' + userId)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getSavedReportsByID(id) {\r\n return $http.get(apiUrl + 'api/core/savedreports/' + id)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getUsers() {\r\n return $http.get(apiUrl + 'api/core/users')\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getUserMaster() {\r\n return $http.get(apiUrl + 'api/universal/usermaster')\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getClaims(UserID) {\r\n return $http.get(apiUrl + 'api/core/claims/' + UserID)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function getCompanyMasters() {\r\n return $http.get(apiUrl + 'api/universal/companymaster')\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function workComplete(response) {\r\n return response;\r\n }\r\n\r\n function workFailed(response) {\r\n $injector.get('errorsDataService').catch(response);\r\n }\r\n\r\n function getCompaniesByProductId(productId) {\r\n return $http.get(apiUrl + 'api/universal/companies/product/' + productId)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n}\r\n","import $ from 'jquery';\r\n\r\nexport default /*@ngInject*/ function ($http, $location, $rootScope, whiteListService) {\r\n\r\n var infoFactory = {\r\n getObjectID: async function () {\r\n let promises = [];\r\n\r\n if (localStorage.getItem(\"UserSecurityObjects\") == null) {\r\n promises.push(infoFactory.loadUserSecurityObjects($rootScope));\r\n }\r\n if (localStorage.getItem(\"NavigationObjects\") == null) {\r\n promises.push(infoFactory.loadNavigationObjects());\r\n }\r\n\r\n await Promise.all(promises);\r\n\r\n return infoFactory.getObjectIDfromRoute($location.path());;\r\n },\r\n getObjectIDfromRoute: function (route) {\r\n var temp = route.substr(1);\r\n var routeArray = temp.split(\"/\");\r\n\r\n var userSecurityList = angular.fromJson(localStorage.getItem(\"UserSecurityObjects\"));\r\n\r\n var typeName = \"\";\r\n\r\n if (routeArray[1] != null) {\r\n if (routeArray[1].toUpperCase() == \"SETUP\") {\r\n typeName = \"Dialog\";\r\n } else {\r\n typeName = routeArray[1];\r\n }\r\n }\r\n\r\n var parentID = infoFactory.getParentIDFromName(routeArray[0]);\r\n var name = routeArray[2];\r\n\r\n var userSecurityObject = null;\r\n\r\n if (userSecurityList) {\r\n userSecurityObject = userSecurityList.find(function (object) {\r\n return object.ParentID == parentID && object.TypeName.toUpperCase() == typeName.toUpperCase() && object.Name.replace(/\\s/g, '').toUpperCase() == name.toUpperCase();\r\n });\r\n }\r\n\r\n if (userSecurityObject != null) {\r\n return userSecurityObject.ObjectID;\r\n } else {\r\n\r\n var whiteList = whiteListService.getWhiteListedRoutes();\r\n\r\n var containedInWhiteList = whiteList.find(function (item) {\r\n return item == route.toUpperCase();\r\n }) != null;\r\n\r\n if (!containedInWhiteList) {\r\n $location.path('/403');\r\n }\r\n }\r\n\r\n },\r\n loadNavigationObjects: function () {\r\n //Load the navigation objects into local storage for use in routestartchange\r\n return $http.get(apiUrl + 'api/core/usersecurity/navigation')\r\n .then(function (response) {\r\n var navigationList = response.data;\r\n\r\n localStorage.setItem(\"NavigationObjects\", angular.toJson(navigationList));\r\n return response.data;\r\n });\r\n },\r\n getParentIDFromName: function (ParentName) {\r\n var navigationObjectList;\r\n\r\n navigationObjectList = angular.fromJson(localStorage.getItem(\"NavigationObjects\"));\r\n var foundObject = navigationObjectList.find(function (object) {\r\n return object.Name.replace(/ /g, '').toUpperCase() == ParentName.toUpperCase();\r\n });\r\n\r\n if (foundObject != null){\r\n return foundObject.ObjectID;\r\n }\r\n },\r\n loadUserSecurityObjects: function ($rootScope) {\r\n //Load the navigation objects into local storage for use in routestartchange\r\n return $http.get(apiUrl + 'api/core/usersecurity').then(function (response) {\r\n $rootScope.UserSecurityList = [];\r\n response.data.forEach(function (row) {\r\n $rootScope.UserSecurityList[row.ObjectID] = true;\r\n });\r\n\r\n localStorage.setItem(\"UserSecurityObjects\", angular.toJson(response.data));\r\n\r\n return response.data;\r\n });\r\n }\r\n };\r\n\r\n return infoFactory;\r\n}\r\n","export default /*@ngInject*/ function ($log) {\r\n return async function (exception) {\r\n var localTenant = localStorage.getItem(\"selectedTenant\");\r\n\r\n if (localTenant) {\r\n localTenant = JSON.parse(localTenant);\r\n } else {\r\n localTenant = {};\r\n }\r\n\r\n rg4js('send', {\r\n error: exception,\r\n tags: [localTenant.Name, localTenant.ID]\r\n });\r\n\r\n $log.error(exception);\r\n };\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getReport\r\n };\r\n\r\n return service;\r\n\r\n //GET Requests\r\n async function getReport(objectID) {\r\n try {\r\n return await $http.get(apiUrl + 'api/core/reports/execute/' + objectID);\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n}\r\n","export default /*@ngInject*/ function reportsDataService($http, errorsDataService) {\r\n const service = {\r\n getReportMetadata,\r\n getDataChangesReportMetadata,\r\n getSetupMetadata,\r\n getSetupData\r\n };\r\n\r\n return service;\r\n\r\n async function getReportMetadata(reportId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/reports/${reportId}/metadata`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getDataChangesReportMetadata(productId, isCustom) {\r\n try {\r\n if (isCustom) {\r\n return await $http.get(`${apiUrl}api/audittrail/universal/${productId}/datachanges/metadata`);\r\n } else {\r\n return await $http.get(`${apiUrl}api/audittrail/${productId}/datachanges/metadata`);\r\n }\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSetupMetadata() {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/sf/datachanges/setup-metadata`)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSetupData(filterCriteria, params) {\r\n try {\r\n return await $http.post(`${apiUrl}api/audittrail/sf/datachanges/setup`, filterCriteria, { params })\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($rootScope, helperService) {\r\n return {\r\n catch: function (response) {\r\n if (response.data !== \"Not authorized for this tenant.\") {\r\n helperService.showErrorMessage(response.data);\r\n } \r\n }\r\n };\r\n}\r\n","export default /*@ngInject*/ function ($http, $rootScope, $q, $window, $location, $timeout, $route, $filter, applicationInsightsService, dataService) {\r\n \r\n if (!angular.isUndefined(MyApp.viewModelHelper)) {\r\n return MyApp.viewModelHelper($http, $rootScope, $q, $window, $location, $timeout, $route, $filter, applicationInsightsService, dataService);\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getConfigurationValueByName,\r\n getProductConfigurationListByName,\r\n getProductConfigurationValueByName,\r\n getConfigurationValues,\r\n getIdentityProviders,\r\n updateConfigurationValues,\r\n updateProductRiskEligibility,\r\n getStandardMitigations,\r\n getCompanyLogo,\r\n importCompanyLogo,\r\n deleteCompanyLogo\r\n };\r\n\r\n return service;\r\n\r\n //GET Requests\r\n async function getConfigurationValueByName(name) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/configuration/${name}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getProductConfigurationListByName(name) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/product-configuration/configuration/${name}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getProductConfigurationValueByName(product, name) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/products/${product}/configuration/${name}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getConfigurationValues() {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/configuration`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getIdentityProviders() {\r\n try {\r\n return await $http.get(`${apiUrl}api/auth/identityproviders`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getStandardMitigations() {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/configuration/ARM_StandardMitigations`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getCompanyLogo() {\r\n return await $http.get(`${apiUrl}api/core/images`);\r\n }\r\n\r\n //PUT Requests\r\n async function updateConfigurationValues(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/core/configuration`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateProductRiskEligibility(productType, riskEligible) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/${productType}/accesslevels/indirect/riskeligibility/${riskEligible}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n\r\n }\r\n //POST Requests\r\n\r\n async function importCompanyLogo(fd) {\r\n try {\r\n return await $http.post(`${apiUrl}api/core/images`, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n //DELETE Requests\r\n async function deleteCompanyLogo() {\r\n return await $http.delete(`${apiUrl}api/core/images`);\r\n }\r\n\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function (errorsDataService, $http) {\r\n\r\n const service = {\r\n availableTenants: availableTenants\r\n };\r\n\r\n return service;\r\n\r\n function availableTenants(userAuth) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/auth/tenants/user/' + userAuth\r\n }).then(workComplete)\r\n .catch(response => {\r\n errorsDataService.catch(response);\r\n });\r\n }\r\n\r\n const workComplete = function (response) {\r\n return response;\r\n };\r\n\r\n}","import ErrorsDataService from \"../../../APICalls/ErrorsDataService\";\r\n\r\nexport default /*@ngInject*/ function ($http, errorsDataService) {\r\n var service = {\r\n getUsers,\r\n getRolesByUserId,\r\n getRolesByUserMasterId\r\n };\r\n\r\n return service;\r\n\r\n async function getUsers(productId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/users/product/${productId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRolesByUserId(productId, userId, excludeRoles) {\r\n try {\r\n let response = await $http.get(`${apiUrl}api/universal/usersecurityroles`, { params: { 'productId': productId, 'userId': userId } });\r\n if (excludeRoles) {\r\n response.data = response.data.filter(r => r.IsExcluded == false);\r\n }\r\n return response;\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRolesByUserMasterId(userMasterId, excludeRoles) {\r\n try {\r\n let response = await $http.get(`${apiUrl}api/universal/usersecurityroles/usermaster/${userMasterId}`);\r\n if (excludeRoles) {\r\n response.data = response.data.filter(r => r.IsExcluded == false);\r\n }\r\n return response;\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getApprovalGroups,\r\n getApprovalGroupLevels,\r\n updateGroup,\r\n updateGroupLevel,\r\n addApprovalGroup,\r\n addApprovalGroupLevel,\r\n addApproverToApprovalGroupLevel,\r\n removeApprovalGroup,\r\n removeApprovalGroupLevel,\r\n removeApproverFromApprovalGroupLevel,\r\n exportApprovalGroups,\r\n importApprovalGroups\r\n };\r\n\r\n return service;\r\n\r\n //GET Requests\r\n async function getApprovalGroups() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/approvalgroups`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getApprovalGroupLevels(groupId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/approvalgroups/${groupId}/levels`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n //PUT Requests\r\n async function updateGroup(groupId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/approvalgroups/${groupId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function updateGroupLevel(groupId, levelId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/approvalgroups/${groupId}/levels/${levelId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n //POST Requests\r\n async function addApprovalGroup(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/approvalgroups`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addApprovalGroupLevel(groupId, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/approvalgroups/${groupId}/levels`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addApproverToApprovalGroupLevel(groupId, levelId, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/approvalgroups/${groupId}/levels/${levelId}/approvers`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n //DELETE Requests\r\n async function removeApprovalGroup(groupId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/approvalgroups/${groupId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeApprovalGroupLevel(groupId, levelId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/approvalgroups/${groupId}/levels/${levelId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function removeApproverFromApprovalGroupLevel(groupId, levelId, userId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/approvalgroups/${groupId}/levels/${levelId}/approvers/${userId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function exportApprovalGroups() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/approvalgroups/export`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function importApprovalGroups(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/approvalgroups/import`, data, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}\r\n","export default /*@ngInject*/ function ($http, errorsDataService, FileSaver) {\r\n const service = {\r\n getCurrentSharedUsers,\r\n getExports,\r\n getExportsSharedWithUser,\r\n updateSharedUsers,\r\n downloadMultiple,\r\n deleteExport,\r\n deleteMultiple,\r\n saveNameChange\r\n };\r\n\r\n return service;\r\n\r\n async function getCurrentSharedUsers(exportId) {\r\n try {\r\n return await await $http.get(`${apiUrl}api/core/exports/${exportId}/sharedusers`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getExports(userId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/exports/users/${userId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getExportsSharedWithUser(userId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/exports/sharedexports/users/${userId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function downloadMultiple(postData) {\r\n try {\r\n let response = await $http.post(`${apiUrl}api/core/exports/download-multiple`, postData, { responseType: \"blob\" });\r\n\r\n FileSaver.saveAs(response.data, 'Downloads' + '.zip');\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateSharedUsers(postData, exportId) {\r\n try {\r\n return await $http.post(`${apiUrl}api/core/exports/${exportId}/share`, postData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteExport(itemId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/core/exports/${itemId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteMultiple(payload) {\r\n try {\r\n await $http.put(`${apiUrl}api/core/exports/delete-multiple`, payload);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function saveNameChange(itemId, postItem) {\r\n try {\r\n return await $http.put(`${apiUrl}api/core/exports/${itemId}`, postItem);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getUserProfileByUserMasterId,\r\n getUserProfileByUserIdAndProductId,\r\n getUserProfileAccess,\r\n getWorkdayProfileInfo\r\n };\r\n\r\n return service;\r\n\r\n async function getUserProfileByUserMasterId(userMasterId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/usermaster/${userMasterId}/profile`);\r\n } catch(err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getUserProfileByUserIdAndProductId(userId, productId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/usermaster/user/${userId}/product/${productId}/profile`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getUserProfileAccess(userId, productId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/usermaster/user/${userId}/product/${productId}/profile/access`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getWorkdayProfileInfo(userId) {\r\n try {\r\n const response = await $http.get(`${apiUrl}api/universal/wd/user/${userId}/profile`);\r\n return response.data;\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getRiskDetails,\r\n getRiskProductProfile,\r\n getBusinessProcessDetails,\r\n getObjectLevelBusinessProcessDetails\r\n };\r\n\r\n return service;\r\n\r\n async function getRiskDetails(riskId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/risks/${riskId}/products`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRiskProductProfile(productId, risk) {\r\n try {\r\n if (risk.Company === null) {\r\n return await $http.get(`${apiUrl}api/arm/${productId}/places/accessdetails/risk/${risk.RiskId}/user/${risk.UserMasterId}`);\r\n } else {\r\n return await $http.get(`${apiUrl}api/arm/${productId}/places/accessdetails/risk/${risk.RiskId}/company/${risk.CompanyMasterId}/user/${risk.UserMasterId}`);\r\n }\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getBusinessProcessDetails(businessProcess, postData) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/businessprocesses/${businessProcess.BusinessProcessId}/usermaster/${businessProcess.UserMasterId}/accessdetails`, postData);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getObjectLevelBusinessProcessDetails(businessProcess, postData) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/businessprocesses/${businessProcess.BusinessProcessId}/usermaster/${businessProcess.UserMasterId}/securityobject/${businessProcess.SecurityObjectIdentifier}/securityobjecttype/${businessProcess.SecurityObjectTypeId}/accessdetails`, postData);\r\n } catch (err) {\r\n showError(err);\r\n } \r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getUserStatistics,\r\n getCompanyStatistics,\r\n getDashboards,\r\n getCards,\r\n getCharts,\r\n getChartByCard,\r\n createDashboard,\r\n deleteDashboard,\r\n getDashboard,\r\n createCard\r\n };\r\n\r\n return service;\r\n\r\n //GET Requests\r\n async function getUserStatistics() {\r\n try {\r\n return await $http.get(apiUrl + 'api/universal/users/statistics/');\r\n } catch (error) {\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function getCompanyStatistics() {\r\n try {\r\n return await $http.get(apiUrl + 'api/universal/companymapping/statistics/');\r\n } catch (error) {\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function getDashboards() {\r\n try {\r\n return await $http.get(apiUrl + 'api/core/dashboards');\r\n } catch (error) {\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function getCards() {\r\n try {\r\n return await $http.get(apiUrl + 'api/core/cards');\r\n } catch (error) {\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function getCharts() {\r\n try {\r\n return await $http.get(apiUrl + 'api/core/charts');\r\n } catch (error) {\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function getChartByCard(cardUrl) {\r\n try {\r\n return await $http.get(apiUrl + cardUrl);\r\n } catch (error) {\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function createDashboard(data) {\r\n try {\r\n return await $http.post(apiUrl + 'api/core/dashboards', data);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function deleteDashboard(id) {\r\n try {\r\n return await $http.delete(apiUrl + 'api/core/dashboards/' + id);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function getDashboard(data) {\r\n try {\r\n return await $http.put(apiUrl + 'api/core/userpreferences/DefaultDashboard', data);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n\r\n }\r\n\r\n async function createCard(data) {\r\n try {\r\n return await $http.post(apiUrl + 'api/core/cards', data);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}","import angular from 'angular';\r\nimport dataService from '../APICalls/CommonDataService';\r\nimport objectIdDataService from '../APICalls/ObjectIdDataService';\r\nimport exceptionHandlerFactory from './Factories/exceptionHandler.factory';\r\nimport ReportDataService from '../APICalls/ReportDataService';\r\nimport reportsDataService from '../Components/Reports/reportsDataService.factory';\r\nimport errorsDataService from '../APICalls/ErrorsDataService';\r\nimport viewModelHelperFactory from './Factories/viewModelHelper.factory';\r\nimport configurationDataServiceFactory from '../APICalls/configurationDataService.factory';\r\nimport emailNavigationServiceFactory from './Services/emailNavigationService.factory';\r\nimport dateFormatterFactory from './Factories/dateFormatter.factory';\r\nimport userRolesDataServiceFactory from './Components/selectRolesByUser/userRolesDataService.factory';\r\nimport approvalGroupsDataServiceFactory from '../APICalls/approvalGroupsDataService.factory';\r\nimport myDownloadsDataServiceFactory from '../Components/MyDownloads/myDownloadsDataService.factory';\r\nimport userProfileDataServiceFactory from './Components/userProfile/userProfileDataService.factory';\r\nimport accessDetailsDataServiceFactory from './Components/accessDetailsProfile/accessDetailsDataService.factory';\r\nimport homeDataServiceFactory from '../Components/home/homeDataService.factory';\r\n\r\nexport default angular\r\n .module('app.shared.factories', [])\r\n .factory('reportDataService', ReportDataService)\r\n .factory('dataService', dataService)\r\n .factory('objectIdDataService', objectIdDataService)\r\n .factory('$exceptionHandler', exceptionHandlerFactory)\r\n .factory('reportsDataService', reportsDataService)\r\n .factory('errorsDataService', errorsDataService)\r\n .factory('viewModelHelper', viewModelHelperFactory)\r\n .factory('configurationDataService', configurationDataServiceFactory)\r\n .factory('emailNavigationService', emailNavigationServiceFactory)\r\n .factory('dateFormatterFactory', dateFormatterFactory)\r\n .factory('userRolesDataService', userRolesDataServiceFactory)\r\n .factory('approvalGroupsDataService', approvalGroupsDataServiceFactory)\r\n .factory('myDownloadsDataService', myDownloadsDataServiceFactory)\r\n .factory('userProfileDataService', userProfileDataServiceFactory)\r\n .factory('accessDetailsProfileDataService', accessDetailsDataServiceFactory)\r\n .factory('homeDataService', homeDataServiceFactory)\r\n .name;","export default function () {\r\n\r\n const service = {\r\n formatDate: formatDate\r\n };\r\n\r\n return service;\r\n\r\n // Connections -> schedule import -> ISO string date\r\n function formatDate(dateObject) {\r\n return dateObject.toISOString().replace(/\\.[0-9]{3}/, '');\r\n }\r\n\r\n}","export default /*@ngInject*/ function (toastr, $rootScope) {\r\n\r\n var service = {\r\n notifyArchive: notifyArchive\r\n };\r\n\r\n return service;\r\n\r\n function notifyArchive({ correlationId, type, message, title, status, response, options = {} }) {\r\n\r\n // this will represent our message in the notifications sidebar\r\n var archiveObject = { correlationId: correlationId, type: type, message: message, title: title, status: status, response: response, options: options, date: new Date() };\r\n\r\n if (!$rootScope.rightNotificationsSidebar) {\r\n switch (status) {\r\n case 'Success':\r\n options.closeButton = true;\r\n if (!duplicateProductImport(type, title, archiveObject.date)) {\r\n toastr.success(message, title, options);\r\n }\r\n break;\r\n case 'Warning':\r\n options.closeButton = true;\r\n if (!duplicateProductImport(type, title, archiveObject.date)) {\r\n toastr.warning(message, title, options);\r\n }\r\n break;\r\n case 'Error':\r\n options.closeButton = true;\r\n if (!duplicateProductImport(type, title, archiveObject.date)) {\r\n toastr.error(message, title, options);\r\n }\r\n break;\r\n case 'Info':\n options.closeButton = true;\n if (!duplicateProductImport(type, title, archiveObject.date)) {\r\n toastr.info(message, title, options);\r\n }\n break;\n case 'InProgress':\n options.iconClass = 'toast-loading';\n if (!duplicateProductImport(type, title, archiveObject.date)) {\r\n toastr.info(message, title, options);\r\n }\n break;\r\n }\r\n }\r\n\r\n function duplicateProductImport(type, title, date) {\r\n return type === \"ProductImport\" && $rootScope.archivedNotifications.find(notification => notification.title === title && notification.date.getDay() === date.getDay());\r\n }\r\n\r\n function removeDuplicates(correlationId) {\r\n $rootScope.archivedNotifications.forEach(function (row, i) {\r\n if (correlationId === row.correlationId) {\r\n $rootScope.archivedNotifications.splice(i, 1);\r\n }\r\n });\r\n }\r\n\r\n removeDuplicates(correlationId);\r\n\r\n $rootScope.archivedNotifications.unshift(archiveObject);\r\n if (!$rootScope.$$phase) {\r\n $rootScope.$evalAsync();\r\n }\r\n }\r\n\r\n}\r\n","export default /*@ngInject*/ function ($timeout, authenticationService) {\r\n\r\n this.stateChanged = function (state, hub, hubName) {\r\n switch (state.newState) {\r\n case $.signalR.connectionState.connecting:\r\n console.log('Connecting to ' + hubName + ' Hub...');\r\n break;\r\n case $.signalR.connectionState.connected:\r\n console.log('Connected to ' + hubName + ' Hub');\r\n break;\r\n case $.signalR.connectionState.reconnecting:\r\n console.log('Attempting to reconnect to ' + hubName + ' Hub...');\r\n break;\r\n case $.signalR.connectionState.disconnected:\r\n $timeout(function () {\r\n hub.connection.start();\r\n }, 5000);\r\n\r\n break;\r\n }\r\n };\r\n\r\n this.populateQueryParams = async function () {\r\n\r\n var selectedTenantId = null;\r\n var selectedTenant = localStorage.getItem(\"selectedTenant\");\r\n if (selectedTenant) {\r\n selectedTenant = JSON.parse(selectedTenant);\r\n selectedTenantId = selectedTenant.ID;\r\n }\r\n\r\n const currentUser = await authenticationService.getUser();\r\n if (currentUser) {\r\n return {\r\n 'tenantId': selectedTenantId,\r\n 'userId': currentUser.userId\r\n };\r\n }\r\n };\r\n\r\n}\r\n","import createSpinner from \"../Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, errorsDataService, response, $http) {\r\n\r\n const vm = this;\r\n\r\n vm.response = response;\r\n vm.saveResponse = saveResponse;\r\n vm.dismiss = dismiss;\r\n vm.enableSave = enableSave;\r\n\r\n vm.questionChoicesList = [];\r\n\r\n vm.questionChoicesList = response.Choices;\r\n\r\n\r\n vm.disableSave = true;\r\n\r\n function enableSave() {\r\n if (vm.answer) {\r\n vm.disableSave = false;\r\n }\r\n }\r\n\r\n async function saveResponse() {\r\n vm.saving = new createSpinner();\r\n\r\n let postBody = {\r\n \"QuestionId\": response.QuestionId,\r\n \"Answer\": vm.answer\r\n };\r\n\r\n vm.saving.loadingValue = true;\r\n vm.disableSave = true;\r\n\r\n try {\r\n await $http.post(`${apiUrl}/api/core/npsquestions/${response.QuestionId}/answer`, postBody);\r\n vm.saving.loadingValue = false;\r\n cancel();\r\n } catch (err) {\r\n vm.saving.loadingValue = false;\r\n cancel();\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","import npsQuestionModalController from \"../Controllers/npsQuestionModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, Hub, signalRCommonService, archiveToastr, ExportReportService, $location, $window, $route, $uibModal) {\r\n createHub();\r\n\r\n async function createHub() {\r\n var hub = new Hub('userHub', {\r\n\r\n listeners: {\r\n 'send': function (response) {\r\n var notifyObject = {\r\n correlationId: response.CorrelationId,\r\n type: response.Type,\r\n message: response.Message,\r\n title: response.Title,\r\n status: response.Status,\r\n response: response,\r\n options: {}\r\n };\r\n if (response.Status === 'Success') {\r\n switch (response.Type) {\r\n case 'ExportReport':\r\n case 'ExportRequest':\r\n case 'ExportTaskRecording':\r\n case 'ExportSimulation':\r\n case 'ExportSupervisorAssignments':\r\n case 'ExportCertificationReview':\r\n case 'ExportDataChangesForUpdate':\r\n case 'ExportAllChangesForUpdate':\r\n case 'ExportRejectedCertificationReview':\r\n case 'ImportSupervisorAssignments':\r\n case 'ExportNsSecurityModel':\r\n case 'ExportUserMappings':\r\n case 'ImportUserMappings':\r\n case 'AutoMapCrossPlatformUsers':\r\n notifyObject.options = {\r\n allowHtml: true,\r\n onTap: function (e) {\r\n ExportReportService.downloadReportExportFromNotification(response);\r\n }\r\n };\r\n notifyObject.message = `${response.Message}
Click to Download`;\r\n break;\r\n case 'RiskAnalysis':\r\n if (response.ProductType !== 'SAP') {\r\n notifyObject.options = {\r\n allowHtml: true,\r\n onTap: function (e) {\r\n $location.path('/SecurityDesigner/Place/Dynamics365forFinanceandSupplyChainSecurityModels').search('');\r\n }\r\n };\r\n notifyObject.message = `${response.Message}
Click for Details`;\r\n }\r\n break;\r\n case 'ImportReviewAssignments':\r\n notifyObject.options = {\r\n allowHtml: true,\r\n onTap: function (e) {\r\n if ($location.path() === '/AccessCertifications/Setup/ReviewSchedules') {\r\n $route.reload();\r\n } else {\r\n $location.path('/AccessCertifications/Setup/ReviewSchedules');\r\n }\r\n }\r\n };\r\n notifyObject.message = `${response.Message} Review Schedule data has been updated.
Click to view the latest Review Schedules Data`;\r\n break;\r\n case 'DelegateReviewItems':\r\n notifyObject.options = {\r\n allowHtml: true\r\n };\r\n notifyObject.message = `${response.Message} Review items have been updated.
See My Reviews or All Reviews to view the latest Review Data`;\r\n break;\r\n case 'RequestReview':\r\n notifyObject.options = {\r\n allowHtml: true,\r\n onTap: function (e) {\r\n // we need to check to see if user is still viewing the request details and if so do a reload instead of a page navigate\r\n const locationPath = $location.path(), locationSearchParams = $location.search();\r\n if (locationPath.includes(`/IdentityManager/RequestDetails`) && locationSearchParams.RequestId == response.RequestId && locationSearchParams.Version === response.RequestVersion) {\r\n $route.reload();\r\n } else {\r\n $location.path('/IdentityManager/RequestDetails').search({ RequestId: response.RequestId, Version: response.RequestVersion });\r\n }\r\n }\r\n };\r\n notifyObject.message = `${response.Message} Request Details have been updated.
Click to view the latest Request Details`;\r\n break;\r\n default:\r\n break;\r\n }\r\n archiveToastr.notifyArchive(notifyObject);\r\n $rootScope.$broadcast(response.Type);\r\n } else if (response.Status === 'Error') {\r\n switch (response.Type) {\r\n case 'ImportSupervisorAssignments':\r\n case 'ImportUserMappings':\r\n case 'ImportAuditTrailUpdate':\r\n if (response.Message.includes(\"Check log\")) {\r\n notifyObject.options = {\r\n allowHtml: true,\r\n onTap: function (e) {\r\n $location.path('/Setup/Report/JobLogs/2205').search('');\r\n }\r\n };\r\n notifyObject.message = `${response.Message}
Click for Details`;\r\n } else {\r\n notifyObject.options = {\r\n allowHtml: true,\r\n onTap: function (e) {\r\n ExportReportService.downloadReportExportFromNotification(response);\r\n }\r\n };\r\n notifyObject.message = `${response.Message}
Click to Download`;\r\n }\r\n break;\r\n case 'ExportNsSecurityModel':\r\n notifyObject.options = {\r\n allowHtml: true,\r\n onTap: function (e) {\r\n $location.path('/Downloads').search('');\r\n }\r\n };\r\n notifyObject.message = `${response.Message}
Click for Details`;\r\n break;\r\n default:\r\n break;\r\n }\r\n archiveToastr.notifyArchive(notifyObject);\r\n $rootScope.$broadcast(response.Type);\r\n } else if (response.Status === 'Warning') {\r\n switch (response.Type) {\r\n case 'ImportRiskRuleset':\r\n notifyObject.options = {\r\n allowHtml: true,\r\n onTap: function (e) {\r\n ExportReportService.downloadReportExportFromNotification(response);\r\n }\r\n };\r\n notifyObject.message = `${response.Message}
Click to Download`;\r\n break;\r\n }\r\n archiveToastr.notifyArchive(notifyObject);\r\n $rootScope.$broadcast(response.Type);\r\n } else if (response.ReleaseNotesUrl) {\r\n notifyObject.options = {\r\n allowHtml: true,\r\n onTap: function (e) {\r\n $window.open(response.ReleaseNotesUrl);\r\n }\r\n }\r\n archiveToastr.notifyArchive(notifyObject);\r\n } else if (response.Type === 'NpsQuestion') {\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/npsQuestionModal.tmpl.html',\r\n controller: npsQuestionModalController,\r\n controllerAs: 'nqmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n response: () => response\r\n }\r\n });\r\n } else {\r\n archiveToastr.notifyArchive(notifyObject);\r\n }\r\n\r\n $rootScope.$evalAsync();\r\n }\r\n },\r\n queryParams: await signalRCommonService.populateQueryParams(),\r\n rootPath: apiUrl + 'signalr',\r\n useSharedConnection: false,\r\n stateChanged: function (state) {\r\n signalRCommonService.stateChanged(state, hub, 'User');\r\n },\r\n errorHandler: function (error) {\r\n console.log(error.message, 'Error');\r\n }\r\n });\r\n\r\n }\r\n\r\n return {};\r\n}","export default /*@ngInject*/ function ($rootScope, Hub, signalRCommonService, archiveToastr, ViewProductImportPageService) {\r\n createHub();\r\n\r\n async function createHub() {\r\n var hub = new Hub('tenantHub', {\r\n\r\n listeners: {\r\n 'send': function (response) {\r\n var notifyObject = {\r\n correlationId: response.CorrelationId,\r\n type: response.Type,\r\n message: response.Message,\r\n title: response.Title,\r\n status: response.Status,\r\n response: response,\r\n options: {}\r\n };\r\n\r\n if (response.Status === 'Success') {\r\n switch (response.Type) {\r\n case 'ProductImport':\r\n notifyObject.options = {\r\n allowHtml: true,\r\n onTap: function (e) {\r\n ViewProductImportPageService.viewImportReport(response.ProductType);\r\n }\r\n };\r\n notifyObject.message = `${response.Message}
Click for Details`;\r\n break;\r\n default:\r\n break;\r\n }\r\n archiveToastr.notifyArchive(notifyObject);\r\n $rootScope.$broadcast(response.Type);\r\n\r\n } else if (response.Type === 'ProductImport' && response.Title === 'In Progress') {\r\n archiveToastr.notifyArchive(notifyObject);\r\n $rootScope.$broadcast('productImportInProgress', response);\r\n } else {\r\n archiveToastr.notifyArchive(notifyObject);\r\n $rootScope.$broadcast(response.Type);\r\n }\r\n\r\n $rootScope.$evalAsync();\r\n }\r\n },\r\n queryParams: await signalRCommonService.populateQueryParams(),\r\n rootPath: apiUrl + 'signalr',\r\n useSharedConnection: false,\r\n stateChanged: function (state) {\r\n signalRCommonService.stateChanged(state, hub, 'Tenant');\r\n },\r\n errorHandler: function (error) {\r\n console.log(error.message, 'Error');\r\n }\r\n });\r\n\r\n }\r\n\r\n return {};\r\n}","import angular from 'angular';\r\nimport 'jquery';\r\nimport 'signalr';\r\nimport 'angular-signalr-hub';\r\nimport 'angular-toastr';\r\n\r\n// services imports\r\nimport archiveToastr from './Services/SignalRArchiveService';\r\nimport signalRCommonService from './Services/SignalRCommonService';\r\n\r\n// factory imports\r\nimport signalRUserFactory from './Factories/signalRUser.factory';\r\nimport signalRTenantFactory from './Factories/signalRTenant.factory';\r\n\r\nexport default angular\r\n .module('app.shared.signalr', ['toastr', 'SignalR'])\r\n .factory('signalRUserFactory', signalRUserFactory)\r\n .factory('signalRTenantFactory', signalRTenantFactory)\r\n .service('archiveToastr', archiveToastr)\r\n .service('signalRCommonService', signalRCommonService)\r\n .name;","export default /*@ngInject*/ function CriteriaSubmitButtonDropdownController(helperService, applicationInsightsService, $http, SavedReportSelectorService, $scope, $rootScope) {\r\n\r\n const vm = this;\r\n\r\n vm.exportToExcel = exportToExcel;\r\n vm.exportToPDF = exportToPDF;\r\n vm.exportToCSV = exportToCSV;\r\n\r\n let parentScope = $scope.$parent;\r\n\r\n vm.$onInit = activate;\r\n\r\n function activate() {\r\n if (vm.exportPropertiesContainer) {\r\n parentScope = vm.exportPropertiesContainer;\r\n parentScope.vm = {};\r\n parentScope.vm.filterCriteria = parentScope.filterCriteria;\r\n }\r\n }\r\n\r\n function exportToExcel(refreshModel) {\r\n parentScope.populateCriteriaModel();\r\n if (refreshModel) {\r\n parentScope.grid.dataSource.data([]);\r\n createExport('Excel', true);\r\n } else {\r\n var serverLength = parentScope.grid.dataSource._total;\r\n if (serverLength > 999999) {\r\n helperService.showErrorMessage('An export must be under 1,000,000 rows');\r\n } else {\r\n createExport('Excel', false);\r\n }\r\n }\r\n }\r\n\r\n function exportToPDF(refreshModel) {\r\n parentScope.populateCriteriaModel();\r\n if (refreshModel) {\r\n parentScope.grid.dataSource.data([]);\r\n createExport('PDF', true);\r\n } else {\r\n var serverLength = parentScope.grid.dataSource._total;\r\n createExport('PDF', false);\r\n }\r\n }\r\n\r\n function exportToCSV(refreshModel) {\r\n parentScope.populateCriteriaModel();\r\n if (refreshModel) {\r\n parentScope.grid.dataSource.data([]);\r\n createExport('Csv', true);\r\n } else {\r\n var serverLength = parentScope.grid.dataSource._total;\r\n createExport('Csv', false);\r\n }\r\n }\r\n\r\n function createExport(exportType, criteriaAndColumnsOnly) {\r\n if ($rootScope.tabs.length > 0) {\r\n let currentTab = $rootScope.tabs.find(tab => tab.id === $rootScope.currentSelectedTab.id);\r\n exportReport(currentTab.reportExportDetails, exportType, criteriaAndColumnsOnly);\r\n } else {\r\n exportReport(parentScope, exportType, criteriaAndColumnsOnly);\r\n }\r\n }\r\n\r\n function exportReport(reportInfo, exportType, criteriaAndColumnsOnly) {\r\n\r\n var exportName = reportInfo.reportName;\r\n\r\n applicationInsightsService.trackEvent('Export', { Name: reportInfo.reportName, ObjectId: reportInfo.ObjectId, Type: exportType });\r\n\r\n var reportDefinition = null;\r\n\r\n if (criteriaAndColumnsOnly) {\r\n reportDefinition = bundleReportDefinitionCriteriaAndColumnsOnly(reportInfo.grid.getOptions(), reportInfo.reportDetailsModel);\r\n } else {\r\n reportDefinition = bundleReportDefinition(reportInfo.grid.getOptions(), reportInfo.reportDetailsModel);\r\n }\r\n\r\n var postData = {\r\n \"Name\": exportName,\r\n \"Format\": exportType,\r\n \"PreferredTimeZone\": $rootScope.applicationTimeZone,\r\n \"ReportDefinition\": {\r\n \"ReportId\": reportInfo.reportId,\r\n \"Columns\": reportDefinition.Columns,\r\n \"Sortings\": reportDefinition.Sortings,\r\n \"Criteria\": reportInfo.sortsAndFilters != null && reportInfo.sortsAndFilters.Criteria != null ? reportDefinition.Criteria.concat(reportInfo.sortsAndFilters.Criteria) : reportDefinition.Criteria,\r\n \"Filters\": reportDefinition.Filters,\r\n \"DateFilters\": reportDefinition.DateFilters\r\n }\r\n };\r\n\r\n $http.post(apiUrl + 'api/core/exports', postData).then(function (response) {\r\n\r\n var fullExportName;\r\n if (exportType === 'Excel') {\r\n fullExportName = exportName + '.xlsx';\r\n } else if (exportType === 'PDF') {\r\n fullExportName = exportName + '.pdf';\r\n } else if (exportType === 'Csv') {\r\n fullExportName = exportName + '.csv';\r\n }\r\n\r\n response.data = { ExportId: response.data, ExportName: fullExportName };\r\n\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n }\r\n\r\n function bundleReportDefinition(gridOptions, reportDetailsModel) {\r\n var reportDefinition = { 'Filters': null, 'Sortings': null, 'Columns': null, 'Criteria': null };\r\n reportDefinition.Sortings = helperService.halPrepareSortArray(gridOptions.dataSource.sort);\r\n reportDefinition.Columns = helperService.cleanReportColumns(gridOptions.columns);\r\n\r\n var filters = helperService.halPrepareFilterArray(gridOptions.dataSource.filter);\r\n // Needed for saving report until report toolbar is refactored\r\n if (parentScope.$parent.$parent.drvm) parentScope.vm.filterCriteria = parentScope.$parent.$parent.drvm.filterCriteria;\r\n if (parentScope.vm.filterCriteria) {\r\n if (parentScope.vm.filterCriteria.query) {\r\n let standardFilters = parentScope.vm.filterCriteria.query.filter(filter => {\r\n return !filter.CriteriaValue;\r\n });\r\n filters = filters.concat(standardFilters);\r\n\r\n var criteriaToAdd = parentScope.vm.filterCriteria.query.filter(filter => {\r\n return filter.CriteriaValue;\r\n });\r\n }\r\n if (parentScope.vm.filterCriteria.dateQuery) {\r\n reportDefinition.DateFilters = parentScope.vm.filterCriteria.dateQuery;\r\n }\r\n if (parentScope.sortsAndFilters) {\r\n if (parentScope.sortsAndFilters.DateFilters) {\r\n reportDefinition.DateFilters = parentScope.sortsAndFilters.DateFilters.slice();\r\n }\r\n if (parentScope.dateCriteria && parentScope.sortsAndFilters.Filters.some(filter => filter.FieldName === parentScope.dateCriteria[0].FieldName)) {\r\n const missingDateRangeFilters = parentScope.sortsAndFilters.Filters.filter(filter => filter.FieldName === parentScope.dateCriteria[0].FieldName);\r\n filters = filters.concat(missingDateRangeFilters);\r\n }\r\n }\r\n }\r\n\r\n reportDefinition.Filters = filters;\r\n reportDefinition.Criteria = SavedReportSelectorService.cleanReportCriteria(reportDetailsModel, criteriaToAdd);\r\n\r\n return reportDefinition;\r\n }\r\n\r\n function bundleReportDefinitionCriteriaAndColumnsOnly(gridOptions, reportDetailsModel) {\r\n var reportDefinition = { 'Filters': null, 'Sortings': null, 'Columns': null, 'Criteria': null };\r\n reportDefinition.Columns = helperService.cleanReportColumns(gridOptions.columns);\r\n var filtersToAdd = [];\r\n var criteriaToAdd = [];\r\n\r\n if (parentScope.vm.filterCriteria && parentScope.vm.filterCriteria.query) {\r\n filtersToAdd = parentScope.vm.filterCriteria.query.filter(filter => {\r\n return !filter.CriteriaValue;\r\n });\r\n\r\n criteriaToAdd = parentScope.vm.filterCriteria.query.filter(filter => {\r\n return filter.CriteriaValue;\r\n });\r\n }\r\n\r\n if (parentScope.sortsAndFilters) {\r\n if (parentScope.sortsAndFilters.DateFilters) {\r\n reportDefinition.DateFilters = parentScope.sortsAndFilters.DateFilters.slice();\r\n }\r\n if (parentScope.dateCriteria && parentScope.sortsAndFilters.Filters.some(filter => filter.FieldName === parentScope.dateCriteria[0].FieldName)) {\r\n const missingDateRangeFilters = parentScope.sortsAndFilters.Filters.filter(filter => filter.FieldName === parentScope.dateCriteria[0].FieldName);\r\n filtersToAdd = filtersToAdd.concat(missingDateRangeFilters);\r\n }\r\n }\r\n\r\n reportDefinition.Filters = filtersToAdd;\r\n reportDefinition.Criteria = SavedReportSelectorService.cleanReportCriteria(reportDetailsModel, criteriaToAdd);\r\n return reportDefinition;\r\n }\r\n}","import CriteriaSubmitButtonDropdownController from \"./criteriaSubmitButtonDropdown.controller\";\r\n\r\n/* criteriaSubmitButtonDropdown.component.js */\r\n\r\n/**\r\n * @desc component for displaying a criteria submit button with dropdown export options\r\n * @example \r\n */\r\n\r\nconst criteriaSubmitButtonDropdown = {\r\n bindings: {\r\n formReference: '<',\r\n hideOptions: '<',\r\n exportPropertiesContainer: '<'\r\n },\r\n controller: CriteriaSubmitButtonDropdownController,\r\n controllerAs: 'csbdvm',\r\n templateUrl: '/App/Shared/Components/criteriaSubmitButtonDropdown/criteriaSubmitButtonDropdown.tmpl.html'\r\n};\r\n\r\nexport default criteriaSubmitButtonDropdown;","import { standardGridPageSize } from \"../../GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, helperService, $http) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = onInit;\r\n vm.$onChanges = onChanges;\r\n\r\n vm.intraResponsibilityCheck = intraResponsibilityCheck;\r\n\r\n async function onInit() {\r\n await setupRoleMultiselectDropdown();\r\n if ($rootScope.loadedSavedReport) {\r\n savedReportHandler();\r\n } else {\r\n if (vm.allRolesOption) {\r\n intraResponsibilityHandler();\r\n }\r\n }\r\n }\r\n\r\n async function onChanges(state) {\r\n if (vm.kendoRoleDropdownDataSource) {\r\n await vm.kendoRoleDropdownDataSource.read();\r\n }\r\n if (!state.selectedProduct.isFirstChange()) {\r\n productChangeHandler();\r\n }\r\n }\r\n\r\n function setupRoleMultiselectDropdown() {\r\n vm.kendoRoleDropdownDataSource = new kendo.data.DataSource({\r\n schema: {\r\n data: \"_embedded.reportData\",\r\n total: \"TotalItems\"\r\n },\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverOperation: false,\r\n transport: {\r\n read: async (options) => {\r\n if (vm.selectedProduct) {\r\n vm.rolesDropdownLoading = true;\r\n\r\n const query = helperService.prepareSortsAndFilters(options);\r\n if (query.Filters.length > 0) {\r\n query.Filters[0].FieldName = \"SecurityRoleName\";\r\n }\r\n\r\n if (vm.altText && vm.altText.includes('Responsibility')) {\r\n query.Filters.push({\r\n \"FieldName\": \"SecurityRoleTypeID\",\r\n \"Operator\": \"equals\",\r\n \"Value\": \"Responsibility\"\r\n });\r\n }\r\n\r\n if (vm.selectedProduct.length > 0) {\r\n vm.selectedProduct.forEach(product => {\r\n query.Filters.push({\r\n \"FieldName\": \"ProductID\",\r\n \"Operator\": \"equals\",\r\n \"Value\": product.ID\r\n });\r\n });\r\n }\r\n\r\n let urlString;\r\n const params = {\r\n \"productType\": vm.selectedProduct.Type,\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page,\r\n \"isExcluded\": false,\r\n \"includeUnassigned\": $rootScope.UserPreferences.IncludeOnlyUserAssignedRolesInPlacesRoleDropdowns === \"1\" ? false : true\r\n };\r\n if (vm.selectedProduct.ID) {\r\n urlString = `${apiUrl}api/universal/securityroles/product/${vm.selectedProduct.ID}`;\r\n } else {\r\n urlString = `${apiUrl}api/universal/securityroles`;\r\n }\r\n const response = await $http({\r\n method: 'POST',\r\n url: urlString,\r\n data: query,\r\n params: params\r\n });\r\n\r\n options.success(response.data);\r\n }\r\n }\r\n }\r\n });\r\n\r\n vm.roleDropdownOptions = {\r\n template: `{{dataItem.Name}}\r\n | {{dataItem.RolePhysicalName}}\r\n 1\"> | {{dataItem.ProductName}}\r\n {{dataItem.ProductId}}`,\r\n filter: \"contains\",\r\n autoBind: false,\r\n autoClose: false,\r\n placeholder: setPlaceholder(),\r\n popup: { origin: \"bottom left\" },\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: 'dataItem',\r\n valueMapper: async (options) => {\r\n const roles = await helperService.roleMapperFunction(options.value);\r\n options.success(roles);\r\n }\r\n },\r\n height: 325\r\n };\r\n }\r\n\r\n function setPlaceholder() {\r\n if (vm.altText) {\r\n if (vm.allRolesOption) {\r\n return `All Responsibilities`;\r\n } else {\r\n return `-- Select Responsibilities --`;\r\n }\r\n } else {\r\n if (vm.allRolesOption) {\r\n return `All Roles`;\r\n } else {\r\n return `-- Select Roles --`\r\n }\r\n }\r\n }\r\n\r\n function savedReportHandler() {\r\n if ($rootScope.loadedSavedReport) {\r\n const savedRoles = $rootScope.loadedSavedReport.ReportDefinition.Criteria.filter(criteria => criteria.CriteriaType === 'Role' || criteria.CriteriaType === 'Responsibility');\r\n\r\n const roles = [];\r\n\r\n if (savedRoles.length > 0) {\r\n savedRoles.forEach(role => {\r\n roles.push({\r\n Identifier: role.Filters[0].Value,\r\n Name: role.CriteriaValue\r\n });\r\n });\r\n vm.roleSelectedIds = [...roles];\r\n }\r\n if (roles.length === 0 || roles[0].Identifier === -1) {\r\n intraResponsibilityHandler();\r\n }\r\n vm.roleDataSource = vm.kendoRoleDropdown.dataSource.data();\r\n const roleDataSource = vm.roleDataSource.toJSON();\r\n const roleSelectedIds = vm.roleSelectedIds;\r\n vm.onUpdateRoles({ roleDataSource, roleSelectedIds });\r\n vm.rolesDropdownLoading = false;\r\n vm.runSavedReport();\r\n }\r\n }\r\n\r\n function productChangeHandler() {\r\n if (vm.allRolesOption) {\r\n intraResponsibilityHandler();\r\n } else {\r\n vm.roleSelectedIds = [];\r\n }\r\n }\r\n\r\n function intraResponsibilityHandler() {\r\n if (vm.altText === 'Responsibility Risks') {\r\n const selection = vm.roleSelectedIds;\r\n vm.toggleIntraResponsibility({ selection });\r\n }\r\n }\r\n\r\n function intraResponsibilityCheck(e) {\r\n if (vm.altText === 'Responsibility Risks') {\r\n const selectionArray = e.sender.value();\r\n const selection = selectionArray[0];\r\n vm.toggleIntraResponsibility({ selection });\r\n }\r\n }\r\n\r\n\r\n\r\n}","import roleMultiselectDropdownController from \"./roleMultiselectDropdown.controller\";\r\n\r\n/* roleMultiselectDropdown.component.js */\r\n\r\n/**\r\n * @desc component for selecting multiple roles from a paginated list of all security roles\r\n * @example \r\n */\r\n\r\nconst roleMultiselectDropdown = {\r\n bindings: {\r\n altText: '@',\r\n allRolesOption: '<',\r\n selectedProduct: '<',\r\n roleDataSource: '=',\r\n roleSelectedIds: '=',\r\n runSavedReport: '&',\r\n onUpdateRoles: '&',\r\n toggleIntraResponsibility: '&'\r\n },\r\n controller: roleMultiselectDropdownController,\r\n controllerAs: 'rmdvm',\r\n templateUrl: '/App/Shared/Components/roleMultiselectDropdown/roleMultiselectDropdown.tmpl.html'\r\n};\r\n\r\nexport default roleMultiselectDropdown;","export default /*@ngInject*/ function (objectIdDataService, helperService, dataService, $location) {\r\n\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.favorited = {};\r\n vm.helpObject = {\r\n domain: helpUrl,\r\n specificArticle: \"hc/en-us/articles/\",\r\n home: \"hc/en-us\"\r\n };\r\n\r\n vm.$onInit = () => activate();\r\n\r\n function activate() {\r\n objectIdDataService.getObjectID().then(objectId => {\r\n vm.ObjectId = objectId;\r\n\r\n const securityObject = helperService.getSecurityObjectDetailsFromObjectId(vm.ObjectId);\r\n vm.pageInfo = securityObject;\r\n vm.pageDescription = securityObject.HelpLink;\r\n vm.reportName = securityObject.Name;\r\n });\r\n\r\n getFavorites();\r\n }\r\n\r\n async function getFavorites() {\r\n let favorites = await dataService.getFavorites();\r\n let favorited = favorites.data.find(f => f.Url === $location.url());\r\n\r\n if (favorited) vm.favorited.value = true;\r\n else vm.favorited.value = false;\r\n }\r\n\r\n}","import pageHeaderController from \"./pageHeader.controller\";\r\n\r\n/* pageHeader.component.js */\r\n\r\n/**\r\n * @desc component for displaying page header\r\n * @example \r\n */\r\n\r\nconst pageHeader = {\r\n controller: pageHeaderController,\r\n controllerAs: 'phvm',\r\n templateUrl: '/App/Shared/Components/pageHeader/pageHeader.tmpl.html'\r\n};\r\n\r\nexport default pageHeader;","export default /*@ngInject*/ function ($http, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.deleteLayout = deleteLayout;\r\n vm.cancel = cancel;\r\n\r\n function onInit() {\r\n vm.manageSavedLayoutsDataSource = new kendo.data.DataSource({\r\n transport: {\r\n\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/core/reportlayouts').then(function (response) {\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n const columnsForGridOptions = [\r\n { field: \"LayoutName\", title: \"Report Name\", filterable: false },\r\n { field: \"ProductID\", title: \"Product\", template: '{{dataItem.ProductID | convertProductIdToProductName}}', filterable: false },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n ];\r\n\r\n vm.manageSavedLayoutsGridOptions = helperService.setNonPageableGridOptions(columnsForGridOptions);\r\n }\r\n\r\n\r\n function deleteLayout(id) {\r\n var rows = vm.manageSavedLayoutsDataSource.data();\r\n\r\n rows.forEach(function (row) {\r\n if (row.ID.toString() === id.toString()) {\r\n\r\n var url = apiUrl + 'api/core/reportlayouts/' + row.ID;\r\n $http.delete(url).\r\n then(function (response) {\r\n rows.remove(row);\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n });\r\n }\r\n\r\n function cancel() {\r\n vm.modalInstance.close();\r\n }\r\n}","import manageSavedLayoutsController from \"./manageSavedLayouts.controller\";\r\n\r\n/* manageSavedLayouts.component.js */\r\n\r\n/**\r\n * @desc component for managing saved layouts\r\n * @example \r\n */\r\n\r\nconst manageSavedLayouts = {\r\n bindings: {\r\n resolve: '<',\r\n modalInstance: '<',\r\n },\r\n controller: manageSavedLayoutsController,\r\n controllerAs: 'mslvm',\r\n templateUrl: '/App/Shared/Components/ManageSavedLayouts/manageSavedLayouts.tmpl.html'\r\n};\r\n\r\nexport default manageSavedLayouts;","import { standardGridPageSize, customAutoCompleteFilter } from \"../../GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, helperService, userRolesDataService, dataService, productId, requestAction, excludeRoles, objectTypeName) {\r\n\r\n var vm = this;\r\n vm.cancel = cancel;\r\n vm.close = close;\r\n vm.changeUserRowSelected = changeUserRowSelected;\r\n vm.productId = productId;\r\n vm.requestAction = requestAction;\r\n vm.excludeRoles = excludeRoles;\r\n vm.objectTypeName = objectTypeName;\r\n\r\n function activate() {\r\n configureUsersGrid();\r\n }\r\n\r\n activate();\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n function close(selectedUser) { $uibModalInstance.close(selectedUser); }\r\n\r\n function configureUsersGrid() {\r\n const usersGridColumns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"Id\", field: \"ID\", filterable: customAutoCompleteFilter },\r\n { title: \"Description\", field: \"Description\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.usersGridOptions = helperService.setMainGridOptions(usersGridColumns, null);\r\n\r\n vm.usersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response;\r\n\r\n // check for product - get master roles list if no product\r\n if (vm.productId) {\r\n response = await userRolesDataService.getUsers(vm.productId)\r\n } else {\r\n response = await dataService.getUserMaster();\r\n }\r\n\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function changeUserRowSelected(kendoEvent) {\r\n var grid = kendoEvent.sender;\r\n vm.selectedUser = grid.dataItem(grid.select());\r\n if (vm.keepCurrentRoles) {\r\n vm.selectedUser.keepCurrent = vm.keepCurrentRoles;\r\n }\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport selectUserModalController from \"./selectUserModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, userRolesDataService, helperService) {\r\n\r\n var vm = this;\r\n vm.$onInit = activate;\r\n\r\n vm.openUserSelectionModal = openUserSelectionModal;\r\n\r\n function activate() {\r\n if (!vm.productId) {\r\n vm.productId = vm.stringProductId;\r\n }\r\n if (vm.altText) {\r\n vm.objectTypeName = vm.altText;\r\n } else {\r\n vm.objectTypeName = \"Roles\";\r\n }\r\n }\r\n\r\n async function openUserSelectionModal() {\r\n let userSelectionModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Components/selectRolesByUser/selectUserModal.html',\r\n controller: selectUserModalController,\r\n controllerAs: 'sumvm',\r\n backdrop: 'static',\r\n resolve: {\r\n productId: () => vm.productId,\r\n requestAction: () => vm.requestAction,\r\n excludeRoles: () => vm.excludeRoles,\r\n objectTypeName: () => vm.objectTypeName\r\n }\r\n });\r\n\r\n try {\r\n const user = await userSelectionModal.result;\r\n await getRoles(user);\r\n } catch (err) {\r\n return;\r\n }\r\n }\r\n\r\n async function getRoles(user) {\r\n // get roles based on user, set vm.roles to response\r\n let response, unavailableRoles = [];\r\n if (vm.productId) {\r\n response = await userRolesDataService.getRolesByUserId(vm.productId, user.ID, vm.excludeRoles);\r\n } else {\r\n response = await userRolesDataService.getRolesByUserMasterId(user.ID, vm.excludeRoles);\r\n }\r\n if (vm.availableRoles && vm.availableRoles.length > 0) {\r\n if (!user.keepCurrent && vm.roles.length > 0) {\r\n if (vm.roles[0].Role) {\r\n vm.roles = vm.roles.map(role => role.Role);\r\n }\r\n removeCurrentRoles(vm.roles);\r\n }\r\n if (vm.productId !== 'PS') {\r\n // we can't do anything with roles that don't have the Id field so we will remove them for the purposes of this component\r\n vm.availableRoles = vm.availableRoles.filter(role => role.Id);\r\n }\r\n // need to select roles from available roles list\r\n response.data.forEach(role => {\r\n // toUpperCase to match casing of string Ids\r\n // checking if this role is already selected for user\r\n if (!isRoleSelected(vm.roles, role)) {\r\n let availableRoleIndex = getAvailableRoleIndex(role, vm.availableRoles), availableRole = getAvailableRole(role, vm.availableRoles);\r\n\r\n if (availableRoleIndex > -1) {\r\n if (role.ProductType === \"GP\") {\r\n if (!vm.storedRoles) { vm.storedRoles = []; }\r\n let roleCompanies = role.Companies.map(company => {\r\n let roleCompany = {\r\n Id: company.ID,\r\n Name: company.Name\r\n };\r\n return roleCompany;\r\n });\r\n roleCompanies.forEach(roleCompany => {\r\n if (!isRoleSelected(vm.roles, availableRole) && roleCompany.Id === vm.selectedCompany.Id.toString()) {\r\n availableRole = { Role: availableRole, Company: roleCompany };\r\n vm.storedRoles.unshift(availableRole);\r\n addRole(availableRole, availableRoleIndex);\r\n }\r\n });\r\n } else if ((role.Companies.length > 0) && vm.companies !== undefined) {\r\n availableRole.Companies = [];\r\n if ((role.ProductType === 'AX' || role.ProductType === 'AX7') && role.Companies.length === vm.companies.length) {\r\n availableRole.Companies = null;\r\n } else {\r\n role.Companies.forEach(rc => {\r\n let company = undefined;\r\n if (role.ProductType === \"NAV\") {\r\n company = vm.companies.find(co => co.Id === rc.ID).Id;\r\n } else {\r\n company = vm.companies.find(co => co.CompanyId === rc.ID);\r\n }\r\n if (company) {\r\n availableRole.Companies.unshift(company);\r\n }\r\n });\r\n }\r\n addRole(availableRole, availableRoleIndex);\r\n if (vm.validateRoles) {\r\n vm.validateRoles();\r\n }\r\n } else {\r\n addRole(availableRole, availableRoleIndex);\r\n // Call validate roles function from roles controller to enable the next button\r\n if (vm.validateRoles) {\r\n vm.validateRoles();\r\n }\r\n }\r\n } else {\r\n unavailableRoles.push(role);\r\n }\r\n }\r\n });\r\n\r\n //we only support copying Permission Sets for SF, not Profile so exclude those from the Unavailable list\r\n if (unavailableRoles.length && vm.productId === 'SF') {\r\n unavailableRoles = unavailableRoles.filter(role => role.TypeID === 'Permission Set');\r\n }\r\n\r\n if (unavailableRoles.length) {\r\n unavailableRoles = unavailableRoles.map(unavailableRole => unavailableRole.Name).join(\", \");\r\n let title = `${vm.altText ? vm.altText : 'Roles'} not added`, html = `
The following ${vm.altText ? vm.altText : 'Roles'} could not be added
\r\n ${unavailableRoles}`;\r\n\r\n if (vm.roles.length) {\r\n title = `Some ` + title;\r\n }\r\n\r\n swal({ title: title, html: html, type: 'warning', showCancelButton: false, confirmButtonText: 'OK' })\r\n }\r\n } else {\r\n vm.roles = response.data;\r\n if (vm.toggleIntraResponsibility) {\r\n // Need to ensure intra responsibility toggle is set correctly\r\n const selection = vm.roles;\r\n vm.toggleIntraResponsibility({ selection });\r\n }\r\n }\r\n }\r\n\r\n function isRoleSelected(selectedRoles, role) {\r\n if (selectedRoles.length === 0) {\r\n return false;\r\n }\r\n\r\n if (selectedRoles[0].Role) {\r\n if (role.Role) {\r\n return selectedRoles.some(r => r.Role.Identifier === role.Role.Identifier);\r\n } else {\r\n return selectedRoles.some(r => r.Role.Identifier === role.Identifier);\r\n }\r\n } else {\r\n return selectedRoles.some(r => r.Identifier === role.Identifier);\r\n } \r\n }\r\n\r\n function removeCurrentRoles(roles) {\r\n let newRoles = roles.slice();\r\n newRoles.forEach(role => {\r\n let existingRoleIndex = roles.findIndex(er => er.Identifier === role.Identifier);\r\n roles.splice(existingRoleIndex, 1);\r\n if (role.Role) {\r\n vm.availableRoles.unshift(role.Role);\r\n } else {\r\n vm.availableRoles.unshift(role);\r\n }\r\n if (vm.storedRoles && vm.storedRoles.length > 0) {\r\n let storedRoleIndex = vm.storedRoles.findIndex(sr => {\r\n return sr.Role.Identifier === role.Identifier && sr.Company.Id.toString() === vm.selectedCompany.Id.toString();\r\n });\r\n vm.storedRoles.splice(storedRoleIndex, 1);\r\n }\r\n });\r\n }\r\n\r\n function getAvailableRoleIndex(role, availableRoles) {\r\n return availableRoles.findIndex(ar => ar.Identifier === role.Identifier);\r\n }\r\n\r\n function getAvailableRole(role, availableRoles) {\r\n return availableRoles.find(ar => ar.Identifier=== role.Identifier);\r\n }\r\n\r\n function addRole(role, roleIndex) {\r\n vm.roles.unshift(role);\r\n vm.availableRoles.splice(roleIndex, 1);\r\n }\r\n\r\n}\r\n","import selectRolesByUserController from \"./selectRolesByUser.controller\";\r\n\r\n/* selectRolesByUser.component.js */\r\n\r\n/**\r\n * @desc component for selecting user from list of all users and getting roles associated with the selected user\r\n * @example \r\n */\r\n\r\nconst selectRolesByUser = {\r\n bindings: {\r\n productId: '<',\r\n stringProductId: '@',\r\n roles: '=',\r\n availableRoles: '=',\r\n storedRoles: '=',\r\n altText: '@',\r\n companies: '<',\r\n selectedCompany: '<',\r\n businessUnitId: '<',\r\n validateRoles: '&',\r\n requestAction: '<',\r\n toggleIntraResponsibility: '&?',\r\n excludeRoles: '<'\r\n },\r\n controller: selectRolesByUserController,\r\n controllerAs: 'srbuvm',\r\n templateUrl: '/App/Shared/Components/selectRolesByUser/selectRolesByUser.tmpl.html'\r\n};\r\n\r\nexport default selectRolesByUser;","export default /*@ngInject*/ function ($filter, $uibModalInstance, roleTemplatesData, errorsDataService, productId, requestAction, objectTypeName) {\r\n\r\n var vm = this;\r\n vm.cancel = cancel;\r\n vm.close = close;\r\n vm.productId = productId;\r\n vm.convertRoles = convertRoles;\r\n vm.requestAction = requestAction;\r\n vm.objectTypeName = objectTypeName;\r\n\r\n function activate() {\r\n getRoleTemplates();\r\n }\r\n\r\n activate();\r\n\r\n function getRoleTemplates() {\r\n vm.loading = true;\r\n roleTemplatesData.getRoleTemplates()\r\n .then(response => {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.roleTemplates = response.data;\r\n vm.loading = false;\r\n })\r\n .catch(error => {\r\n errorsDataService.catch(error);\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function convertRoles() {\r\n return { \"selectedRoleTemplates\": vm.selectedRoleTemplates, \"keepCurrent\": vm.keepCurrentRoles };\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n function close(roles) { $uibModalInstance.close(roles); }\r\n}","import selectRoleTemplateModalController from \"./selectRoleTemplateModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, $attrs, roleTemplatesData) {\r\n\r\n var vm = this;\r\n vm.$onInit = activate;\r\n\r\n vm.openModal = openModal;\r\n\r\n async function activate() {\r\n await checkForRoleTemplates();\r\n if (vm.roleTemplates.length === 0) {\r\n return;\r\n }\r\n\r\n if (!vm.productId) {\r\n vm.productId = vm.stringProductId;\r\n }\r\n\r\n if (vm.altText) {\r\n vm.objectTypeName = vm.altText;\r\n } else {\r\n vm.objectTypeName = \"Roles\";\r\n }\r\n }\r\n\r\n async function checkForRoleTemplates() {\r\n let response = await roleTemplatesData.getRoleTemplates();\r\n vm.roleTemplates = response.data;\r\n }\r\n\r\n function openModal() {\r\n let modal = $uibModal.open({\r\n templateUrl: '/App/Shared/Components/selectRolesByRoleTemplate/selectRoleTemplateModal.html',\r\n controller: selectRoleTemplateModalController,\r\n controllerAs: 'srtvm',\r\n backdrop: 'static',\r\n resolve: {\r\n productId: () => vm.productId,\r\n requestAction: () => vm.requestAction,\r\n objectTypeName: () => vm.objectTypeName\r\n }\r\n });\r\n\r\n modal.result\r\n .then(data => { selectTemplateRoles(data); })\r\n .catch(_ => { return; });\r\n }\r\n\r\n function selectTemplateRoles(data) {\r\n const selectedRoleTemplates = data.selectedRoleTemplates;\r\n let roles = {};\r\n roles.list = [];\r\n roles.keepCurrent = data.keepCurrent;\r\n if (selectedRoleTemplates.length > 0) {\r\n selectedRoleTemplates.forEach(roleTemplate => {\r\n roles.list = roles.list.concat(roleTemplate.Roles);\r\n });\r\n roles.list = roles.list.unique();\r\n }\r\n\r\n // get roles based on role template, set vm.roles to response\r\n if (vm.availableRoles) {\r\n if (vm.productId !== 'PS') {\r\n // we can't do anything with roles that don't have the Id field so we will remove them for the purposes of this component\r\n vm.availableRoles = vm.availableRoles.filter(role => role.Id);\r\n }\r\n if (!roles.keepCurrent && vm.roles.length > 0) {\r\n removeCurrentRoles(vm.roles);\r\n }\r\n // need to select roles from available roles list\r\n roles.list.forEach(role => {\r\n if (!isRoleSelected(vm.roles, role) && role.ProductId === vm.productId) {\r\n let availableRoleIndex = getAvailableRoleIndex(role, vm.availableRoles);\r\n let availableRole = getAvailableRole(role, vm.availableRoles);\r\n\r\n if (availableRoleIndex > -1) {\r\n if (role.ProductType === \"GP\") {\r\n availableRole = { Role: availableRole, Company: vm.selectedCompany };\r\n\r\n if (!vm.storedRoles) vm.storedRoles = [];\r\n\r\n vm.storedRoles.unshift(availableRole);\r\n addRole(availableRole, availableRoleIndex);\r\n } else {\r\n addRole(availableRole, availableRoleIndex);\r\n // Call validate roles function from roles controller to enable the next button\r\n if ($attrs.validateRoles) vm.validateRoles();\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n vm.roles = roles.list;\r\n if (vm.toggleIntraResponsibility) {\r\n // Need to ensure intra responsibility toggle is set correctly\r\n const selection = vm.roles;\r\n vm.toggleIntraResponsibility({ selection });\r\n }\r\n }\r\n vm.setSelectedRoleTemplates({ selectedRoleTemplates });\r\n }\r\n\r\n function isRoleSelected(selectedRoles, role) {\r\n if (selectedRoles.length === 0) {\r\n return false;\r\n }\r\n if (selectedRoles[0].Role) {\r\n if (role.Role) {\r\n return selectedRoles.some(r => r.Role.Id.toUpperCase() === role.Role.Id);\r\n } else {\r\n return selectedRoles.some(r => r.Role.Id.toUpperCase() === role.Id);\r\n }\r\n }\r\n if (typeof selectedRoles[0].Id === \"string\") {\r\n return selectedRoles.some(r => r.Id.toUpperCase() === role.Id.toUpperCase());\r\n } else {\r\n return vm.productId === 'PS' ? selectedRoles.some(ar => ar.Name === role.Name) : selectedRoles.some(r => r.Id.toString() === role.Id);\r\n }\r\n }\r\n\r\n function removeCurrentRoles(roles) {\r\n let newRoles = roles.slice();\r\n if (vm.productId === 'GP') {\r\n newRoles.forEach(role => {\r\n if (role.Role.Name === \"SystemUser\" || role.Role.Id === \"SystemUser\") {\r\n return;\r\n } else {\r\n let existingRoleIndex = roles.findIndex(er => er.Role.Id === role.Role.Id);\r\n roles.splice(existingRoleIndex, 1);\r\n vm.availableRoles.unshift(role.Role);\r\n if (vm.storedRoles && vm.storedRoles.length > 0) {\r\n let storedRoleIndex = vm.storedRoles.findIndex(sr => {\r\n return sr.Role.Id === role.Role.Id && sr.Company.Id === vm.selectedCompany.Id;\r\n });\r\n vm.storedRoles.splice(storedRoleIndex, 1);\r\n }\r\n }\r\n });\r\n } else {\r\n newRoles.forEach(role => {\r\n if (role.Name === \"SystemUser\" || role.Id === \"SystemUser\") {\r\n return;\r\n } else {\r\n let existingRoleIndex = roles.findIndex(er => er.Id === role.Id);\r\n roles.splice(existingRoleIndex, 1);\r\n vm.availableRoles.unshift(role);\r\n }\r\n });\r\n }\r\n }\r\n\r\n function getAvailableRoleIndex(role, availableRoles) {\r\n if (role.ProductType === \"OR\") {\r\n role.Id = role.Id.substr(role.Id.indexOf(\"|\") + 1);\r\n }\r\n if (typeof availableRoles[0].Id === \"string\") {\r\n return availableRoles.findIndex(ar => ar.Id.toUpperCase() === role.Id.toUpperCase());\r\n } else {\r\n return vm.productId === 'PS' ? availableRoles.findIndex(ar => ar.Name === role.Name) : availableRoles.findIndex(ar => ar.Id.toString() === role.Id);\r\n }\r\n }\r\n\r\n function getAvailableRole(role, availableRoles) {\r\n if (typeof availableRoles[0].Id === \"string\") {\r\n return availableRoles.find(ar => ar.Id.toUpperCase() === role.Id.toUpperCase());\r\n } else {\r\n return vm.productId === 'PS' ? availableRoles.find(ar => ar.Name === role.Name) : availableRoles.find(ar => ar.Id.toString() === role.Id);\r\n }\r\n }\r\n\r\n function addRole(role, roleIndex) {\r\n vm.roles.unshift(role);\r\n vm.availableRoles.splice(roleIndex, 1);\r\n }\r\n\r\n}\r\n","import selectRolesByRoleTemplateController from \"./selectRolesByRoleTemplate.controller\";\r\n\r\n/* selectRolesByRoleTemplate.component.js */\r\n\r\n/**\r\n * @desc component for selecting role template from list of all role templates and getting roles associated with the selected role template\r\n * @example \r\n */\r\n\r\nconst selectRolesByRoleTemplate = {\r\n bindings: {\r\n productId: '<',\r\n stringProductId: '@',\r\n roles: '=',\r\n availableRoles: '=',\r\n storedRoles: '=',\r\n altText: '@',\r\n companies: '<',\r\n selectedCompany: '<',\r\n businessUnitId: '<',\r\n validateRoles: '&',\r\n requestAction: '<',\r\n setSelectedRoleTemplates: '&',\r\n toggleIntraResponsibility: '&?'\r\n\r\n },\r\n controller: selectRolesByRoleTemplateController,\r\n controllerAs: 'srbrtvm',\r\n templateUrl: '/App/Shared/Components/selectRolesByRoleTemplate/selectRolesByRoleTemplate.tmpl.html'\r\n};\r\n\r\nexport default selectRolesByRoleTemplate;","export default /*@ngInject*/ function ($rootScope, $uibModal, SavedReportSelectorService, $http, $q, helperService, applicationInsightsService, authenticationService, CustomReportServices, objectIdDataService, errorsDataService, configurationDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.openManageSavedLayoutsModal = openManageSavedLayoutsModal;\r\n vm.hideShowColumn = hideShowColumn;\r\n vm.openSaveReportModal = openSaveReportModal;\r\n vm.openScheduleReportModal = openScheduleReportModal;\r\n vm.findCurrentSavedReportByObjectID = findCurrentSavedReportByObjectID;\r\n vm.applyFilter = applyFilter;\r\n vm.openSignReportModal = openSignReportModal;\r\n vm.openSaveFilterModal = openSaveFilterModal;\r\n vm.openFilterManagerModal = openFilterManagerModal;\r\n vm.bundleReportDefinition = bundleReportDefinition;\r\n vm.bundleReportDefinitionCriteriaAndColumnsOnly = bundleReportDefinitionCriteriaAndColumnsOnly;\r\n vm.createExport = createExport;\r\n vm.changeView = changeView;\r\n\r\n vm.saveReportLayoutButton = saveReportLayoutButton;\r\n\r\n vm.exportToExcel = exportToExcel;\r\n vm.exportToPDF = exportToPDF;\r\n vm.exportToCSV = exportToCSV;\r\n vm.exportToCSVForUpdate = exportToCSVForUpdate;\r\n\r\n async function onInit() {\r\n vm.currentUser = await authenticationService.getUser();\r\n vm.objectId = await objectIdDataService.getObjectID();\r\n vm.report = helperService.getSecurityObjectDetailsFromObjectId(vm.objectId);\r\n checkForReportId();\r\n vm.filtersDataSource = CustomReportServices.setfiltersDataSource(vm.objectId);\r\n vm.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n vm.config = {};\r\n\r\n configurationDataService.getConfigurationValues().then(response => {\r\n response.data.forEach(row => {\r\n vm.config[row.Name] = row.Value;\r\n });\r\n });\r\n }\r\n\r\n function checkForReportId() {\r\n if (vm.reportId) {\r\n vm.report.ReportID = vm.reportId;\r\n }\r\n }\r\n\r\n function applyFilter(selectedFilter) {\r\n vm.onApplyFilter({ selectedFilter });\r\n }\r\n\r\n function saveReportLayoutButton() {\r\n const scope = {\r\n grid: vm.grid,\r\n ObjectId: vm.objectId\r\n };\r\n\r\n if (!vm.selectedProduct) {\r\n vm.selectedProduct = {\r\n ID: null\r\n };\r\n }\r\n\r\n CustomReportServices.saveGridLayout(scope, vm.selectedProduct.ID);\r\n }\r\n\r\n function openManageSavedLayoutsModal() {\r\n checkForReportId();\r\n\r\n $uibModal.open({\r\n component: 'manageSavedLayouts',\r\n resolve: {\r\n grid: () => vm.grid,\r\n report: () => vm.report,\r\n reportDetailsModel: () => vm.reportDetailsModel,\r\n objectId: () => vm.objectId,\r\n sortsAndFilters: () => vm.sortsAndFilters,\r\n bundleReportDefinition: () => bundleReportDefinition\r\n }\r\n });\r\n }\r\n\r\n function countShowingColumns(array) {\r\n var filteredArray = array.filter(e => !e.hidden);\r\n return filteredArray.length;\r\n }\r\n\r\n function hideShowColumn(columns, column) {\r\n\r\n if (!column.isLast) {\r\n //If there are two columns left visible and one is being removed set the last column to isLast which prevents that column from being removed and changes the look\r\n if (countShowingColumns(columns) === 2 && !column.hidden) {\r\n var lastColumn = columns.find(function (col) { return !col.hidden && col.field !== column.field; });\r\n if (lastColumn) {\r\n lastColumn.isLast = true;\r\n }\r\n } else if (!column.isLast) {\r\n //Reset the isLast value to false if there is more than one column left\r\n columns.forEach(function (col) {\r\n col.isLast = false;\r\n });\r\n }\r\n\r\n\r\n //Don't change the last column\r\n var index = columns.indexOf(column);\r\n\r\n if (column.hidden) {\r\n vm.grid.showColumn(index);\r\n } else {\r\n vm.grid.hideColumn(index);\r\n for (var i = 0; i < vm.grid.columns.length; i++) {\r\n //Remove width on columns in places so auto fit can resize them\r\n vm.grid.columns[i].width = null;\r\n if (!vm.grid.columns[i].hidden) {\r\n vm.grid.autoFitColumn(i + 1);\r\n //6 is an arbitrary number for the possible columns visible on a given page\r\n //When setting auto fit on a report with a large number of columns it can slow down the UI\r\n //6 could be set to the number of columns currently viewable on the screen if that information can be accessed\r\n if (i > 6) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async function openSaveReportModal() { \r\n checkForReportId();\r\n vm.populateCriteriaModel();\r\n try {\r\n const currentSavedReports = [];\r\n const res = await $http.get(`${apiUrl}api/core/savedreports/users/${vm.currentUser.userId}`);\r\n\r\n if (res.data.some(report => report.ReportDefinition.ReportId === vm.report.ReportID)) {\r\n\r\n const matches = res.data.filter(report => report.ReportDefinition.ReportId === vm.report.ReportID);\r\n matches.forEach(match => {\r\n currentSavedReports.push(match);\r\n });\r\n }\r\n\r\n $uibModal.open({\r\n component: 'saveReport',\r\n resolve: {\r\n grid: () => vm.grid,\r\n report: () => vm.report,\r\n reportDetailsModel: () => vm.reportDetailsModel,\r\n objectId: () => vm.objectId,\r\n sortsAndFilters: () => vm.sortsAndFilters,\r\n bundleReportDefinition: () => bundleReportDefinition,\r\n currentSavedReports: () => currentSavedReports\r\n }\r\n });\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n async function openScheduleReportModal() {\r\n checkForReportId();\r\n\r\n try {\r\n const currentSavedReports = [];\r\n const res = await $http.get(`${apiUrl}api/core/savedreports/users/${vm.currentUser.userId}`);\r\n\r\n if (res.data.some(report => report.ReportDefinition.ReportId === vm.report.ReportID)) {\r\n const matches = res.data.filter(report => report.ReportDefinition.ReportId === vm.report.ReportID);\r\n matches.forEach(match => {\r\n currentSavedReports.push(match);\r\n });\r\n }\r\n\r\n $uibModal.open({\r\n component: 'scheduleReport',\r\n resolve: {\r\n grid: () => vm.grid,\r\n report: () => vm.report,\r\n reportDetailsModel: () => vm.reportDetailsModel,\r\n sortsAndFilters: () => vm.sortsAndFilters,\r\n bundleReportDefinition: () => bundleReportDefinition,\r\n currentSavedReports: () => currentSavedReports\r\n }\r\n });\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n }\r\n\r\n function findCurrentSavedReportByObjectID(objectID) {\r\n var deferred = $q.defer();\r\n $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/core/savedreports/users/${vm.currentUser.userId}`\r\n }).then(function (response) {\r\n\r\n var raw = response.data;\r\n var item, i;\r\n var currentSavedReports = [];\r\n\r\n for (i = response.data.length - 1; i >= 0; i--) {\r\n item = raw[i];\r\n\r\n if (item.ReportDefinition.ObjectId === objectID && item.detailed === vm.isDetailed) {\r\n currentSavedReports.push(item);\r\n }\r\n }\r\n\r\n deferred.resolve(currentSavedReports);\r\n\r\n return deferred.promise;\r\n\r\n });\r\n\r\n }\r\n\r\n function openSignReportModal() {\r\n checkForReportId();\r\n vm.populateCriteriaModel();\r\n $uibModal.open({\r\n component: 'signReport',\r\n backdrop: 'static',\r\n resolve: {\r\n archiveReport: () => vm.config['ArchiveSignedReports'] === '1',\r\n objectId: () => vm.objectId,\r\n sortsAndFilters: () => vm.sortsAndFilters,\r\n report: () => {\r\n return {\r\n id: vm.report.ReportID,\r\n name: vm.report.Name,\r\n definition: vm.bundleReportDefinition(vm.grid.getOptions(), vm.reportDetailsModel)\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function openSaveFilterModal() {\r\n const gridFilters = vm.grid.getOptions().dataSource.filter;\r\n if (gridFilters?.filters) {\r\n const modal = $uibModal.open({\r\n component: 'saveReportFilter',\r\n resolve: {\r\n grid: () => vm.grid,\r\n reportId: () => vm.reportId,\r\n gridFilters: () => gridFilters,\r\n objectId: () => vm.objectId,\r\n filtersDataSource: () => vm.filtersDataSource\r\n }\r\n });\r\n try {\r\n await modal.result;\r\n onInit();\r\n } catch (_) {\r\n return;\r\n }\r\n } else {\r\n helperService.showErrorMessage('There is no filter to save.');\r\n }\r\n }\r\n\r\n function openFilterManagerModal() {\r\n $uibModal.open({\r\n component: 'reportFilterManager',\r\n resolve: {\r\n filtersDataSource: () => vm.filtersDataSource\r\n }\r\n });\r\n }\r\n\r\n function bundleReportDefinition(gridOptions, reportDetailsModel) {\r\n const reportDefinition = { 'Filters': null, 'Sortings': null, 'Columns': null, 'Criteria': null };\r\n reportDefinition.Sortings = helperService.halPrepareSortArray(gridOptions.dataSource.sort);\r\n reportDefinition.Columns = helperService.cleanReportColumns(gridOptions.columns);\r\n let filters = helperService.halPrepareFilterArray(gridOptions.dataSource.filter);\r\n // Needed for saving report until report toolbar is refactored\r\n if (vm.filterCriteria) {\r\n if (vm.filterCriteria.query) {\r\n const standardFilters = vm.filterCriteria.query.filter(filter => !filter.CriteriaValue || (filter.CriteriaValue && filter.FieldName === 'ProductId') || (filter.CriteriaValue && filter.FieldName === 'ReportId'));\r\n vm.criteriaToAdd = vm.filterCriteria.query.filter(filter => filter.CriteriaValue);\r\n filters = filters.concat(standardFilters);\r\n }\r\n if (vm.filterCriteria.dateQuery) {\r\n reportDefinition.DateFilters = vm.filterCriteria.dateQuery;\r\n }\r\n if (vm.sortsAndFilters) {\r\n if (vm.sortsAndFilters.DateFilters) {\r\n reportDefinition.DateFilters = reportDefinition?.DateFilters ? reportDefinition.DateFilters.concat(vm.sortsAndFilters.DateFilters).unique() : vm.sortsAndFilters.DateFilters.slice();\r\n }\r\n if (vm.dateCriteria && vm.sortsAndFilters.Filters.some(filter => filter.FieldName === vm.dateCriteria[0].FieldName)) {\r\n const missingDateRangeFilters = vm.sortsAndFilters.Filters.filter(filter => filter.FieldName === vm.dateCriteria[0].FieldName);\r\n filters = filters.concat(missingDateRangeFilters);\r\n }\r\n if (vm.sortsAndFilters.Filters.length > 0) {\r\n filters = vm.sortsAndFilters.Filters;\r\n }\r\n }\r\n }\r\n\r\n reportDefinition.Filters = filters;\r\n reportDefinition.Criteria = SavedReportSelectorService.cleanReportCriteria(reportDetailsModel, vm.criteriaToAdd);\r\n\r\n return reportDefinition;\r\n }\r\n\r\n function bundleReportDefinitionCriteriaAndColumnsOnly(gridOptions, reportDetailsModel) {\r\n var reportDefinition = { 'Filters': null, 'Sortings': null, 'Columns': null, 'Criteria': null };\r\n reportDefinition.Columns = helperService.cleanReportColumns(gridOptions.columns);\r\n var filtersToAdd = [];\r\n var criteriaToAdd = [];\r\n\r\n if (vm.filterCriteria && vm.filterCriteria.query) {\r\n filtersToAdd = vm.filterCriteria.query.filter(filter => {\r\n return !filter.CriteriaValue;\r\n });\r\n\r\n criteriaToAdd = vm.filterCriteria.query.filter(filter => {\r\n return filter.CriteriaValue;\r\n });\r\n }\r\n\r\n if (vm.sortsAndFilters) {\r\n if (vm.sortsAndFilters.DateFilters) {\r\n reportDefinition.DateFilters = vm.sortsAndFilters.DateFilters.slice();\r\n }\r\n if (vm.dateCriteria && vm.sortsAndFilters.Filters.some(filter => filter.FieldName === vm.dateCriteria[0].FieldName)) {\r\n const missingDateRangeFilters = vm.sortsAndFilters.Filters.filter(filter => filter.FieldName === vm.dateCriteria[0].FieldName);\r\n filtersToAdd = filtersToAdd.concat(missingDateRangeFilters);\r\n }\r\n }\r\n\r\n reportDefinition.Filters = filtersToAdd;\r\n reportDefinition.Criteria = SavedReportSelectorService.cleanReportCriteria(reportDetailsModel, criteriaToAdd);\r\n return reportDefinition;\r\n }\r\n\r\n function createExport(exportType, criteriaAndColumnsOnly) {\r\n checkForReportId();\r\n if ($rootScope.tabs.length > 0) {\r\n const currentTab = $rootScope.tabs.find(tab => tab.id === $rootScope.currentSelectedTab.id);\r\n exportReport(currentTab.reportExportDetails, exportType, criteriaAndColumnsOnly);\r\n } else {\r\n exportReport(vm, exportType, criteriaAndColumnsOnly);\r\n }\r\n }\r\n\r\n function exportReport(reportInfo, exportType, criteriaAndColumnsOnly) {\r\n let exportName = null;\r\n\r\n if (reportInfo.reportName) {\r\n exportName = reportInfo.reportName;\r\n } else {\r\n exportName = reportInfo.report.Name;\r\n }\r\n\r\n applicationInsightsService.trackEvent('Export', { Name: exportName, ObjectId: reportInfo.objectId, Type: exportType });\r\n\r\n let reportDefinition = null;\r\n\r\n if (criteriaAndColumnsOnly) {\r\n reportDefinition = bundleReportDefinitionCriteriaAndColumnsOnly(reportInfo.grid.getOptions(), reportInfo.reportDetailsModel);\r\n } else {\r\n reportDefinition = bundleReportDefinition(reportInfo.grid.getOptions(), reportInfo.reportDetailsModel);\r\n }\r\n\r\n const postData = {\r\n \"Name\": exportName,\r\n \"Format\": exportType,\r\n \"PreferredTimeZone\": $rootScope.applicationTimeZone,\r\n \"ReportDefinition\": {\r\n \"ReportId\": reportInfo.reportId ? reportInfo.reportId : reportInfo.report.ReportID,\r\n \"Columns\": reportDefinition.Columns,\r\n \"Sortings\": reportDefinition.Sortings,\r\n \"Criteria\": reportInfo.sortsAndFilters && reportInfo.sortsAndFilters.Criteria ? reportDefinition.Criteria.concat(reportInfo.sortsAndFilters.Criteria) : reportDefinition.Criteria,\r\n \"Filters\": reportDefinition.Filters,\r\n \"DateFilters\": reportDefinition.DateFilters\r\n }\r\n };\r\n\r\n if (exportType === 'CsvUpdate') {\r\n let routeString;\r\n if (reportInfo.reportId === 'b280b98b-f119-4b3a-8d2d-fccef20e9195') {\r\n routeString = \"api/audittrail/ns/places/datachanges/export\";\r\n } else {\r\n routeString = \"api/audittrail/ns/v2/places/allchanges/export\";\r\n }\r\n\r\n $http.post(apiUrl + routeString, postData).then(function (response) {\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n } else {\r\n $http.post(apiUrl + 'api/core/exports', postData).then(function (response) {\r\n\r\n let fullExportName;\r\n if (exportType === 'Excel') {\r\n fullExportName = exportName + '.xlsx';\r\n } else if (exportType === 'PDF') {\r\n fullExportName = exportName + '.pdf';\r\n } else if (exportType === 'Csv') {\r\n fullExportName = exportName + '.csv';\r\n }\r\n\r\n response.data = { ExportId: response.data, ExportName: fullExportName };\r\n\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n }\r\n\r\n function exportToExcel(refreshModel) {\r\n vm.populateCriteriaModel();\r\n if (refreshModel) {\r\n vm.grid.dataSource.data([]);\r\n vm.createExport('Excel', true);\r\n } else {\r\n var serverLength = vm.grid.dataSource._total;\r\n if (serverLength > 999999) {\r\n helperService.showErrorMessage('An export must be under 1,000,000 rows');\r\n } else {\r\n vm.createExport('Excel', false);\r\n }\r\n }\r\n }\r\n\r\n function exportToPDF(refreshModel) {\r\n vm.populateCriteriaModel();\r\n if (refreshModel) {\r\n vm.grid.dataSource.data([]);\r\n vm.createExport('PDF', true);\r\n } else {\r\n vm.createExport('PDF', false);\r\n }\r\n }\r\n\r\n function exportToCSV(refreshModel) {\r\n vm.populateCriteriaModel();\r\n if (refreshModel) {\r\n vm.grid.dataSource.data([]);\r\n vm.createExport('Csv', true);\r\n } else {\r\n vm.createExport('Csv', false);\r\n }\r\n }\r\n\r\n function exportToCSVForUpdate(refreshModel) {\r\n if (vm.populateCriteriaModel) vm.populateCriteriaModel();\r\n if (refreshModel) {\r\n vm.grid.dataSource.data([]);\r\n vm.createExport('CsvUpdate', true);\r\n } else {\r\n vm.createExport('CsvUpdate', false);\r\n }\r\n };\r\n\r\n function changeView(moduleName, viewName, type) {\r\n helperService.changeView(moduleName, viewName, type);\r\n }\r\n\r\n}","import reportToolbarController from \"./reportToolbar.controller\";\r\n\r\n/* reportToolbar.component.js */\r\n\r\n/**\r\n * @desc component for displaying the report toolbar\r\n * @example \r\n */\r\n\r\nconst reportToolbar = {\r\n bindings: {\r\n grid: '<',\r\n enableGrid: '<',\r\n dateCriteria: '<',\r\n gridDataSouce: '<',\r\n reportId: '<',\r\n selectedProduct: '<',\r\n reportDetailsModel: '<',\r\n onApplyFilter: '&',\r\n onReadGrid: '&',\r\n onClearFilters: '&',\r\n filterCriteria: '<',\r\n sortsAndFilters: '<',\r\n populateCriteriaModel: '&'\r\n },\r\n controller: reportToolbarController,\r\n controllerAs: 'rtvm',\r\n templateUrl: '/App/Shared/Components/ReportToolbar/reportToolbar.tmpl.html'\r\n};\r\n\r\nexport default reportToolbar;","import { customAutoCompleteFilter, standardGridPageSize } from '../../GlobalVariables/filterVariables';\r\n\r\nexport default /*@ngInject*/ function (helperService, $filter, AXSecurityDesignerPrivilegesDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.collapsed = false;\r\n vm.selectedTab = 'All';\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.selectTable = selectTable;\r\n vm.toggleCollapse = toggleCollapse;\r\n vm.onAccessChange = onAccessChange;\r\n vm.deleteModification = deleteModification;\r\n vm.changeFilter = changeFilter;\r\n\r\n function onInit() {\r\n\r\n const tableColumns = [\r\n { field: \"Name\", title: \"Table Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Label\", title: \"Table Label\", filterable: customAutoCompleteFilter },\r\n ];\r\n\r\n vm.fieldActions = [\"Grant\", \"Deny\", \"Unset\"];\r\n\r\n const fieldColumns = [\r\n {\r\n field: \"Name\",\r\n title: \"Field Name\",\r\n filterable: customAutoCompleteFilter\r\n },\r\n {\r\n field: \"Label\",\r\n title: \"Field Label\",\r\n filterable: customAutoCompleteFilter\r\n },\r\n {\r\n title: \"Read\",\r\n field: \"Read\",\r\n template:\r\n ``,\r\n filterable: customAutoCompleteFilter\r\n },\r\n {\r\n title: \"Update\",\r\n field: \"Update\",\r\n template:\r\n ``,\r\n filterable: customAutoCompleteFilter\r\n },\r\n // {\r\n // title: \"Create\",\r\n // field: \"Create\",\r\n // template:\r\n // ``,\r\n // filterable: customAutoCompleteFilter\r\n // },\r\n // {\r\n // title: \"Delete\",\r\n // field: \"Delete\",\r\n // template:\r\n // ``,\r\n // filterable: customAutoCompleteFilter\r\n // },\r\n {\r\n title: \" \",\r\n field: \"IsCustomized\",\r\n template:\r\n `\r\n `,\r\n width: 30,\r\n filterable: false\r\n }\r\n ];\r\n\r\n vm.tablesGridOptions = helperService.setMainGridOptions(tableColumns, null);\r\n vm.fieldsGridOptions = helperService.setMainGridOptions(fieldColumns, null);\r\n vm.fieldsGridOptions.selectable = false;\r\n }\r\n\r\n vm.tablesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n vm.resolve.tables = $filter('orderBy')(vm.resolve.tables, 'Name');\r\n options.success(vm.resolve.tables);\r\n } catch (err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n vm.fieldsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n const fields = await AXSecurityDesignerPrivilegesDataService.getFields(vm.selectedTable.Name);\r\n const access = await AXSecurityDesignerPrivilegesDataService.getFieldAccess(vm.resolve.simulationId, vm.resolve.privilege.SystemName, vm.selectedTable.Name);\r\n\r\n vm.assignedFields = [];\r\n vm.modifiedFields = [];\r\n\r\n if (access.data.length === 0) {\r\n fields.data.forEach(field => {\r\n setFieldDefaults(field);\r\n });\r\n } else {\r\n access.data.forEach(set => {\r\n const match = fields.data.find(field => field.Id === set.SystemName);\r\n if (match) {\r\n copyFieldSettings(match, set);\r\n }\r\n });\r\n vm.assignedFields = getAssignedFields(fields.data);\r\n vm.modifiedFields = fields.data.filter(field => field.IsModified);\r\n\r\n const others = fields.data.filter(field => !field.IsCustomized);\r\n others.forEach(field => {\r\n setFieldDefaults(field);\r\n });\r\n }\r\n\r\n if (vm.selectedTab === 'Assigned') {\r\n fields.data = vm.assignedFields;\r\n } else if (vm.selectedTab === 'Modified') {\r\n fields.data = vm.modifiedFields;\r\n }\r\n\r\n fields.data = $filter('orderBy')(fields.data, 'Name');\r\n options.success(fields.data);\r\n } catch (err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n function setFieldDefaults(field) {\r\n field.Read = 'Unset';\r\n field.Update = 'Unset';\r\n // field.Create = 'Unset';\r\n // field.Delete = 'Unset';\r\n field.IsCustomized = false;\r\n }\r\n\r\n function copyFieldSettings(field, set) {\r\n field.Read = set.Read;\r\n field.Update = set.Update;\r\n // field.Create = set.Create;\r\n // field.Delete = set.Delete;\r\n field.IsModified = set.IsModified;\r\n field.IsCustomized = true;\r\n }\r\n\r\n function getAssignedFields(array) {\r\n const assigned = [];\r\n\r\n if (array.length > 0) {\r\n array.forEach(field => {\r\n if (field.hasOwnProperty('Read')) {\r\n const { Update, Read} = field; // Create, Delete\r\n const actions = [ Update, Read ]; // Create, Delete\r\n if (actions.some(action => action !== 'Unset')) {\r\n assigned.push(field);\r\n }\r\n }\r\n });\r\n }\r\n return assigned;\r\n }\r\n\r\n async function onAccessChange(action, field) {\r\n kendo.ui.progress(vm.fieldsGrid.element, true);\r\n await updateFieldAccess(vm.resolve.simulationId, action, field);\r\n vm.fieldsGridDataSource.read();\r\n kendo.ui.progress(vm.fieldsGrid.element, false);\r\n }\r\n\r\n async function updateFieldAccess(simulationId, action, field) {\r\n\r\n // if (action === 'Delete' && field.Delete === 'Grant') {\r\n // field.Create = 'Grant';\r\n // field.Update = 'Grant';\r\n // field.Read = 'Grant';\r\n // } else if (action === 'Create' && field.Create === \"Grant\") {\r\n // field.Update = 'Grant';\r\n // field.Read = 'Grant';\r\n // }\r\n if (action === 'Update' && field.Update === \"Grant\") {\r\n field.Read = 'Grant';\r\n } else if (action === 'Read' && field.Read === 'Deny') {\r\n field.Update = 'Deny';\r\n // field.Update = 'Deny';\r\n // field.Delete = 'Deny';\r\n }\r\n // else if (action === 'Update' && field.Update === 'Deny') {\r\n // field.Create = 'Deny';\r\n // field.Delete = 'Deny';\r\n // }\r\n // else if (action === 'Create' && field.Create === 'Deny') {\r\n // field.Delete = 'Deny';\r\n // }\r\n\r\n const body = {\r\n SimulationId: simulationId,\r\n ParentObjectAssociation: [\r\n {\r\n ParentObjectId: vm.resolve.privilege.SystemName,\r\n ParentObjectType: 'Privilege',\r\n ParentIsCustom: vm.resolve.privilege.IsCustom,\r\n\r\n ChildObjectId: field.Id,\r\n ChildObjectType: 'TableField',\r\n\r\n Read: field.Read,\r\n Update: field.Update,\r\n // Create: field.Create,\r\n // Delete: field.Delete,\r\n }\r\n ]\r\n };\r\n await AXSecurityDesignerPrivilegesDataService.updateFieldAccess(simulationId, body);\r\n }\r\n\r\n async function deleteModification(simulationId, field) {\r\n try {\r\n await AXSecurityDesignerPrivilegesDataService.deleteModification(simulationId, field);\r\n vm.fieldsGridDataSource.read();\r\n } catch (err) {\r\n return;\r\n }\r\n }\r\n\r\n function changeFilter() {\r\n vm.fieldsGridDataSource.read();\r\n }\r\n\r\n function selectTable(dataItem) {\r\n vm.selectedTable = dataItem;\r\n vm.collapsed = true;\r\n vm.selectedTab = 'All';\r\n vm.fieldsGridDataSource.read();\r\n }\r\n\r\n function toggleCollapse() {\r\n vm.collapsed = !vm.collapsed;\r\n }\r\n\r\n}","import tableFieldsModalController from \"./tableFieldsModal.controller\";\r\n\r\n/* tableFieldsModal.component.js */\r\n\r\n/**\r\n * @desc component for managing table fields for Security Designer privileges\r\n * @example \r\n */\r\n\r\nconst tableFieldsModal = {\r\n bindings: {\r\n resolve: '<',\r\n modalInstance: '<'\r\n },\r\n controller: tableFieldsModalController,\r\n controllerAs: 'tfmvm',\r\n templateUrl: '/App/Shared/Components/TableFieldsModal/tableFieldsModal.tmpl.html'\r\n};\r\n\r\nexport default tableFieldsModal;\r\n","import { customAutoCompleteFilterEqualToOnly, customAutoCompleteFilter, customDatePickerFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport allSupportedProducts from '../../../Shared/GlobalVariables/ProductLookUp';\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, helperService, $http, lastClickedDataItemRecord) {\r\n const vm = this;\r\n\r\n vm.lastClickedDataItemRecord = lastClickedDataItemRecord;\r\n\r\n vm.linkRecordToZendesk = linkRecordToZendesk;\r\n vm.unLinkRecord = unLinkRecord;\r\n vm.dismiss = dismiss;\r\n\r\n activate();\r\n\r\n function activate() {\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n const sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n const postBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n $http.post(apiUrl + 'api/core/tickets/zendesk/search/', postBody).then(function (response) {\r\n vm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n }, function (response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n let isCustomProduct = false;\r\n\r\n if (!vm.lastClickedDataItemRecord.auditLogTicket) {\r\n if (!allSupportedProducts.some(p => p.Type === vm.lastClickedDataItemRecord.ProductType)) {\r\n isCustomProduct = true;\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.ProductType === 'NS' || vm.lastClickedDataItemRecord.ProductType === 'ORFC' || vm.lastClickedDataItemRecord.ProductType == 'SF') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.Id;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'GP' || vm.lastClickedDataItemRecord.ProductType === 'AX' || vm.lastClickedDataItemRecord.ProductType === 'NAV' || vm.lastClickedDataItemRecord.ProductType === 'SL' || vm.lastClickedDataItemRecord.ProductType === 'AX5' || isCustomProduct) {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.TableLogID;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'SAP') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.ChangeNumber;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'D365Bc') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.entryNo;\r\n } else {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.RecId;\r\n }\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.TicketProvider == 'Zendesk') {\r\n $http.get(apiUrl + 'api//core/tickets/' + 'Zendesk' + '/' + vm.lastClickedDataItemRecord.TicketId).then(function (response) {\r\n vm.populatedTicket = response.data;\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n const statusTemplate = \"{{dataItem.Status}}\";\r\n\r\n const columnsFromVM = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: customAutoCompleteFilterEqualToOnly, width: 80 },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { title: ' ', template: \"Link\", width: 90 }\r\n ];\r\n\r\n $scope.$evalAsync(function () {\r\n vm.gridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n vm.gridOptions.selectable = false;\r\n vm.gridOptions.pageable = false;\r\n vm.gridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n });\r\n }\r\n\r\n async function linkRecordToZendesk (dataItem) {\r\n vm.actionInProgress = new createSpinner();\r\n\r\n const productType = vm.lastClickedDataItemRecord.ProductType;\r\n\r\n let postData = {\r\n \"TicketId\": dataItem.Id,\r\n \"Provider\": 'Zendesk'\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n postData.AuditId = vm.lastClickedDataItemRecord.AuditId;\r\n postData.UserId = vm.lastClickedDataItemRecord.UserId;\r\n postData.ObjectName = vm.lastClickedDataItemRecord.ObjectName;\r\n } else {\r\n postData.AtHeaderIds = [];\r\n postData.AtHeaderIds.push(vm.AtHeaderId);\r\n postData.ProductId = vm.lastClickedDataItemRecord.ProductId;\r\n postData.ProductType = productType;\r\n }\r\n\r\n try {\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n await $http.post(apiUrl + 'api/core/auditlogs/associateticket', postData);\r\n } else {\r\n await $http.post(apiUrl + 'api/audittrail/tickets', postData);\r\n if (productType === 'OR' || productType === 'AX7' || productType === 'SAP') {\r\n await buildHeaderPost(productType);\r\n }\r\n }\r\n\r\n await helperService.successfulSaveButton(vm.actionInProgress);\r\n $uibModalInstance.close();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n async function buildHeaderPost(productType) {\r\n let headerPostData = { \"Tickets\": [] };\r\n let headerEndpoint = '';\r\n\r\n if (productType === 'OR') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": vm.lastClickedDataItemRecord.RecId,\r\n \"ChangeDate\": vm.lastClickedDataItemRecord.ChangeDate,\r\n \"Template\": vm.lastClickedDataItemRecord.Template,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"UserName\": vm.lastClickedDataItemRecord.User,\r\n \"Responsibility\": vm.lastClickedDataItemRecord.Responsibility,\r\n \"Application\": vm.lastClickedDataItemRecord.Application\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/or/tickets';\r\n }\r\n else if (productType === 'AX7') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": vm.lastClickedDataItemRecord.RecId,\r\n \"ObjRecId\": vm.lastClickedDataItemRecord.ObjRecId,\r\n \"ModifiedOn\": vm.lastClickedDataItemRecord.ModifiedOn,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"Description\": vm.lastClickedDataItemRecord.Description,\r\n \"ModifiedBy\": vm.lastClickedDataItemRecord.ModifiedBy\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/ax7/tickets';\r\n }\r\n else if (productType === 'SAP') {\r\n headerPostData.Tickets.push({\r\n \"ChangeNumber\": vm.lastClickedDataItemRecord.ChangeNumber,\r\n \"Template\": vm.lastClickedDataItemRecord.Template,\r\n \"ChangeDate\": vm.lastClickedDataItemRecord.ChangeDate,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"UserName\": vm.lastClickedDataItemRecord.User\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/sap/tickets';\r\n }\r\n\r\n try {\r\n await $http.post(apiUrl + headerEndpoint, headerPostData);\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress = false;\r\n }\r\n }\r\n\r\n async function unLinkRecord () {\r\n vm.actionInProgress = true;\r\n\r\n try {\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n const putData = {\r\n \"AuditId\": vm.lastClickedDataItemRecord.AuditId,\r\n \"UserId\": vm.lastClickedDataItemRecord.UserId,\r\n \"ObjectName\": vm.lastClickedDataItemRecord.ObjectName\r\n }\r\n\r\n await $http.put(`${apiUrl}api/core/auditlogs/disassociateticket`, putData);\r\n } else {\r\n await $http.delete(apiUrl + \"api/audittrail/tickets/\" + vm.lastClickedDataItemRecord.AtHeaderTicketId);\r\n }\r\n\r\n vm.actionInProgress = false;\r\n $uibModalInstance.close();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress = false;\r\n }\r\n }\r\n\r\n function dismiss () {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import { customAutoCompleteFilterEqualToOnly, customAutoCompleteFilter, customDatePickerFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport allSupportedProducts from '../../../Shared/GlobalVariables/ProductLookUp';\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, helperService, $http, lastClickedDataItemRecord) {\r\n\r\n const vm = this;\r\n\r\n vm.lastClickedDataItemRecord = lastClickedDataItemRecord;\r\n\r\n vm.linkRecord = linkRecord;\r\n vm.unLinkRecord = unLinkRecord;\r\n vm.dismiss = dismiss;\r\n\r\n activate();\r\n\r\n function activate() {\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n const sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n const postBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n $http.post(apiUrl + 'api/core/tickets/servicenow/search/', postBody).then(function (response) {\r\n vm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n }, function (response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n let isCustomProduct = false;\r\n\r\n if (!vm.lastClickedDataItemRecord.auditLogTicket) {\r\n if (!allSupportedProducts.some(p => p.Type === vm.lastClickedDataItemRecord.ProductType)) {\r\n isCustomProduct = true;\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.ProductType === 'NS' || vm.lastClickedDataItemRecord.ProductType === 'ORFC' || vm.lastClickedDataItemRecord.ProductType === 'SF') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.Id;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'GP' || vm.lastClickedDataItemRecord.ProductType === 'AX' || vm.lastClickedDataItemRecord.ProductType === 'NAV' || vm.lastClickedDataItemRecord.ProductType === 'SL' || vm.lastClickedDataItemRecord.ProductType === 'AX5' || isCustomProduct) {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.TableLogID;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'SAP') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.ChangeNumber;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'D365Bc') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.entryNo;\r\n } else {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.RecId;\r\n }\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.TicketProvider == 'ServiceNow') {\r\n $http.get(apiUrl + 'api//core/tickets/' + 'ServiceNow' + '/' + vm.lastClickedDataItemRecord.TicketId).then(function (response) {\r\n vm.populatedTicket = response.data;\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n const statusTemplate = \"{{dataItem.Status}}\";\r\n\r\n const columnsFromVM = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { title: ' ', template: \"Link\", width: 90 }\r\n ];\r\n\r\n $scope.$evalAsync(function () {\r\n vm.gridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n vm.gridOptions.selectable = false;\r\n vm.gridOptions.pageable = false;\r\n vm.gridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n });\r\n }\r\n\r\n async function linkRecord (dataItem) {\r\n vm.actionInProgress = new createSpinner();\r\n\r\n const productType = vm.lastClickedDataItemRecord.ProductType;\r\n\r\n let postData = {\r\n \"TicketId\": dataItem.Id,\r\n \"Provider\": 'ServiceNow'\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n postData.AuditId = vm.lastClickedDataItemRecord.AuditId;\r\n postData.UserId = vm.lastClickedDataItemRecord.UserId;\r\n postData.ObjectName = vm.lastClickedDataItemRecord.ObjectName;\r\n } else {\r\n postData.AtHeaderIds = [];\r\n postData.AtHeaderIds.push(vm.AtHeaderId);\r\n postData.ProductId = vm.lastClickedDataItemRecord.ProductId;\r\n postData.ProductType = productType;\r\n }\r\n\r\n try {\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n await $http.post(apiUrl + 'api/core/auditlogs/associateticket', postData);\r\n } else {\r\n await $http.post(apiUrl + 'api/audittrail/tickets', postData);\r\n\r\n if (productType === 'OR' || productType === 'AX7' || productType === 'SAP') {\r\n await buildHeaderPost(productType);\r\n }\r\n }\r\n\r\n await helperService.successfulSaveButton(vm.actionInProgress);\r\n $uibModalInstance.close();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress.loadingValue = false;\r\n\r\n }\r\n }\r\n\r\n async function buildHeaderPost(productType) {\r\n let headerPostData = { \"Tickets\": [] };\r\n let headerEndpoint = '';\r\n\r\n if (productType === 'OR') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": vm.lastClickedDataItemRecord.RecId,\r\n \"ChangeDate\": vm.lastClickedDataItemRecord.ChangeDate,\r\n \"Template\": vm.lastClickedDataItemRecord.Template,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"UserName\": vm.lastClickedDataItemRecord.User,\r\n \"Responsibility\": vm.lastClickedDataItemRecord.Responsibility,\r\n \"Application\": vm.lastClickedDataItemRecord.Application\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/or/tickets';\r\n }\r\n else if (productType === 'AX7') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": vm.lastClickedDataItemRecord.RecId,\r\n \"ObjRecId\": vm.lastClickedDataItemRecord.ObjRecId,\r\n \"ModifiedOn\": vm.lastClickedDataItemRecord.ModifiedOn,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"Description\": vm.lastClickedDataItemRecord.Description,\r\n \"ModifiedBy\": vm.lastClickedDataItemRecord.ModifiedBy\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/ax7/tickets';\r\n }\r\n else if (productType === 'SAP') {\r\n headerPostData.Tickets.push({\r\n \"ChangeNumber\": vm.lastClickedDataItemRecord.ChangeNumber,\r\n \"Template\": vm.lastClickedDataItemRecord.Template,\r\n \"ChangeDate\": vm.lastClickedDataItemRecord.ChangeDate,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"UserName\": vm.lastClickedDataItemRecord.User\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/sap/tickets';\r\n }\r\n\r\n try {\r\n await $http.post(apiUrl + headerEndpoint, headerPostData);\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress = false;\r\n }\r\n }\r\n\r\n async function unLinkRecord () {\r\n vm.actionInProgress = true;\r\n\r\n try {\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n const putData = {\r\n \"AuditId\": vm.lastClickedDataItemRecord.AuditId,\r\n \"UserId\": vm.lastClickedDataItemRecord.UserId,\r\n \"ObjectName\": vm.lastClickedDataItemRecord.ObjectName\r\n }\r\n\r\n await $http.put(`${apiUrl}api/core/auditlogs/disassociateticket`, putData);\r\n } else {\r\n await $http.delete(apiUrl + \"api/audittrail/tickets/\" + vm.lastClickedDataItemRecord.AtHeaderTicketId);\r\n }\r\n\r\n vm.actionInProgress = false;\r\n $uibModalInstance.close();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress = false;\r\n }\r\n }\r\n\r\n function dismiss () {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import { customAutoCompleteFilterEqualToOnly, customAutoCompleteFilter, customDatePickerFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport allSupportedProducts from '../../../Shared/GlobalVariables/ProductLookUp';\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, helperService, $http, lastClickedDataItemRecord) {\r\n const vm = this;\r\n\r\n vm.lastClickedDataItemRecord = lastClickedDataItemRecord;\r\n\r\n vm.linkRecordToJira = linkRecordToJira;\r\n vm.unLinkRecord = unLinkRecord;\r\n vm.dismiss = dismiss;\r\n\r\n activate();\r\n\r\n function activate() {\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n const sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n const postBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n $http.post(apiUrl + 'api/core/tickets/jira/search/', postBody).then(function (response) {\r\n vm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n }, function (response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n let isCustomProduct = false;\r\n\r\n if (!vm.lastClickedDataItemRecord.auditLogTicket) {\r\n if (!allSupportedProducts.some(p => p.Type === vm.lastClickedDataItemRecord.ProductType)) {\r\n isCustomProduct = true;\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.ProductType === 'NS' || vm.lastClickedDataItemRecord.ProductType === 'ORFC' || vm.lastClickedDataItemRecord.ProductType === 'SF') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.Id;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'GP' || vm.lastClickedDataItemRecord.ProductType === 'AX' || vm.lastClickedDataItemRecord.ProductType === 'NAV' || vm.lastClickedDataItemRecord.ProductType === 'SL' || vm.lastClickedDataItemRecord.ProductType === 'AX5' || isCustomProduct) {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.TableLogID;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'SAP') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.ChangeNumber;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'D365Bc') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.entryNo;\r\n } else {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.RecId;\r\n }\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.TicketProvider == 'Jira') {\r\n $http.get(apiUrl + 'api//core/tickets/' + 'Jira' + '/' + vm.lastClickedDataItemRecord.TicketId).then(function (response) {\r\n vm.populatedTicket = response.data;\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n const statusTemplate = \"{{dataItem.Status}}\";\r\n\r\n const columnsFromVM = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { title: ' ', template: \"Link\", width: 90 }\r\n ];\r\n\r\n $scope.$evalAsync(function () {\r\n vm.gridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n vm.gridOptions.selectable = false;\r\n vm.gridOptions.pageable = false;\r\n vm.gridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n });\r\n }\r\n\r\n async function linkRecordToJira(dataItem) {\r\n vm.actionInProgress = new createSpinner();\r\n\r\n const productType = vm.lastClickedDataItemRecord.ProductType;\r\n\r\n let postData = {\r\n \"TicketId\": dataItem.Id,\r\n \"Provider\": 'Jira'\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n postData.AuditId = vm.lastClickedDataItemRecord.AuditId;\r\n postData.UserId = vm.lastClickedDataItemRecord.UserId;\r\n postData.ObjectName = vm.lastClickedDataItemRecord.ObjectName;\r\n } else {\r\n postData.AtHeaderIds = [];\r\n postData.AtHeaderIds.push(vm.AtHeaderId);\r\n postData.ProductId = vm.lastClickedDataItemRecord.ProductId;\r\n postData.ProductType = productType;\r\n }\r\n\r\n try {\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n await $http.post(apiUrl + 'api/core/auditlogs/associateticket', postData);\r\n } else {\r\n await $http.post(apiUrl + 'api/audittrail/tickets', postData);\r\n\r\n if (productType === 'OR' || productType === 'AX7' || productType === 'SAP') {\r\n await buildHeaderPost(productType);\r\n }\r\n }\r\n\r\n await helperService.successfulSaveButton(vm.actionInProgress);\r\n $uibModalInstance.close();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress.loadingValue = false;\r\n\r\n }\r\n }\r\n\r\n async function buildHeaderPost(productType) {\r\n let headerPostData = { \"Tickets\": [] };\r\n let headerEndpoint = '';\r\n\r\n if (productType === 'OR') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": vm.lastClickedDataItemRecord.RecId,\r\n \"ChangeDate\": vm.lastClickedDataItemRecord.ChangeDate,\r\n \"Template\": vm.lastClickedDataItemRecord.Template,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"UserName\": vm.lastClickedDataItemRecord.User,\r\n \"Responsibility\": vm.lastClickedDataItemRecord.Responsibility,\r\n \"Application\": vm.lastClickedDataItemRecord.Application\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/or/tickets';\r\n }\r\n else if (productType === 'AX7') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": vm.lastClickedDataItemRecord.RecId,\r\n \"ObjRecId\": vm.lastClickedDataItemRecord.ObjRecId,\r\n \"ModifiedOn\": vm.lastClickedDataItemRecord.ModifiedOn,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"Description\": vm.lastClickedDataItemRecord.Description,\r\n \"ModifiedBy\": vm.lastClickedDataItemRecord.ModifiedBy\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/ax7/tickets';\r\n }\r\n else if (productType === 'SAP') {\r\n headerPostData.Tickets.push({\r\n \"ChangeNumber\": vm.lastClickedDataItemRecord.ChangeNumber,\r\n \"Template\": vm.lastClickedDataItemRecord.Template,\r\n \"ChangeDate\": vm.lastClickedDataItemRecord.ChangeDate,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"UserName\": vm.lastClickedDataItemRecord.User\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/sap/tickets';\r\n }\r\n\r\n try {\r\n await $http.post(apiUrl + headerEndpoint, headerPostData);\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress = false;\r\n }\r\n }\r\n\r\n async function unLinkRecord () {\r\n vm.actionInProgress = new createSpinner();\r\n\r\n try {\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n const putData = {\r\n \"AuditId\": vm.lastClickedDataItemRecord.AuditId,\r\n \"UserId\": vm.lastClickedDataItemRecord.UserId,\r\n \"ObjectName\": vm.lastClickedDataItemRecord.ObjectName\r\n }\r\n\r\n await $http.put(`${apiUrl}api/core/auditlogs/disassociateticket`, putData);\r\n } else {\r\n await $http.delete(apiUrl + \"api/audittrail/tickets/\" + vm.lastClickedDataItemRecord.AtHeaderTicketId);\r\n }\r\n\r\n vm.actionInProgress.loadingValue = false;\r\n $uibModalInstance.close();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n function dismiss () {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport allSupportedProducts from '../../../Shared/GlobalVariables/ProductLookUp';\r\nimport { customAutoCompleteFilterEqualToOnly, customAutoCompleteFilter, customDatePickerFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, helperService, $http, lastClickedDataItemRecord) {\r\n\r\n const vm = this;\r\n\r\n vm.lastClickedDataItemRecord = lastClickedDataItemRecord;\r\n\r\n vm.linkCustomTicket = linkCustomTicket;\r\n vm.unLinkRecord = unLinkRecord;\r\n vm.dismiss = dismiss;\r\n\r\n activate();\r\n\r\n function activate() {\r\n let isCustomProduct = false;\r\n\r\n if (!vm.lastClickedDataItemRecord.auditLogTicket) {\r\n if (!allSupportedProducts.some(p => p.Type === vm.lastClickedDataItemRecord.ProductType)) {\r\n isCustomProduct = true;\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.ProductType === 'NS' || vm.lastClickedDataItemRecord.ProductType === 'ORFC' || vm.lastClickedDataItemRecord.ProductType === 'SF') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.Id;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'GP' || vm.lastClickedDataItemRecord.ProductType === 'AX' || vm.lastClickedDataItemRecord.ProductType === 'NAV' || vm.lastClickedDataItemRecord.ProductType === 'SL' || vm.lastClickedDataItemRecord.ProductType === 'AX5' || isCustomProduct) {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.TableLogID;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'SAP') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.ChangeNumber;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'D365Bc') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.entryNo;\r\n } else {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.RecId;\r\n }\r\n }\r\n\r\n const statusTemplate = \"{{dataItem.Status}}\";\r\n\r\n const columnsFromVM = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { title: ' ', template: \"Link\", width: 90 }\r\n ];\r\n\r\n $scope.$evalAsync(function () {\r\n vm.gridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n vm.gridOptions.selectable = false;\r\n vm.gridOptions.pageable = false;\r\n vm.gridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n });\r\n }\r\n\r\n async function linkCustomTicket () {\r\n vm.actionInProgress = new createSpinner();\r\n\r\n const productType = vm.lastClickedDataItemRecord.ProductType;\r\n \r\n let postData = {\r\n \"TicketId\": vm.customTicketId,\r\n \"Provider\": 'Custom'\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n postData.AuditId = vm.lastClickedDataItemRecord.AuditId;\r\n postData.UserId = vm.lastClickedDataItemRecord.UserId;\r\n postData.ObjectName = vm.lastClickedDataItemRecord.ObjectName;\r\n } else {\r\n postData.AtHeaderIds = [];\r\n postData.AtHeaderIds.push(vm.AtHeaderId);\r\n postData.ProductId = vm.lastClickedDataItemRecord.ProductId;\r\n postData.ProductType = productType;\r\n }\r\n\r\n try {\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n await $http.post(apiUrl + 'api/core/auditlogs/associateticket', postData);\r\n } else {\r\n await $http.post(apiUrl + 'api/audittrail/tickets', postData);\r\n\r\n if (productType === 'OR' || productType === 'AX7' || productType === 'SAP') {\r\n await buildHeaderPost(productType);\r\n }\r\n }\r\n\r\n await helperService.successfulSaveButton(vm.actionInProgress);\r\n $uibModalInstance.close();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n async function buildHeaderPost(productType) {\r\n let headerPostData = { \"Tickets\": [] };\r\n let headerEndpoint = '';\r\n\r\n if (productType === 'OR') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": vm.lastClickedDataItemRecord.RecId,\r\n \"ChangeDate\": vm.lastClickedDataItemRecord.ChangeDate,\r\n \"Template\": vm.lastClickedDataItemRecord.Template,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"UserName\": vm.lastClickedDataItemRecord.User,\r\n \"Responsibility\": vm.lastClickedDataItemRecord.Responsibility,\r\n \"Application\": vm.lastClickedDataItemRecord.Application\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/or/tickets';\r\n }\r\n else if (productType === 'AX7') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": vm.lastClickedDataItemRecord.RecId,\r\n \"ObjRecId\": vm.lastClickedDataItemRecord.ObjRecId,\r\n \"ModifiedOn\": vm.lastClickedDataItemRecord.ModifiedOn,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"Description\": vm.lastClickedDataItemRecord.Description,\r\n \"ModifiedBy\": vm.lastClickedDataItemRecord.ModifiedBy\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/ax7/tickets';\r\n }\r\n else if (productType === 'SAP') {\r\n headerPostData.Tickets.push({\r\n \"ChangeNumber\": vm.lastClickedDataItemRecord.ChangeNumber,\r\n \"Template\": vm.lastClickedDataItemRecord.Template,\r\n \"ChangeDate\": vm.lastClickedDataItemRecord.ChangeDate,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"UserName\": vm.lastClickedDataItemRecord.User\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/sap/tickets';\r\n }\r\n\r\n try {\r\n await $http.post(apiUrl + headerEndpoint, headerPostData);\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress = false;\r\n }\r\n }\r\n\r\n async function unLinkRecord() {\r\n vm.actionInProgress = new createSpinner();\r\n\r\n try {\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n const putData = {\r\n \"AuditId\": vm.lastClickedDataItemRecord.AuditId,\r\n \"UserId\": vm.lastClickedDataItemRecord.UserId,\r\n \"ObjectName\": vm.lastClickedDataItemRecord.ObjectName\r\n }\r\n\r\n await $http.put(`${apiUrl}api/core/auditlogs/disassociateticket`, putData);\r\n } else {\r\n await $http.delete(apiUrl + \"api/audittrail/tickets/\" + vm.lastClickedDataItemRecord.AtHeaderTicketId);\r\n }\r\n\r\n await helperService.successfulSaveButton(vm.actionInProgress);\r\n $uibModalInstance.close();\r\n\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import { customAutoCompleteFilterEqualToOnly, customAutoCompleteFilter, customDatePickerFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport allSupportedProducts from '../../../Shared/GlobalVariables/ProductLookUp';\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, helperService, $http, lastClickedDataItemRecord) {\r\n const vm = this;\r\n\r\n vm.lastClickedDataItemRecord = lastClickedDataItemRecord;\r\n\r\n vm.linkRecordToFreshService = linkRecordToFreshService;\r\n vm.unLinkRecord = unLinkRecord;\r\n vm.dismiss = dismiss;\r\n vm.daysToSearch = \"30\";\r\n\r\n activate();\r\n\r\n function activate() {\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n const sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n const postBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n const params = { 'days': Number(vm.daysToSearch) };\r\n $http.post(apiUrl + 'api/core/tickets/freshservice/search', postBody, { params: params }).then(function (response) {\r\n vm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n }, function (response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n let isCustomProduct = false;\r\n\r\n if (!vm.lastClickedDataItemRecord.auditLogTicket) {\r\n if (!allSupportedProducts.some(p => p.Type === vm.lastClickedDataItemRecord.ProductType)) {\r\n isCustomProduct = true;\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.ProductType === 'NS' || vm.lastClickedDataItemRecord.ProductType === 'ORFC' || vm.lastClickedDataItemRecord.ProductType === 'SF') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.Id;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'GP' || vm.lastClickedDataItemRecord.ProductType === 'AX' || vm.lastClickedDataItemRecord.ProductType === 'NAV' || vm.lastClickedDataItemRecord.ProductType === 'SL' || vm.lastClickedDataItemRecord.ProductType === 'AX5' || isCustomProduct) {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.TableLogID;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'SAP') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.ChangeNumber;\r\n } else if (vm.lastClickedDataItemRecord.ProductType === 'D365Bc') {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.entryNo;\r\n } else {\r\n vm.AtHeaderId = vm.lastClickedDataItemRecord.RecId;\r\n }\r\n }\r\n\r\n if (vm.lastClickedDataItemRecord.TicketProvider == 'Freshservice') {\r\n $http.get(apiUrl + 'api/core/tickets/' + 'FreshService' + '/' + vm.lastClickedDataItemRecord.TicketId).then(function (response) {\r\n vm.populatedTicket = response.data;\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n const statusTemplate = \"{{dataItem.Status}}\";\r\n\r\n const columnsFromVM = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { title: ' ', template: \"Link\", width: 90 }\r\n ];\r\n\r\n\r\n vm.gridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n vm.gridOptions.selectable = false;\r\n vm.gridOptions.pageable = false;\r\n vm.gridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n }\r\n\r\n async function linkRecordToFreshService(dataItem) {\r\n vm.actionInProgress = new createSpinner();\r\n\r\n const productType = vm.lastClickedDataItemRecord.ProductType;\r\n\r\n let postData = {\r\n \"TicketId\": dataItem.Id,\r\n \"Provider\": 'FreshService'\r\n };\r\n \r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n postData.AuditId = vm.lastClickedDataItemRecord.AuditId;\r\n postData.UserId = vm.lastClickedDataItemRecord.UserId;\r\n postData.ObjectName = vm.lastClickedDataItemRecord.ObjectName;\r\n } else {\r\n postData.AtHeaderIds = [];\r\n postData.AtHeaderIds.push(vm.AtHeaderId);\r\n postData.ProductId = vm.lastClickedDataItemRecord.ProductId;\r\n postData.ProductType = productType;\r\n }\r\n\r\n try { \r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n await $http.post(apiUrl + 'api/core/auditlogs/associateticket', postData);\r\n } else {\r\n await $http.post(apiUrl + 'api/audittrail/tickets', postData);\r\n\r\n if (productType === 'OR' || productType === 'AX7' || productType === 'SAP') {\r\n await buildHeaderPost(productType);\r\n }\r\n }\r\n\r\n await helperService.successfulSaveButton(vm.actionInProgress);\r\n $uibModalInstance.close();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n async function buildHeaderPost(productType) {\r\n let headerPostData = { \"Tickets\": [] };\r\n let headerEndpoint = '';\r\n\r\n if (productType === 'OR') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": vm.lastClickedDataItemRecord.RecId,\r\n \"ChangeDate\": vm.lastClickedDataItemRecord.ChangeDate,\r\n \"Template\": vm.lastClickedDataItemRecord.Template,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"UserName\": vm.lastClickedDataItemRecord.User,\r\n \"Responsibility\": vm.lastClickedDataItemRecord.Responsibility,\r\n \"Application\": vm.lastClickedDataItemRecord.Application\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/or/tickets';\r\n }\r\n else if (productType === 'AX7') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": vm.lastClickedDataItemRecord.RecId,\r\n \"ObjRecId\": vm.lastClickedDataItemRecord.ObjRecId,\r\n \"ModifiedOn\": vm.lastClickedDataItemRecord.ModifiedOn,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"Description\": vm.lastClickedDataItemRecord.Description,\r\n \"ModifiedBy\": vm.lastClickedDataItemRecord.ModifiedBy\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/ax7/tickets';\r\n }\r\n else if (productType === 'SAP') {\r\n headerPostData.Tickets.push({\r\n \"ChangeNumber\": vm.lastClickedDataItemRecord.ChangeNumber,\r\n \"Template\": vm.lastClickedDataItemRecord.Template,\r\n \"ChangeDate\": vm.lastClickedDataItemRecord.ChangeDate,\r\n \"TableName\": vm.lastClickedDataItemRecord.TableName,\r\n \"Event\": vm.lastClickedDataItemRecord.Event,\r\n \"UserName\": vm.lastClickedDataItemRecord.User\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/sap/tickets';\r\n }\r\n\r\n try {\r\n await $http.post(apiUrl + headerEndpoint, headerPostData);\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress = false;\r\n }\r\n }\r\n\r\n async function unLinkRecord () {\r\n vm.actionInProgress = true;\r\n\r\n try {\r\n if (vm.lastClickedDataItemRecord.auditLogTicket) {\r\n const putData = {\r\n \"AuditId\": vm.lastClickedDataItemRecord.AuditId,\r\n \"UserId\": vm.lastClickedDataItemRecord.UserId,\r\n \"ObjectName\": vm.lastClickedDataItemRecord.ObjectName\r\n }\r\n\r\n await $http.put(`${apiUrl}api/core/auditlogs/disassociateticket`, putData);\r\n } else {\r\n await $http.delete(apiUrl + \"api/audittrail/tickets/\" + vm.lastClickedDataItemRecord.AtHeaderTicketId);\r\n }\r\n\r\n vm.actionInProgress = false;\r\n $uibModalInstance.close();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress = false;\r\n }\r\n }\r\n\r\n function dismiss () {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import ZendeskTicketModalController from '../../../Components/DataChanges/Zendesk/ZendeskTicketModalController';\r\nimport ServiceNowTicketModalController from '../../../Components/DataChanges/ServiceNow/ServiceNowTicketModalController';\r\nimport JiraTicketModalController from '../../../Components/DataChanges/Jira/JiraTicketModalController';\r\nimport customTicketModalController from '../../../Components/DataChanges/customTicket/customTicketModalController';\r\nimport FreshServiceTicketModalController from '../../../Components/DataChanges/FreshService/FreshServiceTicketModalController';\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, $http, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = onInit;\r\n\r\n function onInit() {\r\n vm.dataItem = vm.params;\r\n\r\n $scope.lastClickedDataItemRecord = vm.dataItem;\r\n $scope.lastClickedDataItemRecord.auditLogTicket = false;\r\n\r\n if (vm.selectedProduct) {\r\n $scope.lastClickedDataItemRecord.ProductId = vm.selectedProduct.ID;\r\n $scope.lastClickedDataItemRecord.ProductType = vm.selectedProduct.Type;\r\n } else {\r\n $scope.lastClickedDataItemRecord.auditLogTicket = true;\r\n }\r\n }\r\n \r\n vm.openJiraTicketModal = openJiraTicketModal;\r\n vm.openServiceNowTicketModal = openServiceNowTicketModal;\r\n vm.openZendeskTicketModal = openZendeskTicketModal;\r\n vm.openCustomTicketModal = openCustomTicketModal;\r\n vm.openFreshServiceTicketModal = openFreshServiceTicketModal;\r\n vm.removeTicketLinkByTicketId = removeTicketLinkByTicketId;\r\n\r\n async function openJiraTicketModal() {\r\n const modal = $uibModal.open({\r\n templateUrl: 'App/Components/DataChanges/Jira/JiraTicketModal.html',\r\n controller: JiraTicketModalController,\r\n controllerAs: 'jtmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n lastClickedDataItemRecord: () => $scope.lastClickedDataItemRecord\r\n }\r\n });\r\n\r\n try {\r\n await modal.result;\r\n vm.onDelete();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openFreshServiceTicketModal() {\r\n const modal = $uibModal.open({\r\n templateUrl: 'App/Components/DataChanges/FreshService/FreshServiceTicketModal.html',\r\n controller: FreshServiceTicketModalController,\r\n controllerAs: 'fstmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n lastClickedDataItemRecord: () => $scope.lastClickedDataItemRecord\r\n }\r\n });\r\n\r\n try {\r\n await modal.result;\r\n vm.onDelete();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openServiceNowTicketModal() {\r\n const modal = $uibModal.open({\r\n templateUrl: 'App/Components/DataChanges/ServiceNow/ServiceNowTicketModal.html',\r\n controller: ServiceNowTicketModalController,\r\n controllerAs: 'sntmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n lastClickedDataItemRecord: () => $scope.lastClickedDataItemRecord\r\n }\r\n });\r\n\r\n try {\r\n await modal.result;\r\n vm.onDelete();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openZendeskTicketModal() {\r\n const modal = $uibModal.open({\r\n templateUrl: 'App/Components/DataChanges/Zendesk/ZendeskTicketModal.html',\r\n controller: ZendeskTicketModalController,\r\n controllerAs: 'ztmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n lastClickedDataItemRecord: () => $scope.lastClickedDataItemRecord\r\n }\r\n });\r\n\r\n try {\r\n await modal.result;\r\n vm.onDelete();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openCustomTicketModal() {\r\n const modal = $uibModal.open({\r\n templateUrl: 'App/Components/DataChanges/customTicket/customTicketModal.html',\r\n controller: customTicketModalController,\r\n controllerAs: 'ctmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n lastClickedDataItemRecord: () => $scope.lastClickedDataItemRecord\r\n }\r\n });\r\n\r\n try {\r\n await modal.result;\r\n vm.onDelete();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function removeTicketLinkByTicketId() {\r\n try { \r\n if ($scope.lastClickedDataItemRecord.auditLogTicket) {\r\n const putData = {\r\n \"AuditId\": $scope.lastClickedDataItemRecord.AuditId,\r\n \"UserId\": $scope.lastClickedDataItemRecord.UserId,\r\n \"ObjectName\": $scope.lastClickedDataItemRecord.ObjectName\r\n }\r\n\r\n await $http.put(`${apiUrl}api/core/auditlogs/disassociateticket`, putData);\r\n } else {\r\n await $http.delete(apiUrl + \"api/audittrail/tickets/\" + vm.dataItem.AtHeaderTicketId);\r\n }\r\n vm.onDelete();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n }\r\n}","import RowSettingsTemplateController from \"./rowSettingsTemplate.controller\";\r\n/* rowSettingsTemplate.component.js */\r\n\r\n/**\r\n * @desc component for adding tickets in Data Changes reports\r\n * @example \r\n */\r\n\r\nconst rowSettingsTemplate = {\r\n bindings: {\r\n params: '<',\r\n selectedProduct: '<',\r\n onDelete: '&'\r\n },\r\n controller: RowSettingsTemplateController,\r\n controllerAs: 'rstvm',\r\n templateUrl: '/App/Shared/Components/rowSettingsTemplate/rowSettingsTemplate.tmpl.html'\r\n};\r\n\r\nexport default rowSettingsTemplate;","import { customAutoCompleteFilter } from \"../../GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function (CustomReportServices) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.deleteFilter = deleteFilter;\r\n vm.cancel = cancel;\r\n\r\n function onInit() {\r\n vm.filterManagerGridOptions = {\r\n height: 400,\r\n scrollable: { virtual: true },\r\n columns: [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"ReportName\", title: \"Report Name\", filterable: customAutoCompleteFilter },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n ],\r\n sortable: true,\r\n resizable: true,\r\n reorderable: true,\r\n selectable: true,\r\n allowCopy: true,\r\n pageable: { numeric: false, previousNext: false, messages: { display: \"Total: {2}\" } }\r\n };\r\n }\r\n\r\n function deleteFilter(id) {\r\n CustomReportServices.deleteFilterFilterManager(vm.resolve, id);\r\n }\r\n\r\n function cancel() {\r\n vm.modalInstance.close();\r\n }\r\n\r\n}","import reportFilterManagerController from \"./reportFilterManager.controller\";\r\n\r\n/* reportFilterMananger.component.js */\r\n\r\n/**\r\n * @desc component for managing saved report filters\r\n * @example \r\n */\r\n\r\nconst reportFilterManager = {\r\n bindings: {\r\n resolve: '<',\r\n modalInstance: '<'\r\n },\r\n controller: reportFilterManagerController,\r\n controllerAs: 'rfmvm',\r\n templateUrl: '/App/Shared/Components/ReportFilterManager/reportFilterManager.tmpl.html'\r\n};\r\n\r\nexport default reportFilterManager;","import createSpinner from \"../../Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (applicationInsightsService, $http, helperService, controlLibraryDataService) {\r\n\r\n const vm = this;\r\n vm.uploadFiles = uploadFiles;\r\n\r\n vm.$onInit = function () {\r\n if (vm.resolve.objectId) {\r\n vm.archiveReport = vm.resolve.archiveReport;\r\n vm.objectId = vm.resolve.objectId;\r\n vm.sortsAndFilters = vm.resolve.sortsAndFilters;\r\n }\r\n vm.report = vm.resolve.report;\r\n };\r\n\r\n vm.date = new Date();\r\n vm.saveReportSignature = saveReportSignature;\r\n vm.cancel = cancel;\r\n\r\n function saveReportSignature() {\r\n if (vm.objectId) {\r\n signReport();\r\n }\r\n else {\r\n signReportFromInbox();\r\n }\r\n }\r\n\r\n async function signReportFromInbox() {\r\n const postItem = {\r\n ExecutionId: vm.report.executionId,\r\n SavedReportId: vm.report.savedReportId,\r\n Notes: vm.notes\r\n };\r\n\r\n vm.pleaseWait = new createSpinner();\r\n\r\n try {\r\n let { data } = await $http.post(`${apiUrl}api/core/cases/report/${vm.report.savedReportId}`, postItem);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n vm.pleaseWait.loadingValue = false;\r\n vm.modalInstance.close();\r\n if (vm.attachments.flow.files.length > 0) {\r\n const requestId = data;\r\n await uploadFiles(vm.attachments.flow.files, requestId);\r\n }\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n\r\n }\r\n\r\n async function signReport() {\r\n const postItem = {\r\n \"SavedReportId\": null,\r\n \"Name\": vm.report.name,\r\n \"ArchiveReport\": vm.archiveReport,\r\n \"Notes\": vm.notes,\r\n \"ReportDefinition\": {\r\n \"ReportId\": vm.report.id,\r\n \"Columns\": vm.report.definition.Columns,\r\n \"Sortings\": vm.report.definition.Sortings,\r\n \"Criteria\": vm.report.definition.Criteria = vm.sortsAndFilters && vm.sortsAndFilters.Criteria ? vm.report.definition.Criteria.concat(vm.resolve.sortsAndFilters.Criteria) : vm.report.definition.Criteria,\r\n \"Filters\": vm.report.definition.Filters,\r\n \"DateFilters\": vm.report.definition.DateFilters\r\n }\r\n };\r\n\r\n applicationInsightsService.trackEvent('SignReport', { Name: vm.report.name, ObjectId: vm.objectId });\r\n\r\n vm.pleaseWait = new createSpinner();\r\n\r\n try {\r\n let { data } = await $http.post(apiUrl + 'api/core/cases', postItem);\r\n vm.killModal = true;\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n vm.pleaseWait.loadingValue = false;\r\n vm.modalInstance.close();\r\n if (vm.attachments.flow.files.length > 0) {\r\n const requestId = data;\r\n await uploadFiles(vm.attachments.flow.files, requestId);\r\n }\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n }\r\n\r\n async function uploadFiles(files, requestId) {\r\n let fd = new FormData();\r\n vm.saving = new createSpinner();\r\n\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"Signature\");\r\n fd.append(\"DataTypeId\", requestId);\r\n\r\n await controlLibraryDataService.addAttachments(fd);\r\n await helperService.successfulSaveButton(vm.saving);\r\n }\r\n\r\n function cancel() {\r\n vm.modalInstance.dismiss();\r\n }\r\n}","import signReportController from \"./signReport.controller\";\r\n\r\n/* signReport.component.js */\r\n\r\n/**\r\n * @desc component for signing reports\r\n * @example \r\n */\r\n\r\nconst signReport = {\r\n bindings: {\r\n resolve: '<',\r\n modalInstance: '<'\r\n },\r\n controller: signReportController,\r\n controllerAs: 'srvm',\r\n templateUrl: '/App/Shared/Components/SignReport/signReport.tmpl.html'\r\n};\r\n\r\nexport default signReport;","import createSpinner from \"../../Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (applicationInsightsService, $http, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.newSavedReport = {};\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.cancel = cancel;\r\n vm.saveReport = saveReport;\r\n vm.overwriteReport = overwriteReport;\r\n\r\n function onInit() {\r\n if (vm.resolve.currentSavedReports.length > 0) {\r\n vm.showOverwrite = true;\r\n } else {\r\n vm.showOverwrite = false;\r\n }\r\n }\r\n\r\n //Save Report\r\n function saveReport() {\r\n vm.pleaseWait = new createSpinner();\r\n\r\n applicationInsightsService.trackEvent('SaveReport', { Name: vm.resolve.report.Name, ObjectId: vm.resolve.objectId });\r\n const reportDefinition = vm.resolve.bundleReportDefinition(vm.resolve.grid.getOptions(), vm.resolve.reportDetailsModel);\r\n\r\n const postData = {\r\n \"Description\": vm.newSavedReport.Description,\r\n \"Name\": vm.newSavedReport.Name,\r\n \"ReportDefinition\": {\r\n \"ReportId\": vm.resolve.report.ReportID,\r\n \"Columns\": reportDefinition.Columns,\r\n \"Sortings\": reportDefinition.Sortings,\r\n \"Criteria\": vm.resolve.sortsAndFilters && vm.resolve.sortsAndFilters.Criteria ? reportDefinition.Criteria.concat(vm.resolve.sortsAndFilters.Criteria) : reportDefinition.Criteria,\r\n \"Filters\": reportDefinition.Filters,\r\n \"DateFilters\": reportDefinition.DateFilters\r\n }\r\n };\r\n\r\n $http.post(apiUrl + 'api/core/savedreports', postData).then(async function (response) {\r\n vm.killModal = true;\r\n await helperService.successfulSaveButton(vm.pleaseWait).then(function (result) {\r\n vm.modalInstance.close();\r\n });\r\n\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.pleaseWait.loadingValue = false;\r\n });\r\n\r\n }\r\n\r\n function overwriteReport(selectedReport) {\r\n\r\n vm.pleaseWait = new createSpinner();\r\n\r\n var reportDefinition = vm.resolve.bundleReportDefinition(vm.resolve.grid.getOptions(), vm.resolve.reportDetailsModel);\r\n\r\n var postData = {\r\n \"Description\": selectedReport.Description,\r\n \"Name\": selectedReport.Name,\r\n \"ReportDefinition\": {\r\n \"ReportId\": vm.resolve.report.ReportID,\r\n \"Columns\": reportDefinition.Columns,\r\n \"Sortings\": reportDefinition.Sortings,\r\n \"Criteria\": vm.resolve.sortsAndFilters && vm.resolve.sortsAndFilters.Criteria ? reportDefinition.Criteria.concat(vm.resolve.sortsAndFilters.Criteria) : reportDefinition.Criteria,\r\n \"Filters\": reportDefinition.Filters,\r\n \"DateFilters\": reportDefinition.DateFilters\r\n }\r\n };\r\n\r\n postData.Id = selectedReport.Id;\r\n $http.put(apiUrl + 'api/core/savedreports/' + selectedReport.Id, postData).then(async function (response) {\r\n vm.killModal = true;\r\n await helperService.successfulSaveButton(vm.pleaseWait).then(function (result) {\r\n vm.modalInstance.close();\r\n });\r\n\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.pleaseWait.loadingValue = false;\r\n });\r\n }\r\n\r\n function cancel() {\r\n vm.modalInstance.close();\r\n }\r\n}","import saveReportController from \"./saveReport.controller\";\r\n\r\n/* saveReport.component.js */\r\n\r\n/**\r\n * @desc component for saving reports\r\n * @example \r\n */\r\n\r\nconst saveReport = {\r\n bindings: {\r\n resolve: '<',\r\n modalInstance: '<'\r\n },\r\n controller: saveReportController,\r\n controllerAs: 'srvm',\r\n templateUrl: '/App/Shared/Components/SaveReport/saveReport.tmpl.html'\r\n};\r\n\r\nexport default saveReport;","import ReportSchedulerModalController from \"../../Controllers/ReportSchedulerModalController\";\r\nimport createSpinner from \"../../Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, $rootScope, dataService, $http, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.newSavedReport = {};\r\n vm.isScheduleEnabled = false;\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.scheduleReport = scheduleReport;\r\n vm.saveReportToSchedule = saveReportToSchedule;\r\n vm.cancel = cancel;\r\n\r\n function onInit() {\r\n if (vm.resolve.currentSavedReports.length > 0) {\r\n vm.showScheduleReport = true;\r\n } else {\r\n vm.showScheduleReport = false;\r\n }\r\n }\r\n\r\n //Schedule Report\r\n function scheduleReport(scheduleReportId) {\r\n vm.modalInstance.close();\r\n\r\n if (scheduleReportId) {\r\n $rootScope.savedReportToSchedule = scheduleReportId;\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Controllers/ReportSchedulerModal.html',\r\n controller: ReportSchedulerModalController,\r\n backdrop: 'static',\r\n size: 'md'\r\n });\r\n }\r\n }\r\n\r\n function saveReportToSchedule() {\r\n vm.saving = new createSpinner();\r\n const reportDefinition = vm.resolve.bundleReportDefinition(vm.resolve.grid.getOptions(), vm.resolve.reportDetailsModel);\r\n\r\n const postData = {\r\n \"Description\": vm.newSavedReport.description,\r\n \"Name\": vm.newSavedReport.name,\r\n \"ReportDefinition\": {\r\n \"ReportId\": vm.resolve.report.ReportID,\r\n \"Columns\": reportDefinition.Columns,\r\n \"Sortings\": reportDefinition.Sortings,\r\n \"Criteria\": reportDefinition.Criteria = vm.resolve.sortsAndFilters && vm.resolve.sortsAndFilters.Criteria ? reportDefinition.Criteria.concat(vm.resolve.sortsAndFilters.Criteria) : reportDefinition.Criteria,\r\n \"Filters\": reportDefinition.Filters,\r\n \"DateFilters\": reportDefinition.DateFilters\r\n }\r\n };\r\n\r\n $http.post(apiUrl + 'api/core/savedreports', postData).then(async function (response) {\r\n await helperService.successfulSaveButton(vm.saving);\r\n vm.modalInstance.close();\r\n\r\n dataService.getSavedReportsByID(response.data).then(function (response) {\r\n $rootScope.savedReportToSchedule = response.data.Id;\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Controllers/ReportSchedulerModal.html',\r\n controller: ReportSchedulerModalController,\r\n backdrop: 'static',\r\n size: 'md'\r\n });\r\n });\r\n\r\n }, function (response) {\r\n vm.saving.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n }\r\n\r\n function cancel() {\r\n vm.modalInstance.close();\r\n }\r\n}","import scheduleReportController from \"./scheduleReport.controller\";\r\n\r\n/* scheduleReport.component.js */\r\n\r\n/**\r\n * @desc component for scheduling reports\r\n * @example \r\n */\r\n\r\nconst scheduleReport = {\r\n bindings: {\r\n resolve: '<',\r\n modalInstance: '<'\r\n },\r\n controller: scheduleReportController,\r\n controllerAs: 'srvm',\r\n templateUrl: '/App/Shared/Components/ScheduleReport/scheduleReport.tmpl.html'\r\n};\r\n\r\nexport default scheduleReport;","import createSpinner from \"../../Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (applicationInsightsService, $http, helperService, errorsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.form = {};\r\n vm.form.filterType = \"0\";\r\n\r\n vm.saveFilter = saveFilter;\r\n vm.cancel = cancel;\r\n\r\n async function saveFilter() {\r\n if (vm.userForm.$valid) {\r\n vm.pleaseWait = new createSpinner();\r\n const Name = vm.user.name;\r\n const Description = vm.user.description;\r\n const FilterType = vm.form.filterType;\r\n const ReportId = vm.resolve.reportId ? vm.resolve.reportId : vm.resolve.objectId;\r\n const FilterList = helperService.halPrepareFilterArray(vm.resolve.grid.getOptions().dataSource.filter);\r\n\r\n const filterSaveObject = {\r\n Name: Name,\r\n Description: Description,\r\n Filters: FilterList,\r\n Type: FilterType,\r\n ReportId: ReportId\r\n };\r\n\r\n applicationInsightsService.trackEvent('SaveFilter', { Name: vm.reportName, ObjectId: vm.objectId });\r\n\r\n try {\r\n await $http.post(apiUrl + 'api/core/userreportfilters', filterSaveObject);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n vm.modalInstance.close();\r\n vm.resolve.filtersDataSource.read();\r\n } catch (err) {\r\n vm.pleaseWait.loadingValue = false;\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n }\r\n\r\n function cancel() {\r\n vm.modalInstance.close();\r\n }\r\n}","import saveReportFilterController from \"./saveReportFilter.controller\";\r\n\r\n/* saveReportFilter.component.js */\r\n\r\n/**\r\n * @desc component for saving report filters\r\n * @example \r\n */\r\n\r\nconst saveReportFilter = {\r\n bindings: {\r\n resolve: '<',\r\n modalInstance: '<'\r\n },\r\n controller: saveReportFilterController,\r\n controllerAs: 'srfvm',\r\n templateUrl: '/App/Shared/Components/SaveReportFilter/saveReportFilter.tmpl.html'\r\n};\r\n\r\nexport default saveReportFilter;","import createSpinner from \"../../Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, companyTemplatesData, role, availableCompanies, productId, helperService) {\r\n\r\n const vm = this;\r\n if (role) {\r\n vm.applyToAllRoles = false;\r\n vm.role = { ...role };\r\n } else {\r\n vm.applyToAllRoles = true;\r\n vm.role = {\r\n Name: 'All Roles'\r\n };\r\n }\r\n vm.availableCompanies = [...availableCompanies];\r\n vm.cancel = cancel;\r\n vm.close = close;\r\n vm.addCompanyToList = addCompanyToList;\r\n vm.deleteselectedCompany = deleteselectedCompany;\r\n vm.copyCompaniesFromTemplate = copyCompaniesFromTemplate;\r\n vm.selectAllCompaniesChanged = selectAllCompaniesChanged;\r\n\r\n activate();\r\n\r\n function activate() {\r\n getTemplates();\r\n if (vm.role.Companies) {\r\n filterAvailableCompanies();\r\n vm.selectAllCompanies = false;\r\n } else {\r\n vm.role.Companies = [];\r\n vm.selectAllCompanies = true;\r\n vm.selectAllCompaniesChanged()\r\n }\r\n }\r\n\r\n function filterAvailableCompanies() {\r\n vm.role.Companies.forEach(selectedCompany => {\r\n vm.availableCompanies = vm.availableCompanies.filter(company => company.CompanyId !== selectedCompany.CompanyId);\r\n });\r\n }\r\n\r\n function addCompanyToList(company) {\r\n vm.role.Companies.push(company);\r\n const selectedCompanyIndex = vm.availableCompanies.findIndex(item => item.CompanyId === company.CompanyId);\r\n vm.availableCompanies.splice(selectedCompanyIndex, 1);\r\n }\r\n\r\n function deleteselectedCompany(company) {\r\n vm.availableCompanies.push(company);\r\n const removedCompanyIndex = vm.role.Companies.findIndex(item => item.CompanyId === company.CompanyId);\r\n vm.role.Companies.splice(removedCompanyIndex, 1);\r\n }\r\n\r\n async function getTemplates() {\r\n let response = await companyTemplatesData.getCompanyTemplates();\r\n vm.templatesDataSource = response.data.map(({ Id, Name, Companies }) => {\r\n const companies = Companies.reduce((acc, curr) => {\r\n curr.Companies = curr.Companies.filter(co => co.ProductID === productId);\r\n return acc.concat(curr.Companies);\r\n }, []);\r\n\r\n return { Id, Name, Companies: companies };\r\n });\r\n }\r\n\r\n function copyCompaniesFromTemplate() {\r\n vm.selectedTemplate.Companies.forEach(company => {\r\n const availableCompany = findAvailableCompany(company);\r\n if (availableCompany) {\r\n const availableCompanyIndex = vm.availableCompanies.findIndex(ac => ac.CompanyId === company.ID);\r\n addCompany(availableCompany, availableCompanyIndex);\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n function findAvailableCompany(company) {\r\n return vm.availableCompanies.find(selectedCompany => selectedCompany.CompanyId === company.ID);\r\n }\r\n\r\n function addCompany(companyObject, companyIndex) {\r\n vm.role.Companies.push(companyObject);\r\n vm.availableCompanies.splice(companyIndex, 1);\r\n }\r\n\r\n function selectAllCompaniesChanged() {\r\n if (vm.selectAllCompanies) {\r\n let roleCompanies = [...vm.role.Companies];\r\n roleCompanies.forEach(company => {\r\n deleteselectedCompany(company);\r\n });\r\n vm.companySelectionDisabled = true;\r\n } else {\r\n vm.companySelectionDisabled = false;\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n async function close() {\r\n vm.saving = new createSpinner();\r\n let roleCompanyModalObject = {\r\n applyToAll: vm.applyToAllRoles,\r\n roleCompanies: vm.role.Companies\r\n };\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close(roleCompanyModalObject);\r\n }\r\n}","import editRoleCompaniesModalController from \"./editRoleCompaniesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.openEditRoleCompaniesModal = openEditRoleCompaniesModal;\r\n vm.applyCompaniesToAllSelectedRoles = applyCompaniesToAllSelectedRoles;\r\n\r\n async function openEditRoleCompaniesModal() {\r\n const editRoleCompaniesModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Components/identityManagerRoleCompanies/editRoleCompaniesModal.html',\r\n controller: editRoleCompaniesModalController,\r\n controllerAs: 'ercmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n role: () => vm.selectedRole ? JSON.parse(JSON.stringify(vm.selectedRole)) : null,\r\n productId: () => vm.productId,\r\n availableCompanies: () => vm.availableCompanies\r\n },\r\n size: 'lg'\r\n });\r\n\r\n try {\r\n const roleCompaniesObject = await editRoleCompaniesModal.result;\r\n updateRoleCompanies(vm.selectedRole, roleCompaniesObject);\r\n } catch (err) {\r\n return;\r\n }\r\n }\r\n\r\n function updateRoleCompanies(selectedRole, roleCompaniesObject) {\r\n // overwrite companies for role based on user input from modal\r\n if (roleCompaniesObject.roleCompanies.length === 0) {\r\n roleCompaniesObject.roleCompanies = null;\r\n }\r\n vm.onUpdateCompanies({ selectedRole: selectedRole, prop: 'Companies', value: roleCompaniesObject.roleCompanies, applyToAll: roleCompaniesObject.applyToAll });\r\n }\r\n\r\n function applyCompaniesToAllSelectedRoles() {\r\n vm.onApplyCompaniesToAllRoles();\r\n }\r\n\r\n}\r\n","import editRoleCompaniesController from \"./editRoleCompanies.controller\";\r\n\r\n\r\n/* editRoleCompanies.component.js */\r\n\r\n/**\r\n * @desc component for selecting companies to associate to a role for an IM request\r\n * @example \r\n */\r\n\r\nconst imRoleCompanies = {\r\n bindings: {\r\n selectedRole: '<',\r\n onUpdateCompanies: '&',\r\n productId: '@',\r\n availableCompanies: '<',\r\n onApplyCompaniesToAllRoles: '&',\r\n showApplyAll: '<'\r\n },\r\n controller: editRoleCompaniesController,\r\n controllerAs: 'ercvm',\r\n templateUrl: '/App/Shared/Components/identityManagerRoleCompanies/editRoleCompanies.tmpl.html'\r\n};\r\n\r\nexport default imRoleCompanies;","import { standardGridPageSize, customAutoCompleteFilter } from \"../../GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, helperService, companyTemplatesData) {\r\n\r\n var vm = this;\r\n vm.cancel = cancel;\r\n vm.close = close;\r\n vm.changeTemplateRowSelected = changeTemplateRowSelected;\r\n\r\n activate();\r\n\r\n function activate() {\r\n configureTemplatesGrid();\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n function close(selectedTemplate) { $uibModalInstance.close(selectedTemplate.Companies); }\r\n\r\n function configureTemplatesGrid() {\r\n const templatesGridColumns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.templatesGridOptions = helperService.setMainGridOptions(templatesGridColumns, 400);\r\n\r\n vm.templatesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await companyTemplatesData.getCompanyTemplates();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function changeTemplateRowSelected(kendoEvent) {\r\n const grid = kendoEvent.sender;\r\n vm.selectedTemplate = grid.dataItem(grid.select()).toJSON();\r\n }\r\n}","import selectTemplateModalController from \"./selectTemplateModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, companyTemplatesData) {\r\n\r\n var vm = this;\r\n\r\n vm.$onInit = checkForCompanyTemplates;\r\n\r\n vm.openTemplateSelectionModal = openTemplateSelectionModal;\r\n\r\n async function checkForCompanyTemplates() {\r\n let response = await companyTemplatesData.getCompanyTemplates();\r\n vm.companyTemplates = response.data;\r\n }\r\n\r\n\r\n async function openTemplateSelectionModal() {\r\n let templateSelectionModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Components/SelectCompaniesByTemplate/selectTemplateModal.html',\r\n controller: selectTemplateModalController,\r\n controllerAs: 'stmvm',\r\n backdrop: 'static'\r\n });\r\n\r\n try {\r\n let companies = await templateSelectionModal.result;\r\n companies = companies.filter(company => company.CompanyMaster.UserHasAccess);\r\n await getCompanies(companies);\r\n } catch (err) {\r\n return;\r\n }\r\n }\r\n\r\n function getCompanies(companies) {\r\n // modify companies array to match company master returned array\r\n companies = companies.map(company => company.CompanyMaster);\r\n\r\n // call bound function to update companies on the parent side\r\n vm.onSelectedTemplate({ companies });\r\n }\r\n\r\n}\r\n","import selectCompaniesByTemplateController from \"./selectCompaniesByTemplate.controller\";\r\n\r\n/* selectCompaniesByTemplate.component.js */\r\n\r\n/**\r\n * @desc component for selecting template from list of company templates and getting companies from the template\r\n * @example \r\n */\r\n\r\nconst selectCompaniesByTemplate = {\r\n bindings: {\r\n onSelectedTemplate: '&'\r\n },\r\n controller: selectCompaniesByTemplateController,\r\n controllerAs: 'scbtvm',\r\n templateUrl: '/App/Shared/Components/SelectCompaniesByTemplate/selectCompaniesByTemplate.tmpl.html'\r\n};\r\n\r\nexport default selectCompaniesByTemplate;","import createSpinner from \"../../Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $http, errorsDataService, helperService, reportId) {\r\n const vm = this;\r\n vm.cancel = cancel;\r\n vm.disableButton = false;\r\n vm.importDataChangesReport = importDataChangesReport;\r\n vm.reportId = reportId;\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n // Import control functions\r\n async function importDataChangesReport(file) {\r\n vm.importUpdatePending = new createSpinner();\r\n vm.disableButton = true;\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n try {\r\n let routeString;\r\n if (vm.reportId === 'b280b98b-f119-4b3a-8d2d-fccef20e9195') {\r\n routeString = 'api/audittrail/ns/places/datachanges/import';\r\n } else if (vm.reportId === '220923c6-5810-4ecd-8a81-f40d07917388') {\r\n routeString = 'api/audittrail/ns/v2/places/allchanges/import'\r\n } else {\r\n routeString = 'api/audittrail/datachanges/import';\r\n }\r\n await $http.put(apiUrl + routeString, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n await helperService.successfulSaveButton(vm.importUpdatePending);\r\n $uibModalInstance.close();\r\n } catch (err) {\r\n vm.importUpdatePending.loadingValue = false;\r\n vm.disableButton = false;\r\n showError(err);\r\n sendError(err);\r\n };\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}","import importDataChangesModalController from \"./importDataChangesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal) {\r\n const vm = this;\r\n vm.openImportModal = openImportModal;\r\n\r\n async function openImportModal() {\r\n let importModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Components/DataChangesImport/importDataChangesModal.tmpl.html',\r\n controller: importDataChangesModalController,\r\n controllerAs: 'idcmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n reportId: () => vm.reportId\r\n }\r\n });\r\n\r\n try {\r\n await importModal.result;\r\n } catch {\r\n return;\r\n };\r\n };\r\n}","import dataChangesImportController from \"./dataChangesImport.controller\";\r\n\r\n\r\n\r\n/* dataChangesImport.component.js */\r\n\r\n/**\r\n * @desc component for importing data changes .csv file\r\n * @example \r\n */\r\n\r\nconst dataChangesImport = {\r\n bindings: {\r\n reportDetails: '<',\r\n disableButton: '<',\r\n reportId: '@'\r\n },\r\n controller: dataChangesImportController,\r\n controllerAs: 'dcivm',\r\n templateUrl: '/App/Shared/Components/DataChangesImport/dataChangesImport.tmpl.html'\r\n};\r\n\r\nexport default dataChangesImport;","export default /*@ngInject*/ function (objectIdDataService, helperService, dataService, $location) {\r\n\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.favorited = {};\r\n vm.helpObject = {\r\n domain: helpUrl,\r\n specificArticle: \"hc/en-us/articles/\",\r\n home: \"hc/en-us\"\r\n };\r\n\r\n vm.$onInit = () => activate();\r\n\r\n function activate() {\r\n objectIdDataService.getObjectID().then(objectId => {\r\n vm.ObjectId = objectId;\r\n\r\n const securityObject = helperService.getSecurityObjectDetailsFromObjectId(vm.ObjectId);\r\n vm.pageInfo = securityObject;\r\n vm.pageDescription = securityObject.HelpLink;\r\n vm.reportName = securityObject.Name;\r\n });\r\n\r\n getFavorites();\r\n }\r\n\r\n async function getFavorites() {\r\n let favorites = await dataService.getFavorites();\r\n let favorited = favorites.data.find(f => f.Url === $location.url());\r\n\r\n if (favorited) vm.favorited.value = true;\r\n else vm.favorited.value = false;\r\n }\r\n\r\n}","import staticPageHeaderController from \"./staticPageHeader.controller\";\r\n\r\n/* staticPageHeader.component.js */\r\n\r\n/**\r\n * @desc component for displaying a static page header in place of the standard security object dependent page header\r\n * @example \r\n */\r\n\r\nconst staticPageHeader = {\r\n bindings: {\r\n title: '<',\r\n description: '<'\r\n },\r\n controller: staticPageHeaderController,\r\n controllerAs: 'sphvm',\r\n templateUrl: '/App/Shared/Components/staticPageHeader/staticPageHeader.tmpl.html'\r\n};\r\n\r\nexport default staticPageHeader;","import { standardGridPageSize } from \"../../GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, helperService, risksDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = onInit;\r\n vm.$onChanges = onChanges;\r\n\r\n vm.changeUserSelection = changeUserSelection;\r\n\r\n function onInit() {\r\n vm.userDataSource = [];\r\n vm.selectedUserIds = [];\r\n vm.selectedUsers = [];\r\n vm.filter = \"\";\r\n\r\n if (!vm.selectedProduct.length) {\r\n vm.selectedProduct = $rootScope.availableProductsForUser;\r\n }\r\n\r\n setupUserMultiselectDropdown();\r\n }\r\n\r\n function setupUserMultiselectDropdown() {\r\n vm.kendoUserDropdownDataSource = new kendo.data.DataSource({\r\n schema: {\r\n data: \"_embedded.reportData\",\r\n total: \"TotalItems\"\r\n },\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n serverOperation: false,\r\n transport: {\r\n read: async options => {\r\n try {\r\n if (vm.selectedProduct) {\r\n const params = {\r\n pagesize: options.data.pageSize,\r\n page: options.data.page,\r\n },\r\n productIds = vm.selectedProduct.map(product => product.ID),\r\n\r\n postBody = {\r\n ProductIds: productIds,\r\n Excluded: false,\r\n UserNameFilter: vm.filter\r\n },\r\n { data } = await risksDataService.getUsers(postBody, params);\r\n\r\n vm.userDataSource = data;\r\n\r\n vm.selectedUserIds = vm.selectedUsers.map(user => user.ID);\r\n\r\n vm.onUpdateUsers({\r\n selectedUsers: vm.selectedUsers,\r\n selectedUserIds: vm.selectedUserIds,\r\n userDataSource: vm.userDataSource._embedded.reportData\r\n });\r\n }\r\n options.success(vm.userDataSource);\r\n\r\n if ($rootScope.loadedSavedReport) {\r\n savedReportHandler();\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n\r\n vm.userDropdownOptions = {\r\n filter: \"contains\",\r\n autoBind: false,\r\n autoClose: false,\r\n placeholder: \"All Users\",\r\n popup: { origin: \"bottom left\" },\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: \"dataItem\",\r\n valueMapper: async options => {\r\n const users = await helperService.userMapperFunction(options.value);\r\n options.success(users);\r\n }\r\n },\r\n height: 325,\r\n filtering: item => {\r\n vm.filter = item?.filter ? item.filter.value : \"\";\r\n }\r\n };\r\n }\r\n\r\n async function onChanges() {\r\n vm.selectedUsers = [];\r\n\r\n if (vm.kendoUserDropdownDataSource) {\r\n await vm.kendoUserDropdownDataSource.read();\r\n }\r\n }\r\n\r\n function savedReportHandler() {\r\n if ($rootScope.loadedSavedReport) {\r\n const savedUsers = $rootScope.loadedSavedReport.ReportDefinition.Criteria.filter(criteria => criteria.CriteriaType === 'User');\r\n\r\n const users = [];\r\n\r\n if (savedUsers.length > 0) {\r\n savedUsers.forEach(user => {\r\n users.push({\r\n ID: user.Filters[0].Value,\r\n Name: user.CriteriaValue\r\n });\r\n });\r\n vm.selectedUsers = [...users];\r\n }\r\n\r\n vm.selectedUserIds = vm.selectedUsers.map(user => user.ID);\r\n vm.userDataSource = vm.kendoUserDropdownDataSource.data();\r\n const userDataSource = vm.userDataSource.toJSON();\r\n\r\n vm.onUpdateUsers({\r\n selectedUsers: vm.selectedUsers,\r\n selectedUserIds: vm.selectedUserIds,\r\n userDataSource: userDataSource\r\n });\r\n\r\n vm.runSavedReport();\r\n }\r\n }\r\n\r\n async function changeUserSelection() {\r\n vm.selectedUserIds = vm.selectedUsers.map(user => user.ID);\r\n\r\n vm.onUpdateUsers({\r\n selectedUsers: vm.selectedUsers,\r\n selectedUserIds: vm.selectedUserIds,\r\n userDataSource: vm.kendoUserDropdownDataSource._data\r\n });\r\n }\r\n}","/* userMultiselectDropdown.component.js */\r\n\r\nimport userMultiselectDropdownController from \"./userMultiselectDropdown.controller\";\r\n\r\n/**\r\n * @desc component for selecting multiple users from a dropdown\r\n * @example \r\n */\r\n\r\nconst userMultiselectDropdown = {\r\n bindings: {\r\n selectedProduct: '<',\r\n runSavedReport: '&',\r\n onUpdateUsers: '&'\r\n },\r\n controller: userMultiselectDropdownController,\r\n controllerAs: 'umdvm',\r\n templateUrl: '/App/Shared/Components/userMultiselectDropdown/userMultiselectDropdown.tmpl.html'\r\n};\r\n\r\nexport default userMultiselectDropdown;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($http, errorsDataService, $location, $uibModal, schedulesDataService, FileSaver) {\r\n\r\n const vm = this;\r\n\r\n vm.completeReview = completeReview;\r\n vm.openSignReportModal = openSignReportModal;\r\n vm.downloadReport = downloadReport;\r\n vm.reviewRequest = reviewRequest;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getInbox();\r\n getLists();\r\n }\r\n\r\n async function getInbox() {\r\n try {\r\n let response = await $http.get(`${apiUrl}api/core/inbox`);\r\n vm.inboxDataSource = response.data;\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n \r\n function getLists() {\r\n vm.reviewsList = vm.inboxDataSource.filter(item => item.TaskType === 'AccessCertificationsReview');\r\n vm.requestList = vm.inboxDataSource.filter(item => item.TaskType === 'IdentityManagerApprovalRequest');\r\n vm.reportSignaturesList = vm.inboxDataSource.filter(item => item.TaskType === 'ReportSignature');\r\n }\r\n\r\n function reviewRequest(request) {\r\n $location.path('/IdentityManager/RequestDetails').search({ RequestId: request.RequestId, Version: request.Version });\r\n }\r\n\r\n function completeReview(instanceId) {\r\n $location.path('/AccessCertifications/Place/MyReviews').search({\r\n InstanceId: instanceId\r\n });\r\n }\r\n\r\n async function downloadReport(fileFormat, report) {\r\n vm.updateInProgress = new createSpinner();\r\n try {\r\n vm.updateInProgress.loadingValue = true;\r\n let fileExtension;\r\n switch (fileFormat) {\r\n case 'Excel':\r\n fileExtension = '.xlsx';\r\n break;\r\n case 'PDF':\r\n fileExtension = '.pdf';\r\n break;\r\n case 'Csv':\r\n fileExtension = '.csv';\r\n break;\r\n }\r\n const response = await schedulesDataService.downloadExecutionFile(fileFormat, report.ExecutionId);\r\n FileSaver.saveAs(response.data, report.BaseReportName + fileExtension);\r\n vm.updateInProgress.loadingValue = false;\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n async function openSignReportModal(savedReport) {\r\n let signReportModal = $uibModal.open({\r\n component: 'signReport',\r\n backdrop: 'static',\r\n resolve: {\r\n report: () => {\r\n return {\r\n executionId: savedReport.ExecutionId,\r\n savedReportId: savedReport.SavedReportId,\r\n name: savedReport.BaseReportName\r\n }\r\n }\r\n }\r\n });\r\n try {\r\n await signReportModal.result;\r\n activate();\r\n }\r\n catch {\r\n return;\r\n }\r\n }\r\n \r\n}","/* myInbox.component.js */\r\n\r\nimport myInboxController from \"./myInbox.controller\";\r\n\r\n\r\n/**\r\n * @desc component for managing / viewing inbox\r\n * @example \r\n */\r\n\r\nconst myInbox = {\r\n\r\n controller: myInboxController,\r\n controllerAs: 'mivm',\r\n templateUrl: '/App/Components/MyInbox/myInboxView.html'\r\n};\r\n\r\nexport default myInbox;","import createSpinner from \"../../Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, role, helperService, $http) {\r\n\r\n const vm = this;\r\n vm.role = { ...role };\r\n vm.cancel = cancel;\r\n vm.close = close;\r\n vm.addOrgHierarchyToList = addOrgHierarchyToList;\r\n vm.deleteselectedOrgHierarchy = deleteselectedOrgHierarchy;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.orgHierarchiesLoading = true;\r\n let availableOrgHierarchies = await getOrgHierarchies();\r\n vm.orgHierarchiesLoading = false;\r\n availableOrgHierarchies = mapOrgHierarchiesToCompanies(availableOrgHierarchies);\r\n if (vm.role.Companies) {\r\n let selectedOrgHierarchies = vm.role.Companies.filter(roleCompany => roleCompany.CompanyType === 'Organization');\r\n if (selectedOrgHierarchies.length) {\r\n availableOrgHierarchies = filterAvailableOrgHierarchies(availableOrgHierarchies, selectedOrgHierarchies);\r\n }\r\n } else {\r\n vm.role.Companies = [];\r\n }\r\n vm.availableOrgHierarchies = availableOrgHierarchies;\r\n }\r\n\r\n function mapOrgHierarchiesToCompanies(orgHierarchies) {\r\n return orgHierarchies.map(orgHierarchy => {\r\n return {\r\n CompanyId: orgHierarchy.Id,\r\n CompanyName: orgHierarchy.Name,\r\n CompanyType: 'Organization'\r\n };\r\n })\r\n }\r\n\r\n function filterAvailableOrgHierarchies(availableOrgHierarchies, selectedOrgHierarchies) {\r\n // Filter out the already selected org hierarchies from the available list\r\n return availableOrgHierarchies.filter(orgHierarchy => selectedOrgHierarchies.some(selectedOrgHierarchy => selectedOrgHierarchy.CompanyId !== orgHierarchy.CompanyId));\r\n }\r\n\r\n function addOrgHierarchyToList(orgHierarchy) {\r\n vm.role.Companies.push(orgHierarchy);\r\n const selectedOrgHierarchyIndex = vm.availableOrgHierarchies.findIndex(item => item.CompanyId === orgHierarchy.CompanyId);\r\n vm.availableOrgHierarchies.splice(selectedOrgHierarchyIndex, 1);\r\n }\r\n\r\n function deleteselectedOrgHierarchy(orgHierarchy) {\r\n vm.availableOrgHierarchies.push(orgHierarchy);\r\n const removedOrgHierarchyIndex = vm.role.Companies.findIndex(item => item.CompanyId === orgHierarchy.CompanyId);\r\n vm.role.Companies.splice(removedOrgHierarchyIndex, 1);\r\n }\r\n\r\n async function getOrgHierarchies() {\r\n let orgHierarchies = await $http.get(`${apiUrl}api/identitymanager/ax7/organizationalhierarchies`);\r\n return orgHierarchies.data;\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n async function close() {\r\n vm.saving = new createSpinner();\r\n let roleOrgHierarchyModalObject = {\r\n roleCompanies: vm.role.Companies\r\n };\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close(roleOrgHierarchyModalObject);\r\n }\r\n}","import editRoleOrgHierarchiesModalController from \"./editRoleOrgHierarchiesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.openEditRoleOrgHierarchiesModal = openEditRoleOrgHierarchiesModal;\r\n\r\n async function openEditRoleOrgHierarchiesModal() {\r\n const editRoleOrgHierarchiesModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Components/imRoleOrgHierarchies/editRoleOrgHierarchiesModal.html',\r\n controller: editRoleOrgHierarchiesModalController,\r\n controllerAs: 'erohmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n role: () => vm.selectedRole ? JSON.parse(JSON.stringify(vm.selectedRole)) : null\r\n },\r\n size: 'lg'\r\n });\r\n\r\n try {\r\n const roleOrgHierarchiesObject = await editRoleOrgHierarchiesModal.result;\r\n updateRoleOrgHierarchies(vm.selectedRole, roleOrgHierarchiesObject);\r\n } catch (err) {\r\n return;\r\n }\r\n }\r\n\r\n function updateRoleOrgHierarchies(selectedRole, roleOrgHierarchiesObject) {\r\n // overwrite companies for role based on user input from modal\r\n if (!roleOrgHierarchiesObject.roleCompanies.length) {\r\n roleOrgHierarchiesObject.roleCompanies = null;\r\n }\r\n vm.onUpdateOrgHierarchies({ selectedRole: selectedRole, prop: 'Companies', value: roleOrgHierarchiesObject.roleCompanies});\r\n }\r\n\r\n}\r\n","import editRoleOrgHierarchiesController from \"./editRoleOrgHierarchies.controller\";\r\n\r\n\r\n/* editRoleOrgHierarchies.component.js */\r\n\r\n/**\r\n * @desc component for selecting org hierarchies to associate to a role for an IM request\r\n * @example \r\n */\r\n\r\nconst imRoleOrgHierarchies = {\r\n bindings: {\r\n selectedRole: '<',\r\n onUpdateOrgHierarchies: '&'\r\n },\r\n controller: editRoleOrgHierarchiesController,\r\n controllerAs: 'erohvm',\r\n templateUrl: '/App/Shared/Components/imRoleOrgHierarchies/editRoleOrgHierarchies.tmpl.html'\r\n};\r\n\r\nexport default imRoleOrgHierarchies;","export default /*@ngInject*/ function (userMasterId, userId, productId, userProfileDataService, $uibModalInstance) {\r\n\r\n const vm = this;\r\n\r\n vm.dismiss = dismiss;\r\n activate();\r\n\r\n async function activate() {\r\n if (productId === 'WD') {\r\n vm.workDayProfile = await userProfileDataService.getWorkdayProfileInfo(userId);\r\n }\r\n vm.profile = await getUserProfile();\r\n }\r\n\r\n async function getUserProfile() {\r\n let response;\r\n if (userMasterId) {\r\n response = await userProfileDataService.getUserProfileByUserMasterId(userMasterId);\r\n } else {\r\n response = await userProfileDataService.getUserProfileByUserIdAndProductId(userId, productId);\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.close();\r\n }\r\n}","import userProfileModalController from \"./userProfileModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.openUserProfileModal = openUserProfileModal;\r\n\r\n function openUserProfileModal() {\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Components/userProfile/userProfileModal.tmpl.html',\r\n controller: userProfileModalController,\r\n controllerAs: 'upmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n userMasterId: () => vm.userMasterId,\r\n userId: () => vm.userId,\r\n productId: () => vm.productId\r\n }\r\n });\r\n }\r\n}","/* userProfile.component.js */\r\n\r\nimport userProfileController from \"./userProfile.controller\";\r\n\r\n/**\r\n * @desc component for viewing user profile information\r\n * @example \r\n */\r\n\r\nconst userProfile = {\r\n bindings: {\r\n userMasterId: '<',\r\n userId: '<',\r\n userDisplay: '<',\r\n productId: '<'\r\n },\r\n controller: userProfileController,\r\n controllerAs: 'upvm',\r\n templateUrl: '/App/Shared/Components/userProfile/userProfile.tmpl.html'\r\n};\r\n\r\nexport default userProfile;","export default /*@ngInject*/ function (helperService, $uibModalInstance, userChangesInformation, $scope) {\r\n\r\n const vm = this;\r\n\r\n vm.userChangesInformation = userChangesInformation;\r\n vm.helperService = helperService;\r\n vm.dismiss = dismiss;\r\n vm.oldValueExists = oldValueExists;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n setUserChangesInfo();\r\n\r\n }\r\n\r\n function setUserChangesInfo() {\r\n if (userChangesInformation.Event === 'Delete') {\r\n vm.isDelete = true;\r\n vm.userProperties = Object.keys(userChangesInformation);\r\n vm.userProperties = vm.userProperties.reduce((formattedProperties, currentProperty) => {\r\n if (currentProperty !== \"Application\" && currentProperty !== \"$$hashKey\" && currentProperty !== \"UserChanges\") {\r\n formattedProperties.push(currentProperty);\r\n return formattedProperties;\r\n }\r\n else {\r\n return formattedProperties;\r\n }\r\n }, []);\r\n }\r\n vm.productImage = userChangesInformation.ProductId;\r\n vm.userInformation = userChangesInformation.UserChanges;\r\n }\r\n\r\n function oldValueExists(userProperty) {\r\n if (userProperty.OldValue && userProperty.OldValue !== userProperty.NewValue || userProperty.OldValue) {\r\n $scope.oldValue = userProperty.OldValue;\r\n\r\n } else {\r\n $scope.oldValue = \"Blank\";\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","/* userDetailsChanges.component.js */\r\nimport userDetailsChangesModalController from \"./userDetailsChangesModal.controller\"\r\n/**\r\n * @desc component for viewing user profile information\r\n * @example \r\n */\r\n\r\nconst userDetailsChanges = {\r\n bindings: {\r\n changes: '<'\r\n },\r\n controller: userDetailsChangesController,\r\n controllerAs: 'udcvm',\r\n template: ``\r\n};\r\n\r\n/*@ngInject*/ function userDetailsChangesController($uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.openUserDetailsChangesModal = openUserDetailsChangesModal;\r\n\r\n async function openUserDetailsChangesModal() {\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Components/userDetailsChanges/userDetailsChangesModal.tmpl.html',\r\n controller: userDetailsChangesModalController,\r\n controllerAs: 'udcmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n userChangesInformation: () => vm.changes\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default userDetailsChanges;","import { customAutoCompleteFilter, customDatePickerFilterNullable, standardGridPageSize } from \"../../../GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function (helperService, userProfileDataService, $http) {\r\n const vm = this;\r\n vm.helperService = helperService;\r\n\r\n vm.accessCollapsed = true;\r\n vm.userProductCollapsed = true;\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n await aLAPluginActive();\r\n setupGrid();\r\n }\r\n\r\n async function aLAPluginActive() {\r\n let response = await $http.get(`${apiUrl}/api/core/plugins`);\r\n vm.aLAPluginActive = response.data.some(plugin => plugin.Id === 9 && plugin.Active);\r\n }\r\n\r\n function setupGrid() {\r\n let productProfileAccessGridColumns = [\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 120, filterable: customAutoCompleteFilter },\r\n ];\r\n \r\n if (vm.aLAPluginActive) {\r\n const lastUsedCol = { field: \"LastUsed\", title: \"Last Used\", template: \"{{ dataItem.LastUsed | date:'short'}}\", width: 200, filterable: customDatePickerFilterNullable },\r\n viewCountCol = { field: \"ViewCount\", title: \"View Count\", width: 130, filterable: customAutoCompleteFilter };\r\n\r\n productProfileAccessGridColumns.push(lastUsedCol);\r\n productProfileAccessGridColumns.push(viewCountCol);\r\n }\r\n\r\n vm.productProfileAccessGridOptions = helperService.setMainGridOptions(productProfileAccessGridColumns, 400);\r\n vm.productProfileAccessGridOptions.autoBind = true;\r\n\r\n vm.productProfileAccessGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n LastUsed: { type: \"date\" },\r\n ViewCount: { type: \"number\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n try {\r\n const { data } = await userProfileDataService.getUserProfileAccess(vm.product.User.UserId, vm.product.User.ProductId);\r\n options.success(data);\r\n } catch (err) {\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}","/* userProductProfile.component.js */\r\n\r\nimport userProductProfileController from \"./userProductProfile.controller\";\r\n\r\n/**\r\n * @desc component for viewing user profile information for a specific product\r\n * @example \r\n */\r\n\r\nconst userProductProfile = {\r\n bindings: {\r\n product: '<',\r\n workDayProfile: '<'\r\n },\r\n controller: userProductProfileController,\r\n controllerAs: 'uppvm',\r\n templateUrl: '/App/Shared/Components/userProfile/userProductProfile/userProductProfile.tmpl.html'\r\n};\r\n\r\nexport default userProductProfile;","export default /*@ngInject*/ function (risk, businessProcess, dataService, accessDetailsProfileDataService, $uibModalInstance) {\r\n\r\n const vm = this;\r\n\r\n vm.dismiss = dismiss;\r\n vm.risk = risk;\r\n vm.businessProcess = businessProcess;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n if (risk) {\r\n vm.products = await getRiskDetailProducts();\r\n } else {\r\n vm.products = await getBpDetailProducts();\r\n }\r\n }\r\n\r\n async function getRiskDetailProducts() {\r\n let { data } = await accessDetailsProfileDataService.getRiskDetails(risk.RiskId);\r\n // Need to filter out AD and AAD as they aren't currently supported for risk detail\r\n return data.filter(product => product.Type !== 'AD');\r\n }\r\n\r\n async function getBpDetailProducts() {\r\n let { data } = await dataService.getProducts();\r\n let product = data.find(p => p.ID === businessProcess.ProductId);\r\n return product;\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.close();\r\n }\r\n}","import accessDetailsProfileModalController from \"./accessDetailsProfileModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.openAccessDetailsProfileModal = openAccessDetailsProfileModal;\r\n\r\n function openAccessDetailsProfileModal() {\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Components/accessDetailsProfile/accessDetailsProfileModal.tmpl.html',\r\n controller: accessDetailsProfileModalController,\r\n controllerAs: 'adpmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n risk: () => vm.risk,\r\n businessProcess: () => vm.businessProcess\r\n }\r\n });\r\n }\r\n}","/* accessDetailsProfile.component.js */\r\n\r\nimport accessDetailsProfileController from \"./accessDetailsProfile.controller\";\r\n\r\n/**\r\n * @desc component for viewing Access Details profile information\r\n * @example \r\n */\r\n\r\nconst accessDetailsProfile = {\r\n bindings: {\r\n risk: '<',\r\n businessProcess: '<'\r\n },\r\n controller: accessDetailsProfileController,\r\n controllerAs: 'adpvm',\r\n templateUrl: '/App/Shared/Components/accessDetailsProfile/accessDetailsProfile.tmpl.html'\r\n};\r\n\r\nexport default accessDetailsProfile;","import createSpinner from \"../../Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (caseId, $uibModalInstance, controlLibraryDataService, FileSaver) {\r\n\r\n const vm = this;\r\n\r\n vm.dismiss = dismiss;\r\n vm.downloadAttachment = downloadAttachment;\r\n vm.getFileTypeImage = getFileTypeImage;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.attachmentsList = await getAttachmentsInformation(caseId);\r\n }\r\n\r\n async function getAttachmentsInformation(caseId) {\r\n vm.callPending = true;\r\n const { data: attachmentsList } = await controlLibraryDataService.getAttachmentsList(caseId);\r\n vm.callPending = false;\r\n return attachmentsList;\r\n }\r\n\r\n async function downloadAttachment(attachment) {\r\n let response;\r\n \r\n try {\r\n vm.downloadPending = new createSpinner();\r\n response = await controlLibraryDataService.downloadAttachment(attachment.Identifier);\r\n\r\n FileSaver.saveAs(response.data, attachment.FileName);\r\n vm.downloadPending.loadingValue = false;\r\n } catch {\r\n vm.downloadPending.loadingValue = false;\r\n }\r\n }\r\n\r\n function getFileTypeImage(fileType) {\r\n switch (fileType) {\r\n case 'xlsx': //Excel\r\n return 'excel-file-icon-16';\r\n break;\r\n case 'pdf': //PDF \r\n return 'pdf-file-icon-16';\r\n break;\r\n case 'csv': //Csv\r\n return 'csv-file-icon-16';\r\n break;\r\n default: \r\n return 'default-file-icon-64';\r\n break;\r\n }\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","/* attachmentsDownload.component.js */\r\nimport attachmentsDownloadModalController from \"./attachmentsDownloadModal.controller\"\r\n/**\r\n * @desc component for viewing user profile information\r\n * @example \r\n */\r\n\r\nconst attachmentsDownload = {\r\n bindings: {\r\n caseId: '<'\r\n },\r\n controller: attachmentsDownloadController,\r\n controllerAs: 'advm',\r\n template: ``\r\n\r\n};\r\n\r\n/*@ngInject*/ function attachmentsDownloadController($uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.openAttachmentsDownloadModal = openAttachmentsDownloadModal;\r\n\r\n async function openAttachmentsDownloadModal(caseId) {\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Components/Attachments/attachmentsDownloadModal.tmpl.html',\r\n controller: attachmentsDownloadModalController,\r\n controllerAs: 'admvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n caseId: () => caseId\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default attachmentsDownload;","import createSpinner from \"../../../Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function (helperService, accessDetailsProfileDataService) {\r\n\r\n const vm = this;\r\n vm.helperService = helperService;\r\n\r\n vm.accessCollapsed = true;\r\n vm.riskProductCollapsed = true;\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n vm.data = await getGridData();\r\n setupGrid();\r\n }\r\n\r\n async function getGridData() {\r\n vm.loading = new createSpinner();\r\n vm.loading.loadingValue = true;\r\n try {\r\n const { data } = await accessDetailsProfileDataService.getRiskProductProfile(vm.product.Type, vm.risk);\r\n vm.loading.loadingValue = false;\r\n return data;\r\n } catch {\r\n vm.loading.loadingValue = false;\r\n }\r\n }\r\n\r\n function setupGrid() {\r\n let riskProductProfileGridColumns;\r\n if (vm.data.length) {\r\n let accessDetailFields = Object.keys(vm.data[0]);\r\n riskProductProfileGridColumns = accessDetailFields.map(field => {\r\n return {\r\n field: field,\r\n title: helperService.headerStringTransformer(field),\r\n width: 120,\r\n filterable: customAutoCompleteFilter\r\n }\r\n });\r\n } else {\r\n riskProductProfileGridColumns = null;\r\n }\r\n\r\n vm.riskProductProfileGridOptions = helperService.setMainGridOptions(riskProductProfileGridColumns, 400);\r\n vm.riskProductProfileGridOptions.autoBind = true;\r\n\r\n vm.riskProductProfileGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n noRecords: {\r\n template: \"
No items to display
\"\r\n },\r\n transport: {\r\n read: async options => {\r\n try {\r\n await options.success(vm.data);\r\n } catch (err) {\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}","/* riskProductProfile.component.js */\r\n\r\nimport riskProductProfileController from \"./riskProductProfile.controller\";\r\n\r\n/**\r\n * @desc component for viewing Risk details profile information for a specific product\r\n * @example \r\n */\r\n\r\nconst riskProductProfile = {\r\n bindings: {\r\n product: '<',\r\n risk: '<'\r\n },\r\n controller: riskProductProfileController,\r\n controllerAs: 'cppvm',\r\n templateUrl: '/App/Shared/Components/accessDetailsProfile/riskDetailsProductProfile/riskProductProfile.tmpl.html'\r\n};\r\n\r\nexport default riskProductProfile;","import createSpinner from \"../../../Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, customDatePickerFilter, standardGridPageSize } from \"../../../GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function (helperService, accessDetailsProfileDataService) {\r\n const vm = this;\r\n vm.helperService = helperService;\r\n\r\n vm.accessCollapsed = true;\r\n vm.businessProcessProductCollapsed = true;\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n await getBpGridData();\r\n setupGrid();\r\n }\r\n\r\n function setupGrid() {\r\n let businessProcessProductProfileGridColumns;\r\n if (vm.accessDetailFields) {\r\n businessProcessProductProfileGridColumns = vm.accessDetailFields.map(field => {\r\n let column = {\r\n field: field,\r\n title: helperService.headerStringTransformer(field),\r\n width: 120,\r\n filterable: customAutoCompleteFilter\r\n }\r\n\r\n if (field === 'LastUsed') {\r\n column.template = \"{{ dataItem.LastUsed | date:'short' }}\";\r\n column.filterable = customDatePickerFilter;\r\n }\r\n\r\n return column;\r\n });\r\n } else {\r\n businessProcessProductProfileGridColumns = null;\r\n }\r\n\r\n vm.businessProcessProductProfileGridOptions = helperService.setMainGridOptions(businessProcessProductProfileGridColumns, 400);\r\n vm.businessProcessProductProfileGridOptions.autoBind = true;\r\n\r\n vm.businessProcessProductProfileGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n LastUsed: { type: \"date\" },\r\n ViewCount: { type: \"number\" }\r\n }\r\n }\r\n },\r\n noRecords: {\r\n template: \"
No items to display
\"\r\n },\r\n transport: {\r\n read: async options => {\r\n try {\r\n const data = await getBpGridData();\r\n options.success(data);\r\n } catch (err) {\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function getBpGridData() {\r\n vm.loading = new createSpinner();\r\n let postData = {\r\n \"UserMasterId\": vm.businessProcess.UserMasterId,\r\n \"BusinessProcessId\": vm.businessProcess.BusinessProcessId,\r\n \"CompanyId\": vm.businessProcess.CompanyId\r\n };\r\n\r\n try {\r\n vm.loading.loadingValue = true;\r\n let response;\r\n\r\n if (vm.businessProcess.SecurityObjectIdentifier) {\r\n postData.SecurityObjectIdentifier = vm.businessProcess.SecurityObjectIdentifier;\r\n postData.SecurityObjectTypeId = vm.businessProcess.SecurityObjectTypeId;\r\n response = await accessDetailsProfileDataService.getObjectLevelBusinessProcessDetails(vm.businessProcess, postData);\r\n } else {\r\n response = await accessDetailsProfileDataService.getBusinessProcessDetails(vm.businessProcess, postData);\r\n }\r\n\r\n vm.loading.loadingValue = false;\r\n\r\n let accessDetails = response.data.reduce((acc, curr) => {\r\n return acc.concat(curr.AccessDetails)\r\n }, []);\r\n\r\n vm.accessDetailFields = Object.keys(accessDetails[0]);\r\n\r\n return accessDetails;\r\n } catch {\r\n vm.loading.loadingValue = false;\r\n }\r\n }\r\n}","/* businessProcessProductProfile.component.js */\r\n\r\nimport businessProcessProductProfileController from \"./businessProcessProductProfile.controller\";\r\n\r\n/**\r\n * @desc component for viewing Business Process details profile information for a specific product\r\n * @example \r\n */\r\n\r\nconst businessProcessProductProfile = {\r\n bindings: {\r\n product: '<',\r\n businessProcess: '<'\r\n },\r\n controller: businessProcessProductProfileController,\r\n controllerAs: 'bpppvm',\r\n templateUrl: '/App/Shared/Components/accessDetailsProfile/businessProcessDetailsProductProfile/businessProcessProductProfile.tmpl.html'\r\n};\r\n\r\nexport default businessProcessProductProfile;","/* ownershipGroupAssignments.component.js */\r\n\r\n/**\r\n * @desc component for displaying assignments for a given ownership group\r\n * @example \r\n */\r\n\r\nconst ownershipGroupAssignments = {\r\n bindings: {\r\n group: '<'\r\n },\r\n controller: ownershipGroupAssignmentsController,\r\n controllerAs: 'ogavm',\r\n templateUrl: '/App/Shared/Components/ownershipGroupAssignments/ownershipGroupAssignments.tmpl.html'\r\n};\r\n\r\n/*@ngInject*/ function ownershipGroupAssignmentsController(ownershipGroupItemsDataService, ownershipGroupOwnerDataService) {\r\n const vm = this;\r\n vm.changeSelectedItem = changeSelectedItem;\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n vm.selectedItem = null;\r\n vm.owners = [];\r\n if (vm.group.Id) {\r\n vm.items = await getItems();\r\n }\r\n }\r\n\r\n async function getItems() {\r\n vm.itemsLoading = true;\r\n const { data } = await ownershipGroupItemsDataService.getGroupItems(vm.group.Id, vm.group.GroupType);\r\n vm.itemsLoading = false;\r\n return data;\r\n }\r\n\r\n async function getItemOwners(item) {\r\n vm.ownersLoading = true;\r\n const { data } = await ownershipGroupOwnerDataService.getGroupItemOwners(vm.group, item);\r\n vm.ownersLoading = false;\r\n return data;\r\n }\r\n\r\n async function changeSelectedItem(item) {\r\n vm.selectedItem = item;\r\n vm.owners = await getItemOwners(item);\r\n }\r\n}\r\n\r\nexport default ownershipGroupAssignments;","import angular from 'angular';\r\nimport criteriaSubmitButtonDropdown from './Components/criteriaSubmitButtonDropdown/criteriaSubmitButtonDropdown.component';\r\nimport roleMultiselectDropdown from './Components/roleMultiselectDropdown/roleMultiselectDropdown.component';\r\nimport pageHeader from './Components/pageHeader/pageHeader.component';\r\nimport manageSavedLayouts from './Components/ManageSavedLayouts/manageSavedLayouts.component';\r\nimport selectRolesByUser from './Components/selectRolesByUser/selectRolesByUser.component';\r\nimport selectRolesByRoleTemplate from './Components/selectRolesByRoleTemplate/selectRolesByRoleTemplate.component';\r\nimport reportToolbar from './Components/ReportToolbar/reportToolbar.component';\r\nimport tableFieldsModal from './Components/TableFieldsModal/tableFieldsModal.component';\r\nimport rowSettingsTemplate from './Components/rowSettingsTemplate/rowSettingsTemplate.component';\r\nimport reportFilterManager from './Components/ReportFilterManager/reportFilterManager.component';\r\nimport signReport from './Components/SignReport/signReport.component';\r\nimport saveReport from './Components/SaveReport/saveReport.component';\r\nimport scheduleReport from './Components/ScheduleReport/scheduleReport.component';\r\nimport saveReportFilter from \"./Components/SaveReportFilter/saveReportFilter.component\";\r\nimport imRoleCompanies from './Components/identityManagerRoleCompanies/editRoleCompanies.component';\r\nimport selectCompaniesByTemplate from './Components/selectCompaniesByTemplate/selectCompaniesByTemplate.component';\r\nimport dataChangesImport from './Components/DataChangesImport/dataChangesImport.component';\r\nimport backButton from './Components/backButton/backButton.component';\r\nimport staticPageHeader from './Components/staticPageHeader/staticPageHeader.component'\r\nimport userMultiselectDropdown from './Components/userMultiselectDropdown/userMultiselectDropdown.component';\r\nimport myInbox from '../Components/MyInbox/myInbox.component';\r\nimport imRoleOrgHierarchies from './Components/imRoleOrgHierarchies/editRoleOrgHierarchies.component';\r\nimport userProfile from './Components/userProfile/userProfile.component';\r\nimport userDetailsChanges from './Components/userDetailsChanges/userDetailsChanges.component';\r\nimport userProductProfile from './Components/userProfile/userProductProfile/userProductProfile.component';\r\nimport accessDetailsProfile from './Components/accessDetailsProfile/accessDetailsProfile.component';\r\nimport attachmentsDownload from './components/Attachments/attachmentsDownload.component'\r\nimport riskProductProfile from './Components/accessDetailsProfile/riskDetailsProductProfile/riskProductProfile.component';\r\nimport businessProcessProductProfile from './Components/accessDetailsProfile/businessProcessDetailsProductProfile/businessProcessProductProfile.component';\r\nimport ownershipGroupAssignments from './Components/ownershipGroupAssignments/ownershipGroupAssignments.component';\r\n\r\nexport default angular\r\n .module('app.shared.components', [])\r\n .component('criteriaSubmitButtonDropdown', criteriaSubmitButtonDropdown)\r\n .component('roleMultiselectDropdown', roleMultiselectDropdown)\r\n .component('userMultiselectDropdown', userMultiselectDropdown)\r\n .component('pageHeader', pageHeader)\r\n .component('manageSavedLayouts', manageSavedLayouts)\r\n .component('selectRolesByRoleTemplate', selectRolesByRoleTemplate)\r\n .component('selectRolesByUser', selectRolesByUser)\r\n .component('reportToolbar', reportToolbar)\r\n .component('tableFieldsModal', tableFieldsModal)\r\n .component('rowSettingsTemplate', rowSettingsTemplate)\r\n .component('reportFilterManager', reportFilterManager)\r\n .component('signReport', signReport)\r\n .component('saveReport', saveReport)\r\n .component('scheduleReport', scheduleReport)\r\n .component('saveReportFilter', saveReportFilter)\r\n .component('imRoleCompanies', imRoleCompanies)\r\n .component('selectCompaniesByTemplate', selectCompaniesByTemplate)\r\n .component('netsuiteDataChangesImport', dataChangesImport)\r\n .component('backButton', backButton)\r\n .component('staticPageHeader', staticPageHeader)\r\n .component('myInbox', myInbox)\r\n .component('imRoleOrgHierarchies', imRoleOrgHierarchies)\r\n .component('userDetailsChanges', userDetailsChanges)\r\n .component('userProfile', userProfile)\r\n .component('userProductProfile', userProductProfile)\r\n .component('accessDetailsProfile', accessDetailsProfile)\r\n .component('attachmentsDownload', attachmentsDownload)\r\n .component('riskProductProfile', riskProductProfile)\r\n .component('businessProcessProductProfile', businessProcessProductProfile)\r\n .component('ownershipGroupAssignments', ownershipGroupAssignments)\r\n .name;","import backButtonController from \"./backButton.controller\";\r\n\r\n/* backButton.component.js */\r\n\r\n/**\r\n * @desc component for displaying a back button that will call a bound function\r\n * @example \r\n */\r\n\r\nconst backButton = {\r\n bindings: {\r\n buttonClick: '&',\r\n breadcrumbText: '<'\r\n },\r\n controller: backButtonController,\r\n controllerAs: 'bbvm',\r\n templateUrl: '/App/Shared/Components/backButton/backButton.tmpl.html'\r\n};\r\n\r\nexport default backButton;","export default /*@ngInject*/ function () {\r\n\r\n const vm = this;\r\n\r\n vm.buttonClick = buttonClick;\r\n\r\n function buttonClick() {\r\n vm.buttonClick();\r\n }\r\n}","import { customAutoCompleteFilter, customDatePickerFilter, customDatePickerNotNullableFilter, customBooleanFilter, customNotStringEmptyFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $filter, CustomReportServices, reportsDataService, reportsService, ExportReportService, $http, $location, helperService, schedulesDataService, FileSaver) {\r\n\r\n const vm = this;\r\n $scope.vm = {};\r\n\r\n const splitItUp = $location.path().split(\"/\");\r\n vm.ObjectId = splitItUp[4];\r\n vm.generateGridWithDynamicValues = generateGridWithDynamicValues;\r\n\r\n const securityObject = helperService.getSecurityObjectDetailsFromObjectId(vm.ObjectId);\r\n vm.reportId = securityObject.ReportID;\r\n\r\n vm.RelativeDateTypeDataSource = CustomReportServices.getRelativeDateTypes();\r\n vm.PeriodTypeDataSource = CustomReportServices.getPeriodTypes();\r\n vm.openStartDate = openStartDate;\r\n vm.openEndDate = openEndDate;\r\n vm.downloadArchivedReport = downloadArchivedReport;\r\n\r\n vm.hasCriteria = false;\r\n vm.dateCriteria = [];\r\n vm.RelativeDateType = 2;\r\n vm.PeriodType = 0;\r\n vm.startDateOptions = {\r\n dateDisabled: startDateDisabled,\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n vm.endDateOptions = {\r\n dateDisabled: endDateDisabled,\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n vm.endDatePopup = {\r\n opened: false\r\n };\r\n vm.startDatePopup = {\r\n opened: false\r\n };\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n vm.filterCriteria.dateQuery = [];\r\n // ---\r\n\r\n // scoped items - TODO: Refactor services that require these in $scope\r\n $scope.ObjectId = vm.ObjectId;\r\n $scope.reportName = securityObject.Name;\r\n //Add unique data- value for each tabbed grid.\r\n $scope.gridID = $scope.ObjectId + $scope.$id;\r\n $scope.reportId = vm.reportId;\r\n vm.grid = $scope.grid;\r\n $scope.reportDetailsModel = [];\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource(vm.ObjectId);\r\n $scope.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n $scope.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n $scope.deleteFilter = deleteFilter;\r\n $scope.clearAllFilters = clearAllFilters;\r\n $scope.saveReportLayoutButton = saveReportLayoutButton;\r\n $scope.applySelectedFilter = applySelectedFilter;\r\n $scope.populateCriteriaModel = populateCriteriaModel;\r\n\r\n\r\n activate();\r\n\r\n async function activate() {\r\n setDates();\r\n try {\r\n let response = await reportsDataService.getReportMetadata(vm.reportId);\r\n vm.reportMetadata = response.data._embedded.reportData;\r\n vm.reportMetadata.Columns = setupColumns(vm.reportMetadata.Columns);\r\n setupCriteria(vm.reportMetadata);\r\n setupAdvancedFiltering(vm.reportMetadata.Columns);\r\n if ($rootScope.UserPreferences.AutoRunDashboardReports === '1') {\r\n kendo.ui.progress($(\"#dynamicGrid\"), true);\r\n }\r\n createDataSource(vm.reportMetadata.Columns);\r\n loadSavedGridLayout();\r\n } catch (err) {\r\n return;\r\n }\r\n }\r\n\r\n function setupColumns(metadataColumns) {\r\n vm.columnDefinition = [];\r\n metadataColumns = $filter('orderBy')(vm.reportMetadata.Columns, 'Ordinal');\r\n metadataColumns = metadataColumns.filter(d => !d.FieldName.includes('_hidden_') && d.IsVisible);\r\n\r\n metadataColumns.forEach(function (column) {\r\n if (column.DataType === 'DateTime') {\r\n column.DataType = 'dateTime';\r\n } else if (column.DataType === 'Date') {\r\n column.DataType = 'date';\r\n } else if (column.DataType === 'Time') {\r\n column.DataType = 'time';\r\n } else if (column.DataType === 'Boolean') {\r\n column.DataType = 'boolean';\r\n } else if (column.DataType === 'String') {\r\n column.DataType = 'string';\r\n } else if (column.DataType === 'Number') {\r\n column.DataType = 'number';\r\n }\r\n });\r\n\r\n metadataColumns.forEach(function (column) {\r\n let columnSample = { \"field\": column.FieldName, \"title\": !column.DisplayName ? helperService.headerStringTransformer(column.FieldName) : helperService.headerStringTransformer(column.DisplayName), filterable: customAutoCompleteFilter, ordinal: column.Ordinal };\r\n\r\n if (column.DataType === 'dateTime' || column.DataType === 'date' || column.DataType === 'time') {\r\n columnSample.filterable = column.IsNullable ? customDatePickerFilter : customDatePickerNotNullableFilter;\r\n columnSample.template = column.DataType === 'date' ? \"{{dataItem.\" + column.FieldName + \" | date:'M/d/yy'}}\" : \"{{dataItem.\" + column.FieldName + \" | date:'short'}}\";\r\n }\r\n if (column.DataType === 'boolean') {\r\n columnSample.filterable = customBooleanFilter;\r\n }\r\n if (column.DataType === 'number') {\r\n columnSample.filterable = customAutoCompleteFilter;\r\n }\r\n if (column.DataType === 'string') {\r\n // prevents kendo from parsing any code found in the string\r\n columnSample.template = \"{{dataItem.\" + column.FieldName + \"}}\";\r\n }\r\n if (column.DataType !== 'string' && column.DataType !== 'boolean' && column.IsNullable) {\r\n columnSample.filterable = customNotStringEmptyFilter;\r\n }\r\n\r\n if (column.DisplayName.startsWith('_download_')) {\r\n columnSample.filterable = false;\r\n columnSample.title = helperService.headerStringTransformer(column.FieldName).slice(10);\r\n columnSample.template = `\r\n \r\n \r\n Download\r\n \r\n `;\r\n }\r\n if (column.DisplayName.startsWith('_includes_')) {\r\n columnSample.filterable = false;\r\n columnSample.title = 'Attachment(s)';\r\n columnSample.template = ``; \r\n }\r\n\r\n vm.columnDefinition.push(columnSample);\r\n });\r\n\r\n return metadataColumns;\r\n }\r\n\r\n function setupCriteria(metadata) {\r\n if (metadata.DateCriteria.length > 0) {\r\n vm.hasCriteria = true;\r\n vm.dateCriteria = metadata.DateCriteria;\r\n }\r\n }\r\n\r\n function setupAdvancedFiltering(metadataColumns) {\r\n metadataColumns.forEach(column => {\r\n column.DisplayName = helperService.headerStringTransformer(column.DisplayName);\r\n });\r\n metadataColumns = metadataColumns.filter(d => !d.FieldName.includes('_download_') && !d.DisplayName.includes('_includes_Attachments'));\r\n vm.filterCriteria.fields = $filter('orderBy')(reportsService.getFields(metadataColumns), 'fieldName');\r\n }\r\n\r\n async function loadSavedGridLayout() {\r\n try {\r\n let savedLayoutColumns = await CustomReportServices.loadSavedDynamicGridLayout(vm);\r\n vm.mainGridOptions = helperService.setMainGridOptions(savedLayoutColumns, 600);\r\n executeGrid();\r\n } catch (_) {\r\n vm.mainGridOptions = helperService.setMainGridOptions(vm.columnDefinition, 600);\r\n executeGrid();\r\n }\r\n }\r\n\r\n function executeGrid() {\r\n const userPreferences = $rootScope.UserPreferences,\r\n autorun = userPreferences.AutoRunDashboardReports === \"1\",\r\n tabbedReports = userPreferences.ShowReportTabs === \"1\";\r\n\r\n vm.mainGridOptions.pageable = { 'refresh': true };\r\n if (!$rootScope.loadedSavedReport) {\r\n if (autorun && !tabbedReports) {\r\n vm.mainGridOptions.autoBind = false;\r\n vm.hideExportOptionsFromSubmit = true;\r\n vm.gridDataSource.read();\r\n } else if (autorun && tabbedReports) {\r\n vm.hideExportOptionsFromSubmit = true;\r\n } else {\r\n vm.mainGridOptions.autoBind = false;\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.columns.forEach(column => {\r\n column.sortable = false;\r\n });\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n }\r\n } else {\r\n vm.mainGridOptions.autoBind = false;\r\n // Need to set columns based on saved report\r\n vm.mainGridOptions.columns.forEach(column => {\r\n if ($rootScope.loadedSavedReport.ReportDefinition.Columns.length > 0) {\r\n let matchedColumn = $rootScope.loadedSavedReport.ReportDefinition.Columns.find(savedColumn => savedColumn.FieldName === column.field);\r\n if (!matchedColumn) {\r\n column.hidden = true;\r\n } else {\r\n if (matchedColumn.Ordinal !== column.ordinal) {\r\n column.ordinal = matchedColumn.Ordinal;\r\n }\r\n }\r\n }\r\n });\r\n vm.mainGridOptions.columns = $filter('orderBy')(vm.mainGridOptions.columns, 'ordinal');\r\n // --- FOR ADVANCED FILTERING ---\r\n // Convert date filters to criteria\r\n if (vm.dateCriteria && vm.dateCriteria.length > 0) {\r\n if ($rootScope.loadedSavedReport.ReportDefinition.DateFilters.length > 0) {\r\n const criteriaDateFilterIndex = $rootScope.loadedSavedReport.ReportDefinition.DateFilters.findIndex(filter => filter.FieldName === vm.dateCriteria[0].FieldName);\r\n if (criteriaDateFilterIndex > -1) {\r\n loadDateFilterAsCriteria($rootScope.loadedSavedReport.ReportDefinition.DateFilters[criteriaDateFilterIndex]);\r\n $rootScope.loadedSavedReport.ReportDefinition.DateFilters.splice(criteriaDateFilterIndex, 1);\r\n }\r\n } else if ($rootScope.loadedSavedReport.ReportDefinition.Filters.length > 0) {\r\n const dateRangeFilters = $rootScope.loadedSavedReport.ReportDefinition.Filters.filter(filter => filter.FieldName === vm.dateCriteria[0].FieldName);\r\n if (dateRangeFilters.length > 0) {\r\n $rootScope.loadedSavedReport.ReportDefinition.Filters = $rootScope.loadedSavedReport.ReportDefinition.Filters.filter(filter => filter.FieldName !== vm.dateCriteria[0].FieldName);\r\n dateRangeFilters.forEach(filter => {\r\n loadDateFilterAsCriteria(filter);\r\n });\r\n }\r\n }\r\n }\r\n\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n\r\n if ($rootScope.loadedSavedReport && $rootScope.loadedSavedReport.ReportDefinition.Criteria) {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria.forEach(function (criteria) {\r\n if (criteria.DateFilter) {\r\n switch (criteria.DateFilter.DateType) {\r\n case 'Previous':\r\n vm.RelativeDateType = 0;\r\n vm.PeriodType = getPeriodId(criteria.DateFilter.Period);\r\n break;\r\n\r\n case 'ToDate':\r\n vm.RelativeDateType = 1;\r\n vm.PeriodType = getPeriodId(criteria.DateFilter.Period);\r\n break;\r\n\r\n case 'LastNumberOf':\r\n vm.RelativeDateType = 2;\r\n vm.PeriodType = getPeriodId(criteria.DateFilter.Period);\r\n vm.LastNumberOf = criteria.DateFilter.Value;\r\n break;\r\n\r\n }\r\n }\r\n if (criteria.Filters.length > 0) {\r\n criteria.Filters.forEach(function (filter) {\r\n switch (filter.Operator) {\r\n case 'GreaterThanOrEqual':\r\n vm.RelativeDateType = 4;\r\n vm.startDate = new Date(filter.Value);\r\n break;\r\n\r\n case 'LessThanOrEqual':\r\n vm.RelativeDateType = 4;\r\n vm.endDate = new Date(filter.Value);\r\n break;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n vm.filterCriteria.dateQuery = reportsService.getSavedReportDateFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n // ---\r\n vm.hideExportOptionsFromSubmit = true;\r\n vm.gridDataSource.read();\r\n }\r\n }\r\n\r\n function determineTypeOfField(columnsWithType) {\r\n var fields = {};\r\n columnsWithType.forEach(function (column) {\r\n if (column.DataType === 'date' || column.DataType === 'time' || column.DataType === 'dateTime') {\r\n fields[column.FieldName] = { type: 'date' };\r\n } else {\r\n fields[column.FieldName] = { type: column.DataType };\r\n }\r\n });\r\n return fields;\r\n }\r\n\r\n function createDataSource(columnsWithType) {\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: determineTypeOfField(columnsWithType)\r\n },\r\n parse: function (response) {\r\n // Ensure 'date' fields ignore time of date string values\r\n if (dateColumnExists() && response?._embedded.reportData && response?._embedded.reportData.length) {\r\n response._embedded.reportData.forEach(record => {\r\n for (let key in record) {\r\n if (isDateColumn(key) && record[key]) {\r\n record[key] = helperService.convertUTCDateTimeStringToDateString(record[key]);\r\n }\r\n }\r\n });\r\n }\r\n\r\n return response;\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async options => { \r\n vm.sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n setSortsAndFilters();\r\n\r\n $scope.sortsAndFilters = vm.sortsAndFilters;\r\n\r\n try {\r\n let response = await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/core/reports/' + vm.reportId + '/execute/',\r\n data: vm.sortsAndFilters,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n });\r\n options.success(response.data);\r\n kendo.ui.progress($(\"#dynamicGrid\"), false);\r\n vm.enableGrid = true;\r\n $scope.vm.enableGrid = true;\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n delete $rootScope.loadedSavedReport;\r\n } catch (response) {\r\n const timeout = 408;\r\n\r\n if (response.status !== timeout) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n\r\n kendo.ui.progress($(\"#dynamicGrid\"), false);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function setSortsAndFilters() {\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n vm.sortsAndFilters.Filters = vm.sortsAndFilters.Filters.concat(vm.filterCriteria.query);\r\n }\r\n if (vm.filterCriteria.dateQuery) {\r\n vm.sortsAndFilters.DateFilters = vm.filterCriteria.dateQuery.slice();\r\n }\r\n // ---\r\n\r\n if (!vm.sortsAndFilters) {\r\n vm.sortsAndFilters = {};\r\n }\r\n if (!vm.sortsAndFilters.Filters) {\r\n vm.sortsAndFilters.Filters = [];\r\n }\r\n if (!vm.sortsAndFilters.DateFilters) {\r\n vm.sortsAndFilters.DateFilters = [];\r\n }\r\n\r\n if (vm.hasCriteria) {\r\n let dateFilters = getDateFilters();\r\n if (dateFilters.Filters && dateFilters.Filters.length > 0) {\r\n vm.sortsAndFilters.Filters = vm.sortsAndFilters.Filters.concat(dateFilters.Filters);\r\n }\r\n if (dateFilters.RelativeFilter) {\r\n vm.sortsAndFilters.DateFilters.push(dateFilters.RelativeFilter);\r\n }\r\n }\r\n }\r\n\r\n function deleteFilter(id) {\r\n CustomReportServices.deleteFilterFilterManager($scope, id);\r\n }\r\n\r\n function clearAllFilters() {\r\n vm.gridDataSource.filter({});\r\n }\r\n\r\n function saveReportLayoutButton() {\r\n vm.grid = $scope.grid;\r\n CustomReportServices.saveGridLayout(vm, null);\r\n }\r\n\r\n function applySelectedFilter() {\r\n helperService.applyFilterCatchError($scope);\r\n }\r\n\r\n function generateGridWithDynamicValues() {\r\n vm.hideExportOptionsFromSubmit = true;\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.columns.forEach(column => {\r\n column.sortable = true;\r\n });\r\n }\r\n $scope.grid.setOptions({ \"filterable\": { mode: \"row\" } });\r\n vm.gridDataSource.read();\r\n }\r\n\r\n\r\n //Date picker settings\r\n function setDates() {\r\n var newDate = new Date();\r\n newDate.setDate(newDate.getDate() - $rootScope.UserPreferences.DefaultDaysForAuditTrailReports);\r\n vm.LastNumberOf = $rootScope.UserPreferences.DefaultDaysForAuditTrailReports;\r\n\r\n vm.startDate = newDate;\r\n vm.endDate = new Date();\r\n }\r\n\r\n function startDateDisabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && date > vm.endDate;\r\n }\r\n\r\n function endDateDisabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && date < vm.startDate;\r\n }\r\n\r\n function openEndDate() {\r\n vm.endDatePopup.opened = true;\r\n }\r\n\r\n function openStartDate() {\r\n vm.startDatePopup.opened = true;\r\n }\r\n\r\n\r\n function getDateFilters() {\r\n var dateCriteria = vm.dateCriteria[0];\r\n\r\n if (dateCriteria) {\r\n var dateTimeFieldName = dateCriteria.FieldName;\r\n var criteria = { CriteriaType: 'Date', CriteriaValue: dateTimeFieldName, Filters: [], DateFilter: null };\r\n var dateFilters = {\r\n Criteria: {},\r\n Filters: [],\r\n RelativeFilter: null\r\n };\r\n\r\n var startDate = helperService.setDateToBeginningOfDay(vm.startDate);\r\n var endDate = helperService.setDateToEndOfDay(vm.endDate);\r\n\r\n if (vm.RelativeDateType === 4) {\r\n var startDateRow = {\r\n \"FieldName\": dateTimeFieldName,\r\n \"Operator\": 'GreaterThanOrEqual',\r\n \"Value\": startDate\r\n };\r\n var endDateRow = {\r\n \"FieldName\": dateTimeFieldName,\r\n \"Operator\": 'LessThanOrEqual',\r\n \"Value\": endDate\r\n };\r\n\r\n dateFilters.Filters.push(startDateRow);\r\n dateFilters.Filters.push(endDateRow);\r\n\r\n criteria.Filters.push(startDateRow);\r\n criteria.Filters.push(endDateRow);\r\n\r\n dateFilters.Criteria = criteria;\r\n\r\n }\r\n if (vm.RelativeDateType !== 4) {\r\n var relativeDate = {\r\n \"DateType\": vm.RelativeDateType,\r\n \"FieldName\": dateTimeFieldName,\r\n \"Period\": vm.PeriodType,\r\n \"Value\": vm.RelativeDateType === 2 ? vm.LastNumberOf : null\r\n };\r\n\r\n dateFilters.RelativeFilter = relativeDate;\r\n criteria.DateFilter = relativeDate;\r\n dateFilters.Criteria = criteria;\r\n }\r\n\r\n return dateFilters;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function loadDateFilterAsCriteria(DateFilter) {\r\n if (DateFilter.Operator === 'GreaterThanOrEqual' || DateFilter.Operator === 'LessThanOrEqual') {\r\n if (!$rootScope.loadedSavedReport.ReportDefinition.Criteria[0]) {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria = [{\r\n \"CriteriaType\": \"Date\",\r\n \"CriteriaValue\": DateFilter.FieldName,\r\n Filters: []\r\n }];\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria[0].Filters.push(DateFilter);\r\n } else {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria[0].Filters.push(DateFilter);\r\n }\r\n } else {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria = [{\r\n \"CriteriaType\": \"Date\",\r\n \"CriteriaValue\": DateFilter.FieldName,\r\n Filters: []\r\n }];\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria[0].DateFilter = DateFilter;\r\n }\r\n }\r\n\r\n function getPeriodId(name) {\r\n if (name) {\r\n return CustomReportServices.getPeriodTypes().find(function (type) {\r\n return type.Name === name;\r\n }).Id;\r\n }\r\n }\r\n\r\n function populateCriteriaModel() {\r\n $scope.vm.filterCriteria = vm.filterCriteria;\r\n $scope.sortsAndFilters = {};\r\n $scope.sortsAndFilters.Filters = [];\r\n $scope.sortsAndFilters.DateFilters = [];\r\n\r\n let dateFilters = getDateFilters();\r\n\r\n if (dateFilters) {\r\n $scope.sortsAndFilters.Criteria = dateFilters.Criteria;\r\n $scope.sortsAndFilters.Filters = $scope.sortsAndFilters.Filters.concat(dateFilters.Filters);\r\n if (dateFilters.RelativeFilter && !dateFilters.Criteria) {\r\n $scope.sortsAndFilters.DateFilters.push(dateFilters.RelativeFilter);\r\n } else {\r\n $scope.sortsAndFilters.DateFilters = [];\r\n }\r\n }\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n }\r\n\r\n async function downloadArchivedReport(dataItem) {\r\n if (dataItem.ReportExecutionDate) {\r\n await downloadExecutionFile(dataItem);\r\n } else {\r\n downloadReportExport(dataItem);\r\n }\r\n }\r\n\r\n function downloadReportExport(dataItem) {\r\n ExportReportService.downloadReportExport({\r\n Id: dataItem._download_ArchivedReport,\r\n Name: 'Archived Report',\r\n Type: 'Excel'\r\n });\r\n }\r\n\r\n async function downloadExecutionFile(dataItem) {\r\n try {\r\n const executionString = dataItem._download_ArchivedReport;\r\n const executionArray = executionString.split('?');\r\n const executionId = executionArray[0];\r\n const unformattedFileType = executionArray[1];\r\n const formattedFileType = unformattedFileType.split('=')[1];\r\n\r\n const res = await schedulesDataService.downloadExecutionFile(formattedFileType, executionId);\r\n\r\n let fileExtension = formattedFileType.toLowerCase();\r\n\r\n if (fileExtension === 'excel') {\r\n fileExtension = 'xlsx';\r\n }\r\n FileSaver.saveAs(res.data, `Archived Report.${fileExtension}`);\r\n\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n function dateColumnExists() {\r\n return vm.reportMetadata.Columns.some(column => column.DataType.toLowerCase() === 'date');\r\n }\r\n\r\n function isDateColumn(key) {\r\n return vm.reportMetadata.Columns.some(column => column.FieldName === key && column.DataType.toLowerCase() === 'date')\r\n }\r\n}","import angular from 'angular';\r\nimport DynamicReportsViewModel from '../Components/DynamicReports/DynamicReportsViewModel';\r\n\r\n\r\nexport default angular\r\n .module('app.shared.dashboardReports', [])\r\n .controller(\"dynamicReportsViewModel\", DynamicReportsViewModel)\r\n .name;","import angular from 'angular';\r\nimport allSupportedProducts from '../GlobalVariables/ProductLookUp';\r\n\r\nexport function removeSpaces() {\r\n return function (string) {\r\n if (!angular.isString(string)) {\r\n return string;\r\n }\r\n return string.replace(/[\\s]/g, '');\r\n };\r\n}\r\n\r\nexport function startFrom() {\r\n return function (input, start) {\r\n start = +start; //parse to int\r\n return input.slice(start);\r\n };\r\n}\r\n\r\nexport function removeBlankDate() {\r\n return function (string) {\r\n if (!angular.isString(string)) {\r\n return string;\r\n }\r\n return string.replace('0001-01-01T00:00:00Z', '');\r\n };\r\n}\r\n\r\nexport function removeProductFromReportName() {\r\n return function (string, productID) {\r\n if (!angular.isString(string)) {\r\n return string;\r\n }\r\n\r\n if (allSupportedProducts) {\r\n var selectedProduct = allSupportedProducts.filter(e => e.ID === productID)[0];\r\n if (selectedProduct) {\r\n\r\n //loop thru string. Remove any part of the product name from the name shown in the left hand navigation\r\n var array = string.split(' ');\r\n array.forEach(function (item) {\r\n if (selectedProduct.Name.includes(item)) {\r\n string = string.replace(item, \"\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n return string;\r\n };\r\n}\r\n\r\nexport function removeStringFromString() {\r\n return function (string, string2) {\r\n if (!angular.isString(string)) {\r\n return string;\r\n }\r\n\r\n if (string.includes(string2)) {\r\n string = string.replace(string2, \"\");\r\n }\r\n\r\n return string;\r\n };\r\n}\r\n\r\nexport function removeDetailedFromString() {\r\n return function (string) {\r\n if (!angular.isString(string)) {\r\n return string;\r\n }\r\n if (string.includes(\"Detailed\")) {\r\n string = string.replace(\"Detailed\", \"\");\r\n }\r\n\r\n return string;\r\n };\r\n}\r\n\r\nexport function removeRoleDetailFromString() {\r\n return function (string) {\r\n if (!angular.isString(string)) {\r\n return string;\r\n }\r\n if (string.includes(\"Role Detail\")) {\r\n string = string.replace(\"Role Detail\", \"\");\r\n }\r\n\r\n return string;\r\n };\r\n}\r\n\r\nexport /*@ngInject*/ function addLockNextToTextInOISelect_dropdownFilter($sce) {\r\n return function (label, query, item, options, element) {\r\n\r\n var html = label;\r\n\r\n if (item.Status === \"Analyzing\" || item.Status === \"Locked\") {\r\n html = '  ' + label;\r\n }\r\n\r\n return $sce.trustAsHtml(html);\r\n };\r\n}\r\n\r\nexport function readableUrlRoute() {\r\n\r\n return function (urlRoute) {\r\n if (!angular.isString(urlRoute)) {\r\n return urlRoute;\r\n }\r\n var splitItUp = urlRoute.split(\"/\");\r\n return urlRoute = splitItUp[1].replace('of', ' of').replace(/([A-Z])/g, ' $1').trim() + ' | ' + splitItUp[2].replace(/([A-Z])/g, ' $1').trim();\r\n };\r\n}\r\n\r\nexport function booleanToYesNo() {\r\n\r\n return function (value) {\r\n if (value) {\r\n return 'Yes';\r\n } else {\r\n return 'No';\r\n }\r\n };\r\n}\r\n\r\nexport function insertSpaceBetweenCapitalWords() {\r\n\r\n return function (string) {\r\n if (!angular.isString(string)) {\r\n return string;\r\n } else {\r\n string = string.replace(/([A-Z])/g, ' $1').trim();\r\n string = string.replace('I D', 'ID');\r\n\r\n return string;\r\n }\r\n };\r\n}\r\n\r\nexport function insertSpaceBetweenCapitalWordsAndAcronyms() {\r\n\r\n return (string) => {\r\n if (!angular.isString(string)) {\r\n return string;\r\n } else {\r\n string = string.replace(/([a-z])([A-Z])/g, '$1 $2');\r\n string = string.replace(/([A-Z])([A-Z][a-z])/g, '$1 $2');\r\n return string;\r\n\r\n }\r\n };\r\n}\r\n\r\nexport function titleCase() {\r\n\r\n return function (input) {\r\n input = input || '';\r\n return input.replace(/\\w\\S*/g, function (txt) {\r\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\r\n });\r\n };\r\n}\r\n\r\nexport /*@ngInject*/ function readableUrlItem(helperService) {\r\n\r\n return function (urlRoute) {\r\n if (!angular.isString(urlRoute)) {\r\n return urlRoute;\r\n }\r\n var splitItUp = urlRoute.split(\"/\");\r\n urlRoute = splitItUp[3];\r\n\r\n return helperService.camelCaseToSentence(urlRoute);\r\n\r\n };\r\n}\r\n\r\nexport /*@ngInject*/ function convertProductIdToProductName(helperService) {\r\n\r\n return function (productId) {\r\n return helperService.productNameLookUp(productId);\r\n };\r\n}\r\n\r\n\r\nexport /*@ngInject*/ function translateObjectIdToObjectName(helperService) {\r\n return function (x) {\r\n var object = helperService.getSecurityObjectById(x);\r\n if (object) {\r\n return object.Name;\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n}\r\n\r\nexport function stripFirstName() {\r\n return function (x) {\r\n return x.substr(x.indexOf(' ') + 1);\r\n };\r\n}\r\n\r\nexport function showIfNotDuplicate() {\r\n return function (word, word2) {\r\n if (word === word2) {\r\n return '';\r\n } else {\r\n return word;\r\n }\r\n };\r\n}\r\n\r\nexport function addLockIconNextToText() {\r\n return function (word, word2) {\r\n if (word2 === \"Analyzing\" || word2 === \"Locked\") {\r\n return \" \" + word;\r\n } else {\r\n return word;\r\n }\r\n };\r\n}\r\n\r\nexport function addPipeBeforeWord() {\r\n return function (word, word2) {\r\n if (word !== word2) {\r\n if (word) {\r\n return word2 + \" | \" + word;\r\n } else {\r\n return word2;\r\n }\r\n } else {\r\n return word;\r\n }\r\n };\r\n}\r\n\r\nexport function dateDiff() {\r\n var magicNumber = 1000 * 60 * 60 * 24;\r\n\r\n return function (toDate, fromDate) {\r\n if (toDate && fromDate) {\r\n var dayDiff = Math.floor((toDate - fromDate) / magicNumber);\r\n dayDiff = Math.max(0, dayDiff);\r\n if (dayDiff === 0 && toDate.getDay() !== fromDate.getDay()) {\r\n dayDiff = 1;\r\n }\r\n return dayDiff;\r\n }\r\n };\r\n}\r\n\r\nexport function filterResults() {\r\n //Get a value nested inside an object\r\n Object.byString = function (o, s) {\r\n s = s.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\r\n s = s.replace(/^\\./, ''); // strip a leading dot\r\n var a = s.split('.');\r\n for (var i = 0, n = a.length; i < n; ++i) {\r\n var k = a[i];\r\n if (k in o) {\r\n o = o[k];\r\n } else {\r\n return;\r\n }\r\n }\r\n return o;\r\n };\r\n\r\n //dataArray: The total list of objects you're searching against\r\n //searchTerm: Value typed into the filter box\r\n //searchProperties: Properties in the object the searchTerm will be applied to\r\n return function (dataArray, searchTerm, searchProperties) {\r\n // If no array is given, exit.\r\n if (!dataArray) {\r\n return;\r\n }\r\n // If no search term exists, return the array unfiltered.\r\n else if (!searchTerm) {\r\n return dataArray;\r\n }\r\n\r\n else {\r\n // Convert filter text to lower case.\r\n var term = searchTerm.toLowerCase();\r\n // Return the array and filter it by looking for any occurrences of the search term in the searchProperties array.\r\n return dataArray.filter(function (item) {\r\n\r\n for (var i = 0; i < searchProperties.length; i++) {\r\n var foundValue = Object.byString(item, searchProperties[i]);\r\n\r\n if (!foundValue) {\r\n continue;\r\n }\r\n\r\n foundValue = foundValue.toString();\r\n\r\n //Return true if the property has the search term\r\n if (foundValue.toLowerCase().indexOf(term) > -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n }\r\n };\r\n}\r\n\r\nexport function makeStringPlural() {\r\n return function (string) {\r\n if (string.slice(-2) === 'ss') {\r\n return string + 'es';\r\n } else if (string.slice(-1) === 'y') {\r\n return string.slice(0, -1) + 'ies';\r\n }\r\n else {\r\n return string + 's';\r\n }\r\n };\r\n}\r\n\r\nexport function makeStringPluralWithCount() {\r\n return function (string, count) {\r\n if (count > 1 || count === 0) {\r\n if (string.slice(-2) === 'ss') {\r\n return string + 'es';\r\n } else {\r\n return string + 's';\r\n }\r\n } else {\r\n return string;\r\n }\r\n };\r\n}\r\n\r\nexport function unique() {\r\n return function (collection, keyname) {\r\n var output = [],\r\n keys = [];\r\n\r\n angular.forEach(collection, function (item) {\r\n var key = item[keyname];\r\n if (keys.indexOf(key) === -1) {\r\n keys.push(key);\r\n output.push(item);\r\n }\r\n });\r\n\r\n return output;\r\n };\r\n}","import angular from 'angular';\r\nimport * as filters from './Filters/customFilters';\r\nimport ErpLabelFilter from './Filters/ErpLabelFilter';\r\n\r\n\r\nexport default angular\r\n .module('app.shared.filters', [])\r\n .filter('removeSpaces', filters.removeSpaces)\r\n .filter('startFrom', filters.startFrom)\r\n .filter('removeBlankDate', filters.removeBlankDate)\r\n .filter('removeProductFromReportName', filters.removeProductFromReportName)\r\n .filter('removeStringFromString', filters.removeStringFromString)\r\n .filter('removeDetailedFromString', filters.removeDetailedFromString)\r\n .filter('removeRoleDetailFromString', filters.removeRoleDetailFromString)\r\n .filter('addLockNextToTextInOISelect_dropdownFilter', filters.addLockNextToTextInOISelect_dropdownFilter)\r\n .filter('readableUrlRoute', filters.readableUrlRoute)\r\n .filter('booleanToYesNo', filters.booleanToYesNo)\r\n .filter('insertSpaceBetweenCapitalWords', filters.insertSpaceBetweenCapitalWords)\r\n .filter('insertSpaceBetweenCapitalWordsAndAcronyms', filters.insertSpaceBetweenCapitalWordsAndAcronyms)\r\n .filter('titleCase', filters.titleCase)\r\n .filter('readableUrlItem', filters.readableUrlItem)\r\n .filter('convertProductIdToProductName', filters.convertProductIdToProductName)\r\n .filter('translateObjectIdToObjectName', filters.translateObjectIdToObjectName)\r\n .filter('stripFirstName', filters.stripFirstName)\r\n .filter('showIfNotDuplicate', filters.showIfNotDuplicate)\r\n .filter('addLockIconNextToText', filters.addLockIconNextToText)\r\n .filter('addPipeBeforeWord', filters.addPipeBeforeWord)\r\n .filter('dateDiff', filters.dateDiff)\r\n .filter('filterResults', filters.filterResults)\r\n .filter('makeStringPlural', filters.makeStringPlural)\r\n .filter('ERPTranslate', ErpLabelFilter)\r\n .filter('unique', filters.unique)\r\n .filter('makeStringPluralWithCount', filters.makeStringPluralWithCount)\r\n .name;","export default function () {\r\n return function (string, itemType) {\r\n\r\n function Netsuite() {\r\n switch (string) {\r\n case 'Product':\r\n string = \"Product\";\r\n break;\r\n case 'Company':\r\n string = \"Subsidiary\";\r\n break;\r\n case 'All Companies':\r\n string = \"All Subsidiaries\";\r\n break;\r\n }\r\n }\r\n\r\n function Intacct() {\r\n switch (string) {\r\n case 'Company':\r\n string = \"Company\";\r\n break;\r\n case 'All Companies':\r\n string = \"All Companies\";\r\n break;\r\n }\r\n }\r\n\r\n function Oracle() {\r\n switch (string) {\r\n case 'Company':\r\n string = \"Operating Unit\";\r\n break;\r\n case 'All Companies':\r\n string = \"All Operating Units\";\r\n break;\r\n }\r\n }\r\n\r\n function Salesforce() {\r\n switch (string) {\r\n case 'Company':\r\n string = \"Organizations\";\r\n break;\r\n case 'All Companies':\r\n string = \"All Organizations\";\r\n break;\r\n }\r\n }\r\n\r\n switch (itemType) {\r\n case 'NS':\r\n Netsuite();\r\n break;\r\n case 'INT':\r\n Intacct();\r\n break;\r\n case 'OR':\r\n Oracle();\r\n break;\r\n case 'SF':\r\n Salesforce();\r\n break;\r\n }\r\n\r\n return string;\r\n };\r\n}\r\n","import Packery from 'packery';\r\nimport Draggabilly from 'draggabilly';\r\n\r\nexport function onEnter() {\r\n return function (scope, element, attrs) {\r\n element.bind(\"keydown keypress\", function (event) {\r\n if (event.which === 13) {\r\n scope.$apply(function () {\r\n scope.$eval(attrs.onEnter, { 'event': event });\r\n });\r\n event.preventDefault();\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function complexPassword() {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$parsers.unshift(function (password) {\r\n var hasUpperCase = /[A-Z]/.test(password);\r\n var hasLowerCase = /[a-z]/.test(password);\r\n var hasNumbers = /\\d/.test(password);\r\n var hasNonalphas = /\\W/.test(password);\r\n var characterGroupCount = hasUpperCase + hasLowerCase + hasNumbers + hasNonalphas;\r\n\r\n if (password.length === 0) {\r\n ctrl.$setValidity('complexity', true);\r\n return password;\r\n } else {\r\n if (password.length >= 10 && characterGroupCount >= 3) {\r\n ctrl.$setValidity('complexity', true);\r\n return password;\r\n }\r\n else {\r\n ctrl.$setValidity('complexity', false);\r\n return password;\r\n }\r\n }\r\n\r\n });\r\n }\r\n };\r\n}\r\n\r\nexport function pwdReqCapitalLetter() {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$parsers.unshift(function (password) {\r\n let requireCapitalLetter = scope.$eval(attrs.pwdReqCapitalLetter);\r\n if (requireCapitalLetter) {\r\n if (/[A-Z]/.test(password)) {\r\n ctrl.$setValidity('passwordRequireCapitalLetter', true);\r\n return password;\r\n } else {\r\n ctrl.$setValidity('passwordRequireCapitalLetter', false);\r\n return password;\r\n }\r\n } else {\r\n return password;\r\n }\r\n });\r\n }\r\n };\r\n}\r\n\r\nexport function pwdReqNumber() {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$parsers.unshift(function (password) {\r\n let requireNumber = scope.$eval(attrs.pwdReqNumber);\r\n if (requireNumber) {\r\n if (/[0-9]/.test(password)) {\r\n ctrl.$setValidity('passwordRequireNumber', true);\r\n return password;\r\n } else {\r\n ctrl.$setValidity('passwordRequireNumber', false);\r\n return password;\r\n }\r\n } else {\r\n return password;\r\n }\r\n });\r\n }\r\n };\r\n}\r\n\r\nexport function pwdReqSymbol() {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$parsers.unshift(function (password) {\r\n let symbols = scope.$eval(attrs.pwdReqSymbol);\r\n if (symbols && symbols.length > 0) {\r\n symbols = '[' + symbols + ']';\r\n let symbolRegex = new RegExp(symbols, 'g');\r\n let hasSymbol = symbolRegex.test(password);\r\n if (hasSymbol) {\r\n ctrl.$setValidity('passwordRequireSymbol', true);\r\n return password;\r\n } else {\r\n ctrl.$setValidity('passwordRequireSymbol', false);\r\n return password;\r\n }\r\n } else {\r\n return password;\r\n }\r\n });\r\n }\r\n };\r\n}\r\n\r\nexport function errSrc() {\r\n return {\r\n link: function (scope, element, attrs) {\r\n element.bind('error', function () {\r\n if (attrs.src != attrs.errSrc) {\r\n attrs.$set('src', attrs.errSrc);\r\n }\r\n });\r\n }\r\n };\r\n}\r\n\r\nexport function pwCheck() {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, elem, attrs, ctrl) {\r\n var firstPassword = '#' + attrs.pwCheck;\r\n elem.add(firstPassword).on('keyup', function () {\r\n scope.$apply(function () {\r\n // console.info(elem.val() === $(firstPassword).val());\r\n ctrl.$setValidity('pwmatch', elem.val() === $(firstPassword).val());\r\n });\r\n });\r\n }\r\n };\r\n}\r\n\r\nexport function setStyle() {\r\n return function (scope, element, attrs) {\r\n element.parent().css('backgroundColor', '#' + attrs.setStyle);\r\n element.parent().css('color', '#333');\r\n\r\n };\r\n}\r\n\r\nexport function numbersOnly() {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attr, ngModelCtrl) {\r\n function fromUser(text) {\r\n if (text) {\r\n var transformedInput = text.replace(/[^0-9]/g, '');\r\n\r\n if (transformedInput !== text) {\r\n ngModelCtrl.$setViewValue(transformedInput);\r\n ngModelCtrl.$render();\r\n }\r\n return transformedInput;\r\n }\r\n return undefined;\r\n }\r\n ngModelCtrl.$parsers.push(fromUser);\r\n }\r\n };\r\n}\r\n\r\nexport /*@ngInject*/ function globalEvents($rootScope) {\r\n return function (scope, element, attrs) {\r\n element.bind('click', function (e) {\r\n\r\n if (angular.element('#right-sidebar').hasClass(\"ng-hide\") == false) {\r\n $rootScope.rightSidebar = false;\r\n }\r\n\r\n if (angular.element('#right-sidebar-notifications').hasClass(\"ng-hide\") == false) {\r\n $rootScope.rightNotificationsSidebar = false;\r\n }\r\n\r\n if (angular.element('#dashboard-card-list').hasClass(\"ng-hide\") == false) {\r\n $rootScope.showCardList = false;\r\n }\r\n\r\n $rootScope.$evalAsync();\r\n\r\n });\r\n };\r\n}\r\n\r\nexport function stopProp() {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element, attr) {\r\n if (attr && attr.stopProp) {\r\n element.bind(attr.stopProp, function (e) {\r\n e.stopPropagation();\r\n });\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport function showTemp() {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element, attr) {\r\n if (attr && attr.stopProp) {\r\n element.bind(attr.stopProp, function (e) {\r\n e.stopPropagation();\r\n });\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport /*@ngInject*/ function focusMe($timeout, $parse) {\r\n return {\r\n link: function (scope, element, attrs) {\r\n var model = $parse(attrs.focusMe);\r\n scope.$watch(model, function (value) {\r\n if (value === true) {\r\n $timeout(function () {\r\n element[0].focus();\r\n });\r\n }\r\n });\r\n element.bind('blur', function () {\r\n if (model != null && model.assign != null) {\r\n scope.$apply(model.assign(scope, false));\r\n }\r\n });\r\n }\r\n };\r\n}\r\n\r\nexport function inlineSaver() {\r\n return {\r\n restrict: 'AE',\r\n scope: {\r\n model: '=ngModel',\r\n customtext: '@successtext',\r\n customcolor: '@customcolor'\r\n },\r\n template: [\r\n '',\r\n '{{customtext}} ',\r\n '',\r\n '',\r\n ''\r\n ].join('')\r\n };\r\n}\r\n\r\nexport /*@ngInject*/ function component($compile, $parse) {\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n name: '@name'\r\n },\r\n link: function (scope, element) {\r\n const name = scope.name;\r\n const args = $parse(element.attr(\"args\"))(scope);\r\n const replace = $parse(element.attr(\"replace\"))(scope);\r\n let argsStr = \" \";\r\n angular.forEach(args, function (value, key, obj) {\r\n argsStr += key + '=\"' + value + '\" ';\r\n });\r\n const elem = \"<\" + name + argsStr + \">\";\r\n const component = $compile(elem)(scope)[0];\r\n if (replace) {\r\n element.replaceWith(component);\r\n } else {\r\n element.append(component);\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport /*@ngInject*/ function packery($rootScope, $timeout) {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element, attrs) {\r\n //console.log(\"link called on\", element[0]);\r\n\r\n function broadcastCardChange() {\r\n var itemElems = $rootScope.packery.getItemElements();\r\n var cardPositionArray = [];\r\n $(itemElems).each(function (i, itemElem) {\r\n cardPositionArray.push({ cardId: itemElem.id, cardIndex: i })\r\n });\r\n $rootScope.$broadcast('packery-card-changed-position', cardPositionArray);\r\n }\r\n\r\n if ($rootScope.packery === undefined || $rootScope.packery === null) {\r\n scope.element = element;\r\n $rootScope.packery = new Packery(element[0].parentElement, {\r\n isResizeBound: true,\r\n itemSelector: '.item',\r\n columnWidth: 250,\r\n gutter: 10\r\n });\r\n $rootScope.packery.bindResize();\r\n var draggable1 = new Draggabilly(element[0], {\r\n handle: '.handle'\r\n });\r\n $rootScope.packery.bindDraggabillyEvents(draggable1);\r\n\r\n draggable1.on('dragEnd', function (instance, event, pointer) {\r\n broadcastCardChange();\r\n $timeout(function () {\r\n $rootScope.packery.layout();\r\n }, 100);\r\n });\r\n\r\n var orderItems = function () {\r\n //var itemElems = $rootScope.packery.getItemElements();\r\n //$(itemElems).each(function (i, itemElem) {\r\n // $(itemElem).text(i + 1);\r\n //});\r\n };\r\n\r\n $rootScope.packery.on('layoutComplete', orderItems);\r\n $rootScope.packery.on('dragItemPositioned', orderItems);\r\n\r\n } else {\r\n var draggable2 = new Draggabilly(element[0], {\r\n handle: '.handle'\r\n });\r\n $rootScope.packery.bindDraggabillyEvents(draggable2);\r\n\r\n draggable2.on('dragEnd', function (instance, event, pointer) {\r\n broadcastCardChange();\r\n $timeout(function () {\r\n $rootScope.packery.layout();\r\n }, 100);\r\n });\r\n\r\n }\r\n $timeout(function () {\r\n $rootScope.packery.reloadItems();\r\n $rootScope.packery.layout();\r\n }, 50);\r\n }\r\n };\r\n\r\n}\r\n\r\n","//**\r\n// * INSPINIA - Responsive Admin Theme\r\n// *\r\n// * Main directives.js file\r\n// * Define directives for used plugin\r\n// *\r\n// *\r\n// * Functions (directives)\r\n// * - sideNavigation\r\n// * - iboxTools\r\n// * - minimalizaSidebar\r\n// * - vectorMap\r\n// * - sparkline\r\n// * - icheck\r\n// * - ionRangeSlider\r\n// * - dropZone\r\n// * - responsiveVideo\r\n// * - chatSlimScroll\r\n// * - customValid\r\n// * - fullScroll\r\n// * - closeOffCanvas\r\n// * - clockPicker\r\n// * - landingScrollspy\r\n// * - fitHeight\r\n// * - iboxToolsFullScreen\r\n// * - slimScroll\r\n// *\r\n// *\r\n\r\n\r\n//pageTitle - Directive for set Page title - mata title\r\n\r\nimport 'jquery-slimscroll';\r\n\r\nexport /*@ngInject*/ function pageTitle($rootScope, $timeout) {\r\n return {\r\n link: /*@ngInject*/ function(scope, element) {\r\n var listener = function(event, toState, toParams, fromState, fromParams) {\r\n // Default title - load on Dashboard 1\r\n var title = 'INSPINIA | Responsive Admin Theme';\r\n // Create your own title pattern\r\n if (toState.data && toState.data.pageTitle) {title = 'INSPINIA | ' + toState.data.pageTitle;}\r\n $timeout(function() {\r\n element.text(title);\r\n });\r\n };\r\n $rootScope.$on('$stateChangeStart', listener);\r\n }\r\n };\r\n}\r\n\r\n\r\n //sideNavigation - Directive for run metsiMenu on sidebar navigation\r\n\r\nexport /*@ngInject*/ function sideNavigation($timeout) {\r\n return {\r\n restrict: 'A',\r\n link: /*@ngInject*/ function(scope, element) {\r\n // Call the metsiMenu plugin and plug it to sidebar navigation\r\n $timeout(function(){\r\n element.metisMenu();\r\n\r\n });\r\n }\r\n };\r\n}\r\n\r\n//responsibleVideo - Directive for responsive video\r\n\r\nexport function responsiveVideo() {\r\n return {\r\n restrict: 'A',\r\n link: /*@ngInject*/ function(scope, element) {\r\n var figure = element;\r\n var video = element.children();\r\n video\r\n .attr('data-aspectRatio', video.height() / video.width())\r\n .removeAttr('height')\r\n .removeAttr('width');\r\n\r\n //We can use $watch on $window.innerWidth also.\r\n $(window).resize(function() {\r\n var newWidth = figure.width();\r\n video\r\n .width(newWidth)\r\n .height(newWidth * video.attr('data-aspectRatio'));\r\n }).resize();\r\n }\r\n };\r\n}\r\n\r\n//iboxTools - Directive for iBox tools elements in right corner of ibox\r\n\r\nexport /*@ngInject*/ function iboxTools($timeout) {\r\n return {\r\n restrict: 'A',\r\n scope: true,\r\n templateUrl: 'navViews/common/ibox_tools.html',\r\n controller: /*@ngInject*/ function ($scope, $element) {\r\n // Function for collapse ibox\r\n $scope.showhide = function () {\r\n var ibox = $element.closest('div.ibox');\r\n var icon = $element.find('i:first');\r\n var content = ibox.find('div.ibox-content');\r\n content.slideToggle(200);\r\n // Toggle icon from up to down\r\n icon.toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');\r\n ibox.toggleClass('').toggleClass('border-bottom');\r\n $timeout(function () {\r\n ibox.resize();\r\n ibox.find('[id^=map-]').resize();\r\n }, 50);\r\n };\r\n // Function for close ibox\r\n $scope.closebox = function () {\r\n var ibox = $element.closest('div.ibox');\r\n ibox.remove();\r\n };\r\n }\r\n };\r\n}\r\n\r\n//iboxTools with full screen - Directive for iBox tools elements in right corner of ibox with full screen option\r\n\r\nexport /*@ngInject*/ function iboxToolsFullScreen($timeout) {\r\n return {\r\n restrict: 'A',\r\n scope: true,\r\n templateUrl: 'navViews/common/ibox_tools_full_screen.html',\r\n controller: /*@ngInject*/ function ($scope, $element) {\r\n // Function for collapse ibox\r\n $scope.showhide = function () {\r\n var ibox = $element.closest('div.ibox');\r\n var icon = $element.find('i:first');\r\n var content = ibox.find('div.ibox-content');\r\n content.slideToggle(200);\r\n // Toggle icon from up to down\r\n icon.toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');\r\n ibox.toggleClass('').toggleClass('border-bottom');\r\n $timeout(function () {\r\n ibox.resize();\r\n ibox.find('[id^=map-]').resize();\r\n }, 50);\r\n };\r\n // Function for close ibox\r\n $scope.closebox = function () {\r\n var ibox = $element.closest('div.ibox');\r\n ibox.remove();\r\n };\r\n // Function for full screen\r\n $scope.fullscreen = function () {\r\n var ibox = $element.closest('div.ibox');\r\n var button = $element.find('i.fa-expand');\r\n $('body').toggleClass('fullscreen-ibox-mode');\r\n button.toggleClass('fa-expand').toggleClass('fa-compress');\r\n ibox.toggleClass('fullscreen');\r\n setTimeout(function() {\r\n $(window).trigger('resize');\r\n }, 100);\r\n };\r\n }\r\n };\r\n}\r\n\r\n //minimalizaSidebar - Directive for minimalize sidebar\r\n\r\nexport /*@ngInject*/ function minimalizaSidebar($timeout) {\r\n return {\r\n restrict: 'A',\r\n template: '',\r\n controller: /*@ngInject*/ function ($scope, $element) {\r\n $scope.minimalize = function () {\r\n $(\"body\").toggleClass(\"mini-navbar\");\r\n if (!$('body').hasClass('mini-navbar') || $('body').hasClass('body-small')) {\r\n // Hide menu in order to smoothly turn on when maximize menu\r\n $('#side-menu').hide();\r\n // For smoothly turn on menu\r\n setTimeout(\r\n function () {\r\n $('#side-menu').fadeIn(500);\r\n }, 100);\r\n } else if ($('body').hasClass('fixed-sidebar')){\r\n $('#side-menu').hide();\r\n setTimeout(\r\n function () {\r\n $('#side-menu').fadeIn(500);\r\n }, 300);\r\n } else {\r\n // Remove all inline style from jquery fadeIn function to reset menu state\r\n $('#side-menu').removeAttr('style');\r\n }\r\n };\r\n }\r\n };\r\n}\r\n\r\n\r\nexport function closeOffCanvas() {\r\n return {\r\n restrict: 'A',\r\n template: '',\r\n controller: /*@ngInject*/ function ($scope, $element) {\r\n $scope.closeOffCanvas = function () {\r\n $(\"body\").toggleClass(\"mini-navbar\");\r\n };\r\n }\r\n };\r\n}\r\n\r\n//vectorMap - Directive for Vector map plugin\r\n\r\nexport function vectorMap() {\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n myMapData: '='\r\n },\r\n link: /*@ngInject*/ function (scope, element, attrs) {\r\n element.vectorMap({\r\n map: 'world_mill_en',\r\n backgroundColor: \"transparent\",\r\n regionStyle: {\r\n initial: {\r\n fill: '#e4e4e4',\r\n \"fill-opacity\": 0.9,\r\n stroke: 'none',\r\n \"stroke-width\": 0,\r\n \"stroke-opacity\": 0\r\n }\r\n },\r\n series: {\r\n regions: [\r\n {\r\n values: scope.myMapData,\r\n scale: [\"#1ab394\", \"#22d6b1\"],\r\n normalizeFunction: 'polynomial'\r\n }\r\n ]\r\n }\r\n });\r\n }\r\n };\r\n}\r\n\r\n\r\n//sparkline - Directive for Sparkline chart\r\n\r\nexport function sparkline() {\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n sparkData: '=',\r\n sparkOptions: '='\r\n },\r\n link: /*@ngInject*/ function (scope, element, attrs) {\r\n scope.$watch(scope.sparkData, function () {\r\n render();\r\n });\r\n scope.$watch(scope.sparkOptions, function(){\r\n render();\r\n });\r\n var render = function () {\r\n $(element).sparkline(scope.sparkData, scope.sparkOptions);\r\n };\r\n }\r\n };\r\n}\r\n\r\n //icheck - Directive for custom checkbox icheck\r\n\r\nexport /*@ngInject*/ function icheck($timeout) {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function($scope, element, $attrs, ngModel) {\r\n return $timeout(function() {\r\n var value;\r\n value = $attrs['value'];\r\n\r\n $scope.$watch($attrs['ngModel'], function(newValue){\r\n $(element).iCheck('update');\r\n });\r\n\r\n return $(element).iCheck({\r\n checkboxClass: 'icheckbox_square-green',\r\n radioClass: 'iradio_square-green'\r\n\r\n }).on('ifChanged', function(event) {\r\n if ($(element).attr('type') === 'checkbox' && $attrs['ngModel']) {\r\n $scope.$evalAsync(function() {\r\n return ngModel.$setViewValue(event.target.checked);\r\n });\r\n }\r\n if ($(element).attr('type') === 'radio' && $attrs['ngModel']) {\r\n return $scope.$evalAsync(function() {\r\n return ngModel.$setViewValue(value);\r\n });\r\n }\r\n });\r\n });\r\n }\r\n };\r\n}\r\n\r\n//ionRangeSlider - Directive for Ion Range Slider\r\n\r\nexport function ionRangeSlider() {\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n rangeOptions: '='\r\n },\r\n link: function (scope, elem, attrs) {\r\n elem.ionRangeSlider(scope.rangeOptions);\r\n }\r\n };\r\n}\r\n\r\n//dropZone - Directive for Drag and drop zone file upload plugin\r\n\r\nexport function dropZone() {\r\n return function(scope, element, attrs) {\r\n element.dropzone({\r\n url: \"/upload\",\r\n maxFilesize: 100,\r\n paramName: \"uploadfile\",\r\n maxThumbnailFilesize: 5,\r\n init: function() {\r\n scope.files.push({file: 'added'});\r\n this.on('success', function(file, json) {\r\n });\r\n this.on('addedfile', function(file) {\r\n scope.$apply(function(){\r\n alert(file);\r\n scope.files.push({file: 'added'});\r\n });\r\n });\r\n this.on('drop', function(file) {\r\n alert('file');\r\n });\r\n }\r\n });\r\n };\r\n}\r\n\r\n//chatSlimScroll - Directive for slim scroll for small chat\r\n\r\nexport /*@ngInject*/ function chatSlimScroll($timeout) {\r\n return {\r\n restrict: 'A',\r\n link: function(scope, element) {\r\n $timeout(function(){\r\n element.slimscroll({\r\n height: '234px',\r\n railOpacity: 0.4\r\n });\r\n\r\n });\r\n }\r\n };\r\n}\r\n\r\n//customValid - Directive for custom validation example\r\n\r\nexport function customValid(){\r\n return {\r\n require: 'ngModel',\r\n link: function(scope, ele, attrs, c) {\r\n scope.$watch(attrs.ngModel, function() {\r\n\r\n // You can call a $http method here\r\n // Or create custom validation\r\n\r\n var validText = \"Inspinia\";\r\n\r\n if(scope.extras == validText) {\r\n c.$setValidity('cvalid', true);\r\n } else {\r\n c.$setValidity('cvalid', false);\r\n }\r\n\r\n });\r\n }\r\n };\r\n}\r\n\r\n\r\n//fullScroll - Directive for slimScroll with 100%\r\n\r\nexport /*@ngInject*/ function fullScroll($timeout){\r\n return {\r\n restrict: 'A',\r\n link: function(scope, element) {\r\n $timeout(function(){\r\n element.slimscroll({\r\n height: '100%',\r\n railOpacity: 0.9\r\n });\r\n\r\n });\r\n }\r\n };\r\n}\r\n\r\n//slimScroll - Directive for slimScroll with custom height\r\n\r\nexport /*@ngInject*/ function slimScroll($timeout){\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n boxHeight: '@'\r\n },\r\n link: function(scope, element) {\r\n $timeout(function(){\r\n element.slimscroll({\r\n height: scope.boxHeight,\r\n railOpacity: 0.9\r\n });\r\n\r\n });\r\n }\r\n };\r\n}\r\n\r\n//clockPicker - Directive for clock picker plugin\r\n\r\nexport function clockPicker() {\r\n return {\r\n restrict: 'A',\r\n link: function(scope, element) {\r\n element.clockpicker();\r\n }\r\n };\r\n}\r\n\r\n\r\n//landingScrollspy - Directive for scrollspy in landing page\r\n\r\nexport function landingScrollspy(){\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element, attrs) {\r\n element.scrollspy({\r\n target: '.navbar-fixed-top',\r\n offset: 80\r\n });\r\n }\r\n };\r\n}\r\n\r\n//fitHeight - Directive for set height fit to window height\r\n\r\nexport function fitHeight(){\r\n return {\r\n restrict: 'A',\r\n link: function(scope, element) {\r\n element.css(\"height\", $(window).height() + \"px\");\r\n element.css(\"min-height\", $(window).height() + \"px\");\r\n }\r\n };\r\n}\r\n\r\n//Pass all functions into module\r\n","\r\n/*\r\n * The whenReady directive allows you to execute the content of a when-ready\r\n * attribute after the element is ready (i.e. done loading all sub directives and DOM\r\n * content except for things that load asynchronously like partials and images).\r\n *\r\n * Execute multiple expressions by delimiting them with a semi-colon. If there\r\n * is more than one expression, and the last expression evaluates to true, then\r\n * all expressions prior will be evaluated after all text nodes in the element\r\n * have been interpolated (i.e. {{placeholders}} replaced with actual values). \r\n *\r\n * Caveats: if other directives exists on the same element as this directive\r\n * and destroy the element thus preventing other directives from loading, using\r\n * this directive won't work. The optimal way to use this is to put this\r\n * directive on an outer element.\r\n */\r\n// usage:
\r\nexport default /*@ngInject*/ function ($interpolate) {\r\n return {\r\n restrict: 'A',\r\n priority: Number.MIN_SAFE_INTEGER, // execute last, after all other directives if any.\r\n link: function ($scope, $element, $attributes) {\r\n var expressions = $attributes.whenReady.split(';');\r\n var waitForInterpolation = false;\r\n\r\n function evalExpressions(expressions) {\r\n expressions.forEach(function (expression) {\r\n $scope.$eval(expression);\r\n });\r\n }\r\n\r\n if ($attributes.whenReady.trim().length == 0) { return; }\r\n\r\n if (expressions.length > 1) {\r\n if ($scope.$eval(expressions.pop())) {\r\n waitForInterpolation = true;\r\n }\r\n }\r\n\r\n if (waitForInterpolation) {\r\n requestAnimationFrame(function checkIfInterpolated() {\r\n if ($element.text().indexOf($interpolate.startSymbol()) >= 0) { // if the text still has {{placeholders}}\r\n requestAnimationFrame(checkIfInterpolated);\r\n }\r\n else {\r\n evalExpressions(expressions);\r\n }\r\n });\r\n }\r\n else {\r\n evalExpressions(expressions);\r\n }\r\n }\r\n };\r\n}","import angular from 'angular';\r\nimport * as directives from './Directives/customDirectives';\r\nimport * as inspinia from './Functions/directives';\r\nimport whenReadyDirective from './Directives/whenReadyDirective';\r\nimport oraclePasswordDirective from './Directives/oracle-password.directive';\r\nimport navRepeatDirective from './Directives/navRepeat.directive';\r\n\r\nexport default angular\r\n .module('app.shared.directives', [])\r\n // directives\r\n .directive('navRepeatDirective', navRepeatDirective)\r\n .directive('onEnter', directives.onEnter)\r\n .directive('complexPassword', directives.complexPassword)\r\n .directive('pwdReqCapitalLetter', directives.pwdReqCapitalLetter)\r\n .directive('pwdReqNumber', directives.pwdReqNumber)\r\n .directive('pwdReqSymbol', directives.pwdReqSymbol)\r\n .directive('errSrc', directives.errSrc)\r\n .directive('pwCheck', directives.pwCheck)\r\n .directive('setStyle', directives.setStyle)\r\n .directive('numbersOnly', directives.numbersOnly)\r\n .directive('globalEvents', directives.globalEvents)\r\n .directive('stopProp', directives.stopProp)\r\n .directive('showTemp', directives.showTemp)\r\n .directive('focusMe', directives.focusMe)\r\n .directive('inlineSaver', directives.inlineSaver)\r\n .directive('packery', directives.packery)\r\n .directive('whenReady', whenReadyDirective)\r\n .directive('oraclePassword', oraclePasswordDirective)\r\n .directive('component', directives.component)\r\n // inspinia directives\r\n .directive('pageTitle', inspinia.pageTitle)\r\n .directive('sideNavigation', inspinia.sideNavigation)\r\n .directive('iboxTools', inspinia.iboxTools)\r\n .directive('minimalizaSidebar', inspinia.minimalizaSidebar)\r\n .directive('vectorMap', inspinia.vectorMap)\r\n .directive('sparkline', inspinia.sparkline)\r\n .directive('icheck', inspinia.icheck)\r\n .directive('ionRangeSlider', inspinia.ionRangeSlider)\r\n .directive('dropZone', inspinia.dropZone)\r\n .directive('responsiveVideo', inspinia.responsiveVideo)\r\n .directive('chatSlimScroll', inspinia.chatSlimScroll)\r\n .directive('customValid', inspinia.customValid)\r\n .directive('fullScroll', inspinia.fullScroll)\r\n .directive('closeOffCanvas', inspinia.closeOffCanvas)\r\n .directive('clockPicker', inspinia.clockPicker)\r\n .directive('landingScrollspy', inspinia.landingScrollspy)\r\n .directive('fitHeight', inspinia.fitHeight)\r\n .directive('iboxToolsFullScreen', inspinia.iboxToolsFullScreen)\r\n .directive('slimScroll', inspinia.slimScroll)\r\n .name;","export default /*@ngInject*/ function () {\r\n return function (scope, element, attrs, compile) {\r\n if (scope.$last) {\r\n angular.element('#side-menu').addClass(\"nav metismenu\");\r\n angular.element('#side-menu').metisMenu();\r\n }\r\n };\r\n}","/**\r\n * @desc directive to validate oracle password requirements\r\n * @example \r\n */\r\nexport default function () {\r\n var directive = {\r\n link: link,\r\n require: 'ngModel'\r\n };\r\n return directive;\r\n\r\n function link(scope, elm, attrs, ctrl) {\r\n ctrl.$parsers.unshift(function (password) {\r\n var hasNumbers = /\\d/.test(password);\r\n\r\n if (password.length === 0) {\r\n ctrl.$setValidity('complexity', true);\r\n return password;\r\n } else {\r\n if (password.length >= 8 && hasNumbers) {\r\n ctrl.$setValidity('complexity', true);\r\n return password;\r\n }\r\n else {\r\n ctrl.$setValidity('complexity', false);\r\n return undefined;\r\n }\r\n }\r\n\r\n });\r\n }\r\n}","import '../../ExternalScripts/RaygunSetup';\r\nimport 'jquery';\r\nimport angular from 'angular';\r\nimport 'angular-applicationinsights';\r\nimport 'angular-animate';\r\nimport '../../ExternalScripts/angular-elastic-builder/dist/angular-elastic-builder';\r\nimport 'angular-bootstrap-contextmenu';\r\nimport 'angular-file-saver';\r\nimport 'angular-listview/angular-listview.min';\r\nimport 'angular-recursion';\r\nimport 'angular-resizable';\r\nimport 'angular-route';\r\nimport 'angular-sanitize';\r\nimport 'angular-spinner';\r\nimport 'angular-translate';\r\nimport 'angular-ui-bootstrap';\r\nimport 'angular-wizard';\r\nimport 'bootstrap';\r\nimport FusionCharts from 'fusioncharts';\r\nimport 'angularjs-fusioncharts';\r\nimport Charts from 'fusioncharts/fusioncharts.charts';\r\nimport OceanTheme from 'fusioncharts/themes/fusioncharts.theme.ocean';\r\nimport 'bootstrap';\r\nimport 'metismenu';\r\nimport 'ng-Packery';\r\nimport 'oi.select';\r\nimport '../../ExternalScripts/fastpath-select-tpls';\r\nimport 'v-accordion';\r\nimport '@flowjs/ng-flow/dist/ng-flow-standalone.min';\r\nimport swal from 'sweetalert2';\r\nimport '../../ExternalScripts/Inspina/inspinia';\r\nimport 'sugar/sugar.min';\r\n\r\n//controller imports\r\nimport navCtrl from './Controllers/navController';\r\nimport pageWrapperCtrl from './Controllers/pageWrapper.controller';\r\nimport loginCtrl from './Controllers/login.controller';\r\nimport redirectController from './Controllers/redirectController';\r\nimport callbackController from './Controllers/callback.controller';\r\nimport rootController from '../app.report.rootViewModel';\r\nimport sideNavController from './Controllers/rightSideNavController';\r\nimport { reportToolbarController } from './Controllers/ReportToolbarViewModel';\r\nimport BackNavigationBarController from '../Components/NavigationBar/BackNavigationBarController';\r\nimport dynamicTabController from '../Components/DynamicReports/DynamicTabViewModel';\r\n\r\n//component imports\r\nimport home from '../Components/home/home.component';\r\nimport myDownloads from '../Components/myDownloads/myDownloads.component';\r\nimport signReportFromEmail from '../Components/signReportFromEmail/signReportFromEmail.component';\r\n\r\n//css imports\r\nimport '../../css/site.scss';\r\n\r\n//config imports\r\nimport routeConfig from '../app.route';\r\nimport raygunConfig from './Config/raygun.config';\r\nimport churnZero from './Config/churnZero.config';\r\nimport helpObjectConfig from './Config/helpObject.config';\r\nimport appInsightsConfig from './Config/applicationInsights.config';\r\nimport spinnerConfig from './Config/spinner.config';\r\nimport translationConfig from './Config/translation.config';\r\nimport tenantInterceptorConfig from './Interceptors/tenantInterceptor';\r\nimport authInterceptor from './Interceptors/authInterceptor';\r\nimport responseErrorInterceptorConfig from './Interceptors/responseErrorInterceptor';\r\nimport flowJsConfig from './Config/flowJs.config';\r\nimport locationConfig from './Config/location.config';\r\n\r\n//provider imports\r\nimport dialogsProvider from './Functions/dialogs';\r\nimport modal from 'angular-ui-bootstrap/src/modal';\r\n\r\n//module imports\r\nimport kendoModule from './kendo.module';\r\nimport sharedServicesModule from './sharedServices.module';\r\nimport sharedFactoriesModule from './sharedFactories.module';\r\nimport signalRModule from './signalr.module';\r\nimport sharedComponentsModule from './sharedComponents.module';\r\nimport dashboardReportsModule from './dashboardReports.module';\r\nimport sharedFiltersModule from './sharedFilters.module ';\r\nimport sharedDirectivesModule from './sharedDirectives.module';\r\nimport npsQuestionModalController from './Controllers/npsQuestionModal.controller';\r\n\r\nCharts(FusionCharts);\r\nOceanTheme(FusionCharts);\r\nFusionCharts.options.license({\r\n key: 'KqA8ydjB3B3E2A3B15B10A7E6E6F4C1H2C1nqsB1F2F5cE4F3B9vulC4E3A3jnA-21A5A1B3E-11fbI2J3A4A6A2B4A2A3G1D2G1emoE6E1e1D4akzD7E6F4kzE3MG1B6vpaB2E3C1F3H3A8A6D4A3D3E3B2A12A32y==',\r\n creditLabel: false,\r\n});\r\n\r\nswal.setDefaults({\r\n allowOutsideClick: false,\r\n reverseButtons: true,\r\n confirmButtonClass: 'swal-confirm-button',\r\n cancelButtonClass: 'swal-cancel-button'\r\n\r\n});\r\n\r\n\r\nexport default angular\r\n .module('app.shared', [\r\n 'ngRoute',\r\n 'ngAnimate',\r\n 'flow',\r\n 'kendo.directives',\r\n 'ui.bootstrap',\r\n 'ui.bootstrap.contextMenu',\r\n 'ngFileSaver',\r\n 'oi.select',\r\n 'ngSanitize',\r\n 'mgo-angular-wizard',\r\n 'angularSpinner',\r\n 'angularResizable',\r\n 'ApplicationInsightsModule',\r\n 'listview',\r\n 'vAccordion',\r\n 'ng-fusioncharts',\r\n 'RecursionHelper',\r\n 'ngPackery',\r\n 'angular-elastic-builder',\r\n 'pascalprecht.translate',\r\n modal,\r\n kendoModule,\r\n sharedServicesModule,\r\n sharedFactoriesModule,\r\n sharedComponentsModule,\r\n sharedFiltersModule,\r\n sharedDirectivesModule,\r\n signalRModule,\r\n dashboardReportsModule\r\n ])\r\n\r\n // components\r\n .component(\"home\", home)\r\n .component(\"myDownloads\", myDownloads)\r\n .component(\"signReportFromEmail\", signReportFromEmail)\r\n\r\n // controllers\r\n .controller('navCtrl', navCtrl)\r\n .controller('pageWrapperCtrl', pageWrapperCtrl)\r\n .controller('loginCtrl', loginCtrl)\r\n .controller('redirectCtrl', redirectController)\r\n .controller('callbackCtrl', callbackController)\r\n .controller('rootViewModel', rootController)\r\n .controller('sideNavCtrl', sideNavController)\r\n .controller(\"dynamicTabViewModel\", dynamicTabController)\r\n .controller(\"reportToolbarViewModel\", reportToolbarController)\r\n .controller(\"BackNavigationBarController\", BackNavigationBarController)\r\n .controller(\"npsQuestionModalController\", npsQuestionModalController)\r\n\r\n // configs\r\n .config(routeConfig)\r\n .config(appInsightsConfig)\r\n .config(spinnerConfig)\r\n .config(translationConfig)\r\n .config(tenantInterceptorConfig)\r\n .config(responseErrorInterceptorConfig)\r\n .config(authInterceptor)\r\n .config(flowJsConfig)\r\n //providers\r\n .provider('dialogs', [dialogsProvider])\r\n // runs\r\n .run(raygunConfig)\r\n .run(churnZero)\r\n .run(helpObjectConfig)\r\n .run(locationConfig)\r\n .name;","export default function () {\r\n var _b = 'static'; // backdrop\r\n var _k = true; // keyboard\r\n var _w = 'dialogs-default'; // windowClass\r\n var _bdc = 'dialogs-backdrop-default'; // backdropClass\r\n var _copy = true; // controls use of angular.copy\r\n var _wTmpl = null; // window template\r\n var _wSize = 'md'; // large modal window default\r\n var _animation = true; // true/false to use animation\r\n\r\n var _fa = false; // fontawesome flag\r\n\r\n var _setOpts = function (opts) {\r\n var _opts = {};\r\n opts = opts || {};\r\n _opts.kb = angular.isDefined(opts.keyboard) ? !!opts.keyboard : _k; // values: true,false\r\n _opts.bd = angular.isDefined(opts.backdrop) ? opts.backdrop : _b; // values: 'static',true,false\r\n _opts.bdc = angular.isDefined(opts.backdropClass) ? opts.backdropClass : _bdc; // additional CSS class(es) to be added to the modal backdrop\r\n _opts.ws = angular.isDefined(opts.size) && (opts.size === 'sm' || opts.size === 'lg' || opts.size === 'md') ? opts.size : _wSize; // values: 'sm', 'lg', 'md'\r\n _opts.wc = angular.isDefined(opts.windowClass) ? opts.windowClass : _w; // additional CSS class(es) to be added to a modal window\r\n _opts.anim = angular.isDefined(opts.animation) ? !!opts.animation : _animation; // values: true,false\r\n return _opts;\r\n }; // end _setOpts\r\n\r\n\r\n this.$get = ['$uibModal', function ($uibModal) {\r\n\r\n return {\r\n\r\n create: function (url, ctrlr, data, opts, ctrlAs) {\r\n var copy = opts && angular.isDefined(opts.copy) ? opts.copy : _copy;\r\n opts = _setOpts(opts);\r\n\r\n return $uibModal.open({\r\n templateUrl: url,\r\n controller: ctrlr,\r\n controllerAs: ctrlAs,\r\n keyboard: opts.kb,\r\n backdrop: opts.bd,\r\n backdropClass: opts.bdc,\r\n windowClass: opts.wc,\r\n size: opts.ws,\r\n animation: opts.anim,\r\n resolve: {\r\n data: function () {\r\n if (copy) {\r\n return angular.copy(data);\r\n }\r\n else {\r\n return data;\r\n }\r\n }\r\n }\r\n }); // end modal.open\r\n } // end create\r\n\r\n }; // end return\r\n\r\n }]; // end $get\r\n} // end provider dialogs\r\n//== Dialogs.Main Module =====================================================//\r\n\r\n/**\r\n * Include this module 'dialogs.main' in your module's dependency list where you\r\n * intend to use it. Then inject the 'dialogs' service in your controllers that\r\n * need it.\r\n */","import { standardGridPageSize, customAutoCompleteFilter, customBooleanFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $filter, SavedReportSelectorService, dataService, buildRoleBPPostBody, objectIdDataService, CustomReportServices, $http, $location, helperService, reportsDataService, reportsService, risksDataService, businessProcessDataService) {\r\n\r\n var vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.roleSelectedIds = [];\r\n vm.allRolesOption = true;\r\n vm.updateRoleDataSource = updateRoleDataSource;\r\n vm.urlString = \"\";\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n vm.runSavedReport = runSavedReport;\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n\r\n vm.businessProcessDropdownChange = businessProcessDropdownChange;\r\n vm.rulesetDropdownChange = rulesetDropdownChange;\r\n vm.productDropdownChange = productDropdownChange;\r\n\r\n $scope.deleteFilter = deleteFilter;\r\n $scope.clearAllFilters = clearAllFilters;\r\n $scope.saveReportLayoutButton = saveReportLayoutButton;\r\n $scope.applySelectedFilter = applySelectedFilter;\r\n $scope.populateCriteriaModel = populateCriteriaModel;\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if ($scope.grid) {\r\n $scope.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n if ($location.path().includes('Detailed')) {\r\n vm.isDetailed = true;\r\n } else {\r\n vm.isDetailed = false;\r\n }\r\n\r\n function activate() {\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource($scope.ObjectId);\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n $scope.reportId = securityObject.ReportID;\r\n\r\n // --- Grid initialization ---\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = false;\r\n $scope.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n $scope.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n getReportMetadata().then(_ => {\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n if ($rootScope.loadedSavedReport) {\r\n runSavedReport();\r\n }\r\n });\r\n // ---\r\n\r\n getRulesets()\r\n .then(_ => {\r\n return getBusinessProcesses();\r\n });\r\n });\r\n }\r\n\r\n activate();\r\n\r\n\r\n function runSavedReport() {\r\n if ($scope.gridReady && $rootScope.loadedSavedReport && vm.productsDataSource && vm.roleDataSource && vm.objectDataSource && vm.filterCriteria.fields) {\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n generateGridWithSelectedValues();\r\n } else if ($scope.gridReady && !$rootScope.loadedSavedReport && vm.productsDataSource && vm.roleDataSource && vm.objectDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n $scope.populateCriteriaModel();\r\n }\r\n }\r\n\r\n function applySelectedFilter() {\r\n helperService.applyFilterCatchError($scope);\r\n }\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n IsAssigned: { type: \"boolean\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n\r\n var data = buildRoleBPPostBody.generateBody($scope.ObjectId, vm.selectedProductId, vm.roles, vm.selectedBusinessProcesses, $scope.reportId, vm.selectedObject.Identifier, vm.selectedRuleset.RulesetId);\r\n\r\n data['QueryInput'] = helperService.prepareSortsAndFilters(options);\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: vm.urlString,\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(response => {\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n\r\n let securityObject = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type);\r\n\r\n if (securityObject) {\r\n $scope.reportId = securityObject.ReportID;\r\n }\r\n\r\n }).catch(response => {\r\n const timeout = 408;\r\n\r\n if (response.status !== timeout) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n function populateCriteriaModel() {\r\n // do not continue if the proper criteria are not loaded\r\n if (!vm.selectedProduct || !vm.selectedBusinessProcesses || !vm.roleSelectedIds || !vm.selectedRuleset || !vm.selectedObject) {\r\n return;\r\n }\r\n vm.product = vm.selectedProduct;\r\n vm.roles = vm.roleSelectedIds;//.map(function (el) { return el.ID; });\r\n vm.ruleset = vm.selectedRuleset;\r\n vm.selectedProductId = [];\r\n vm.businessProcesses = vm.selectedBusinessProcesses;\r\n vm.securityObject = vm.selectedObject;\r\n\r\n var criteria = [];\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityObject\", 'SecurityObject', vm.securityObject.AltName, { \"Id\": vm.selectedObject.Identifier }));\r\n\r\n vm.roleSelectedIds.forEach(function (role, i) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityRoleIdentifier\", 'Role', role.Name, role.Identifier));\r\n });\r\n\r\n vm.selectedBusinessProcesses.forEach(bp => {\r\n criteria.push(CustomReportServices.CreateCriteria(\"ProcessId\", 'BusinessProcessId', bp.Name, bp.Id));\r\n });\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"RulesetId\", 'Ruleset', vm.ruleset.Name, vm.ruleset.RulesetId));\r\n criteria.push(CustomReportServices.CreateCriteria(\"ProductId\", 'Product', vm.product.Name, vm.product.ID));\r\n vm.selectedProductId.push(vm.product.ID);\r\n $scope.reportDetailsModel = criteria;\r\n\r\n vm.urlString = vm.isDetailed ? apiUrl + \"api/arm/sap/places/rolebusinessprocessaccessdetailed\" : apiUrl + \"api/arm/places/rolebusinessprocessaccess\";\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n }\r\n\r\n function generateGridWithSelectedValues() {\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.dataSource._filter = null;\r\n $scope.grid.dataSource._sort = null;\r\n }\r\n\r\n populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, $scope.grid, true);\r\n }\r\n\r\n function setColumns() {\r\n if (vm.isDetailed && vm.selectedProduct.ID === \"SAP\") {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleType\", title: \"Role Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectId\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ProductName\", title: \"Product\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Authorization\", title: \"Authorization\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetLow\", title: \"Ruleset Low\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetHigh\", title: \"RulesetHigh\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalLow\", title: \"Technical Low\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Low\", title: \"Low\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalHigh\", title: \"Technical High\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"High\", title: \"High\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"IsAssigned\", width: 180, filterable: customBooleanFilter }\r\n ];\r\n } else {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleType\", title: \"Role Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectId\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"ProductName\", title: \"Product\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n }\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.sortable = false;\r\n\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n\r\n setLayout();\r\n }\r\n\r\n function setLayout() {\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout($scope, null);\r\n }\r\n }\r\n\r\n function deleteFilter(id) {\r\n CustomReportServices.deleteFilterFilterManager($scope, id);\r\n }\r\n\r\n function clearAllFilters() {\r\n $scope.gridDataSource.filter({});\r\n }\r\n\r\n function saveReportLayoutButton() {\r\n CustomReportServices.saveGridLayout($scope, null);\r\n }\r\n\r\n function productDropdownChange() {\r\n setColumns();\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n dataService.getProducts().then(function (response) {\r\n response.data = response.data.filter(p => p.UserHasAccess === true);\r\n vm.productsDataSource = response.data;\r\n let defaultProduct = vm.productsDataSource.find(obj => obj.Name === $rootScope.UserPreferences.PreferredProduct);\r\n let defaultProductSelected = vm.productsDataSource.indexOf(defaultProduct);\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProduct = vm.productsDataSource[defaultProductSelected];\r\n } else {\r\n vm.selectedProduct = response.data[0];\r\n }\r\n\r\n vm.selectedProduct = SavedReportSelectorService.checkSavedReportForSingleProduct($rootScope.loadedSavedReport, response.data, vm.selectedProduct);\r\n productDropdownChange();\r\n runSavedReport();\r\n });\r\n\r\n function getRulesets() {\r\n return risksDataService.getRulesets()\r\n .then(response => {\r\n response.data = $filter('filter')(response.data, { IsEnabled: true });\r\n vm.rulesetDataSource = response.data;\r\n vm.rulesetDataSource = $filter('orderBy')(response.data, 'Name');\r\n vm.selectedRuleset = SavedReportSelectorService.checkSavedReportForRuleset($rootScope.loadedSavedReport, response.data, vm.rulesetDataSource);\r\n runSavedReport();\r\n });\r\n }\r\n\r\n function getBusinessProcesses() {\r\n businessProcessDataService.getBusinessProcessesByRiskRuleset(vm.selectedRuleset.RulesetId).then(response => {\r\n var businessProcesses = response.data;\r\n businessProcesses = $filter('orderBy')(response.data, 'Name');\r\n\r\n if (businessProcesses.length > 0) {\r\n vm.allBusinessProcessesDropdownObject = { \"Name\": \"All Business Processes\", \"Id\": \"AllObjectsInMultiSelect\", \"Type\": \"BP\", \"Objects\": [], \"DisplayName\": \"All Business Processes\" };\r\n businessProcesses.unshift(vm.allBusinessProcessesDropdownObject);\r\n }\r\n\r\n vm.businessProcessDataSource = businessProcesses;\r\n\r\n vm.selectedBusinessProcesses = [vm.allBusinessProcessesDropdownObject];\r\n vm.selectedBusinessProcesses = SavedReportSelectorService.checkSavedReportForBusinessProcesses($rootScope.loadedSavedReport, response.data, vm.selectedBusinessProcesses);\r\n businessProcessDropdownChange();\r\n runSavedReport();\r\n });\r\n }\r\n\r\n function businessProcessDropdownChange() {\r\n vm.selectedBusinessProcesses = helperService.deselectAllObjectsIfOtherIsClicked(vm.selectedBusinessProcesses, vm.allBusinessProcessesDropdownObject);\r\n\r\n if (vm.selectedBusinessProcesses) {\r\n\r\n vm.objectDataSource = [];\r\n\r\n if (vm.selectedBusinessProcesses.some(bp => bp.Id === \"AllObjectsInMultiSelect\")) {\r\n vm.businessProcessDataSource.forEach(function (row) {\r\n row.Objects.forEach(function (row) {\r\n vm.objectDataSource.push(row.SecurityObject);\r\n });\r\n });\r\n\r\n vm.objectDataSource = vm.objectDataSource.unique();\r\n } else {\r\n vm.selectedBusinessProcesses.forEach(bp => {\r\n bp.Objects.forEach(object => vm.objectDataSource.push(object.SecurityObject));\r\n });\r\n }\r\n\r\n vm.objectDataSource = $filter('orderBy')(vm.objectDataSource, 'AltName');\r\n vm.objectDataSource.unshift({ \"Id\": null, \"AltName\": \"All Objects\" });\r\n vm.selectedObject = vm.objectDataSource[0];\r\n vm.selectedObject = SavedReportSelectorService.checkSavedReportForObjects($rootScope.loadedSavedReport, vm.objectDataSource, vm.selectedObject);\r\n runSavedReport();\r\n }\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n async function rulesetDropdownChange() {\r\n await getBusinessProcesses();\r\n if (vm.filterCriteria.query && vm.filterCriteria.query.some(criteria => criteria.CriteriaDisplayName.includes(\"Business Process\"))) {\r\n vm.filterCriteria.query = vm.filterCriteria.query.filter(criteria => {\r\n if (criteria.CriteriaDisplayName) {\r\n return !criteria.CriteriaDisplayName.includes(\"Business Process\");\r\n } else {\r\n return criteria;\r\n }\r\n });\r\n vm.filterCriteria.needsUpdate = true;\r\n }\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n function updateRoleDataSource(roleDataSource, roleSelectedIds) {\r\n vm.roleDataSource = roleDataSource;\r\n vm.roleSelectedIds = roleSelectedIds;\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n function getReportMetadata() {\r\n return reportsDataService.getReportMetadata($scope.reportId)\r\n .then(data => {\r\n\r\n vm.reportMetadata = data.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n\r\n return vm.reportMetadata;\r\n });\r\n }\r\n // ---\r\n}","import { customAutoCompleteFilter, standardGridPageSize, customBooleanFilter, customDatePickerFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, SavedReportSelectorService, $filter, dataService, objectIdDataService, CustomReportServices, $http, $location, helperService, reportsDataService, reportsService) {\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if ($scope.grid) {\r\n $scope.gridReady = true;\r\n $scope.runSavedReport();\r\n }\r\n });\r\n\r\n var vm = $scope.vm = {};\r\n\r\n vm.allRolesOption = false;\r\n\r\n $scope.helperService = helperService;\r\n\r\n vm.updateRoleDataSource = updateRoleDataSource;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n $scope.$watch('vm.roleSelectedIds', function () {\r\n $scope.populateCriteriaModel();\r\n }, true);\r\n\r\n objectIdDataService.getObjectID().then(async function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource($scope.ObjectId);\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n await aLAPluginActive();\r\n\r\n dataService.getProducts().then(function (response) {\r\n vm.multiSelect = true;\r\n response.data = response.data.filter(p => p.UserHasAccess === true);\r\n vm.productsDataSource = response.data;\r\n let defaultProduct = vm.productsDataSource.find(obj => obj.Name === $rootScope.UserPreferences.PreferredProduct);\r\n let defaultProductSelected = vm.productsDataSource.indexOf(defaultProduct);\r\n if ($scope.isDetailed) {\r\n vm.multiSelect = false;\r\n vm.productsDataSource = vm.productsDataSource.filter(product => product.Type === 'AC' || product.Type === 'AX5' || product.Type === \"AX\" || product.Type === \"AX7\" || product.Type === \"AAD\" || product.Type === 'PS' || product.Type === 'GP' || product.Type === 'D365Bc' || product.Type === 'D365S' || product.Type === 'SL' || product.Type === 'NAV' || product.Type === 'SAPB1' || product.Type === 'JDE' || product.Type === 'CPA' || product.Type === 'SF' || product.Type === 'NS' || product.Type === 'WD' || product.Type === 'INT' || product.Type === 'ORFC' || product.Type === 'Zuo' || product.Type === 'SAP');\r\n let defaultProductExists = vm.productsDataSource.some(obj => obj.Name === $rootScope.UserPreferences.PreferredProduct);\r\n if (defaultProductExists) {\r\n defaultProductSelected = vm.productsDataSource.indexOf(defaultProduct);\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProduct = vm.productsDataSource[defaultProductSelected];\r\n } else {\r\n vm.selectedProduct = vm.productsDataSource[0];\r\n }\r\n } else {\r\n vm.selectedProduct = vm.productsDataSource[0];\r\n }\r\n } else {\r\n vm.multiSelect = true;\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProduct = vm.productsDataSource[defaultProductSelected];\r\n } else {\r\n vm.selectedProduct = angular.copy(vm.productsDataSource);\r\n }\r\n }\r\n\r\n vm.selectedProduct = SavedReportSelectorService.checkSavedReportForSingleProduct($rootScope.loadedSavedReport, response.data, vm.selectedProduct);\r\n\r\n if ($scope.isDetailed) {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type).ReportID;\r\n } else {\r\n $scope.reportId = securityObject.ReportID;\r\n }\r\n vm.roleSelectedIds = [];\r\n vm.setColumns();\r\n $scope.runSavedReport();\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n getReportMetadata().then(_ => {\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n if ($rootScope.loadedSavedReport) {\r\n $scope.runSavedReport();\r\n }\r\n });\r\n // ---\r\n\r\n });\r\n });\r\n\r\n if ($location.path().has('Detailed')) {\r\n $scope.isDetailed = true;\r\n } else {\r\n $scope.isDetailed = false;\r\n }\r\n\r\n $scope.runSavedReport = function () {\r\n if ($scope.gridReady && $rootScope.loadedSavedReport && vm.productsDataSource && vm.riskDataSource && vm.roleDataSource && vm.filterCriteria.fields) {\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n $scope.generateGridWithSelectedValues();\r\n } else if ($scope.gridReady && !$rootScope.loadedSavedReport && vm.productsDataSource && vm.riskDataSource && vm.roleDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n $scope.populateCriteriaModel();\r\n }\r\n };\r\n\r\n async function aLAPluginActive() {\r\n let response = await $http.get(`${apiUrl}/api/core/plugins`);\r\n vm.aLAPluginActive = response.data.some(plugin => plugin.Id === 9 && plugin.Active);\r\n }\r\n\r\n $scope.productDropdownChange = function () {\r\n if ($scope.isDetailed) {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type).ReportID;\r\n getReportMetadata();\r\n }\r\n\r\n vm.roleSelectedIds = [];\r\n vm.setColumns();\r\n $scope.populateCriteriaModel();\r\n };\r\n\r\n $scope.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n $scope.mainGridOptions.autoBind = false;\r\n\r\n $scope.applySelectedFilter = function () {\r\n helperService.applyFilterCatchError($scope);\r\n };\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n DefaultMitigation: { type: \"boolean\" },\r\n AutoMitigated: { type: \"boolean\" },\r\n RiskId: { type: \"number\" },\r\n IsDefaultRuleset: { type: \"boolean\" },\r\n LastUsed: { type: \"date\" },\r\n ProcessID: { type: \"number\" },\r\n RulesetId: { type: \"number\" },\r\n IsAssigned: { type: \"boolean\" },\r\n ViewCount: { type: \"number\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n\r\n read: function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n var data = { 'RoleIds': $scope.roles, 'RiskIds': $scope.risks, 'RulesetId': vm.selectedRuleset.RulesetId, 'ProductId': $scope.product.ID };\r\n data['QueryInput'] = helperService.prepareSortsAndFilters(options);\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: $scope.urlString,\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(function (response) {\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n\r\n if ($scope.isDetailed) {\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type);\r\n\r\n $scope.reportId = securityObject.ReportID;\r\n }\r\n\r\n }).catch(response => {\r\n const timeout = 408;\r\n\r\n if (response.status !== timeout) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n $scope.populateCriteriaModel = function () {\r\n // do not continue if the proper criteria are not loaded\r\n if (!vm.selectedProduct || vm.riskSelectedIds === undefined || vm.roleSelectedIds === undefined || !vm.selectedRuleset) {\r\n return;\r\n }\r\n var criteria = [];\r\n\r\n $scope.product = vm.selectedProduct;\r\n if (vm.roleSelectedIds && vm.riskSelectedIds) {\r\n $scope.roles = vm.roleSelectedIds.map(role => role.Identifier);\r\n\r\n $scope.risks = helperService.returnNullIfAllIsFound(vm.riskSelectedIds.map(function (el) { return el.Id; }));\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"ProductId\", 'Product', $scope.product.Name, $scope.product.ID));\r\n\r\n vm.roleSelectedIds.forEach(function (row, i) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityRoleIdentifier\", 'Role', row.Name, row.Identifier));\r\n });\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"RulesetId\", 'Ruleset', vm.selectedRuleset.Name, vm.selectedRuleset.RulesetId));\r\n\r\n vm.riskSelectedIds.forEach(function (row, i) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"RiskId\", 'Risk', row.Name, row.Id));\r\n });\r\n }\r\n\r\n $scope.reportDetailsModel = criteria;\r\n\r\n if ($scope.isDetailed === true) {\r\n let productString = vm.selectedProduct.Type === 'SAP' ? 'SAP' : vm.selectedProduct.ID;\r\n $scope.urlString = apiUrl + 'api/arm/' + productString + '/places/rolerisk';\r\n } else {\r\n $scope.urlString = apiUrl + 'api/arm/places/rolerisk';\r\n }\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n\r\n };\r\n\r\n $scope.generateGridWithSelectedValues = function () {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.dataSource._filter = null;\r\n $scope.grid.dataSource._sort = null;\r\n }\r\n\r\n $scope.populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, $scope.grid, true);\r\n };\r\n\r\n vm.setColumns = function () {\r\n\r\n if ($scope.isDetailed === true) {\r\n if (vm.selectedProduct.Type === 'AX' || vm.selectedProduct.Type === 'AX7') {\r\n $scope.mainGridColumns = [\r\n { field: \"RulesetId\", title: \"Ruleset Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetName\", title: \"Ruleset\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsDefaultRuleset\", title: \"Default Ruleset\", width: 150, filterable: customBooleanFilter },\r\n { field: \"RiskId\", title: \"Risk Id\", width: 50, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessName\", title: \"Business Process Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleSystemName\", title: \"Role System Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SubRoleName\", title: \"Sub Role Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SubRoleSystemName\", title: \"Sub Role System Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"DutyName\", title: \"Duty Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"DutySystemName\", title: \"Duty System Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegeName\", title: \"Privilege Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegeSystemName\", title: \"Privilege System Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Security Object Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectType\", title: \"Security Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 240, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigation\", title: \"Default Mitigation\", width: 150, filterable: customBooleanFilter },\r\n { field: \"BusinessCycleName\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 190, filterable: customAutoCompleteFilter }\r\n ]; \r\n\r\n if (vm.aLAPluginActive && vm.selectedProduct.Type === 'AX7') {\r\n const lastUsedCol = { field: \"LastUsed\", title: \"Last Used\", template: \"{{ dataItem.LastUsed | date:'short'}}\", width: 200, filterable: customDatePickerFilter },\r\n viewCountCol = { field: \"ViewCount\", title: \"View Count\", width: 130, filterable: customAutoCompleteFilter };\r\n\r\n $scope.mainGridColumns.push(lastUsedCol);\r\n $scope.mainGridColumns.push(viewCountCol);\r\n }\r\n } else if (vm.selectedProduct.Type === 'AAD') {\r\n $scope.mainGridColumns = [\r\n { field: \"RulesetId\", title: \"Ruleset Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetName\", title: \"Ruleset\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsDefaultRuleset\", title: \"Default Ruleset\", width: 150, filterable: customBooleanFilter },\r\n { field: \"RiskId\", title: \"Risk Id\", width: 50, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessName\", title: \"Business Process Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Permission\", title: \"Permission\", width: 120, filterable: customAutoCompleteFilter }, \r\n { field: \"SecurityObjectName\", title: \"Security Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectType\", title: \"Security Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 240, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigation\", title: \"Default Mitigation\", width: 150, filterable: customBooleanFilter },\r\n { field: \"BusinessCycleName\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'GP') {\r\n $scope.mainGridColumns = [\r\n { field: \"RulesetId\", title: \"Ruleset Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetName\", title: \"Ruleset\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsDefaultRuleset\", title: \"Default Ruleset\", width: 150, filterable: customBooleanFilter },\r\n { field: \"RiskId\", title: \"Risk Id\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 240, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigation\", title: \"Default Mitigation\", width: 150, filterable: customBooleanFilter },\r\n { field: \"SecurityRoleID\", title: \"Security Role Id\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleName\", title: \"Security Role\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleTypeName\", title: \"Security Role Type\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessName\", title: \"Business Process\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"TaskName\", title: \"Task\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectType\", title: \"Security Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Series\", title: \"Series\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycleName\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'AX5') {\r\n $scope.mainGridColumns = [\r\n { field: \"RulesetId\", title: \"Ruleset Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetName\", title: \"Ruleset\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsDefaultRuleset\", title: \"Default Ruleset\", width: 150, filterable: customBooleanFilter },\r\n { field: \"RiskId\", title: \"Risk Id\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 240, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigation\", title: \"Default Mitigation\", width: 150, filterable: customBooleanFilter },\r\n { field: \"DomainId\", title: \"Domain Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"DomainName\", title: \"Domain\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleID\", title: \"Security Group Id\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleName\", title: \"Security Group\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleTypeName\", title: \"Security Role Type\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"ProcessID\", title: \"Business Process Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessName\", title: \"Business Process\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectType\", title: \"Security Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycleName\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n }\r\n else if (vm.selectedProduct.Type === 'SAPB1' || vm.selectedProduct.Type === 'AC' || vm.selectedProduct.Type === 'D365Bc' || vm.selectedProduct.Type === 'D365S' || vm.selectedProduct.Type === 'NAV' || vm.selectedProduct.Type === 'SL' || vm.selectedProduct.Type === 'INT' || vm.selectedProduct.Type === 'Zuo') {\r\n $scope.mainGridColumns = [\r\n { field: \"RulesetId\", title: \"Ruleset Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetName\", title: \"Ruleset\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsDefaultRuleset\", title: \"Default Ruleset\", width: 150, filterable: customBooleanFilter },\r\n { field: \"RiskId\", title: \"Risk Id\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 240, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigation\", title: \"Default Mitigation\", width: 150, filterable: customBooleanFilter },\r\n { field: \"SecurityRoleID\", title: \"Security Role Id\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleName\", title: \"Security Role\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleTypeName\", title: \"Security Role Type\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessName\", title: \"Business Process\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectType\", title: \"Security Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycleName\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'SAP') {\r\n $scope.mainGridColumns = [\r\n { field: \"RulesetId\", title: \"Ruleset Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetName\", title: \"Ruleset\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsDefaultRuleset\", title: \"Default Ruleset\", width: 150, filterable: customBooleanFilter },\r\n { field: \"RiskId\", title: \"Risk Id\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 240, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigation\", title: \"Default Mitigation\", width: 150, filterable: customBooleanFilter },\r\n { field: \"SecurityRoleID\", title: \"Security Role Id\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleName\", title: \"Security Role\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleTypeName\", title: \"Security Role Type\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessName\", title: \"Business Process\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectType\", title: \"Security Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Authorization\", title: \"Authorization\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetLow\", title: \"Ruleset Low\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetHigh\", title: \"Ruleset High\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"TehnicalLow\", title: \"Technical Low\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Low\", title: \"Low\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"TehnicalHigh\", title: \"Technical High\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"High\", title: \"High\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycleName\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'PS') {\r\n $scope.mainGridColumns = [\r\n { field: \"RiskId\", title: \"Risk Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 240, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessName\", title: \"Business Process Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"PermissionListId\", title: \"Permission List\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"MenuName\", title: \"Menu\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"BarName\", title: \"Bar Name\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"ComponentName\", title: \"Component\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MarketName\", title: \"Market\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Security Object Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectLabel\", title: \"Security Object Label\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AutoMitigated\", title: \"Auto Mitigated\", width: 120, filterable: customBooleanFilter, hidden: true },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigation\", title: \"Default Mitigated\", width: 150, filterable: customBooleanFilter },\r\n { field: \"BusinessCycleName\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'JDE' || vm.selectedProduct.Type === 'SF' || vm.selectedProduct.Type === 'NS' || vm.selectedProduct.Type === 'WD') {\r\n $scope.mainGridColumns = [\r\n { field: \"RiskId\", title: \"Risk Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessName\", title: \"Business Process Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleName\", title: \"Security Role\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleTypeName\", title: \"Security Role Type\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectType\", title: \"Security Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigation\", title: \"Default Mitigation\", width: 150, filterable: customBooleanFilter },\r\n { field: \"BusinessCycleName\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'CPA' || vm.selectedProduct.Type === 'ORFC') {\r\n $scope.mainGridColumns = [\r\n { field: \"RiskId\", title: \"Risk Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessName\", title: \"Business Process Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleName\", title: \"Security Role\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleTypeName\", title: \"Security Role Type\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectType\", title: \"Security Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigation\", title: \"Default Mitigation\", width: 150, filterable: customBooleanFilter },\r\n { field: \"BusinessCycleName\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n }\r\n } else {\r\n $scope.mainGridColumns = [\r\n { field: \"RiskId\", title: \"Risk ID\", width: 50, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 240, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigation\", title: \"Default Mitigation\", width: 75, filterable: customBooleanFilter },\r\n { field: \"BusinessCycleName\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.mainGridOptions.sortable = false;\r\n\r\n $scope.mainGridOptions.filterable = false;\r\n }\r\n\r\n vm.setLayout();\r\n };\r\n\r\n vm.setLayout = function () {\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout($scope, vm.selectedProduct.ID);\r\n }\r\n };\r\n\r\n\r\n $scope.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n\r\n $scope.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n $scope.deleteFilter = function (id) {\r\n CustomReportServices.deleteFilterFilterManager($scope, id);\r\n };\r\n\r\n $scope.clearAllFilters = function () {\r\n $scope.gridDataSource.filter({});\r\n };\r\n\r\n $scope.saveReportLayoutButton = function () {\r\n CustomReportServices.saveGridLayout($scope, vm.selectedProduct.ID);\r\n };\r\n\r\n vm.deselectSelectedRisk = function () {\r\n vm.riskSelectedIds = helperService.deselectAllObjectsIfOtherIsClicked(vm.riskSelectedIds, vm.allRisksDropdownObject);\r\n $scope.populateCriteriaModel();\r\n };\r\n\r\n $http.get(apiUrl + 'api/arm/riskrulesets')\r\n .then(function (response) {\r\n response.data = $filter('filter')(response.data, { IsEnabled: true });\r\n vm.rulesetDataSource = response.data;\r\n vm.rulesetDataSource = $filter('orderBy')(response.data, 'Name');\r\n vm.selectedRuleset = SavedReportSelectorService.checkSavedReportForRuleset($rootScope.loadedSavedReport, response.data, vm.rulesetDataSource);\r\n getRisks();\r\n });\r\n\r\n $scope.rulesetDropdownChange = function () {\r\n getRisks();\r\n if (vm.filterCriteria.query && vm.filterCriteria.query.some(criteria => criteria.CriteriaDisplayName.includes(\"Business Process\"))) {\r\n vm.filterCriteria.query = vm.filterCriteria.query.filter(criteria => {\r\n if (criteria.CriteriaDisplayName) {\r\n return !criteria.CriteriaDisplayName.includes(\"Business Process\");\r\n } else {\r\n return criteria;\r\n }\r\n });\r\n vm.filterCriteria.needsUpdate = true;\r\n }\r\n $scope.populateCriteriaModel();\r\n };\r\n\r\n function getRisks() {\r\n $http.get(apiUrl + 'api/arm/risks/ruleset/' + vm.selectedRuleset.RulesetId).then(function (response) {\r\n response.data = $filter('filter')(response.data, { Enabled: true });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.allRisksDropdownObject = { \"Name\": \"All Risks\", \"Id\": 'AllObjectsInMultiSelect' };\r\n response.data.unshift(vm.allRisksDropdownObject);\r\n vm.riskDataSource = response.data;\r\n vm.riskSelectedIds = [vm.allRisksDropdownObject];\r\n vm.riskSelectedIds = SavedReportSelectorService.checkSavedReportForRisks($rootScope.loadedSavedReport, response.data, vm.riskSelectedIds);\r\n $scope.runSavedReport();\r\n });\r\n }\r\n\r\n function updateRoleDataSource(roleDataSource, roleSelectedIds) {\r\n vm.roleDataSource = roleDataSource;\r\n vm.roleSelectedIds = roleSelectedIds;\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n function getReportMetadata() {\r\n return reportsDataService.getReportMetadata($scope.reportId)\r\n .then(data => {\r\n\r\n vm.reportMetadata = data.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n return vm.reportMetadata;\r\n });\r\n }\r\n // ---\r\n\r\n}","import { customAutoCompleteFilter, standardGridPageSize, customDatePickerFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $filter, $location, SavedReportSelectorService, dataService, buildUserBPPostBody, objectIdDataService, CustomReportServices, $http, helperService, reportsDataService, reportsService, risksDataService, businessProcessDataService) {\r\n\r\n var vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.roleSelectedIds = [];\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n vm.selectedCompanies = [];\r\n vm.selectedProducts = [];\r\n\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n\r\n vm.companyDropdownChange = companyDropdownChange;\r\n vm.businessProcessDropdownChange = businessProcessDropdownChange;\r\n vm.productDropdownChange = productDropdownChange;\r\n vm.rulesetDropdownChange = rulesetDropdownChange;\r\n vm.updateUserDataSource = updateUserDataSource;\r\n vm.runSavedReport = runSavedReport;\r\n\r\n $scope.deleteFilter = deleteFilter;\r\n $scope.clearAllFilters = clearAllFilters;\r\n $scope.saveReportLayoutButton = saveReportLayoutButton;\r\n $scope.applySelectedFilter = applySelectedFilter;\r\n $scope.populateCriteriaModel = populateCriteriaModel;\r\n\r\n $scope.$on('kendoWidgetCreated', function (event, widget) {\r\n if (widget === $scope.grid) {\r\n $scope.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n // --- Grid initialization ---\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = false;\r\n $scope.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n $scope.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n activate();\r\n\r\n async function activate() {\r\n\r\n $scope.ObjectId = await objectIdDataService.getObjectID();\r\n await aLAPluginActive();\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource($scope.ObjectId);\r\n const securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n if ($location.path().has('Detailed')) vm.isDetailed = true;\r\n else vm.isDetailed = false;\r\n\r\n let products = await dataService.getProducts();\r\n products.data = products.data.filter(p => p.UserHasAccess === true);\r\n vm.productsDataSource = products.data;\r\n let defaultProduct = vm.productsDataSource.find(obj => obj.Name === $rootScope.UserPreferences.PreferredProduct);\r\n let defaultProductSelected = vm.productsDataSource.indexOf(defaultProduct);\r\n if (vm.isDetailed) {\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProducts = [vm.productsDataSource[defaultProductSelected]];\r\n } else {\r\n vm.selectedProducts = [vm.productsDataSource[0]];\r\n }\r\n } else {\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProducts = [vm.productsDataSource[defaultProductSelected]];\r\n } else {\r\n vm.selectedProducts = angular.copy(vm.productsDataSource);\r\n }\r\n }\r\n\r\n vm.selectedProducts = SavedReportSelectorService.checkSavedReportForProducts($rootScope.loadedSavedReport, products.data, vm.selectedProducts);\r\n\r\n if (vm.isDetailed) {\r\n if (vm.selectedProducts[0].IsCustom) {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, \"customProduct\").ReportID;\r\n } else {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProducts[0].Type).ReportID;\r\n }\r\n } else {\r\n $scope.reportId = securityObject.ReportID;\r\n }\r\n\r\n await setColumns();\r\n await getCompanies();\r\n await getRulesets();\r\n await getBusinessProcesses();\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n await getReportMetadata();\r\n // ---\r\n\r\n runSavedReport();\r\n }\r\n\r\n function runSavedReport() {\r\n if ($scope.gridReady && $rootScope.loadedSavedReport && vm.productsDataSource && vm.objectDataSource && vm.companyDataSource && vm.rulesetDataSource && vm.businessProcessDataSource && vm.filterCriteria.fields) {\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n generateGridWithSelectedValues();\r\n } else if ($scope.gridReady && !$rootScope.loadedSavedReport && vm.productsDataSource && vm.objectDataSource && vm.companyDataSource && vm.rulesetDataSource && vm.businessProcessDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n $scope.populateCriteriaModel();\r\n }\r\n }\r\n\r\n async function aLAPluginActive() {\r\n let response = await $http.get(`${apiUrl}/api/core/plugins`);\r\n vm.aLAPluginActive = response.data.some(plugin => plugin.Id === 9 && plugin.Active);\r\n }\r\n\r\n function applySelectedFilter() {\r\n helperService.applyFilterCatchError($scope);\r\n }\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n LastRun: { type: \"date\" },\r\n LastUsed: { type: \"date\" },\r\n UseCount: { type: \"number\" },\r\n ViewCount: { type: \"number\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n\r\n var data = buildUserBPPostBody.generateBody(vm.selectedCompanies, vm.selectedRuleset, vm.selectedBusinessProcesses, $scope.ObjectId, vm.selectedProducts, vm.selectedObject, vm.selectedUserIds, $scope.reportId);\r\n data['QueryInput'] = helperService.prepareSortsAndFilters(options);\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: vm.urlString,\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(response => {\r\n var data = response.data._embedded.reportData;\r\n\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n\r\n if (data.length > 0) {\r\n vm.dynamicSideGridDataSource = null;\r\n }\r\n if (vm.isDetailed) {\r\n let securityObject;\r\n if (vm.selectedProducts[0].IsCustom) {\r\n // the security object for custom products has null for product type so we can't send the real product type\r\n securityObject = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, \"customProduct\");\r\n } else {\r\n securityObject = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProducts[0].Type);\r\n }\r\n if (securityObject) {\r\n $scope.reportId = securityObject.ReportID;\r\n }\r\n }\r\n\r\n }).catch(response => {\r\n const timeout = 408;\r\n\r\n if (response.status !== timeout) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n vm.dynamicSideGridOptions = helperService.setNonPageableGridOptions([]);\r\n\r\n function updateUserDataSource(selectedUsers, selectedUserIds, userDataSource) {\r\n vm.users = selectedUsers;\r\n vm.selectedUserIds = selectedUserIds;\r\n vm.userDataSource = userDataSource;\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n function continuePopulateCriteriaModel() {\r\n return vm.selectedProducts && vm.selectedUserIds && vm.selectedCompanies && vm.selectedRuleset && vm.selectedBusinessProcesses && vm.selectedObject;\r\n }\r\n\r\n function populateCriteriaModel() {\r\n // only continue if the proper criteria are loaded\r\n if (continuePopulateCriteriaModel()) {\r\n\r\n vm.products = vm.selectedProducts;\r\n vm.ruleset = vm.selectedRuleset;\r\n vm.users = vm.users?.length ? vm.users : [{ \"Name\": \"All Users\", \"ID\": null }];\r\n vm.businessProcesses = vm.selectedBusinessProcesses;\r\n vm.securityObject = vm.selectedObject;\r\n\r\n var criteria = [];\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityObject\", 'SecurityObject', vm.securityObject.AltName, { \"Id\": vm.selectedObject.Identifier }));\r\n\r\n vm.selectedBusinessProcesses.forEach(bp => {\r\n criteria.push(CustomReportServices.CreateCriteria(\"ProcessId\", 'BusinessProcessId', bp.Name, bp.Id));\r\n });\r\n\r\n vm.products.forEach(function (row) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"ProductId\", 'Product', row.Name, row.ID));\r\n });\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"RulesetId\", 'Ruleset', vm.ruleset.Name, vm.ruleset.RulesetId));\r\n\r\n vm.users.forEach(function (user) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"UserMasterId\", 'User', user.Name, user.ID));\r\n });\r\n\r\n vm.selectedCompanies.forEach(function (row) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"CompanyMasterId\", 'Company', row.Name, row.ID));\r\n });\r\n\r\n $scope.reportDetailsModel = criteria;\r\n\r\n vm.urlString = apiUrl + 'api/arm/places/userbusinessprocessaccess';\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n }\r\n }\r\n\r\n function generateGridWithSelectedValues() {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.dataSource._filter = null;\r\n $scope.grid.dataSource._sort = null;\r\n }\r\n\r\n populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, $scope.grid, true);\r\n }\r\n\r\n function setColumns() {\r\n if (vm.selectedProducts) {\r\n\r\n if (vm.selectedProducts.length === 1 && vm.isDetailed === true) {\r\n if (vm.selectedProducts[0].Type === 'OR') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserMenuName\", title: \"User Menu Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MenuName\", title: \"Menu Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"UserSubMenuName\", title: \"User Sub Menu Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SubMenuName\", title: \"Sub Menu Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Prompt\", title: \"Prompt\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Path\", title: \"Path\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n if (!helperService.convertConfigValueToTrueFalse('OR_RBACEnabled')) {\r\n vm.mainGridColumns.splice(6, 0, { field: \"Role\", title: \"Role\", width: 180, filterable: customAutoCompleteFilter }, { field: \"RoleCode\", title: \"Role Code\", width: 180, filterable: customAutoCompleteFilter }, { field: \"RoleType\", title: \"Role Type\", width: 180, filterable: customAutoCompleteFilter });\r\n } else {\r\n vm.mainGridColumns.splice(6, 0, { field: \"Responsibility\", title: \"Responsibility\", width: 180, filterable: customAutoCompleteFilter }, { field: \"ResponsibilityID\", title: \"Responsibility ID\", width: 180, filterable: customAutoCompleteFilter }, { field: \"ResponsibilityKey\", title: \"Responsibility Key\", width: 180, filterable: customAutoCompleteFilter });\r\n }\r\n\r\n } else if (vm.selectedProducts[0].Type === 'INT') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Module\", title: \"Module\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n } else if (vm.selectedProducts[0].Type === 'NS') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'NAV') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"FullName\", title: \"Full Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'D365Bc') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'Zuo' || vm.selectedProducts[0].IsCustom) {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'CPA') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'AX7') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleSystemName\", title: \"Role System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SubRoleSystemName\", title: \"Sub Role System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubRoleName\", title: \"Sub Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"DutySystemName\", title: \"Duty System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DutyName\", title: \"Duty Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegeSystemName\", title: \"Privilege System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"PrivilegeName\", title: \"Privilege Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"LicenseType\", title: \"License Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n if (vm.aLAPluginActive) {\r\n const lastUsedCol = { field: \"LastUsed\", title: \"Last Used\", template: \"{{ dataItem.LastUsed | date:'short'}}\", width: 200, filterable: customDatePickerFilter },\r\n viewCountCol = { field: \"ViewCount\", title: \"View Count\", width: 130, filterable: customAutoCompleteFilter };\r\n\r\n vm.mainGridColumns.push(lastUsedCol);\r\n vm.mainGridColumns.push(viewCountCol);\r\n }\r\n } else if (vm.selectedProducts[0].Type === 'AX') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RolePhysicalName\", title: \"Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubRoleName\", title: \"Sub Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SubRolePhysicalName\", title: \"Sub Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DutyName\", title: \"Duty Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"DutyPhysicalName\", title: \"Duty Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"PrivilegeName\", title: \"Privilege Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegePhysicalName\", title: \"Privilege Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"EntryPointName\", title: \"Entry Point Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"EntryPointPhysicalName\", title: \"Entry Point Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"EntryPointAccessName\", title: \"Entry Point Access\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"EntryPointTypeName\", title: \"Entry Point Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectHelpText\", title: \"Object Help Text\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'SAP') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserGroup\", title: \"User Group\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserType\", title: \"User Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Name\", title: \"Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Authorization\", title: \"Authorization\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetLow\", title: \"Ruleset Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetHigh\", title: \"Ruleset High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalLow\", title: \"Technical Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Low\", title: \"Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalHigh\", title: \"Technical High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"High\", title: \"High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"UseCount\", title: \"Use Count\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"LastRun\", title: \"Last Run Date\", width: 200, filterable: customDatePickerFilter },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Department\", title: \"Department\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Location\", title: \"Location\", width: 200, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'SAPB1') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AuthorizationSource\", title: \"Authorization Source\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'SF') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserFullName\", title: \"User Full Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedByType\", title: \"Assigned by Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedByName\", title: \"Assigned by Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Module\", title: \"Module\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'GP') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"TaskName\", title: \"Task Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Series\", title: \"Series\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'AC') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Path\", title: \"Path\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'PS') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"PermissionListId\", title: \"Permission List\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MenuName\", title: \"Menu\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"BarName\", title: \"Bar Name\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"ComponentName\", title: \"Component\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MarketName\", title: \"Market\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'JDE') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Application\", title: \"Application\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Version\", title: \"Version\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessSource\", title: \"Access Source\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'ORFC') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RolePhysicalName\", title: \"Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubRoleName\", title: \"Sub Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SubRolePhysicalName\", title: \"Sub Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"PrivilegeName\", title: \"Privilege Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegePhysicalName\", title: \"Privilege Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RolePath\", title: \"Role Path\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'AX5') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"DomainId\", title: \"Domain\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AXGroup\", title: \"Group\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'SL') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessSource\", title: \"Access Source\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'WD') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityGroup\", title: \"Security Group\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessType\", title: \"Business Process Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessDefinition\", title: \"Business Process Definition\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"StepOrder\", title: \"Step Order\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoutingRestrictions\", title: \"Routing Restrictions\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Condition\", title: \"Condition\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'D365S') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"TeamName\", title: \"Team Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegeName\", title: \"Privilege Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n else if (vm.selectedProducts[0].Type === 'AD') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserId\", title: \"User Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SubGroupName\", title: \"Sub-Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Path\", title: \"Path\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n else if (vm.selectedProducts[0].Type === 'AAD') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserId\", title: \"User Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SubGroupName\", title: \"Sub-Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Path\", title: \"Path\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'OREPM') {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserID\", title: \"User Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Enabled\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Service\", title: \"Service\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GrantedThroughGroup\", title: \"Granted Through Group\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n } else {\r\n vm.mainGridColumns = [\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"Description\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"CompanyName\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ProductName\", title: \"Product\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 180, filterable: customAutoCompleteFilter, hidden: true }\r\n ];\r\n }\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.sortable = false;\r\n\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n\r\n\r\n setLayout();\r\n }\r\n }\r\n\r\n function setLayout() {\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout($scope, null);\r\n }\r\n }\r\n\r\n vm.changeRowSelected = function (kendoEvent) {\r\n\r\n vm.sideGridIsNew = false;\r\n vm.sideGridLoading = true;\r\n vm.dynamicSideGridDataSource = [];\r\n\r\n vm.dynamicSideGridOptions = helperService.setNonPageableGridOptions([]);\r\n vm.sideGridIsNew = true;\r\n var grid = kendoEvent.sender;\r\n vm.sideGridHeader = grid.dataItem(grid.select()).ProductName;\r\n CustomReportServices.getAccessDetailsForRow($scope, grid).then(response => {\r\n if (response.data.length > 0) {\r\n vm.dynamicSideGridColumns = Object.keys(response.data[0]).map(f => {\r\n var column = {};\r\n column.field = f;\r\n column.title = helperService.headerStringTransformer(f);\r\n if (f === 'LastUsed') {\r\n column.template = \"{{ dataItem.LastUsed | date:'short'}}\";\r\n }\r\n return column;\r\n });\r\n vm.dynamicSideGridDataSource = new kendo.data.DataSource({\r\n data: response.data\r\n });\r\n }\r\n });\r\n vm.sideGridLoading = false;\r\n\r\n };\r\n\r\n function deleteFilter(id) {\r\n CustomReportServices.deleteFilterFilterManager($scope, id);\r\n }\r\n\r\n function clearAllFilters() {\r\n $scope.gridDataSource.filter({});\r\n }\r\n\r\n function saveReportLayoutButton() {\r\n CustomReportServices.saveGridLayout($scope, null);\r\n }\r\n\r\n function productDropdownChange() {\r\n if (vm.isDetailed) {\r\n if (vm.selectedProducts && vm.selectedProducts.length > 1) {\r\n vm.selectedProducts.remove(vm.selectedProducts[0]);\r\n }\r\n if (vm.selectedProducts) {\r\n if (vm.selectedProducts[0].IsCustom) {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, \"customProduct\").ReportID;\r\n } else {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProducts[0].Type).ReportID;\r\n }\r\n getReportMetadata();\r\n }\r\n }\r\n setColumns();\r\n }\r\n\r\n function rolesDropdownChange() {\r\n vm.roleSelectedIds = helperService.deselectAllObjectsIfOtherIsClicked(vm.roleSelectedIds, vm.allRolesDropdownObject);\r\n }\r\n\r\n function rulesetDropdownChange() {\r\n getBusinessProcesses();\r\n if (vm.filterCriteria.query && vm.filterCriteria.query.some(criteria => criteria.CriteriaDisplayName.includes(\"Business Process\"))) {\r\n vm.filterCriteria.query = vm.filterCriteria.query.filter(criteria => {\r\n if (criteria.CriteriaDisplayName) {\r\n return !criteria.CriteriaDisplayName.includes(\"Business Process\");\r\n } else {\r\n return criteria;\r\n }\r\n });\r\n vm.filterCriteria.needsUpdate = true;\r\n }\r\n }\r\n\r\n function getCompanies() {\r\n risksDataService.getCompanies().then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.allCompaniesDropdownObject = { \"Name\": \"All Companies\", \"ID\": \"AllObjectsInMultiSelect\" };\r\n response.data = response.data.filter(c => c.UserHasAccess === true);\r\n response.data.unshift(vm.allCompaniesDropdownObject);\r\n vm.companyDataSource = response.data;\r\n let defaultCompany = response.data.find(obj => obj.Name === $rootScope.UserPreferences.PreferredCompany);\r\n let defaultCompanySelected = vm.companyDataSource.indexOf(defaultCompany);\r\n if ($rootScope.UserPreferences.PreferredCompany !== null) {\r\n vm.selectedCompanies = [vm.companyDataSource[defaultCompanySelected]];\r\n } else {\r\n vm.selectedCompanies = [vm.allCompaniesDropdownObject];\r\n }\r\n vm.selectedCompanies = SavedReportSelectorService.checkSavedReportForCompanies($rootScope.loadedSavedReport, response.data, vm.selectedCompanies);\r\n companyDropdownChange();\r\n runSavedReport();\r\n });\r\n }\r\n\r\n function getRulesets() {\r\n return risksDataService.getRulesets()\r\n .then(response => {\r\n response.data = $filter('filter')(response.data, { IsEnabled: true });\r\n vm.rulesetDataSource = response.data;\r\n vm.rulesetDataSource = $filter('orderBy')(response.data, 'Name');\r\n vm.selectedRuleset = SavedReportSelectorService.checkSavedReportForRuleset($rootScope.loadedSavedReport, response.data, vm.rulesetDataSource);\r\n runSavedReport();\r\n });\r\n }\r\n\r\n async function getBusinessProcesses() {\r\n if (vm.selectedBusinessProcesses) {\r\n vm.selectedBusinessProcesses = null;\r\n }\r\n let response = await businessProcessDataService.getBusinessProcessesByRiskRuleset(vm.selectedRuleset.RulesetId);\r\n let businessProcesses = response.data;\r\n businessProcesses = $filter('orderBy')(response.data, 'Name');\r\n\r\n if (businessProcesses.length > 0) {\r\n vm.invalidRuleset = false;\r\n vm.allBusinessProcessesDropdownObject = { \"Name\": \"All Business Processes\", \"Id\": \"AllObjectsInMultiSelect\", \"Type\": \"BP\", \"Objects\": [], \"DisplayName\": \"All Business Processes\" };\r\n businessProcesses.unshift(vm.allBusinessProcessesDropdownObject); vm.businessProcessDataSource = businessProcesses;\r\n vm.selectedBusinessProcesses = [vm.allBusinessProcessesDropdownObject];\r\n vm.selectedBusinessProcesses = SavedReportSelectorService.checkSavedReportForBusinessProcesses($rootScope.loadedSavedReport, response.data, vm.selectedBusinessProcesses);\r\n businessProcessDropdownChange();\r\n runSavedReport();\r\n } else {\r\n vm.invalidRuleset = true;\r\n }\r\n }\r\n\r\n function businessProcessDropdownChange() {\r\n vm.selectedBusinessProcesses = helperService.deselectAllObjectsIfOtherIsClicked(vm.selectedBusinessProcesses, vm.allBusinessProcessesDropdownObject);\r\n\r\n if (vm.selectedBusinessProcesses) {\r\n\r\n vm.objectDataSource = [];\r\n\r\n if (vm.selectedBusinessProcesses.some(bp => bp.Id === \"AllObjectsInMultiSelect\")) {\r\n vm.businessProcessDataSource.forEach(function (row) {\r\n row.Objects.forEach(function (row) {\r\n vm.objectDataSource.push(row.SecurityObject);\r\n });\r\n });\r\n\r\n vm.objectDataSource = vm.objectDataSource.unique();\r\n } else {\r\n vm.selectedBusinessProcesses.forEach(bp => {\r\n bp.Objects.forEach(object => vm.objectDataSource.push(object.SecurityObject));\r\n });\r\n vm.objectDataSource = vm.objectDataSource.unique();\r\n }\r\n\r\n vm.objectDataSource = $filter('orderBy')(vm.objectDataSource, 'AltName');\r\n vm.objectDataSource.unshift({ \"Id\": null, \"AltName\": \"All Objects\" });\r\n vm.selectedObject = vm.objectDataSource[0];\r\n vm.selectedObject = SavedReportSelectorService.checkSavedReportForObjects($rootScope.loadedSavedReport, vm.objectDataSource, vm.selectedObject);\r\n runSavedReport();\r\n }\r\n }\r\n\r\n function companyDropdownChange(companies) {\r\n if (companies) {\r\n vm.selectedCompanies = helperService.deselectAllObjectsIfOtherIsClicked(companies, vm.allCompaniesDropdownObject);\r\n } else {\r\n vm.selectedCompanies = helperService.deselectAllObjectsIfOtherIsClicked(vm.selectedCompanies, vm.allCompaniesDropdownObject);\r\n }\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n function getReportMetadata() {\r\n return reportsDataService.getReportMetadata($scope.reportId)\r\n .then(data => {\r\n\r\n vm.reportMetadata = data.data._embedded.reportData;\r\n if (vm.selectedProducts.some(product => product.Type === 'OR')) {\r\n if (helperService.convertConfigValueToTrueFalse('OR_RBACEnabled')) {\r\n vm.reportMetadata.Columns = vm.reportMetadata.Columns.filter(column => column.FieldName !== \"Role\" && column.FieldName !== \"RoleCode\" && column.FieldName !== \"RoleType\");\r\n } else {\r\n vm.reportMetadata.Columns = vm.reportMetadata.Columns.filter(column => column.FieldName !== \"Responsibility\" && column.FieldName !== \"ResponsibilityID\" && column.FieldName !== \"ResponsibilityKey\");\r\n }\r\n }\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n return vm.reportMetadata;\r\n });\r\n }\r\n // ---\r\n\r\n}","import swal from \"sweetalert2\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, $filter, $timeout, helperService, $http, statusDataService, controlLibraryDataService, FileSaver) {\r\n\r\n var vm = $scope.vm = {};\r\n const riskToMitigate = $scope.riskToMitigate;\r\n\r\n $scope.originalMitigation = riskToMitigate.MitigationID;\r\n $scope.originalStatus = riskToMitigate.StatusID;\r\n $scope.originalMitigationNotes = riskToMitigate.MitigationNotes;\r\n $scope.originalExpirationDate = riskToMitigate.ExpirationDate;\r\n $scope.deleteRiskMitigationRecord = deleteRiskMitigationRecord;\r\n $scope.okMitigateRisk = okMitigateRisk;\r\n $scope.deselectSelectedCompany = deselectSelectedCompany;\r\n $scope.saveAttachments = saveAttachments;\r\n $scope.removeFile = removeFile;\r\n $scope.downloadFile = downloadFile;\r\n $scope.minimumExpiryDate = new Date();\r\n\r\n $http.get(apiUrl + 'api/core/configuration/ARM_StandardMitigations').then(function (response) {\r\n $scope.standardMitigations = response.data;\r\n });\r\n\r\n $scope.controlsLoading = true;\r\n $http.get(apiUrl + 'api/arm/controls').then(function (response) {\r\n $scope.controlLibrary = response.data;\r\n if (riskToMitigate.Status != 'New') {\r\n $http.get(apiUrl + 'api/arm/usermitigations/risk/' + riskToMitigate.RiskId + '/user/' + riskToMitigate.UserMasterID + '/company/' + riskToMitigate.CompanyMasterID).then(function (response) {\r\n $scope.selectedControls = new Array();\r\n $scope.originalControls = new Array();\r\n if (response.data.Controls != null && response.data.Controls != undefined && response.data.Controls.length > 0) {\r\n for (var i = 0; i < response.data.Controls.length; ++i) {\r\n var matchingControl = $scope.controlLibrary.find(x => x.Identifier === response.data.Controls[i].ControlId);\r\n if (matchingControl != null && matchingControl != undefined) {\r\n $scope.selectedControls.push(matchingControl);\r\n $scope.originalControls.push(matchingControl);\r\n }\r\n }\r\n }\r\n if (response.data.Attachments.length > 0) {\r\n $scope.riskToMitigate.attachments = [...response.data.Attachments];\r\n }\r\n if (response.data.ExpirationDate) {\r\n $scope.originalExpirationDate = response.data.ExpirationDate.slice();\r\n $scope.riskToMitigate.ExpirationDate = response.data.ExpirationDate.slice();\r\n }\r\n $scope.controlsLoading = false;\r\n });\r\n }\r\n else {\r\n $scope.riskToMitigate.StatusID = \"\";\r\n $scope.selectedControls = new Array();\r\n $scope.originalControls = new Array();\r\n $scope.controlsLoading = false;\r\n }\r\n });\r\n\r\n $http.get(apiUrl + 'api/universal/companies/user/' + riskToMitigate.UserMasterID + '/risk/' + riskToMitigate.RiskId).then(function (response) {\r\n var index = -1;\r\n for (var i = 0, len = response.data.length; i < len; i++) {\r\n if (response.data[i].ID === riskToMitigate.CompanyMasterID) {\r\n index = i;\r\n response.data.splice(index, 1);\r\n break;\r\n }\r\n }\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $scope.mitigateAddtionalDataSource = response.data;\r\n\r\n if ($scope.mitigateAddtionalDataSource.length > 1) {\r\n\r\n $scope.allCompaniesDropdownObject = {\r\n Name: 'All Companies',\r\n ID: 'AllObjectsInMultiSelect'\r\n };\r\n $scope.mitigateAddtionalDataSource.unshift($scope.allCompaniesDropdownObject);\r\n }\r\n });\r\n\r\n $http.get(apiUrl + 'api/arm/risks/' + riskToMitigate.RiskId).then(function (response) {\r\n $scope.riskObjects = response.data;\r\n });\r\n\r\n if ($scope.riskToMitigate.Status === 'New') {\r\n $http.get(`${apiUrl}api/arm/usermitigations/user/${$scope.riskToMitigate.UserMasterID}/company/${$scope.riskToMitigate.CompanyMasterID}/risk/${$scope.riskToMitigate.RiskId}`).then(response => {\r\n $scope.expiredMitigationsDataSource = response.data;\r\n });\r\n }\r\n\r\n $scope.similarMitigationsDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/arm/usermitigations/risk/' + riskToMitigate.RiskId + '/user/' + riskToMitigate.UserMasterID + '/similar').then(function (response) {\r\n options.success(response.data);\r\n $scope.similarMitigations = response.data;\r\n }, function (response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (riskToMitigate.UserMitigationID) {\r\n $http.get(apiUrl + 'api/arm/usermitigations/' + riskToMitigate.UserMitigationID + '/history').then(function (response) {\r\n $scope.mitigationHistoryDataSource = response.data;\r\n });\r\n }\r\n\r\n $scope.mitigatedRisk = {\r\n selectedMitigateAddtional: '',\r\n companyIds: ''\r\n };\r\n\r\n var similarMitigationColumns = [\r\n { field: \"UseMitigation\", title: \" \", template: \"Apply\", width: 80, filterable: false },\r\n { field: \"UserMasterName\", title: \"User Name\", width: 105, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyMasterName\", title: \"Company Name\", width: 175, filterable: customAutoCompleteFilter },\r\n { field: \"StatusName\", title: \"Status\", width: 125, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationName\", title: \"Mitigation\", width: 105, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 155, filterable: customAutoCompleteFilter },\r\n { field: \"ControlsString\", title: \"Controls\", width: 165, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n $scope.similarMitigationsGridOptions = helperService.setMainGridOptions(similarMitigationColumns);\r\n\r\n\r\n $http.get(apiUrl + 'api/arm/mitigations').then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $scope.mitigations = response.data;\r\n });\r\n\r\n statusDataService.getStatuses().then(function (response) {\r\n response.data = $filter('filter')(response.data, { CanCurrentUserAccess: true });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $scope.statuses = response.data;\r\n\r\n $scope.statuses.unshift({\r\n ID: \"\",\r\n Name: \"-- Select a Status --\"\r\n })\r\n\r\n });\r\n\r\n $scope.companyIds = {};\r\n\r\n $scope.useMitigation = function (risk) {\r\n $scope.similarIsCollapsed = false;\r\n $timeout(function () {\r\n riskToMitigate.StatusID = risk.StatusID;\r\n riskToMitigate.MitigationID = risk.MitigationID;\r\n riskToMitigate.MitigationNotes = risk.MitigationNotes;\r\n var newCons = new Array();\r\n if (risk.Controls != null && risk.Controls != undefined && risk.Controls.length > 0) {\r\n riskToMitigate.MitigationID = null;\r\n for (var i = 0; i < risk.Controls.length; ++i) {\r\n var matchingControl = $scope.controlLibrary.find(x => x.Identifier === risk.Controls[i].ControlId);\r\n if (matchingControl != null && matchingControl != undefined) {\r\n newCons.push(matchingControl);\r\n }\r\n }\r\n }\r\n $scope.selectedControls = newCons;\r\n }, 500);\r\n };\r\n\r\n $scope.controlsEqual = function () {\r\n if ($scope.originalControls == undefined || $scope.selectedControls == undefined) return true;\r\n if ($scope.originalControls.length != $scope.selectedControls.length) return false;\r\n if ($scope.originalControls.map(x => x.Identifier).sort().join(',') === $scope.selectedControls.map(x => x.Identifier).sort().join(',')) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n function okMitigateRisk() {\r\n\r\n var methodType = '';\r\n var data = '';\r\n var url = '';\r\n\r\n if (riskToMitigate.Status != 'New') {\r\n\r\n methodType = 'PUT';\r\n url = apiUrl + 'api/arm/usermitigations/' + riskToMitigate.UserMitigationID;\r\n\r\n data = {\r\n \"ID\": riskToMitigate.UserMitigationID,\r\n \"CompanyMasterIds\": [riskToMitigate.CompanyMasterID],\r\n \"RiskId\": riskToMitigate.RiskId,\r\n \"IsAutoMitigated\": riskToMitigate.AutoMitigated,\r\n \"MitigationID\": riskToMitigate.MitigationID,\r\n \"MitigationNotes\": riskToMitigate.MitigationNotes,\r\n \"StatusID\": riskToMitigate.StatusID,\r\n \"UserMasterID\": riskToMitigate.UserMasterID,\r\n \"Controls\": $scope.selectedControls.map(x => x.Identifier),\r\n \"ExpirationDate\": riskToMitigate.ExpirationDate\r\n };\r\n } else {\r\n\r\n methodType = 'POST';\r\n url = apiUrl + 'api/arm/usermitigations';\r\n\r\n data = {\r\n \"CompanyMasterIds\": [riskToMitigate.CompanyMasterID],\r\n \"RiskId\": riskToMitigate.RiskId,\r\n \"IsAutoMitigated\": riskToMitigate.AutoMitigated,\r\n \"MitigationID\": riskToMitigate.MitigationID,\r\n \"MitigationNotes\": riskToMitigate.MitigationNotes,\r\n \"StatusID\": riskToMitigate.StatusID,\r\n \"UserMasterID\": riskToMitigate.UserMasterID,\r\n \"Controls\": $scope.selectedControls.map(x => x.Identifier),\r\n \"ExpirationDate\": riskToMitigate.ExpirationDate\r\n };\r\n }\r\n\r\n $scope.updateInProgress = new createSpinner();\r\n $http({\r\n method: methodType,\r\n url: url,\r\n data: data\r\n }).then(function successCallback(response) {\r\n\r\n switch (methodType) {\r\n case 'PUT':\r\n saveAttachments($scope.vm.attachments.flow.files, riskToMitigate.UserMitigationID);\r\n mitigateInAdditionalCompanies(riskToMitigate.UserMitigationID);\r\n break;\r\n case 'POST':\r\n saveAttachments($scope.vm.attachments.flow.files, response.data);\r\n mitigateInAdditionalCompanies(response.data[0]);\r\n break;\r\n\r\n }\r\n\r\n\r\n $timeout(function () {\r\n $scope.killModal = true;\r\n\r\n helperService.successfulSaveButton($scope.updateInProgress).then(function (result) {\r\n $scope.$parent.gridDataSource.read();\r\n $uibModalInstance.close();\r\n });\r\n\r\n }, 2000);\r\n\r\n }, function errorCallback(response) {\r\n $scope.updateInProgress.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n async function saveAttachments(files, userMitigationId, companies) {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n let fd = new FormData();\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"UserMitigation\");\r\n\r\n if (companies) {\r\n fd.append('DataTypeId', companies);\r\n await controlLibraryDataService.addAttachments(fd);\r\n }\r\n else {\r\n fd.append('DataTypeId', [userMitigationId]);\r\n await controlLibraryDataService.addAttachments(fd);\r\n }\r\n }\r\n\r\n async function removeFile(file) {\r\n $scope.fileActionPending = true;\r\n\r\n try {\r\n await controlLibraryDataService.deleteAttachment(file.Identifier);\r\n const index = $scope.riskToMitigate.attachments.findIndex(remainingFile => remainingFile.Identifier === file.Identifier);\r\n $scope.riskToMitigate.attachments.splice(index, 1);\r\n $scope.fileActionPending = false;\r\n } catch (_) {\r\n $scope.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function downloadFile(file) {\r\n $scope.fileActionPending = true;\r\n\r\n try {\r\n let response = await controlLibraryDataService.downloadAttachment(file.Identifier);\r\n FileSaver.saveAs(response.data, file.FileName);\r\n $scope.fileActionPending = false;\r\n } catch (_) {\r\n $scope.fileActionPending = false;\r\n }\r\n }\r\n\r\n function mitigateInAdditionalCompanies(mitigationId) {\r\n if ($scope.mitigatedRisk !== '' && $scope.mitigatedRisk.companyIds !== '') {\r\n let id = mitigationId;\r\n\r\n $scope.additionalCompanies = [];\r\n\r\n if ($scope.mitigatedRisk.companyIds[0].Name === 'All Companies') {\r\n $scope.mitigateAddtionalDataSource.forEach(company => $scope.additionalCompanies.push(company.ID));\r\n $scope.additionalCompanies.shift();\r\n } else {\r\n $scope.mitigatedRisk.companyIds.forEach(company => { $scope.additionalCompanies.push(company.ID); });\r\n }\r\n\r\n let data = {\r\n \"ID\": id,\r\n \"CompanyMasterIds\": $scope.additionalCompanies,\r\n \"RiskId\": riskToMitigate.RiskId,\r\n \"IsAutoMitigated\": riskToMitigate.AutoMitigated,\r\n \"MitigationID\": riskToMitigate.MitigationID,\r\n \"MitigationNotes\": riskToMitigate.MitigationNotes,\r\n \"StatusID\": riskToMitigate.StatusID,\r\n \"UserMasterID\": riskToMitigate.UserMasterID,\r\n \"Controls\": $scope.selectedControls.map(x => x.Identifier),\r\n \"ExpirationDate\": riskToMitigate.ExpirationDate\r\n };\r\n\r\n $http({ method: 'PUT', url: apiUrl + 'api/arm/usermitigations/' + id, data: data })\r\n .then(response => {\r\n return;\r\n \r\n }).catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n }\r\n\r\n function deselectSelectedCompany(companies) {\r\n if (companies) {\r\n $scope.mitigatedRisk.companyIds = helperService.deselectAllObjectsIfOtherIsClicked(companies, $scope.allCompaniesDropdownObject);\r\n } else {\r\n $scope.mitigatedRisk.companyIds = helperService.deselectAllObjectsIfOtherIsClicked($scope.mitigatedRisk.companyIds, $scope.allCompaniesDropdownObject);\r\n }\r\n }\r\n\r\n function deleteRiskMitigationRecord() {\r\n swal(helperService.areYouSureParams('Delete Risk Mitigation', 'Are you sure you want to delete Default this risk mitigation record?', 'Delete'))\r\n .then(_ => {\r\n $scope.deleteInProgress = new createSpinner();\r\n $http.delete(apiUrl + 'api/arm/usermitigations/' + riskToMitigate.UserMitigationID);\r\n $timeout(_ => {\r\n $scope.killModal = true;\r\n helperService.successfulSaveButton($scope.deleteInProgress)\r\n .then(result => {\r\n $scope.$parent.gridDataSource.read();\r\n $uibModalInstance.close();\r\n });\r\n }, 2000);\r\n })\r\n .catch(dismiss => {\r\n return;\r\n });\r\n }\r\n\r\n $scope.cancel = function () { $uibModalInstance.close(); };\r\n\r\n}\r\n","import userRisksMitigationModalController from \"./userRisksMitigationModal.controller\";\r\nimport { standardGridPageSize, customAutoCompleteFilter, customBooleanFilter, customDatePickerFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $uibModal, SavedReportSelectorService, CustomReportServices, BuildUserRisksPostBody, dataService, objectIdDataService, configurationDataService, $filter, $http, $location, helperService, risksDataService, reportsDataService, reportsService) {\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if ($scope.grid) {\r\n $scope.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n $scope.helperService = helperService;\r\n $scope.populateCriteriaModel = populateCriteriaModel;\r\n\r\n var vm = $scope.vm = {};\r\n\r\n vm.selectedCompanies = [];\r\n vm.riskSelectedIds = [];\r\n vm.selectedProducts = [];\r\n vm.dynamicSideGridDataSourceArray = [];\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n vm.productDropdownChange = productDropdownChange;\r\n vm.companyDropdownChange = companyDropdownChange;\r\n vm.rulesetDropdownChange = rulesetDropdownChange;\r\n vm.changeRowSelected = changeRowSelected;\r\n vm.updateUserDataSource = updateUserDataSource;\r\n vm.runSavedReport = runSavedReport;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n activate();\r\n\r\n function activate() {\r\n aLAPluginActive();\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource($scope.ObjectId);\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n $scope.reportId = securityObject.ReportID;\r\n\r\n dataService.getProducts().then(async response => {\r\n response.data = response.data.filter(p => p.UserHasAccess === true);\r\n vm.productsDataSource = response.data;\r\n let defaultProduct = vm.productsDataSource.find(obj => obj.Name === $rootScope.UserPreferences.PreferredProduct);\r\n let defaultProductSelected = vm.productsDataSource.indexOf(defaultProduct);\r\n if (vm.isDetailed || vm.isRoleDetail) {\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProducts = [vm.productsDataSource[defaultProductSelected]];\r\n } else {\r\n vm.productsDataSource = vm.productsDataSource.filter(p => p.Type !== 'AD')\r\n vm.selectedProducts = [vm.productsDataSource[0]];\r\n }\r\n } else {\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProducts = [vm.productsDataSource[defaultProductSelected]];\r\n } else {\r\n vm.selectedProducts = angular.copy(vm.productsDataSource);\r\n }\r\n runSavedReport();\r\n }\r\n\r\n vm.selectedProducts = SavedReportSelectorService.checkSavedReportForProducts($rootScope.loadedSavedReport, response.data, vm.selectedProducts);\r\n\r\n if (vm.selectedProducts[0].Type === 'SAP') {\r\n let { data: s4Enabled } = await configurationDataService.getProductConfigurationValueByName('SAP', 'SAP_ErpType');\r\n vm.s4Enabled = s4Enabled.Value === 'S4';\r\n }\r\n\r\n if (vm.isDetailed || (vm.isRoleDetail && vm.selectedProducts[0].Type === 'SAP')) {\r\n if (vm.selectedProducts[0].IsCustom) {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, \"customProduct\").ReportID;\r\n } else {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProducts[0].Type).ReportID;\r\n }\r\n\r\n } else {\r\n $scope.reportId = securityObject.ReportID;\r\n }\r\n\r\n vm.setColumns();\r\n runSavedReport();\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n getReportMetadata().then(_ => {\r\n if ($rootScope.loadedSavedReport) {\r\n runSavedReport();\r\n }\r\n });\r\n // ---\r\n });\r\n\r\n });\r\n\r\n getCompanies();\r\n getRulesets()\r\n .then(_ => {\r\n return getRisks();\r\n });\r\n }\r\n\r\n if ($location.path().has('Detailed')) {\r\n vm.isDetailed = true;\r\n } else {\r\n vm.isDetailed = false;\r\n }\r\n\r\n if ($location.path().has('RoleDetail')) {\r\n vm.isRoleDetail = true;\r\n } else {\r\n vm.isRoleDetail = false;\r\n }\r\n\r\n function runSavedReport() {\r\n if ($scope.gridReady && $rootScope.loadedSavedReport && vm.productsDataSource && vm.companyDataSource && vm.userDataSource && vm.riskDataSource && vm.rulesetDataSource && vm.filterCriteria.fields) {\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.generateGridWithSelectedValues();\r\n vm.filterCriteria.needsUpdate = true;\r\n } else if ($scope.gridReady && !$rootScope.loadedSavedReport && vm.productsDataSource && vm.companyDataSource && vm.userDataSource && vm.riskDataSource && vm.rulesetDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n $scope.populateCriteriaModel();\r\n }\r\n }\r\n\r\n // Used in App\\Shared\\Partials\\PageHeader.html(26)\r\n $scope.changeView = function () {\r\n if (vm.isDetailed === true) {\r\n $location.path('/AccessControl/Place/UserRisk').search('');\r\n } else {\r\n $location.path('/AccessControl/Place/UserRiskDetailed').search('');\r\n }\r\n };\r\n\r\n // Used in App\\Shared\\Partials\\FilterManagerModal.html(10)\r\n $scope.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n\r\n vm.dynamicSideGridOptions = helperService.setNonPageableGridOptions([]);\r\n\r\n // Used in App\\Shared\\Partials\\ReportToolbar.html(8)\r\n $scope.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n // Used in App\\Shared\\Partials\\ReportToolbar.html(10)\r\n $scope.applySelectedFilter = function () {\r\n helperService.applyFilterCatchError($scope);\r\n };\r\n\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = false;\r\n\r\n $scope.openModal = function () {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/userRisk/userRisksMitigationModal.html',\r\n controller: userRisksMitigationModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n $scope.mitigateRisk = function (dataItem) {\r\n $scope.riskToMitigate = angular.copy(dataItem);\r\n $scope.openModal();\r\n };\r\n\r\n vm.deselectSelectedRisk = function () {\r\n vm.riskSelectedIds = helperService.deselectAllObjectsIfOtherIsClicked(vm.riskSelectedIds, vm.allRisksDropdownObject);\r\n };\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n DefaultMitigated: { type: \"boolean\" },\r\n DefaultMitigationCondition: { type: \"boolean\" },\r\n AutoMitigated: { type: \"boolean\" },\r\n RiskId: { type: \"number\" },\r\n LastRun: { type: \"date\" },\r\n LastUsed: { type: \"date\" },\r\n UseCount: { type: \"number\" },\r\n ViewCount: { type: \"number\" },\r\n UserLastUpdatedDate: { type: \"date\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n\r\n read: function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n var data = BuildUserRisksPostBody.generateBody($scope.ObjectId, vm.selectedUserIds, $scope.companies, $scope.risks, $scope.products, vm.selectedRuleset.RulesetId);\r\n data['QueryInput'] = helperService.prepareSortsAndFilters(options);\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: $scope.urlString,\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(function (response) {\r\n var data = response.data._embedded.reportData;\r\n\r\n data = $filter('orderBy')(data, 'UserName');\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n\r\n if (vm.isDetailed) {\r\n let securityObject;\r\n if (vm.selectedProducts[0].IsCustom) {\r\n // the security object for custom products has null for product type so we can't send the real product type\r\n securityObject = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, \"customProduct\");\r\n } else {\r\n securityObject = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProducts[0].Type);\r\n }\r\n $scope.reportId = securityObject.ReportID;\r\n }\r\n\r\n if (data.length > 0) {\r\n vm.dynamicSideGridDataSourceArray = [];\r\n }\r\n\r\n }).catch(response => {\r\n const timeout = 408;\r\n\r\n if (response.status !== timeout) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n function updateUserDataSource(selectedUsers, selectedUserIds, userDataSource) {\r\n vm.users = selectedUsers;\r\n vm.selectedUserIds = selectedUserIds;\r\n vm.userDataSource = userDataSource;\r\n populateCriteriaModel();\r\n }\r\n\r\n function continuePopulateCriteriaModel() {\r\n return vm.selectedProducts && vm.selectedUserIds && vm.selectedCompanies && vm.riskSelectedIds;\r\n }\r\n\r\n function populateCriteriaModel() {\r\n // only continue if the proper criteria are loaded\r\n if (continuePopulateCriteriaModel()) {\r\n\r\n var criteria = [];\r\n\r\n $scope.products = vm.selectedProducts;\r\n $scope.users = vm.users?.length ? vm.users : [{ \"Name\": \"All Users\", \"ID\": null }];\r\n $scope.companies = vm.selectedCompanies;\r\n $scope.risks = vm.riskSelectedIds;\r\n\r\n $scope.products.forEach(function (row, i) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"ProductId\", 'Product', row.Name, row.ID));\r\n });\r\n\r\n $scope.users.forEach(function (user) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"UserMasterId\", 'User', user.Name, user.ID));\r\n });\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"RulesetId\", 'Ruleset', vm.selectedRuleset.Name, vm.selectedRuleset.RulesetId));\r\n\r\n $scope.companies.forEach(function (row) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"CompanyMasterId\", 'Company', row.Name, row.ID));\r\n });\r\n\r\n $scope.risks.forEach(function (row, i) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"RiskId\", 'Risk', row.Name, row.Id));\r\n });\r\n\r\n if (vm.isRoleDetail) {\r\n if (vm.selectedProducts[0].Type === 'SAP') {\r\n $scope.urlString = `${apiUrl}api/arm/sap/places/userriskroledetail`;\r\n } else {\r\n $scope.urlString = `${apiUrl}api/arm/places/userriskroledetail`;\r\n }\r\n } else if (vm.selectedProducts.length === 1) {\r\n setSingleProductRoute()\r\n } else {\r\n setMultiProductRoute();\r\n }\r\n\r\n function setSingleProductRoute() {\r\n if (vm.isDetailed) {\r\n let productString = vm.selectedProducts[0].Type === 'SAP' ? 'SAP' : vm.selectedProducts[0].ID;\r\n $scope.urlString = `${apiUrl}api/arm/${productString}/places/userrisk`;\r\n } else {\r\n $scope.urlString = `${apiUrl}api/arm/places/userrisk`;\r\n }\r\n }\r\n\r\n function setMultiProductRoute() {\r\n $scope.urlString = `${apiUrl}api/arm/places/userrisk`;\r\n }\r\n\r\n $scope.reportDetailsModel = criteria;\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n }\r\n\r\n }\r\n\r\n function generateGridWithSelectedValues() {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.dataSource._filter = null;\r\n $scope.grid.dataSource._sort = null;\r\n }\r\n\r\n populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, $scope.grid, true);\r\n }\r\n\r\n vm.setColumns = function () {\r\n if (vm.selectedProducts) {\r\n\r\n if (vm.selectedProducts.length === 1 && vm.isDetailed === true) {\r\n if (vm.selectedProducts[0].Type === 'OR') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Responsibility\", title: \"Responsibility\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ResponsibilityKey\", title: \"Responsibility Key\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ResponsibilityID\", title: \"Responsibility ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserMenuName\", title: \"User Menu Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MenuName\", title: \"Menu Name\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"UserSubMenuName\", title: \"User Sub Menu Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SubMenuName\", title: \"Sub Menu Name\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"User Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"FunctionDescription\", title: \"Object Description\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AutoMitigated\", title: \"Auto Mitigated\", width: 180, filterable: customBooleanFilter },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"Prompt\", title: \"Prompt\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Path\", title: \"Path\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 190, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n if (!helperService.convertConfigValueToTrueFalse('OR_RBACEnabled')) {\r\n $scope.mainGridColumns.splice(14, 0, { field: \"Role\", title: \"Role\", width: 180, filterable: customAutoCompleteFilter }, { field: \"RoleCode\", title: \"Role Code\", width: 180, filterable: customAutoCompleteFilter });\r\n $scope.mainGridColumns.splice(17, 0, { field: \"AssignmentType\", title: \"Assignment Type\", width: 180, filterable: customAutoCompleteFilter })\r\n }\r\n\r\n } else if (vm.selectedProducts[0].Type === 'INT') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object Label\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"ApplicationName\", title: \"Application Name\", width: 180, filterable: customAutoCompleteFilter, hidden: !helperService.convertConfigValueToTrueFalse(\"INT_RoleBasedSecurity\") },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter, hidden: helperService.convertConfigValueToTrueFalse(\"INT_RoleBasedSecurity\") },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n } else if (vm.selectedProducts[0].Type === 'NS') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserType\", title: \"User Type\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle \", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description \", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Security Object\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"AccessType\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Role\", title: \"Role\", width: 130, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'NAV') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"FullName\", title: \"Full Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle \", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role ID\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevel\", title: \"Access Level\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description \", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'D365Bc') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle \", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role ID\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevel\", title: \"Access Level\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description \", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'Zuo') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle \", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role ID\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevel\", title: \"Access Level\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description \", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'CPA') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle \", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role ID\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description \", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 190, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'AX7') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectID\", title: \"Security Object ID\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectName\", title: \"Security Object\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleSystemName\", title: \"Role System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubRoleName\", title: \"Sub Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SubRoleSystemName\", title: \"Sub Role System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DutyName\", title: \"Duty\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"DutySystemName\", title: \"Duty System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"PrivilegeName\", title: \"Privilege\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegeSystemName\", title: \"Privilege System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Policy\", title: \"Policy\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 190, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n if (vm.aLAPluginActive) {\r\n const lastUsedCol = { field: \"LastUsed\", title: \"Last Used\", template: \"{{ dataItem.LastUsed | date:'short'}}\", width: 200, filterable: customDatePickerFilter },\r\n viewCountCol = { field: \"ViewCount\", title: \"View Count\", width: 130, filterable: customAutoCompleteFilter };\r\n\r\n $scope.mainGridColumns.push(lastUsedCol);\r\n $scope.mainGridColumns.push(viewCountCol);\r\n }\r\n } else if (vm.selectedProducts[0].Type === 'SAP') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserGroup\", title: \"User Group\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserType\", title: \"User Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Role\", title: \"Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompositeRole\", title: \"Composite Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Label\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Authorization\", title: \"Authorization\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetLow\", title: \"Ruleset Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetHigh\", title: \"Ruleset High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalLow\", title: \"Technical Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Low\", title: \"Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalHigh\", title: \"Technical High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"High\", title: \"High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"AutoMitigated\", title: \"Auto Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"UseCount\", title: \"Use Count\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"LastRun\", title: \"Last Run Date\", template: \"{{ dataItem.LastRun | date:'short'}}\", width: 200, filterable: customDatePickerFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'SAPB1') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AuthorizationSource\", title: \"Authorization Source\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'SF') {\r\n $scope.mainGridColumns = [\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserID\", title: \"User ID\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductModule\", title: \"Module\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedByType\", title: \"Access by Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedBy\", title: \"Access By\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter }\r\n\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'GP') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TaskId\", title: \"Task ID\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TaskName\", title: \"Task\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Series\", title: \"Series\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Alt Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 190, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'AX') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RolePhysicalName\", title: \"Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubRoleName\", title: \"Sub Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SubRolePhysicalName\", title: \"Sub Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DutyName\", title: \"Duty\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"DutyPhysicalName\", title: \"Duty Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"PrivilegeName\", title: \"Privilege\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegePhysicalName\", title: \"Privilege Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"EntryPointName\", title: \"Entry Point Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"EntryPointID\", title: \"Entry Point Physical Name\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"EntryPointTypeName\", title: \"Entry Point Type Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"EntryPointAccess\", title: \"Entry Point Access\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object Alt Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'AC') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object Label\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'PS') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", filterable: customAutoCompleteFilter, width: 90 },\r\n { field: \"SecurityObjectProductName\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object Label\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object Name\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 140, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"PermissionListId\", title: \"Permission List\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"MenuName\", title: \"Menu\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"BarName\", title: \"Bar Name\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"ComponentName\", title: \"Component\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MarketName\", title: \"Market\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'JDE') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 140, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object Label\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object Name\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Application\", title: \"Application\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Version\", title: \"Version\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessSource\", title: \"Access Source\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 140, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'ORFC') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"DefaultMitigationCondition\", title: \"Default Mitigation Condition\", width: 180, filterable: customBooleanFilter, hidden: true },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 140, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RolePhysicalName\", title: \"Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubRoleName\", title: \"Sub Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SubRolePhysicalName\", title: \"Sub Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 140, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AutoMitigated\", title: \"Auto Mitigated\", width: 180, filterable: customBooleanFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserLastUpdatedBy\", title: \"User Last Updated By\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"UserLastUpdatedDate\", title: \"User Last Updated Date\", template: \"{{ dataItem.UserLastUpdatedDate | date:'short'}}\", width: 200, filterable: customDatePickerFilter },\r\n { field: \"RolePath\", title: \"Role Path\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'AX5') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 140, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupId\", title: \"AX Group\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"DomainId\", title: \"AX Domain\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'AAD') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 140, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Role\", title: \"Role\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Group\", title: \"Entra ID Group\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SubGroup\", title: \"Entra ID SubGroup\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'SL') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 140, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AccessSource\", title: \"Access Source\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'WD') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetName\", title: \"Ruleset Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 140, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: \"Object Product Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityGroup\", title: \"Security Group\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessType\", title: \"Business Process Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessDefinition\", title: \"Business Process Definition\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"StepOrder\", title: \"Step Order\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoutingRestrictions\", title: \"Routing Restrictions\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Condition\", title: \"Condition\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CostCenter\", title: \"Cost Center\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Country\", title: \"Country\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"JobProfile\", title: \"Job Profile\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Manager\", title: \"Manager\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"WorkerStatus\", title: \"Worker Status\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'D365S') {\r\n $scope.mainGridColumns = [\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TeamName\", title: \"Team Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegeName\", title: \"Privilege\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Alt Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'OREPM') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: 'User Id', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: 'User Name', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: 'Risk Id', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: 'Risk Name', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: 'Description', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: 'Risk', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: 'Policy', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: 'Business Cycle', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: 'Default Mitigated', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: 'Assigned User', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: 'Mitigation', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: 'Mitigation Controls', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: 'Mitigation Notes', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: 'Business Process', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: 'Group Name', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: 'Group Type', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProductName\", title: 'Object Product', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: 'Object Label', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: 'Object Name', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: 'Object Type', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Service\", title: 'Service', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"GrantedThroughGroup\", title: 'Granted Through Group', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: 'User Enabled', width: 190, filterable: customAutoCompleteFilter },\r\n ];\r\n } else if (vm.selectedProducts[0].IsCustom === true) {\r\n $scope.mainGridColumns = [\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 320, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleType\", title: \"Role Type\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Role\", title: \"Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role Id\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectProductName\", title: 'Object Product', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: 'Object Label', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: 'Object Name', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: 'Object Type', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: 'Access Type', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: 'Access Level', width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"AutoMitigated\", title: \"Auto Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"DefaultMitigationCondition\", title: \"Default Mitigation Condition\", width: 180, filterable: customBooleanFilter, hidden: true },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", filterable: customAutoCompleteFilter, width: 190 },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 130, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n } else if (vm.isRoleDetail) {\r\n $scope.mainGridColumns = [\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 320, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleType\", title: \"Role Type\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Role\", title: \"Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role Id\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"AutoMitigated\", title: \"Auto Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"DefaultMitigationCondition\", title: \"Default Mitigation Condition\", width: 180, filterable: customBooleanFilter, hidden: true },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", filterable: customAutoCompleteFilter, width: 190 },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 130, filterable: customAutoCompleteFilter }\r\n ];\r\n if (vm.selectedProducts[0].Type === 'SAP') {\r\n let roleIndex = $scope.mainGridColumns.findIndex(column => column.field === 'Role');\r\n $scope.mainGridColumns.splice(roleIndex + 1, 0, { field: \"RoleDescription\", title: \"Role Description\", width: 130, filterable: customAutoCompleteFilter }, { field: \"CompositeRole\", title: \"Composite Role\", width: 130, filterable: customAutoCompleteFilter }, { field: \"CompositeRoleDescription\", title: \"Composite Role Description\", width: 320, filterable: customAutoCompleteFilter });\r\n if (vm.s4Enabled) {\r\n $scope.mainGridColumns.splice(roleIndex + 4, 0, { field: \"Catalog\", title: \"Catalog\", width: 130, filterable: customAutoCompleteFilter }, { field: \"CatalogDescription\", title: \"Catalog Description\", width: 130, filterable: customAutoCompleteFilter })\r\n }\r\n\r\n let mitigationNotesIndex = $scope.mainGridColumns.findIndex(column => column.field === 'MitigationNotes');\r\n $scope.mainGridColumns.splice(mitigationNotesIndex + 1, 0,\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Department\", title: \"Department\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Location\", title: \"Location\", width: 200, filterable: customAutoCompleteFilter }\r\n );\r\n }\r\n } else {\r\n $scope.mainGridColumns = [\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 320, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Department\", title: \"Department\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Location\", title: \"Location\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"AutoMitigated\", title: \"Auto Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"DefaultMitigated\", title: \"Default Mitigated\", width: 130, filterable: customBooleanFilter, hidden: true },\r\n { field: \"Status\", title: \"Status\", template: \"{{dataItem.Status}}{{dataItem.Status}}\", filterable: customAutoCompleteFilter, width: 190 },\r\n { field: \"Company\", title: \"Company\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyIds\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUser\", title: \"Assigned User\", width: 130, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.sortable = false;\r\n\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n\r\n setLayout();\r\n }\r\n };\r\n\r\n function setLayout() {\r\n\r\n var productId;\r\n if (vm.isDetailed === true && vm.selectedProducts.length === 1) {\r\n productId = vm.selectedProducts[0].ID;\r\n }\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout($scope, productId);\r\n }\r\n }\r\n\r\n function productDropdownChange() {\r\n if (vm.isDetailed) {\r\n if (vm.selectedProducts && vm.selectedProducts.length > 1) {\r\n vm.selectedProducts.remove(vm.selectedProducts[0]);\r\n }\r\n }\r\n if (vm.isRoleDetail) {\r\n if (vm.selectedProducts && vm.selectedProducts.length > 1) {\r\n // check to see if all products have same product Type\r\n if (vm.selectedProducts.some(product => product.Type !== vm.selectedProducts[0].Type)) {\r\n // if the last added product doesn't match type, we need to replace the array with the new product\r\n vm.selectedProducts = [vm.selectedProducts[vm.selectedProducts.length - 1]];\r\n }\r\n }\r\n }\r\n if (vm.isDetailed || vm.isRoleDetail) {\r\n if (vm.selectedProducts) {\r\n if ((vm.selectedProducts[0].Type === 'SAP' && vm.isRoleDetail) || vm.isDetailed) {\r\n if (vm.selectedProducts[0].IsCustom) {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, \"customProduct\").ReportID;\r\n } else {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProducts[0].Type).ReportID\r\n }\r\n } else {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId).ReportID;\r\n }\r\n getReportMetadata();\r\n }\r\n }\r\n vm.setColumns();\r\n }\r\n\r\n async function aLAPluginActive() {\r\n let response = await $http.get(`${apiUrl}/api/core/plugins`);\r\n vm.aLAPluginActive = response.data.some(plugin => plugin.Id === 9 && plugin.Active);\r\n }\r\n\r\n function getCompanies() {\r\n return risksDataService.getCompanies()\r\n .then(response => {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.allCompaniesDropdownObject = { \"Name\": \"All Companies\", \"ID\": \"AllObjectsInMultiSelect\" };\r\n response.data = response.data.filter(c => c.UserHasAccess === true);\r\n response.data.unshift(vm.allCompaniesDropdownObject);\r\n vm.companyDataSource = response.data;\r\n let defaultCompany = response.data.find(obj => obj.Name === $rootScope.UserPreferences.PreferredCompany);\r\n let defaultCompanySelected = vm.companyDataSource.indexOf(defaultCompany);\r\n if ($rootScope.UserPreferences.PreferredCompany !== null) {\r\n vm.selectedCompanies = [vm.companyDataSource[defaultCompanySelected]];\r\n } else {\r\n vm.selectedCompanies = [vm.allCompaniesDropdownObject];\r\n }\r\n vm.selectedCompanies = SavedReportSelectorService.checkSavedReportForCompanies($rootScope.loadedSavedReport, response.data, vm.selectedCompanies);\r\n vm.companyDropdownChange();\r\n runSavedReport();\r\n });\r\n }\r\n\r\n function getRulesets() {\r\n return risksDataService.getRulesets()\r\n .then(response => {\r\n response.data = $filter('filter')(response.data, { IsEnabled: true });\r\n vm.rulesetDataSource = response.data;\r\n vm.rulesetDataSource = $filter('orderBy')(response.data, 'Name');\r\n vm.selectedRuleset = SavedReportSelectorService.checkSavedReportForRuleset($rootScope.loadedSavedReport, response.data, vm.rulesetDataSource);\r\n runSavedReport();\r\n });\r\n }\r\n\r\n function getRisks() {\r\n return risksDataService.getRisks(vm.selectedRuleset.RulesetId)\r\n .then(response => {\r\n response.data = $filter('filter')(response.data, { Enabled: true });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.allRisksDropdownObject = { \"Name\": \"All Risks\", \"Id\": 'AllObjectsInMultiSelect' };\r\n response.data.unshift(vm.allRisksDropdownObject);\r\n vm.riskDataSource = response.data;\r\n vm.riskSelectedIds = [vm.allRisksDropdownObject];\r\n vm.riskSelectedIds = SavedReportSelectorService.checkSavedReportForRisks($rootScope.loadedSavedReport, response.data, vm.riskSelectedIds);\r\n runSavedReport();\r\n });\r\n }\r\n\r\n function companyDropdownChange(companies) {\r\n if (companies) {\r\n vm.selectedCompanies = helperService.deselectAllObjectsIfOtherIsClicked(companies, vm.allCompaniesDropdownObject);\r\n } else {\r\n vm.selectedCompanies = helperService.deselectAllObjectsIfOtherIsClicked(vm.selectedCompanies, vm.allCompaniesDropdownObject);\r\n }\r\n }\r\n\r\n function rulesetDropdownChange() {\r\n getRisks();\r\n if (vm.filterCriteria.query && vm.filterCriteria.query.some(criteria => criteria.CriteriaDisplayName.includes(\"Business Process\"))) {\r\n vm.filterCriteria.query = vm.filterCriteria.query.filter(criteria => {\r\n if (criteria.CriteriaDisplayName) {\r\n return !criteria.CriteriaDisplayName.includes(\"Business Process\");\r\n } else {\r\n return criteria;\r\n }\r\n });\r\n vm.filterCriteria.needsUpdate = true;\r\n }\r\n }\r\n\r\n function changeRowSelected(kendoEvent) {\r\n vm.sideGridIsNew = false;\r\n vm.sideGridLoading = true;\r\n vm.dynamicSideGridDataSourceArray = [];\r\n vm.dynamicSideGridDataSource = [];\r\n\r\n vm.dynamicSideGridOptions = helperService.setNonPageableGridOptions([]);\r\n vm.sideGridIsNew = true;\r\n var grid = kendoEvent.sender;\r\n $scope.sideGridHeader = grid.dataItem(grid.select()).ProductName;\r\n CustomReportServices.getATChangeCountForRow($scope, grid);\r\n CustomReportServices.getAccessDetailsForRowUserRisks(vm, grid).then(response => {\r\n if (response.data.length > 0) {\r\n CustomReportServices.getAccessDetailsForEachProduct(response.data, grid).then(productAccessDetailsResponse => {\r\n vm.accessDetailsForEachProduct = productAccessDetailsResponse;\r\n vm.accessDetailsForEachProduct = vm.accessDetailsForEachProduct.filter(row => row.DataSource.length > 0);\r\n createDataSources();\r\n });\r\n }\r\n\r\n function createDataSources() {\r\n\r\n vm.accessDetailsForEachProduct.forEach((row, i) => {\r\n let dynamicSideGridColumns = Object.keys(row.DataSource[0]).map(f => {\r\n var column = {};\r\n column.field = f;\r\n column.title = helperService.headerStringTransformer(f);\r\n if (f === 'LastUsed') {\r\n column.template = \"{{ dataItem.LastUsed | date:'short'}}\";\r\n }\r\n return column;\r\n });\r\n vm.dynamicSideGridDataSource = new kendo.data.DataSource({\r\n data: row.DataSource\r\n });\r\n vm.dynamicSideGridDataSourceArray.push({ 'Columns': dynamicSideGridColumns, 'Product': row.Product, 'DataSource': vm.dynamicSideGridDataSource });\r\n });\r\n vm.sideGridLoading = false;\r\n }\r\n });\r\n }\r\n\r\n // Used in App\\Shared\\Services\\reportService.js(16)\r\n $scope.deleteFilter = function (id) {\r\n CustomReportServices.deleteFilterFilterManager($scope, id);\r\n };\r\n\r\n // Used in App\\Shared\\Partials\\ReportToolbar.html(85)\r\n $scope.clearAllFilters = function () {\r\n $scope.gridDataSource.filter({});\r\n };\r\n\r\n // Used in App\\Shared\\Partials\\ReportToolbar.html(48)\r\n $scope.saveReportLayoutButton = function () {\r\n var productId;\r\n if (vm.isDetailed === true && vm.selectedProducts.length === 1) {\r\n productId = vm.selectedProducts[0].ID;\r\n }\r\n CustomReportServices.saveGridLayout($scope, productId);\r\n };\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n function getReportMetadata() {\r\n return reportsDataService.getReportMetadata($scope.reportId)\r\n .then(data => {\r\n vm.reportMetadata = data.data._embedded.reportData;\r\n if (vm.selectedProducts.some(product => product.Type === 'OR')) {\r\n if (helperService.convertConfigValueToTrueFalse('OR_RBACEnabled')) {\r\n vm.reportMetadata.Columns = vm.reportMetadata.Columns.filter(column => column.FieldName !== \"Role\" && column.FieldName !== \"RoleCode\" && column.FieldName !== \"RoleType\");\r\n } else {\r\n vm.reportMetadata.Columns = vm.reportMetadata.Columns.filter(column => column.FieldName !== \"Responsibility\" && column.FieldName !== \"ResponsibilityID\" && column.FieldName !== \"ResponsibilityKey\");\r\n }\r\n }\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n return vm.reportMetadata;\r\n });\r\n }\r\n // ---\r\n\r\n}","import { customAutoCompleteFilter, customDatePickerFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $uibModalInstance, $http, helperService) {\r\n $scope.cancel = _ => {\r\n $uibModalInstance.close();\r\n };\r\n\r\n var report = $scope.report;\r\n\r\n var data = {\r\n \"TransactionId\": report.TransactionInternalID,\r\n \"Date\": report.LastTransactionModifiedDate,\r\n \"MasterDataId\": report.MasterDataID\r\n };\r\n var url = \"\";\r\n\r\n if ($rootScope.NSQuantDetailViewOptions.viewBy === \"byUser\" || $rootScope.NSQuantDetailViewOptions.viewBy === \"byRisk\") {\r\n data[\"UserId\"] = report.UserInternalID;\r\n url = 'api/arm/ns/quantification/details/user';\r\n } else if ($rootScope.NSQuantDetailViewOptions.viewBy === \"byRole\") {\r\n data[\"RoleId\"] = report.RoleID;\r\n url = 'api/arm/ns/quantification/details/role';\r\n }\r\n\r\n $scope.reportDetailsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n Date: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: options => {\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + url,\r\n data: data\r\n }).then(response => {\r\n options.success(response.data.TransactionChanges);\r\n });\r\n }\r\n }\r\n });\r\n\r\n getReportDetailsGridColumns();\r\n $scope.reportDetailsGridOptions = helperService.setMainGridOptions($scope.reportDetailsGridColumns, 400);\r\n $scope.reportDetailsGridOptions.selectable = false;\r\n\r\n function getReportDetailsGridColumns() {\r\n $scope.reportDetailIdentifier;\r\n if (report.RoleID) {\r\n $scope.reportDetailIdentifier = \"User\";\r\n } else {\r\n $scope.reportDetailIdentifier = \"Role\";\r\n }\r\n\r\n $scope.reportDetailsGridColumns = [\r\n { field: $scope.reportDetailIdentifier, title: $scope.reportDetailIdentifier, filterable: customAutoCompleteFilter },\r\n { field: \"Date\", title: \"Date\", template: \"{{ dataItem.Date | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"Context\", title: \"Context\", filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Type\", filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize, customDatePickerFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\nimport NSQuantificationViewDetailsModalController from \"./NSQuantificationViewDetailsModalController\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, KPIGeneratorService, ViewProductImportPageService, objectIdDataService, $http, helperService, $uibModal) {\r\n\r\n var vm = $scope.vm = {};\r\n var initialLoad = true;\r\n\r\n objectIdDataService.getObjectID().then(objectId => {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n $http.get(apiUrl + 'api/core/charts')\r\n .then(response => {\r\n $scope.charts = response.data;\r\n $scope.chartType = $scope.getChartType();\r\n });\r\n\r\n if (!$rootScope.NSQuantDetailViewOptions) {\r\n $rootScope.NSQuantDetailViewOptions = {\r\n viewBy: \"byUser\",\r\n riskType: \"actual\"\r\n };\r\n }\r\n\r\n $scope.NSQuantValues = {\r\n byUserActual: {\r\n chartId: \"11329697-D17B-43D9-8260-F6761D05AA32\",\r\n reportId: 16221,\r\n detailId: 16217\r\n },\r\n byUserPotential: {\r\n chartId: \"84AC0CBC-C2AB-442F-98D6-ECCC871B1D08\",\r\n reportId: 16222,\r\n detailId: 16215\r\n },\r\n byRoleActual: {\r\n chartId: \"DDE440F5-0542-4566-8838-B244657C2957\",\r\n reportId: 16219,\r\n detailId: 16218\r\n },\r\n byRolePotential: {\r\n chartId: \"1B65B9C0-EE5F-4347-BF09-49D78746B7D3\",\r\n reportId: 16220,\r\n detailId: 16216\r\n },\r\n byRiskActual: {\r\n chartId: \"A7BA97A3-4011-4017-A802-FDBE432A57FC\",\r\n reportId: 16221,\r\n detailId: 16217\r\n },\r\n byRiskPotential: {\r\n chartId: \"B3A5EB46-1D18-4A2F-85AD-7CA43F20DC90\",\r\n reportId: 16222,\r\n detailId: 16215\r\n }\r\n };\r\n\r\n // Helper functions\r\n\r\n $scope.getViewOptions = _ => {\r\n return $rootScope.NSQuantDetailViewOptions.viewBy + $scope.convertUpperCase($rootScope.NSQuantDetailViewOptions.riskType);\r\n };\r\n\r\n $scope.getChartId = _ => {\r\n return $scope.NSQuantValues[$scope.getViewOptions()].chartId;\r\n };\r\n\r\n $scope.getReportObjectId = _ => {\r\n return $scope.NSQuantValues[$scope.getViewOptions()].reportId;\r\n };\r\n\r\n $scope.getDetailObjectId = _ => {\r\n return $scope.NSQuantValues[$scope.getViewOptions()].detailId;\r\n };\r\n\r\n $scope.convertTitleCase = string => {\r\n return string.replace(/^[a-z]|[A-Z]/g, (v, i) => {\r\n return i === 0 ? v.toUpperCase() : \" \" + v.toUpperCase();\r\n });\r\n };\r\n\r\n $scope.convertUpperCase = string => {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n };\r\n\r\n $scope.getChartType = _ => {\r\n var selectedChartId = $scope.getChartId().toLowerCase().toString();\r\n var selectedChart = $scope.charts.find(chart => chart.Id === selectedChartId);\r\n\r\n return selectedChart.ChartType;\r\n };\r\n\r\n // Chart\r\n\r\n $scope.getChart = _ => {\r\n $scope.chartLoading = true;\r\n $scope.selectedItem = null;\r\n $scope.showDetailsGrid = false;\r\n $scope.chartDataSource = {\r\n chart: {\r\n caption: $scope.convertUpperCase($rootScope.NSQuantDetailViewOptions.riskType + \" \" + $scope.convertTitleCase($rootScope.NSQuantDetailViewOptions.viewBy)),\r\n theme: \"ocean\",\r\n valueFontSize: \"11\"\r\n },\r\n data: []\r\n };\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/charts/' + $scope.getChartId() + '/data'\r\n }).then(response => {\r\n $scope.chartDataSource.data = response.data;\r\n $scope.chartLoading = false;\r\n });\r\n };\r\n\r\n $scope.getChart();\r\n\r\n // Chart sub summary\r\n\r\n function highlightSelectedItem(ev, props) {\r\n var dataSource = ev.sender.args.dataSource.data;\r\n for (var i = 0; i < dataSource.length; i++) {\r\n if (i === props.index) {\r\n dataSource[i].color = \"#4F7E98\";\r\n } else {\r\n delete dataSource[i].color;\r\n }\r\n }\r\n ev.sender.args.dataSource.data = dataSource;\r\n ev.sender.setJSONData(ev.sender.args.dataSource);\r\n }\r\n\r\n $scope.fusionChartEvents = {\r\n dataPlotClick: (ev, props) => {\r\n var row = ev.sender.args.dataSource.data[props.index];\r\n $scope.selectItem(row, $rootScope.NSQuantDetailViewOptions.viewBy);\r\n highlightSelectedItem(ev, props);\r\n }\r\n };\r\n\r\n $scope.createPartialSavedReportAndNavigate = (filters, objectId) => {\r\n $rootScope.loadedSavedReport = KPIGeneratorService.createSavedReportStub(filters, objectId);\r\n ViewProductImportPageService.launchReportByObjectId(objectId);\r\n };\r\n\r\n $scope.selectItem = (row, type) => {\r\n $scope.selectedItem = row;\r\n $scope.showDetailsGrid = false;\r\n $scope.selectedChartLoading = true;\r\n var data = { Filters: [], Sorts: [], DateFilters: [] };\r\n var filter = {};\r\n $scope.filterFieldName = \"RiskName\";\r\n\r\n if ($rootScope.NSQuantDetailViewOptions.viewBy === \"byRole\") {\r\n filter = { FieldName: \"RoleName\", Operator: \"Contains\", Value: row.Label };\r\n data.Filters.push(filter);\r\n } else if ($rootScope.NSQuantDetailViewOptions.viewBy === \"byUser\") {\r\n filter = { FieldName: \"UserName\", Operator: \"Contains\", Value: row.Label };\r\n data.Filters.push(filter);\r\n } else if ($rootScope.NSQuantDetailViewOptions.viewBy === \"byRisk\") {\r\n $scope.filterFieldName = \"UserName\";\r\n filter = { FieldName: \"RiskName\", Operator: \"Contains\", Value: row.Label };\r\n data.Filters.push(filter);\r\n }\r\n\r\n $http.post(apiUrl + 'api/core/reports/execute/' + $scope.getReportObjectId(), data).then(response => {\r\n $scope.selectedItemData = response.data._embedded.reportData;\r\n $scope.selectedChartLoading = false;\r\n }).catch(response => {\r\n $scope.selectedChartLoading = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $scope.getDetails = row => {\r\n $scope.showDetailsGrid = true;\r\n $scope.selectedRow = row;\r\n var viewOptions = $scope.getViewOptions();\r\n $scope.detailsGridColumns = [];\r\n\r\n function getColumns() {\r\n\r\n if (viewOptions === 'byUserActual' || viewOptions === 'byRiskActual') {\r\n $scope.detailsGridColumns = [\r\n { field: \"UserInternalID\", title: \"User Internal ID\", filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionInternalID\", title: \"Transaction Internal ID\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionRecordName\", title: \"Transaction\", template: \"{{dataItem.TransactionRecordName}}\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionCurrency\", title: \"Transaction Currency\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionValue\", title: \"Transaction Value\", filterable: customAutoCompleteFilter },\r\n { field: \"LastTransactionModifiedDate\", title: \"Transaction Last Modified\", template: \"{{dataItem.LastTransactionModifiedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"MasterDataInternalID\", title: \"Master Data Internal ID\", filterable: customAutoCompleteFilter },\r\n { field: \"MasterDataRecordName\", title: \"Master Data\", template: \"{{dataItem.MasterDataRecordName}}\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n } else if (viewOptions === 'byUserPotential' || viewOptions === 'byRiskPotential') {\r\n $scope.detailsGridColumns = [\r\n { field: \"UserInternalID\", title: \"User Internal ID\", filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionInternalID\", title: \"Transaction Internal ID\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionRecordName\", title: \"Transaction\", template: \"{{dataItem.TransactionRecordName}}\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionCurrency\", title: \"Transaction Currency\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionValue\", title: \"Transaction Value\", filterable: customAutoCompleteFilter },\r\n { field: \"LastTransactionModifiedDate\", title: \"Transaction Last Modified\", template: \"{{dataItem.LastTransactionModifiedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n } else if (viewOptions === 'byRoleActual') {\r\n $scope.detailsGridColumns = [\r\n { field: \"RoleID\", title: \"Role Internal ID\", filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionInternalID\", title: \"Transaction Internal ID\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionRecordName\", title: \"Transaction\", template: \"{{dataItem.TransactionRecordName}}\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionCurrency\", title: \"Transaction Currency\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionValue\", title: \"Transaction Value\", filterable: customAutoCompleteFilter },\r\n { field: \"LastTransactionModifiedDate\", title: \"Transaction Last Modified\", template: \"{{dataItem.LastTransactionModifiedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"MasterDataInternalID\", title: \"Master Data Internal ID\", filterable: customAutoCompleteFilter },\r\n { field: \"MasterDataRecordName\", title: \"Master Data\", template: \"{{dataItem.MasterDataRecordName}}\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (viewOptions === 'byRolePotential') {\r\n $scope.detailsGridColumns = [\r\n { field: \"RoleID\", title: \"Role Internal ID\", filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionInternalID\", title: \"Transaction Internal ID\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionRecordName\", title: \"Transaction\", template: \"{{dataItem.TransactionRecordName}}\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionCurrency\", title: \"Transaction Currency\", filterable: customAutoCompleteFilter },\r\n { field: \"TransactionValue\", title: \"Transaction Value\", filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 90, filterable: customAutoCompleteFilter },\r\n { field: \"LastTransactionModifiedDate\", title: \"Transaction Last Modified\", template: \"{{dataItem.LastTransactionModifiedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n\r\n var detailsColumn = { field: \"Details\", title: \"Details\", template: \"View Details\", filterable: customAutoCompleteFilter };\r\n $scope.detailsGridColumns.unshift(detailsColumn);\r\n\r\n }\r\n\r\n function setGridOptions() {\r\n $scope.detailsGridOptions = helperService.setMainGridOptions($scope.detailsGridColumns, 400);\r\n $scope.detailsGridOptions.selectable = false;\r\n }\r\n\r\n getColumns();\r\n setGridOptions();\r\n if (!initialLoad) {\r\n $scope.detailsGridDataSource.page(1);\r\n }\r\n };\r\n\r\n $scope.detailsGridDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n LastTransactionModifiedDate: { type: \"date\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n\r\n read: options => {\r\n var selectedFilter = {};\r\n\r\n $scope.sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n $scope.sortsAndFilters.Filters.push({ FieldName: \"RiskName\", Operator: \"Contains\", Value: $scope.selectedRow.RiskName });\r\n\r\n if ($rootScope.NSQuantDetailViewOptions.viewBy === \"byRole\") {\r\n selectedFilter = { FieldName: \"RoleName\", Operator: \"Contains\", Value: $scope.selectedRow.RoleName };\r\n $scope.sortsAndFilters.Filters.push(selectedFilter);\r\n } else if ($rootScope.NSQuantDetailViewOptions.viewBy === \"byUser\" || $rootScope.NSQuantDetailViewOptions.viewBy === \"byRisk\") {\r\n selectedFilter = { FieldName: \"UserName\", Operator: \"Contains\", Value: $scope.selectedRow.UserName };\r\n $scope.sortsAndFilters.Filters.push(selectedFilter);\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/core/reports/execute/' + $scope.getDetailObjectId(),\r\n data: $scope.sortsAndFilters,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(response => {\r\n options.success(response.data);\r\n $scope.enableGrid = true;\r\n }).catch(response => options.error());\r\n }\r\n },\r\n requestEnd: function() {\r\n initialLoad = false;\r\n }\r\n });\r\n\r\n $scope.viewDetails = dataItem => {\r\n $scope.report = angular.copy(dataItem);\r\n $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteArmQuantification/ViewDetailsModal.html',\r\n controller: NSQuantificationViewDetailsModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n}","import { customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, objectIdDataService, $http, $location, helperService) {\r\n\r\n objectIdDataService.getObjectID().then(objectId => {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n $scope.$evalAsync();\r\n });\r\n\r\n $scope.helperService = helperService;\r\n\r\n var vm = $scope.vm = {};\r\n\r\n $scope.showSetup = false;\r\n\r\n vm.selectDetailView = (viewBy, riskType) => {\r\n $rootScope.NSQuantDetailViewOptions = {\r\n viewBy: viewBy,\r\n riskType: riskType\r\n };\r\n $location.path('/AccessControl/Place/NetSuiteRiskQuantification/Details').search({});\r\n };\r\n\r\n // Setup\r\n\r\n $scope.helperService.getConfigurationValue('NS_QuantificationThreshold').then(data => vm.QuantificationThreshold = data);\r\n\r\n $scope.helperService.getConfigurationValue('NS_QuantificationLastDays').then(data => vm.QuantificationLastDays = data);\r\n\r\n var columnsForRiskRuleset = [\r\n { template: \"\", width: 55, filterable: false },\r\n { field: \"RiskName\", title: \"Risk Name\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n $scope.riskGridOptions = helperService.setNonPageableGridOptions(columnsForRiskRuleset, 600);\r\n\r\n // Setup functions\r\n\r\n $scope.riskGridDataSource = new kendo.data.DataSource({\r\n sort: { field: \"RiskName\", dir: \"asc\" },\r\n transport: {\r\n\r\n read: options => {\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/arm/ns/quantification/risks'\r\n }).then(response => options.success(response.data));\r\n }\r\n }\r\n });\r\n\r\n $scope.toggleValue = dataItem => {\r\n\r\n var selectedCheckboxValue = dataItem.RiskQuantifiable;\r\n\r\n if (selectedCheckboxValue === true) {\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/arm/risks/' + dataItem.RiskId + '/quantification',\r\n data: {}\r\n }).then(response => { return; }).catch(response => helperService.showErrorMessage(response.data));\r\n } else {\r\n $http({\r\n method: 'DELETE',\r\n url: apiUrl + 'api/arm/risks/' + dataItem.RiskId + '/quantification'\r\n }).then(response => { return; }).catch(response => helperService.showErrorMessage(response.data));\r\n }\r\n };\r\n\r\n}","import swal from \"sweetalert2\";\r\nimport { standardGridPageSize, customAutoCompleteFilter, customBooleanFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $uibModal, $filter, objectIdDataService, $http, helperService) {\r\n\r\n $scope.helperService = helperService;\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n var vm = $scope.vm = {};\r\n\r\n $scope.selectedDetailView = 'User';\r\n $scope.simulationViewToShow = 1;\r\n\r\n $scope.saveAsExcel = function (simulation) {\r\n\r\n var postData = {\r\n \"NsRsHeaderId\": simulation.Id\r\n };\r\n\r\n $http.post(apiUrl + '/api/arm/ns/risks/export', postData).then(function successCallback(response) {\r\n\r\n response.data = { ExportId: response.data };\r\n\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $scope.menuOptions = [\r\n {\r\n text: 'Verify',\r\n click: function ($itemScope, $event, modelValue) {\r\n var simulation = modelValue;\r\n $scope.deploySimulation(simulation);\r\n },\r\n enabled: function ($itemScope, $event, modelValue) {\r\n var simulation = modelValue;\r\n var result = simulation.StatusName === 'Ready' ? true : false;\r\n return result;\r\n }\r\n },\r\n {\r\n text: 'Export to Excel',\r\n click: function ($itemScope, $event, modelValue) {\r\n var simulation = modelValue;\r\n $scope.saveAsExcel(simulation);\r\n },\r\n enabled: function ($itemScope, $event, modelValue) {\r\n var simulation = modelValue;\r\n var result = simulation.StatusName === 'Ready' ? true : false;\r\n return result;\r\n }\r\n },\r\n {\r\n text: 'Reprocess',\r\n click: function ($itemScope, $event, modelValue) {\r\n var simulation = modelValue;\r\n $scope.reprocessSimulation(simulation);\r\n },\r\n enabled: function ($itemScope, $event, modelValue) {\r\n var simulation = modelValue;\r\n var result = simulation.StatusName === 'Error' || simulation.StatusName === 'Ready' ? true : false;\r\n return result;\r\n }\r\n },\r\n null,\r\n {\r\n text: 'Edit',\r\n click: function ($itemScope, $event, modelValue) {\r\n var simulation = modelValue;\r\n $scope.editSimulation(simulation);\r\n },\r\n enabled: function ($itemScope, $event, modelValue) {\r\n var simulation = modelValue;\r\n var result = simulation.StatusName === 'Ready' ? true : false;\r\n return result;\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: function ($itemScope, $event, modelValue) {\r\n var simulation = modelValue;\r\n $scope.deleteSimulation(simulation);\r\n }\r\n }\r\n ];\r\n\r\n $scope.toggleNewSimulation = function (value) {\r\n $scope.simulationViewToShow = value;\r\n };\r\n\r\n $scope.editSimulation = function (simulation) {\r\n $rootScope.simulationToEdit = angular.copy(simulation);\r\n $scope.simulationViewToShow = 2;\r\n };\r\n\r\n $scope.deploySimulation = function (simulation) {\r\n $rootScope.simulationToDeploy = angular.copy(simulation);\r\n $scope.simulationViewToShow = 3;\r\n };\r\n\r\n $scope.changeSort = function (sortClicked) {\r\n $scope.selectedSort = { field: sortClicked.Id, reverse: sortClicked.reverse };\r\n };\r\n\r\n $scope.selectedSort = { field: \"Name\", reverse: false };\r\n\r\n $scope.availableToSorts = [\r\n { Name: \"Name\", Id: \"Name\", reverse: false },\r\n { Name: \"Created Date\", Id: \"DateCreated\", reverse: true },\r\n //{ Name: \"Deployment Date\", Id: 3, reverse: true },\r\n { Name: \"Status\", Id: \"StatusName\", reverse: false },\r\n { Name: \"User\", Id: \"CreatedByName\", reverse: false }\r\n ];\r\n\r\n $scope.reprocessSimulation = function (simulation) {\r\n\r\n simulation.StatusId = 2;\r\n simulation.StatusName = \"Analyzing\";\r\n $scope.selectedSimulation = null;\r\n\r\n var putBody = { \"NsRsHeaderId\": simulation.Id };\r\n\r\n $http.put(apiUrl + 'api/arm/ns/risks/reprocess', putBody).then(function (response) {\r\n return;\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n };\r\n\r\n $scope.deleteSimulation = function (simulation) {\r\n swal(helperService.areYouSureParams('Delete Security Model', 'Are you sure you want to delete this Security Model?', 'Delete')).then(function () {\r\n $http.delete(apiUrl + 'api/arm/ns/risks/' + simulation.Id).then(function (response) {\r\n return;\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n vm.listOfSimulations.remove(function (el) { return el.Id === simulation.Id; });\r\n $scope.selectedSimulation = null;\r\n }, function (dismiss) {\r\n return;\r\n });\r\n };\r\n\r\n $scope.selectSimulationIf = function (simulation) {\r\n if ($scope.selectedSimulation === simulation) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n $scope.determineLabelClass = function (ActionName) {\r\n if (ActionName === 'Modify') {\r\n return 'label-modify';\r\n } else if (ActionName === 'Add') {\r\n return 'label-add';\r\n } else if (ActionName === 'Remove') {\r\n return 'label-remove';\r\n }\r\n\r\n };\r\n\r\n $scope.determineStatusLabelClass = function (ActionName) {\r\n if (ActionName === 'Ready') {\r\n return 'label-sim-ready';\r\n } else if (ActionName === 'Pending Analysis') {\r\n return 'label-sim-analyzing';\r\n } else if (ActionName === 'Draft') {\r\n return 'label-sim-draft';\r\n } else if (ActionName === 'Analyzing') {\r\n return 'label-sim-analyzing';\r\n } else if (ActionName === 'Deployed') {\r\n return 'label-sim-deployed';\r\n } else if (ActionName === 'Error') {\r\n return 'label-remove';\r\n }\r\n };\r\n\r\n $scope.changeSimulationSatusTo = function (simulation, statusId) {\r\n var postData = {\r\n \"NsRsHeaderId\": simulation.Id,\r\n \"StatusId\": statusId\r\n };\r\n $http.put(apiUrl + '/api/arm/ns/risks/status', postData).then(function successCallback(response) {\r\n $scope.getSimulations();\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $scope.changeRoleSelected = function (dataItem) {\r\n $scope.selectedRole = dataItem;\r\n };\r\n\r\n function populateSelectedSimulation(dataItem) {\r\n $scope.selectedRole = null;\r\n $scope.loadingSelectedSimulation = true;\r\n $scope.selectedSimulation = dataItem;\r\n\r\n $http.get(apiUrl + '/api/arm/ns/risks/' + dataItem.Id).then(function successCallback(response) {\r\n vm.riskSnapshot = response.data;\r\n });\r\n\r\n $http.get(apiUrl + '/api/arm/ns/risks/results/' + dataItem.Id).then(function successCallback(response) {\r\n vm.riskResults = response.data;\r\n $scope.loadingSelectedSimulation = false;\r\n }, function (response) {\r\n $scope.loadingSelectedSimulation = false;\r\n });\r\n }\r\n\r\n $scope.changeRowSelected = function (dataItem) {\r\n if (!$scope.selectedSimulation) {\r\n populateSelectedSimulation(dataItem);\r\n } else if (dataItem.Id !== $scope.selectedSimulation.Id || dataItem.StatusId !== $scope.selectedSimulation.StatusId) {\r\n populateSelectedSimulation(dataItem);\r\n }\r\n };\r\n\r\n $scope.selectedRoleFilter = \"Subsidiaries\";\r\n\r\n vm.selectedSimulationView = \"Results\";\r\n\r\n\r\n $scope.getSimulations = function () {\r\n $scope.simulationsAreLoading = true;\r\n $http.get(apiUrl + 'api/arm/ns/risks/list').then(function successCallback(response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.listOfSimulations = response.data;\r\n $scope.simulationsAreLoading = false;\r\n }, function (response) {\r\n $scope.simulationsAreLoading = false;\r\n });\r\n };\r\n\r\n $scope.getSimulations();\r\n\r\n $scope.viewSimulationRoleRisks = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteSecurityDesigner/SimulationRisksModal.html',\r\n controller: viewSimulationRoleRisksController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n $scope.viewSimulationUserRisks = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteSecurityDesigner/SimulationRisksModal.html',\r\n controller: viewSimulationUserRisksController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n}\r\n\r\nfunction viewSimulationRoleRisksController($scope, $uibModalInstance, $http, helperService, $filter) {\r\n\r\n $scope.modalName = 'Role Risks';\r\n\r\n $scope.gridIsLoading = true;\r\n\r\n $http.get(apiUrl + 'api/arm/ns/risks/results/' + $scope.vm.riskResults.Id + '/rolerisk').then(function successCallback(response) {\r\n $scope.gridIsLoading = false;\r\n response.data = $filter('orderBy')(response.data, 'RoleName');\r\n $scope.roleRisksResults = response.data;\r\n $scope.risksGridDataSource.read();\r\n }, function (response) {\r\n $scope.gridIsLoading = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n $scope.risksGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n DefaultMitigation: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n options.success($scope.roleRisksResults);\r\n }\r\n }\r\n });\r\n\r\n var columns = [\r\n { title: \"Action\", field: \"ActionName\", filterable: customAutoCompleteFilter },\r\n { title: \"Role\", field: \"RoleName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Name\", field: \"RiskName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Description\", field: \"RiskDescription\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Level\", field: \"RiskLevelName\", filterable: customAutoCompleteFilter },\r\n { title: \"Business Cycle\", field: \"BusinessCycleName\", filterable: customAutoCompleteFilter },\r\n { title: \"Policy\", field: \"Policy\", filterable: customAutoCompleteFilter },\r\n { title: \"Default Mitigation\", field: \"DefaultMitigation\", filterable: customBooleanFilter }\r\n ];\r\n\r\n $scope.risksGridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.risksGridOptions.autoBind = false;\r\n $scope.risksGridOptions.selectable = false;\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n\r\nfunction viewSimulationUserRisksController($scope, $uibModalInstance, $http, helperService, $filter) {\r\n\r\n $scope.modalName = 'User Risks';\r\n\r\n $scope.gridIsLoading = true;\r\n\r\n $http.get(apiUrl + 'api/arm/ns/risks/results/' + $scope.vm.riskResults.Id + '/userrisk').then(function successCallback(response) {\r\n $scope.gridIsLoading = false;\r\n response.data = $filter('orderBy')(response.data, 'RiskName');\r\n $scope.roleRisksResults = response.data;\r\n $scope.risksGridDataSource.read();\r\n }, function (response) {\r\n $scope.gridIsLoading = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n $scope.risksGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n DefaultMitigation: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n options.success($scope.roleRisksResults);\r\n }\r\n }\r\n });\r\n\r\n var columns = [\r\n { title: \"Action\", field: \"ActionName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Name\", field: \"RiskName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Description\", field: \"RiskDescription\", filterable: customAutoCompleteFilter },\r\n { title: \"User Name\", field: \"UserName\", filterable: customAutoCompleteFilter },\r\n { title: \"Company Name\", field: \"CompanyName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Level\", field: \"RiskLevelName\", filterable: customAutoCompleteFilter },\r\n { title: \"Business Cycle\", field: \"BusinessCycleName\", filterable: customAutoCompleteFilter },\r\n { title: \"Policy\", field: \"Policy\", filterable: customAutoCompleteFilter },\r\n { title: \"Default Mitigation\", field: \"DefaultMitigation\", filterable: customBooleanFilter }\r\n ];\r\n\r\n $scope.risksGridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.risksGridOptions.autoBind = false;\r\n $scope.risksGridOptions.selectable = false;\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $filter, $route, $http, helperService) {\r\n\r\n var newVm = $scope.newVm = {};\r\n\r\n newVm.newSimulationName = $rootScope.simulationToDeploy.Name;\r\n newVm.simulationId = $rootScope.simulationToDeploy.Id;\r\n delete $rootScope.simulationToDeploy;\r\n\r\n newVm.loadingValidation = true;\r\n\r\n $http.get(apiUrl + '/api/arm/ns/risks/deployment/' + $scope.newVm.simulationId + '/steps').then(function successCallback(response) {\r\n $scope.simulationRoleDeploymentSteps = response.data;\r\n $scope.validateResponse();\r\n }, function errorCallback(response) {\r\n newVm.loadingValidation = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n $scope.markAsDeployed = function () {\r\n $scope.postSimulationInProgress = new createSpinner();\r\n var postData = {\r\n \"NsRsHeaderId\": newVm.simulationId,\r\n \"StatusId\": 4\r\n };\r\n $http.put(apiUrl + '/api/arm/ns/risks/status', postData).then(function successCallback(response) {\r\n $scope.killModal = true;\r\n helperService.successfulSaveButton($scope.postSimulationInProgress).then(function (result) {\r\n $route.reload();\r\n });\r\n }, function errorCallback(response) {\r\n $scope.postSimulationInProgress.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n function addPassedValidationProperty(array) {\r\n array.forEach(function (row) {\r\n var element = $scope.validationResponse.filter(e => e.StepId === row.StepId)[0];\r\n\r\n if (element) {\r\n row['PassedValidation'] = element.PassedValidation;\r\n }\r\n });\r\n }\r\n\r\n function calculateSteps(steps) {\r\n var array = [];\r\n steps.forEach(function (row) {\r\n if (row.ActionName === \"Modify\" || row.ActionName === \"Add\") {\r\n row.PermissionDeploymentSteps.forEach(function (item) {\r\n array.push({ StepId: item.StepId, PassedValidation: item.PassedValidation });\r\n });\r\n row.SubsidiaryDeploymentSteps.forEach(function (item) {\r\n array.push({ StepId: item.StepId, PassedValidation: item.PassedValidation });\r\n });\r\n row.UserDeploymentSteps.forEach(function (item) {\r\n array.push({ StepId: item.StepId, PassedValidation: item.PassedValidation });\r\n });\r\n } else if (row.ActionName === \"Remove\") {\r\n array.push({ StepId: row.StepId, PassedValidation: row.PassedValidation });\r\n }\r\n });\r\n\r\n $scope.maxStepsComplete = array.length;\r\n $scope.totalStepsComplete = $filter('filter')(array, { PassedValidation: true }).length;\r\n }\r\n\r\n $scope.validateResponse = function () {\r\n\r\n newVm.loadingValidation = true;\r\n var postData = angular.copy($scope.simulationRoleDeploymentSteps.RoleDeploymentSteps);\r\n\r\n $http.post(apiUrl + '/api/arm/ns/risks/deployment/validate', postData).then(function successCallback(response) {\r\n $scope.validationResponse = response.data;\r\n\r\n $scope.simulationRoleDeploymentSteps.RoleDeploymentSteps.forEach(function (row) {\r\n var element = $scope.validationResponse.filter(e => e.StepId === row.StepId)[0];\r\n\r\n if (element) {\r\n row['PassedValidation'] = element.PassedValidation;\r\n }\r\n\r\n addPassedValidationProperty(row.PermissionDeploymentSteps);\r\n addPassedValidationProperty(row.SubsidiaryDeploymentSteps);\r\n addPassedValidationProperty(row.UserDeploymentSteps);\r\n\r\n });\r\n calculateSteps($scope.simulationRoleDeploymentSteps.RoleDeploymentSteps);\r\n newVm.loadingValidation = false;\r\n\r\n }, function errorCallback(response) {\r\n newVm.loadingValidation = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n}\r\n","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $uibModal, $route, $http, helperService) {\r\n\r\n var newVm = $scope.newVm = {};\r\n newVm.selectedListOption = 'Roles';\r\n newVm.securityModelUsers = [];\r\n\r\n if ($rootScope.simulationToEdit) {\r\n newVm.newSimulationName = $rootScope.simulationToEdit.Name;\r\n newVm.simulationId = $rootScope.simulationToEdit.Id;\r\n delete $rootScope.simulationToEdit;\r\n\r\n $http.get(apiUrl + '/api/arm/ns/risks/' + $scope.newVm.simulationId).then(function successCallback(response) {\r\n response.data.Roles.forEach(function (row) {\r\n row.Permissions.forEach(function (permission) { delete permission['AccessLevelName']; });\r\n row.Users.forEach(function (user) {\r\n user.RoleId = row.Id;\r\n if (!newVm.securityModelUsers.some(u => u.Name === user.Name && u.Id === user.Id)) {\r\n newVm.securityModelUsers.push(user);\r\n }\r\n });\r\n });\r\n newVm.currentSecurityModel = response.data;\r\n });\r\n\r\n } else {\r\n $scope.loadingNewSimulation = true;\r\n\r\n $http.get(apiUrl + '/api/arm/ns/risks').then(function successCallback(response) {\r\n\r\n response.data.Roles.forEach(function (row) {\r\n row.Permissions.forEach(function (permission) { delete permission['AccessLevelName']; });\r\n row.Users.forEach(function (user) {\r\n user.RoleId = row.Id;\r\n if (!newVm.securityModelUsers.some(u => u.Name === user.Name && u.Id === user.Id)) {\r\n newVm.securityModelUsers.push(user);\r\n }\r\n });\r\n });\r\n\r\n newVm.currentSecurityModel = response.data;\r\n $scope.loadingNewSimulation = false;\r\n });\r\n }\r\n\r\n $scope.listOptionSelectionChanged = function () {\r\n if ($scope.selectedNewUser) { $scope.selectedNewUser = null; }\r\n if ($scope.selectedNewRole) { $scope.selectedNewRole = null; }\r\n };\r\n\r\n $scope.changeNewRoleSelected = function (dataItem) {\r\n if ($scope.selectedNewUser) { $scope.selectedNewUser = null; }\r\n $scope.selectedNewRole = dataItem;\r\n };\r\n\r\n $scope.changeNewUserSelected = function (dataItem) {\r\n if ($scope.selectedNewRole) { $scope.selectedNewRole = null; }\r\n let selectedUser = Object.assign({}, dataItem);\r\n selectedUser.Roles = newVm.currentSecurityModel.Roles.filter(role => role.Users.some(user => user.Id === dataItem.Id));\r\n $scope.selectedNewUser = selectedUser;\r\n };\r\n\r\n $scope.addRoleToNewSimulation = function () {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteSecurityDesigner/SimulationNewAddRole.html',\r\n controller: viewSimulationUserRisks,\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n perspective: () => newVm.selectedListOption === 'Roles' ? 'Role' : 'User'\r\n }\r\n });\r\n };\r\n\r\n $scope.addPermissionsToSelectedRole = function () {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteSecurityDesigner/AddPropertiesToRolesModal.html',\r\n controller: addPermissionsToSelectedRoleModalController,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n };\r\n\r\n $scope.addSubsidiariesToSelectedRole = function () {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteSecurityDesigner/AddPropertiesToRolesModal.html',\r\n controller: addSubsidiariesToSelectedRoleModalController,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n };\r\n\r\n $scope.addUsersToSelectedRole = function () {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteSecurityDesigner/AddPropertiesToRolesModal.html',\r\n controller: addUsersToSelectedRoleModalController,\r\n backdrop: 'static',\r\n scope: $scope,\r\n size: 'lg'\r\n });\r\n };\r\n\r\n $scope.addRolesToSelectedUser = function () {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteSecurityDesigner/AddRolesToUserModal.html',\r\n controller: addRolesToSelectedUserModalController,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n };\r\n\r\n $scope.selectedNewRoleFilter = \"Subsidiaries\";\r\n\r\n $scope.permissionLevels = [{ Name: 'View', Id: 2 }, { Name: 'Create', Id: 3 }, { Name: 'Edit', Id: 4 }, { Name: 'Full', Id: 5 }];\r\n\r\n $http.get(apiUrl + '/api/arm/ns/risks/subsidiaries/').then(function successCallback(response) {\r\n newVm.subsidiaries = response.data;\r\n });\r\n $http.get(apiUrl + '/api/arm/ns/risks/users/').then(function successCallback(response) {\r\n newVm.users = response.data;\r\n });\r\n $http.get(apiUrl + '/api/arm/ns/risks/permissions/').then(function successCallback(response) {\r\n newVm.permissions = response.data;\r\n });\r\n\r\n $scope.removeUserFromRole = function (dataItem) {\r\n $scope.selectedNewRole.Users.remove(function (el) {\r\n return el.Id === dataItem.Id;\r\n });\r\n };\r\n\r\n $scope.removeRoleFromUser = function (role, user) {\r\n const currentRole = newVm.currentSecurityModel.Roles.find(function (r) { return r.Id === role.Id; });\r\n currentRole.Users.remove(function (u) {\r\n return u.Id === user.Id;\r\n });\r\n $scope.selectedNewUser.Roles.remove(function (r) {\r\n return r.Id === role.Id;\r\n });\r\n };\r\n\r\n $scope.removeSubsidiaryFromRole = function (dataItem) {\r\n $scope.selectedNewRole.Subsidiaries.remove(function (el) {\r\n return el.Id === dataItem.Id;\r\n });\r\n };\r\n\r\n $scope.removePermissionFromRole = function (dataItem) {\r\n $scope.selectedNewRole.Permissions.remove(function (el) {\r\n return el.Name === dataItem.Name;\r\n });\r\n };\r\n\r\n $scope.removeRole = function (dataItem) {\r\n $scope.newVm.currentSecurityModel.Roles.remove(function (el) {\r\n return el.Name === dataItem.Name;\r\n });\r\n if ($scope.selectedNewRole) {\r\n if ($scope.selectedNewRole.Name === dataItem.Name) {\r\n $scope.selectedNewRole = null;\r\n }\r\n }\r\n };\r\n\r\n $scope.removeUser = function (dataItem) {\r\n $scope.newVm.securityModelUsers.remove(function (el) {\r\n return el.Name === dataItem.Name;\r\n });\r\n $scope.newVm.currentSecurityModel.Roles.forEach(role => {\r\n role.Users = role.Users.filter(user => user.Id !== dataItem.Id);\r\n });\r\n if ($scope.selectedNewUser) {\r\n if ($scope.selectedNewUser.Name === dataItem.Name) {\r\n $scope.selectedNewUser = null;\r\n }\r\n }\r\n };\r\n\r\n $scope.saveSimulation = function () {\r\n $scope.postSimulationInProgress = new createSpinner();\r\n\r\n var modifiedSecurityModel = angular.copy(newVm.currentSecurityModel);\r\n\r\n //If Id is populated it will edit otherwise create a new one\r\n var postBody = {\r\n \"Id\": newVm.simulationId,\r\n \"Name\": $scope.newVm.newSimulationName,\r\n \"Roles\": modifiedSecurityModel.Roles\r\n };\r\n\r\n $http.post(apiUrl + 'api/arm/ns/risks/', postBody).then(async function (response) {\r\n $scope.killModal = true;\r\n await helperService.successfulSaveButton($scope.postSimulationInProgress).then(function (result) {\r\n $route.reload();\r\n });\r\n\r\n }, function errorCallback(response) {\r\n $scope.postSimulationInProgress.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n\r\n}\r\n\r\nfunction viewSimulationUserRisks($scope, $uibModalInstance, helperService, perspective) {\r\n\r\n $scope.perspective = perspective;\r\n if (perspective === 'Role') {\r\n $scope.role = {};\r\n } else {\r\n $scope.user = {};\r\n }\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n $scope.addRole = async function () {\r\n $scope.saving = new createSpinner();\r\n const role = {\r\n \"Id\": 0,\r\n \"Name\": $scope.role.name,\r\n \"Subsidiaries\": [\r\n ],\r\n \"Users\": [],\r\n \"Permissions\": [],\r\n \"New\": true\r\n };\r\n\r\n const nameAlreadyExists = $scope.newVm.currentSecurityModel.Roles.filter(e => e.Name.toLowerCase() === $scope.role.name.toLowerCase())[0];\r\n\r\n if (nameAlreadyExists) {\r\n $scope.saving.loadingValue = false;\r\n helperService.showErrorMessage('A role with this name already exists');\r\n } else {\r\n $scope.newVm.currentSecurityModel.Roles.unshift(role);\r\n $scope.changeNewRoleSelected(role);\r\n await helperService.successfulSaveButton($scope.saving);\r\n $scope.cancel();\r\n }\r\n };\r\n\r\n $scope.addUser = async function () {\r\n $scope.saving = new createSpinner();\r\n const user = {\r\n \"DefaultSubsidiaryId\": $scope.user.defaultSubsidiary.Id,\r\n \"DefaultSubsidiaryName\": $scope.user.defaultSubsidiary.Name,\r\n \"Email\": $scope.user.email,\r\n \"Name\": $scope.user.name,\r\n \"New\": true,\r\n \"Id\": Math.max.apply(Math, $scope.newVm.securityModelUsers.map(function (e) { return e.Id; })) + 1\r\n };\r\n\r\n const nameAlreadyExists = $scope.newVm.securityModelUsers.filter(e => e.Name.toLowerCase() === $scope.user.name.toLowerCase())[0];\r\n const emailAlreadyExists = $scope.newVm.securityModelUsers.filter(e => e.Email.toLowerCase() === $scope.user.email.toLowerCase())[0];\r\n\r\n if (nameAlreadyExists) {\r\n $scope.saving.loadingValue = false;\r\n helperService.showErrorMessage('A user with this name already exists');\r\n } else if (emailAlreadyExists) {\r\n $scope.saving.loadingValue = false;\r\n helperService.showErrorMessage('A user with this email already exists');\r\n } else {\r\n $scope.newVm.securityModelUsers.unshift(user);\r\n $scope.changeNewUserSelected(user);\r\n await helperService.successfulSaveButton($scope.saving);\r\n $scope.cancel();\r\n }\r\n };\r\n\r\n\r\n}\r\n\r\nfunction addPermissionsToSelectedRoleModalController($scope, $uibModalInstance, helperService, $filter) {\r\n\r\n $scope.modalName = \"Permissions\";\r\n\r\n var columns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n $scope.gridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.gridOptions.selectable = false;\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n pageSize: 1000,\r\n transport: {\r\n read: function (options) {\r\n var available = angular.copy($scope.newVm.permissions);\r\n\r\n $scope.selectedNewRole.Permissions.forEach(function (row) {\r\n available.remove(function (el) {\r\n return el.Name === row.Name;\r\n });\r\n });\r\n available = $filter('orderBy')(available, 'Name');\r\n options.success(available);\r\n }\r\n }\r\n });\r\n\r\n $scope.addItemToRole = function (dataItem) {\r\n $scope.selectedNewRole.Permissions.push(dataItem);\r\n $scope.gridDataSource.read();\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n\r\n}\r\n\r\nfunction addSubsidiariesToSelectedRoleModalController($scope, $uibModalInstance, helperService, $filter) {\r\n\r\n $scope.modalName = \"Subsidiaries\";\r\n\r\n var columns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n $scope.gridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.gridOptions.selectable = false;\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n pageSize: 1000,\r\n transport: {\r\n read: function (options) {\r\n\r\n var available = angular.copy($scope.newVm.subsidiaries);\r\n\r\n $scope.selectedNewRole.Subsidiaries.forEach(function (row) {\r\n available.remove(function (el) {\r\n return el.Id === row.Id;\r\n });\r\n });\r\n available = $filter('orderBy')(available, 'Name');\r\n options.success(available);\r\n\r\n }\r\n }\r\n });\r\n\r\n $scope.addItemToRole = function (dataItem) {\r\n $scope.selectedNewRole.Subsidiaries.push(dataItem);\r\n $scope.gridDataSource.read();\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n\r\n}\r\n\r\nfunction addUsersToSelectedRoleModalController($scope, $uibModalInstance, helperService, $filter) {\r\n\r\n $scope.modalName = \"Users\";\r\n\r\n var columns = [\r\n { title: \"Internal ID\", field: \"Id\", filterable: customAutoCompleteFilter },\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"Email\", field: \"Email\", filterable: customAutoCompleteFilter },\r\n { title: \"Default Subsidiary\", field: \"DefaultSubsidiaryName\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n $scope.gridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.gridOptions.selectable = false;\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n pageSize: 1000,\r\n transport: {\r\n read: function (options) {\r\n\r\n var available = angular.copy($scope.newVm.users);\r\n\r\n $scope.selectedNewRole.Users.forEach(function (row) {\r\n available.remove(function (el) {\r\n return el.Id === row.Id;\r\n });\r\n });\r\n available = $filter('orderBy')(available, 'Name');\r\n options.success(available);\r\n }\r\n }\r\n });\r\n\r\n $scope.addItemToRole = function (dataItem) {\r\n $scope.selectedNewRole.Users.push(dataItem);\r\n $scope.gridDataSource.read();\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n\r\n}\r\n\r\nfunction addRolesToSelectedUserModalController($scope, $uibModalInstance, helperService, $filter) {\r\n\r\n var columns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n $scope.gridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.gridOptions.selectable = false;\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n pageSize: 1000,\r\n transport: {\r\n read: function (options) {\r\n\r\n var available = angular.copy($scope.newVm.currentSecurityModel.Roles);\r\n\r\n $scope.selectedNewUser.Roles.forEach(function (row) {\r\n available.remove(function (el) {\r\n return el.Id === row.Id;\r\n });\r\n });\r\n available = $filter('orderBy')(available, 'Name');\r\n options.success(available);\r\n }\r\n }\r\n });\r\n\r\n $scope.addItemToUser = function (dataItem) {\r\n dataItem = dataItem.toJSON();\r\n $scope.selectedNewUser.Roles.push(dataItem);\r\n $scope.gridDataSource.read();\r\n let roleToModify = $scope.newVm.currentSecurityModel.Roles.find(function (role) {\r\n return role.Id === dataItem.Id;\r\n });\r\n const userToAdd = Object.assign({}, $scope.selectedNewUser);\r\n delete userToAdd.Roles;\r\n roleToModify.Users.push(userToAdd);\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n\r\n}","import angular from 'angular';\r\nimport NetSuiteArmQuantificationViewModel from '../Components/NetSuiteArmQuantification/NetSuiteArmQuantificationViewModel';\r\nimport NSQuantificationSelection from '../Components/NetSuiteArmQuantification/NSQuantificationSelection';\r\nimport NetSuiteSecurityDesignerViewModel from '../Components/NetSuiteSecurityDesigner/NetSuiteSecurityDesignerViewModel';\r\nimport NetSuiteSecurityDesignerDeploymentController from '../Components/NetSuiteSecurityDesigner/Deployment/NetSuiteSecurityDesignerDeploymentController';\r\nimport SimulationNewController from '../Components/NetSuiteSecurityDesigner/SimulationNewController';\r\n\r\nexport default angular\r\n .module('app.accessRiskMonitor.netSuite', [])\r\n .controller(\"NetSuiteArmQuantificationViewModel\", NetSuiteArmQuantificationViewModel)\r\n .controller(\"nsQuantificationSelection\", NSQuantificationSelection)\r\n .controller(\"NetSuiteSecurityDesignerViewModel\", NetSuiteSecurityDesignerViewModel)\r\n .controller(\"NetSuiteSecurityDesignerDeploymentController\", NetSuiteSecurityDesignerDeploymentController)\r\n .controller(\"SimulationNewController\", SimulationNewController)\r\n .name;","export default /*@ngInject*/ function (helperService) {\r\n const factory = {\r\n generateBody\r\n };\r\n\r\n return factory;\r\n\r\n function generateBody(objectId, productId, roles, businessProcesses, reportId, securityObject, rulesetId) {\r\n\r\n var selectedRoles;\r\n\r\n var result = helperService.returnNullIfAllIsFound(roles.map(role => role.ID));\r\n if (result) {\r\n selectedRoles = roles.map(role => role.Identifier);\r\n } else {\r\n selectedRoles = null;\r\n }\r\n var businessProcessesSelected = helperService.returnNullIfAllIsFound(businessProcesses.map(function (el) { return el.Id; }));\r\n\r\n if (businessProcessesSelected) {\r\n businessProcessesSelected = businessProcesses.map(bp => bp.Id);\r\n }\r\n\r\n var data = {\r\n \"ObjectId\": objectId,\r\n \"ProductIds\": productId,\r\n \"Roles\": selectedRoles,\r\n \"BusinessProcessIds\": businessProcessesSelected,\r\n \"ReportId\": reportId,\r\n \"SecurityObject\": securityObject,\r\n \"RulesetId\": rulesetId\r\n };\r\n\r\n return data;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getCompanies,\r\n getUsers,\r\n getRulesets,\r\n getRiskTypes,\r\n getRisks,\r\n getAllRisks\r\n };\r\n\r\n return factory;\r\n\r\n async function getCompanies() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/companymaster`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getUsers(data, params) {\r\n try {\r\n return await $http({\r\n method: 'POST',\r\n url: `${apiUrl}api/universal/usermaster`,\r\n data: data,\r\n params: params\r\n });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRulesets() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/riskrulesets`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRiskTypes() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/risks/types`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n\r\n async function getRisks(rulesetId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/risks/ruleset/${rulesetId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAllRisks() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/risks`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}\r\n","export default /*@ngInject*/ function (helperService) {\r\n const factory = {\r\n generateBody\r\n };\r\n\r\n return factory;\r\n\r\n function generateBody(companies, ruleset, businessProcesses, objectId, products, securityObject, users, reportId) {\r\n\r\n var companiesSelected = helperService.returnNullIfAllIsFound(companies.map(function (el) { return el.ID; }));\r\n var businessProcessesSelected = helperService.returnNullIfAllIsFound(businessProcesses.map(function (el) { return el.Id; }));\r\n\r\n if (businessProcessesSelected) {\r\n businessProcessesSelected = businessProcesses.map(bp => bp.Id);\r\n }\r\n\r\n var data = {\r\n \"CompanyMasterIds\": companiesSelected,\r\n \"RulesetId\": ruleset.RulesetId,\r\n \"BusinessProcessIds\": businessProcessesSelected,\r\n \"ObjectId\": objectId,\r\n \"ProductIds\": products.map(function (el) { return el.ID; }),\r\n \"SecurityObjects\": [securityObject.Identifier],\r\n \"UserMasterIds\": users.length ? users : null,\r\n \"ReportId\": reportId\r\n };\r\n\r\n if (securityObject.Id === null) {\r\n data.SecurityObjects = null;\r\n }\r\n\r\n return data;\r\n }\r\n\r\n}","export default /*@ngInject*/ function (helperService) {\r\n const factory = {\r\n generateBody\r\n };\r\n\r\n return factory;\r\n\r\n function generateBody (ObjectId, users, selectedCompanies, riskSelectedIds, selectedProducts, ruleset) {\r\n\r\n var risksSelected = helperService.returnNullIfAllIsFound(riskSelectedIds.map(function (el) { return el.Id; }));\r\n var companiesSelected = helperService.returnNullIfAllIsFound(selectedCompanies.map(function (el) { return el.ID; }));\r\n var products = selectedProducts.map(function (el) { return el.ID; });\r\n\r\n\r\n var data = {\r\n \"ProductIds\": products,\r\n \"ObjectId\": ObjectId,\r\n \"UserMasterIds\": users.length ? users : null,\r\n \"CompanyMasterIds\": companiesSelected,\r\n \"RiskIds\": risksSelected,\r\n \"RulesetId\": ruleset\r\n };\r\n\r\n return data;\r\n }\r\n\r\n}","export default /*@ngInject*/ function (helperService) {\r\n\r\n const factory = {\r\n generateBody\r\n };\r\n\r\n return factory;\r\n\r\n function generateBody (ObjectId, responsibilities, risks, individual, ruleset) {\r\n\r\n var selectedResponsibilities;\r\n\r\n var result = helperService.returnNullIfAllIsFound(responsibilities.map(resp => resp.ID));\r\n if (result) {\r\n selectedResponsibilities = responsibilities.map(resp => resp.Identifier);\r\n } else {\r\n selectedResponsibilities = null;\r\n }\r\n\r\n var data = {\r\n \"ObjectId\": ObjectId,\r\n \"RoleIds\": selectedResponsibilities,\r\n \"RiskIds\": risks,\r\n \"Individual\": individual,\r\n \"RulesetId\": ruleset\r\n };\r\n\r\n return data;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n var factory = {\r\n getControls,\r\n deleteControl,\r\n addNewControl,\r\n editControl,\r\n exportControls,\r\n getMitigations,\r\n getProducts,\r\n getBusinessProcesses,\r\n deleteAttachment,\r\n downloadAttachment,\r\n getAttachmentsList,\r\n addAttachments,\r\n importControlLibrary,\r\n importControlsFromPluginAPI\r\n };\r\n\r\n return factory;\r\n\r\n async function getControls() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/controls`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteControl(controlId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/arm/controls/${controlId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addNewControl(control) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/controls`, control);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function editControl(control) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/controls/${control.Identifier}`, control);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function exportControls() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/controls/export`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getMitigations() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/mitigations`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getProducts() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/products`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getBusinessProcesses() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/businessprocesses`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteAttachment(identifier) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/core/attachments/${identifier}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function downloadAttachment(identifier) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/attachments/${identifier}/download`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getAttachmentsList(dataTypeIdentifier) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/cases/data-type/3/identifier/${dataTypeIdentifier}`); \r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addAttachments(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/core/attachments/`, data, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importControlLibrary(fd) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/controls/import`, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importControlsFromPluginAPI(plugin) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/controls/import/${plugin}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n var factory = {\r\n getBusinessCycles,\r\n addBusinessCycle,\r\n modifyBusinessCycle,\r\n removeBusinessCycle\r\n };\r\n\r\n return factory;\r\n\r\n async function getBusinessCycles() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/businesscycles`);\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function addBusinessCycle(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/businesscycles`, data);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function modifyBusinessCycle(businessCycleId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/businesscycles/${businessCycleId}`, data);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function removeBusinessCycle(businessCycleId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/arm/businesscycles/${businessCycleId}`);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n var service = {\r\n getMitigations,\r\n addMitigation,\r\n modifyMitigation,\r\n removeMitigation\r\n };\r\n\r\n return service;\r\n\r\n async function getMitigations() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/mitigations`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function addMitigation(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/mitigations`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function modifyMitigation(mitigationId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/mitigations/${mitigationId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeMitigation(mitigationId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/arm/mitigations/${mitigationId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getRiskLevels,\r\n createRiskLevel,\r\n renameRiskLevel,\r\n deleteRiskLevel\r\n };\r\n\r\n return service;\r\n\r\n async function getRiskLevels() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/risklevels`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function createRiskLevel(postData) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/risklevels`, postData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function renameRiskLevel(putData) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/risklevels/${putData.Id}`, putData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteRiskLevel(riskLevelId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/arm/risklevels/${riskLevelId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getStatuses,\r\n addStatus,\r\n modifyStatus,\r\n removeStatus\r\n };\r\n\r\n return service;\r\n\r\n async function getStatuses() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/statuses`);\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function addStatus(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/statuses`, data);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function modifyStatus(businessCycleId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/statuses/${businessCycleId}`, data);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function removeStatus(businessCycleId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/arm/statuses/${businessCycleId}`);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n importAutoMitigationRuleset,\r\n exportAutoMitigationRuleset\r\n };\r\n\r\n return factory;\r\n\r\n function importAutoMitigationRuleset(data) {\r\n return $http.put(apiUrl + 'api/assure/or/exclusions/import', data, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n })\r\n .then(workComplete)\r\n .catch(response => errorsDataService.catch(response));\r\n }\r\n\r\n function exportAutoMitigationRuleset() {\r\n return $http.get(apiUrl + 'api/assure/or/exclusions/export', { responseType: \"blob\" })\r\n .then(workComplete)\r\n .catch(response => errorsDataService.catch(response));\r\n }\r\n\r\n function workComplete(response) {\r\n return response;\r\n }\r\n\r\n}\r\n","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n var service = {\r\n getAutoMitigations,\r\n getObjects,\r\n getObjectsByUrl,\r\n addAutoMitigation,\r\n modifyMitigation,\r\n removeAutoMitigation,\r\n applyAutoMitigations\r\n };\r\n\r\n return service;\r\n\r\n async function getAutoMitigations() {\r\n try {\r\n return await $http.get(apiUrl + 'api/assure/ps/automitigations');\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function getObjects(body, params) {\r\n try {\r\n return await $http.post(apiUrl + 'api/universal/securityobjects/producttype/ps/type/Page', body, { params: params });\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function getObjectsByUrl(url) {\r\n try {\r\n return await $http.get(url);\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function addAutoMitigation(data) {\r\n try {\r\n return await $http.post(apiUrl + 'api/assure/ps/automitigations', data);\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function modifyMitigation(autoMitigationId, data) {\r\n try {\r\n return await $http.put(apiUrl + 'api/assure/ps/automitigations/' + autoMitigationId, data);\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function removeAutoMitigation(autoMitigationId) {\r\n try {\r\n return await $http.delete(apiUrl + 'api/assure/ps/automitigations/' + autoMitigationId);\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function applyAutoMitigations() {\r\n try {\r\n return await $http.put(apiUrl + 'api/arm/usermitigations/product/PS/applyautomitigations');\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getAutoMitigations,\r\n addAutoMitigation,\r\n modifyMitigation,\r\n deleteAutoMitigation,\r\n applyAutoMitigations,\r\n importAutoMitigationRuleset,\r\n exportAutoMitigationRuleset\r\n };\r\n\r\n return service;\r\n\r\n async function getAutoMitigations(productType) {\r\n try {\r\n const res = await $http.get(`${apiUrl}api/assure/${productType}/objectexclusions`);\r\n return res;\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function addAutoMitigation(productType, body) {\r\n return $http.post(`${apiUrl}api/assure/${productType}/objectexclusions`, body)\r\n .then(addAutoMitigationComplete)\r\n .catch(addAutoMitigationFailed);\r\n\r\n function addAutoMitigationComplete(response) {\r\n return response;\r\n }\r\n\r\n function addAutoMitigationFailed(response) {\r\n errorsDataService.catch(response);\r\n }\r\n }\r\n\r\n function modifyMitigation(productType, mitigationId, body) {\r\n return $http.put(`${apiUrl}api/assure/${productType}/objectexclusions/${mitigationId}`, body)\r\n .then(modifyMitigationComplete)\r\n .catch(modifyMitigationFailed);\r\n\r\n function modifyMitigationComplete(response) {\r\n return response;\r\n }\r\n\r\n function modifyMitigationFailed(response) {\r\n errorsDataService.catch(response);\r\n }\r\n }\r\n\r\n async function importAutoMitigationRuleset(productType, body) {\r\n try {\r\n return await $http.put(`${apiUrl}api/assure/${productType}/objectexclusions/import`, body, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function exportAutoMitigationRuleset(productType) {\r\n try {\r\n const res = await $http.get(`${apiUrl}api/assure/${productType}/objectexclusions/export`, { responseType: 'blob' });\r\n return res;\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteAutoMitigation(productType, mitigationId) {\r\n try {\r\n await $http.delete(`${apiUrl}api/assure/${productType}/objectexclusions/${mitigationId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function applyAutoMitigations(productType) {\r\n try {\r\n await $http.put(`${apiUrl}api/arm/usermitigations/product/${productType}/applyautomitigations`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getBusinessProcesses,\r\n getBusinessProcessesByRiskRuleset,\r\n getBusinessProcessesObjectsByGroup,\r\n getBusinessProcessObjects,\r\n getBpGroups,\r\n getBpGroupObjects,\r\n getSapFioriApplications,\r\n getSapFioriAppServices,\r\n createBusinessProcess,\r\n createBusinessProcessGroup,\r\n addObjectToBpGroup,\r\n updateBusinessProcess,\r\n updateBusinessProcessGroup,\r\n deleteBusinessProcess,\r\n deleteBpGroup,\r\n removeBusinessProcessObjectsFromGroup\r\n };\r\n\r\n return factory;\r\n\r\n //GET Requests\r\n async function getBusinessProcesses() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/businessprocesses`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getBusinessProcessesByRiskRuleset(riskRulesetId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/businessprocesses/ruleset/${riskRulesetId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getBusinessProcessesObjectsByGroup(id) {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/businessprocesses/${id}/objects`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getBusinessProcessObjects(id) {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/businessprocesses/${id}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getBpGroups(bpId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/businessprocesses/${bpId}/groups`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getBpGroupObjects(bpId, bpGroupId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/businessprocesses/${bpId}/groups/${bpGroupId}/objects`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSapFioriApplications(productId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/sap/${productId}/fioriapplications`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSapFioriAppServices(productId, appId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/sap/${productId}/services/${appId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n //POST Requests\r\n\r\n async function createBusinessProcess(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/businessprocesses`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function createBusinessProcessGroup(data) {\r\n try {\r\n if (data.AppId) {\r\n return await $http.post(`${apiUrl}api/sap/${data.ProductId}/businessprocesses/${data.BusinessProcessId}/groups`, data);\r\n } else {\r\n return await $http.post(`${apiUrl}api/arm/businessprocesses/${data.BusinessProcessId}/groups`, data);\r\n }\r\n\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addObjectToBpGroup(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/businessprocesses/${data.BusinessProcessID}/objects`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n //PUT Requests\r\n async function updateBusinessProcess(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/businessprocesses/${data.Id}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateBusinessProcessGroup(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/businessprocesses/${data.BusinessProcessId}/groups/${data.ID}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n\r\n //DELETE Requests\r\n async function deleteBusinessProcess(id) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/arm/businessprocesses/${id}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteBpGroup(bpId, bpGroupId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/arm/businessprocesses/${bpId}/groups/${bpGroupId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeBusinessProcessObjectsFromGroup(bpId, bpObjectId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/arm/businessprocesses/${bpId}/objects/${bpObjectId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}\r\n","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getRisks,\r\n getBusinessProcesses,\r\n getRiskRulesetList,\r\n downloadRulesetTemplate,\r\n cloneRiskRuleset,\r\n importRiskRuleset,\r\n setDefaultRiskRuleset,\r\n updateRiskRuleset,\r\n addNewRiskRuleset,\r\n deleteRiskRuleset,\r\n addNewRisk,\r\n updateRisk,\r\n copyObjectsToRuleset,\r\n addNewRiskObject\r\n };\r\n\r\n return factory;\r\n\r\n\r\n // GET Requests\r\n async function getRisks(rulesetId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/risks/ruleset/${rulesetId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getBusinessProcesses(rulesetId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/businessprocesses/ruleset/${rulesetId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getRiskRulesetList() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/riskrulesets`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function downloadRulesetTemplate(product) {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/riskrulesets/download`, { responseType: \"blob\", params: {productType: product}});\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // POST Requests\r\n async function cloneRiskRuleset(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/riskrulesets/clone`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addNewRiskRuleset(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/riskrulesets`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addNewRisk(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/risks`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addNewRiskObject(riskId, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/risks/${riskId}/objects`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function copyObjectsToRuleset(objectType, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/arm/riskrulesets/copy-${objectType}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // PUT Requests\r\n async function importRiskRuleset(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/risks/import`, data, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function setDefaultRiskRuleset(rulesetId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/riskrulesets/default/${rulesetId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function updateRiskRuleset(rulesetId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/riskrulesets/${rulesetId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateRisk(riskId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/risks/${riskId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // DELETE Requests\r\n async function deleteRiskRuleset(rulesetId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/arm/riskrulesets/${rulesetId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getAssignedRisks,\r\n assignRiskByUser,\r\n assignByRisk,\r\n removeAssignedRiskByUser\r\n };\r\n\r\n return factory;\r\n\r\n async function getAssignedRisks() {\r\n try {\r\n return await $http.get(`${apiUrl}api/arm/assignrisks/user`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function assignRiskByUser(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/assignrisks/user`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function assignByRisk(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/arm/assignrisks/risk`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeAssignedRiskByUser(userMasterId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/arm/assignrisks/user/${userMasterId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}\r\n","export default /*@ngInject*/ function (helperService) {\r\n const factory = {\r\n generateBody\r\n };\r\n\r\n return factory;\r\n\r\n function generateBody(objectId, productIds, roles, securityObject, securityObjectType, isDetailed) {\r\n let selectedRoles,\r\n result = helperService.returnNullIfAllIsFound(roles.map(role => role.ID)),\r\n data = {\r\n \"ObjectId\": objectId,\r\n \"SecurityObjectTypes\": [securityObjectType.Identifier],\r\n \"SecurityObjects\": [securityObject.Identifier]\r\n };\r\n\r\n if (result) {\r\n selectedRoles = roles.map(role => role.Identifier);\r\n } else {\r\n selectedRoles = null;\r\n }\r\n\r\n data.ProductIds = productIds;\r\n data.Roles = selectedRoles;\r\n\r\n if (securityObjectType.ID === null) {\r\n data.SecurityObjectTypes = null;\r\n }\r\n if (securityObject.Id === null) {\r\n data.SecurityObjects = null;\r\n }\r\n\r\n return data;\r\n }\r\n}","export default /*@ngInject*/ function (helperService) {\r\n const factory = {\r\n generateBody\r\n };\r\n\r\n return factory;\r\n\r\n function generateBody(selectedProducts, reportId, securityObjectType, users, selectedCompanies, securityObject) {\r\n\r\n var companiesSelected = helperService.returnNullIfAllIsFound(selectedCompanies.map(function (el) { return el.ID; }));\r\n var products = selectedProducts.map(function (el) { return el.ID; });\r\n\r\n var data = {\r\n \"ProductIds\": selectedProducts.map(function (el) { return el.ID; }),\r\n \"ObjectId\": reportId,\r\n \"SecurityObjectTypes\": [securityObjectType.Identifier],\r\n \"UserMasterIds\": users.length ? users : null,\r\n \"CompanyMasterIds\": companiesSelected,\r\n \"SecurityObjects\": [securityObject.Identifier]\r\n };\r\n\r\n if (securityObjectType.ID === null) {\r\n data.SecurityObjectTypes = null;\r\n }\r\n\r\n if (securityObject.Id === null) {\r\n data.SecurityObjects = null;\r\n }\r\n\r\n return data;\r\n }\r\n\r\n}","export default /*@ngInject*/ function BuildResponsibilityAccessPostBody(helperService) {\r\n const factory = {\r\n generateBody\r\n };\r\n\r\n return factory;\r\n\r\n function generateBody(ObjectId, responsibilities, securityObjectType, securityObject) {\r\n\r\n var selectedResponsibilities;\r\n\r\n var result = helperService.returnNullIfAllIsFound(responsibilities.map(resp => resp.ID));\r\n if (result) {\r\n selectedResponsibilities = responsibilities.map(resp => resp.Identifier);\r\n } else {\r\n selectedResponsibilities = null;\r\n }\r\n\r\n var data = {\r\n \"ObjectId\": ObjectId,\r\n \"Roles\": selectedResponsibilities,\r\n \"SecurityObjects\": [securityObject.Identifier],\r\n \"SecurityObjectTypes\": [securityObjectType.Identifier]\r\n };\r\n\r\n if (securityObject.Id === null) {\r\n data.SecurityObjects = null;\r\n }\r\n\r\n return data;\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getProfiles,\r\n getSensitiveProfiles,\r\n exportProfiles,\r\n updateProfiles,\r\n importProfiles,\r\n deleteProfile\r\n };\r\n\r\n return service;\r\n\r\n async function getProfiles() {\r\n try {\r\n return await $http.get(`${apiUrl}api/assure/sap/profilemaster`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSensitiveProfiles() {\r\n try {\r\n return await $http.get(`${apiUrl}api/assure/sap/sensitiveprofile/`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function exportProfiles() {\r\n try {\r\n return await $http.get(`${apiUrl}api/assure/sap/sensitiveprofile/export`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function updateProfiles(postData) {\r\n try {\r\n return await $http.post(`${apiUrl}api/assure/sap/sensitiveprofile/`, postData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importProfiles(fd) {\r\n try {\r\n return await $http.put(`${apiUrl}api/assure/sap/sensitiveprofile/import`, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteProfile(id) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/assure/sap/sensitiveprofile/${id}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","import angular from 'angular';\r\nimport buildRoleBPPostBodyFactory from '../Components/roleBusinessProcess/buildRoleBPPostBody.factory';\r\nimport risksDataServiceFactory from '../APICalls/risksDataService.factory';\r\nimport buildUserBPPostBodyFactory from '../Components/userBusinessProcess/buildUserBPPostBody.factory';\r\nimport BuildUserRisksPostBody from '../Components/userRisk/BuildUserRisksPostBody';\r\nimport responsibilityRiskPostBody from '../Components/responsibilityRisk/responsibilityRiskPostBody';\r\nimport controlLibraryDataServiceFactory from '../Components/controlLibrary/controlLibraryDataService.factory';\r\nimport businessCyclesDataServiceFactory from '../Components/maintainBusinessCycles/businessCyclesDataService.factory';\r\nimport mitigationsDataServiceFactory from '../Components/maintainMitigations/mitigationsDataService.factory';\r\nimport riskLevelsFactory from '../Components/maintainRiskLevels/riskLevels.factory';\r\nimport statusDataServiceFactory from '../Components/maintainStatuses/statusDataService.factory';\r\nimport AutoMitigationDataService from '../APICalls/AutoMitigationDataService';\r\nimport peoplesoftAutoMitigationsDataService from '../Components/Peoplesoft/autoMitigations/autoMitigationsDataService.factory';\r\nimport autoMitigationsDataServiceFactory from '../Components/AutoMitigations/autoMitigationsDataService.factory';\r\nimport businessProcessDataServiceFactory from '../Components/MaintainBusinessProcess/businessProcessDataService.factory';\r\nimport riskRulesetDataServiceFactory from '../Components/maintainRiskRuleset/riskRulesetDataService.factory';\r\nimport riskRulesetMapperService from '../Components/maintainRiskRuleset/objects/riskRulesetMapper.service';\r\nimport assignRisksDataServiceFactory from '../Components/assignRisks/assignRisksDataService.factory';\r\nimport BuildRoleAccessPostBody from '../Components/roleAccess/BuildRoleAccessPostBody';\r\nimport BuildUserAccessPostBody from '../Components/userAccess/BuildUserAccessPostBody';\r\nimport BuildResponsibilityAccessPostBody from '../Components/responsibilityAccess/responsibilityAccessPostBody';\r\nimport maintainProfilesDataServiceFactory from '../Components/maintainProfiles/maintainProfilesDataService.factory';\r\n\r\nexport default angular\r\n .module('app.accessRiskMonitor.factories', [])\r\n .factory('buildRoleBPPostBody', buildRoleBPPostBodyFactory)\r\n .factory('risksDataService', risksDataServiceFactory)\r\n .factory('businessProcessDataService', businessProcessDataServiceFactory)\r\n .factory('buildUserBPPostBody', buildUserBPPostBodyFactory)\r\n .factory('BuildUserRisksPostBody', BuildUserRisksPostBody)\r\n .factory('buildResponsibilityRiskPostBody', responsibilityRiskPostBody)\r\n .factory('controlLibraryDataService', controlLibraryDataServiceFactory)\r\n .factory('businessCyclesDataService', businessCyclesDataServiceFactory)\r\n .factory('riskRulesetService', riskRulesetDataServiceFactory)\r\n .factory('riskRulesetMapper', riskRulesetMapperService)\r\n .factory('mitigationsDataService', mitigationsDataServiceFactory)\r\n .factory('riskLevelsData', riskLevelsFactory)\r\n .factory('statusDataService', statusDataServiceFactory)\r\n .factory('AutoMitigationDataService', AutoMitigationDataService)\r\n .factory('peoplesoftAutoMitigationsDataService', peoplesoftAutoMitigationsDataService)\r\n .factory('autoMitigationsDataService', autoMitigationsDataServiceFactory)\r\n .factory('assignRisksDataService', assignRisksDataServiceFactory)\r\n .factory('BuildRoleAccessPostBody', BuildRoleAccessPostBody)\r\n .factory('BuildUserAccessPostBody', BuildUserAccessPostBody)\r\n .factory('BuildResponsibilityAccessPostBody', BuildResponsibilityAccessPostBody)\r\n .factory('maintainProfilesDataService', maintainProfilesDataServiceFactory)\r\n .name;","export default function () {\r\n const service = {\r\n mapBusinessProcesses,\r\n mapSecurityObjects\r\n };\r\n\r\n return service;\r\n\r\n function Object(Id, RiskId, ProductType, ProductName, BusinessProcessId, BusinessProcessName, BusinessProcessDescription, SecurityObjectTypeId, SecurityObjectTypeName, SecurityObjectModuleName) {\r\n this.Id = Id;\r\n this.RiskId = RiskId;\r\n this.ProductType = ProductType;\r\n this.ProductName = ProductName;\r\n this.BusinessProcessId = BusinessProcessId;\r\n this.BusinessProcessName = BusinessProcessName;\r\n this.BusinessProcessDescription = BusinessProcessDescription;\r\n this.SecurityObjectTypeId = SecurityObjectTypeId;\r\n this.SecurityObjectTypeName = SecurityObjectTypeName;\r\n this.SecurityObjectModuleName = SecurityObjectModuleName;\r\n\r\n }\r\n\r\n function mapBusinessProcesses(data) {\r\n\r\n let newArray = [];\r\n data.forEach(function (row) {\r\n var item = new Object(null, null, null, null, row.Id.toString(), row.Name, row.Description, row.Type, 'Business Process', null);\r\n newArray.push(item);\r\n });\r\n\r\n return newArray;\r\n }\r\n\r\n function mapSecurityObjects(data) {\r\n\r\n let newArray = [];\r\n data.forEach(function (row) {\r\n var item = new Object(null, null, row.ProductType, row.ProductName, row.Id.toString(), row.Name, row.AltName, row.SecurityObjectTypeId, row.SecurityObjectTypeName, row.ModuleName);\r\n newArray.push(item);\r\n });\r\n\r\n return newArray;\r\n }\r\n}","import { customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, KPIGeneratorService, ViewProductImportPageService, objectIdDataService, CustomReportServices, $http, helperService) {\r\n\r\n var vm = this;\r\n vm.showSetup = false;\r\n\r\n vm.helperService = helperService;\r\n vm.createPartialSavedReportAndNavigate = createPartialSavedReportAndNavigate;\r\n vm.toggleValue = toggleValue;\r\n\r\n function activate() {\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource($scope.ObjectId);\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n helperService.getConfigurationValue('AX7_QuantificationThreshold').then(function (data) {\r\n vm.QuantificationThreshold = data;\r\n });\r\n\r\n helperService.getConfigurationValue('AX7_QuantificationLastDays').then(function (data) {\r\n vm.QuantificationLastDays = data;\r\n });\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/charts/' + 'B7E53CC5-2EE6-4F19-8691-D161CAAAC6CA' + '/data'\r\n }).then(function (response) {\r\n //response.data.forEach(function (row) { row.link = \"j-\" })\r\n vm.myDataSourceByRisk.data = response.data;\r\n });\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/charts/' + 'CB14500A-085D-4F52-9A6E-F344E900331C' + '/data'\r\n }).then(function (response) {\r\n //response.data.forEach(function (row) { row.link = \"j-\" })\r\n vm.myDataSourceByUser.data = response.data;\r\n\r\n });\r\n\r\n }\r\n activate();\r\n\r\n var columnsForRiskRuleset = [\r\n { template: \"\", width: 55, filterable: false },\r\n { field: \"RiskName\", title: \"Risk Name\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.gridOptions = helperService.setNonPageableGridOptions(columnsForRiskRuleset, 600);\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n sort: { field: \"RiskName\", dir: \"asc\" },\r\n transport: {\r\n\r\n read: function (options) {\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + '/api/arm/ax7/quantification/risks'\r\n }).then(function (response) {\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n function toggleValue(dataItem) {\r\n\r\n var selectedCheckboxValue = dataItem.Enabled;\r\n\r\n if (selectedCheckboxValue === true) {\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/arm/risks/' + dataItem.RiskId + '/quantification',\r\n data: {}\r\n }).then()\r\n .catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n selectedCheckboxValue = false;\r\n });\r\n } else {\r\n $http({\r\n method: 'DELETE',\r\n url: apiUrl + 'api/arm/risks/' + dataItem.RiskId + '/quantification'\r\n }).then()\r\n .catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n selectedCheckboxValue = true;\r\n });\r\n }\r\n }\r\n\r\n function highlightSelectedItem(ev, props) {\r\n var dataSource = ev.sender.args.dataSource.data;\r\n for (var i = 0; i < dataSource.length; i++) {\r\n if (i === props.index) {\r\n dataSource[i].color = \"#4F7E98\";\r\n } else {\r\n delete dataSource[i].color;\r\n }\r\n }\r\n ev.sender.args.dataSource.data = dataSource;\r\n ev.sender.setJSONData(ev.sender.args.dataSource);\r\n }\r\n\r\n vm.fusionChartByRiskEvents = {\r\n dataPlotClick: function (ev, props) {\r\n var row = ev.sender.args.dataSource.data[props.index];\r\n selectItem(row, 'risk');\r\n highlightSelectedItem(ev, props);\r\n }\r\n };\r\n\r\n vm.fusionChartByUserEvents = {\r\n dataPlotClick: function (ev, props) {\r\n var row = ev.sender.args.dataSource.data[props.index];\r\n selectItem(row, 'user');\r\n highlightSelectedItem(ev, props);\r\n }\r\n };\r\n\r\n function createPartialSavedReportAndNavigate(filters, objectId) {\r\n $rootScope.loadedSavedReport = KPIGeneratorService.createSavedReportStub(filters, objectId);\r\n ViewProductImportPageService.launchReportByObjectId(objectId);\r\n }\r\n\r\n vm.selectedRiskData = null;\r\n\r\n function selectItem(row, type) {\r\n if (type === 'risk') {\r\n vm.selectedRisk = row;\r\n vm.selectedRiskLoading = true;\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/charts/CB14500A-085D-4F52-9A6E-F344E900331C/data',\r\n params: { 'filterField': 'RiskName', 'filterValue': row.Label }\r\n }).then(function (response) {\r\n vm.selectedRiskData = response.data;\r\n vm.selectedRiskLoading = false;\r\n });\r\n\r\n } else if (type === 'user') {\r\n vm.selectedUser = row;\r\n vm.selectedUserLoading = true;\r\n\r\n $http.get(apiUrl + 'api/core/charts/B7E53CC5-2EE6-4F19-8691-D161CAAAC6CA/data?filterField=UserName&filterValue=' + row.Label).then(function (response) {\r\n vm.selectedUserData = response.data;\r\n vm.selectedUserLoading = false;\r\n\r\n });\r\n\r\n }\r\n }\r\n\r\n vm.myDataSourceByRisk = {\r\n chart: {\r\n caption: \"By Risk\",\r\n //subCaption: \"Top 5 stores in last month by revenue\",\r\n numberPrefix: \"$\",\r\n theme: \"ocean\"\r\n },\r\n data: []\r\n };\r\n\r\n vm.myDataSourceByUser = {\r\n chart: {\r\n caption: \"By User\",\r\n //subCaption: \"Top 5 stores in last month by revenue\",\r\n numberPrefix: \"$\",\r\n theme: \"ocean\",\r\n enableSlicing: 0\r\n },\r\n data: []\r\n };\r\n\r\n}","import { standardGridPageSize, customAutoCompleteFilter, customNotStringEmptyFilter, customBooleanFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $filter, SavedReportSelectorService, buildResponsibilityRiskPostBody, objectIdDataService, CustomReportServices, $http, $location, helperService, reportsDataService, reportsService, errorsDataService) {\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if ($scope.grid) {\r\n $scope.gridReady = true;\r\n $scope.runSavedReport();\r\n }\r\n });\r\n\r\n $scope.helperService = helperService;\r\n\r\n var vm = $scope.vm = {};\r\n\r\n vm.allRolesOption = true;\r\n\r\n vm.selectedResponsibilities = [];\r\n vm.updateRoleDataSource = updateRoleDataSource;\r\n vm.intraResponsibilityToggleClicked = intraResponsibilityToggleClicked;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n $scope.intraResponsibilityOnly = false;\r\n $scope.intraResponsibilityOnly = SavedReportSelectorService.checkSavedReportForIntraResponsibility($rootScope.loadedSavedReport, $scope.intraResponsibilityOnly);\r\n\r\n $scope.hasDetailedVersion = true;\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource($scope.ObjectId);\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n $scope.reportId = securityObject.ReportID;\r\n\r\n vm.selectedProduct = {};\r\n vm.selectedProduct.ID = $scope.pageInfo.ProductType;\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout($scope, null);\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n getReportMetadata().then(_ => {\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n if ($rootScope.loadedSavedReport) {\r\n $scope.runSavedReport();\r\n }\r\n });\r\n // ---\r\n\r\n });\r\n if ($location.path().has('Detailed')) {\r\n $scope.isDetailed = true;\r\n } else {\r\n $scope.isDetailed = false;\r\n }\r\n\r\n $scope.runSavedReport = function () {\r\n if ($scope.gridReady && $rootScope.loadedSavedReport && $scope.vm.responsibilityDataSource && $scope.vm.riskDataSource && vm.filterCriteria.fields) {\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n // ---\r\n $scope.generateGridWithSelectedValues();\r\n } else if ($scope.gridReady && !$rootScope.loadedSavedReport && $scope.vm.selectedResponsibilities && $scope.vm.riskDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n $scope.populateCriteriaModel();\r\n }\r\n };\r\n\r\n $scope.changeView = function () {\r\n if ($scope.isDetailed === true) {\r\n $location.path('/AccessControl/Place/ResponsibilityRisk').search('');\r\n } else {\r\n $location.path('/AccessControl/Place/ResponsibilityRiskDetailed').search('');\r\n }\r\n };\r\n\r\n vm.deselectSelectedRisk = function () {\r\n vm.riskSelectedIds = helperService.deselectAllObjectsIfOtherIsClicked(vm.riskSelectedIds, vm.allRisksDropdownObject);\r\n $scope.populateCriteriaModel();\r\n };\r\n\r\n $scope.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n $scope.mainGridOptions.autoBind = false;\r\n\r\n\r\n $scope.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n\r\n $scope.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n $scope.applySelectedFilter = function () {\r\n helperService.applyFilterCatchError($scope);\r\n };\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n AssignedUsers: { type: \"number\" },\r\n IsAssigned: { type: \"boolean\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n\r\n read: function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n var data = buildResponsibilityRiskPostBody.generateBody($scope.ObjectId, $scope.responsibilities, $scope.risks, $scope.savedIntraResponsibilityOnly, vm.selectedRuleset.RulesetId);\r\n data['QueryInput'] = helperService.prepareSortsAndFilters(options);\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: $scope.urlString,\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(function (response) {\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n\r\n }).catch(response => {\r\n const timeout = 408;\r\n\r\n if (response.status !== timeout) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n $scope.populateCriteriaModel = function () {\r\n // do not continue if the proper criteria are not loaded\r\n if (!vm.selectedResponsibilities || vm.riskSelectedIds === undefined || $scope.intraResponsibilityOnly === undefined || !vm.selectedRuleset) {\r\n return;\r\n }\r\n var criteria = [];\r\n\r\n $scope.responsibilities = vm.selectedResponsibilities;\r\n\r\n $scope.risks = helperService.returnNullIfAllIsFound(vm.riskSelectedIds.map(function (el) { return el.Id; }));\r\n\r\n $scope.savedIntraResponsibilityOnly = $scope.intraResponsibilityOnly;\r\n\r\n $scope.vm.selectedResponsibilities.forEach(function (row, i) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityRoleIdentifier\", 'Role', row.Name, row.Identifier));\r\n });\r\n\r\n vm.riskSelectedIds.forEach(function (row, i) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"RiskId\", 'Risk', row.Name, row.Id));\r\n });\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"Individual\", 'IntraResponsibilityOnly', $scope.intraResponsibilityOnly, $scope.intraResponsibilityOnly));\r\n criteria.push(CustomReportServices.CreateCriteria(\"RulesetId\", 'Ruleset', vm.selectedRuleset.Name, vm.selectedRuleset.RulesetId));\r\n\r\n $scope.reportDetailsModel = criteria;\r\n\r\n if ($scope.isDetailed === true) {\r\n $scope.urlString = apiUrl + 'api/arm/or/places/responsibilityrisk/detailed';\r\n } else if ($scope.isDetailed === false) {\r\n $scope.urlString = apiUrl + 'api/arm/or/places/responsibilityrisk';\r\n }\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n };\r\n\r\n $scope.generateGridWithSelectedValues = function () {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.dataSource._filter = null;\r\n $scope.grid.dataSource._sort = null;\r\n }\r\n\r\n $scope.populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, $scope.grid, true);\r\n };\r\n\r\n vm.setColumns = function () {\r\n\r\n if ($scope.isDetailed === false && $scope.intraResponsibilityOnly === false) {\r\n $scope.mainGridColumns = [\r\n { field: \"RiskName\", title: \"Risk Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n\r\n } else if ($scope.isDetailed === false && $scope.intraResponsibilityOnly === true) {\r\n $scope.mainGridColumns = [\r\n { field: \"ResponsibilityName\", title: \"Responsibility\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"ResponsibilityID\", title: \"Responsibility ID\", width: 190, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"ResponsibilityKey\", title: \"Responsibility Key\", width: 190, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedUsers\", title: \"Assigned Users\", width: 140, filterable: customNotStringEmptyFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n\r\n } else if ($scope.isDetailed === true) {\r\n $scope.mainGridColumns = [\r\n { field: \"ResponsibilityName\", title: \"Responsibility\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"ResponsibilityID\", title: \"Responsibility ID\", width: 190, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"ResponsibilityKey\", title: \"Responsibility Key\", width: 190, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"AssignedUsers\", title: \"Assigned Users\", width: 140, filterable: customNotStringEmptyFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 140, filterable: customAutoCompleteFilter },\r\n { field: \"UserMenuName\", title: \"User Menu Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"MenuName\", title: \"Menu Name\", width: 200, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"UserSubMenuName\", title: \"User Sub Menu Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SubMenuName\", title: \"Sub Menu Name\", width: 200, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectAltName\", title: \"User Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Prompt\", title: \"Prompt\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Path\", title: \"Path\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n }\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.mainGridOptions.sortable = false;\r\n\r\n $scope.mainGridOptions.filterable = false;\r\n }\r\n };\r\n\r\n vm.setColumns();\r\n\r\n vm.EnableIntraResponsibility = function (selection) {\r\n if (!selection?.length) {\r\n $scope.intraResponsibilityOnly = true;\r\n vm.allResponsibilitiesSelected = true;\r\n } else {\r\n $scope.intraResponsibilityOnly = false;\r\n vm.allResponsibilitiesSelected = false;\r\n }\r\n vm.setColumns();\r\n };\r\n\r\n $scope.deleteFilter = function (id) {\r\n CustomReportServices.deleteFilterFilterManager($scope, id);\r\n };\r\n\r\n $scope.splitHeaderText = function () {\r\n helperService.splitHeaderText(angular);\r\n };\r\n\r\n $scope.clearAllFilters = function () {\r\n $scope.gridDataSource.filter({});\r\n };\r\n\r\n $scope.saveReportLayoutButton = function () {\r\n CustomReportServices.saveGridLayout($scope, null);\r\n };\r\n\r\n $http.get(`${apiUrl}api/arm/riskrulesets`)\r\n .then(function (response) {\r\n response.data = $filter('filter')(response.data, { IsEnabled: true });\r\n vm.rulesetDataSource = response.data;\r\n vm.rulesetDataSource = $filter('orderBy')(response.data, 'Name');\r\n vm.selectedRuleset = SavedReportSelectorService.checkSavedReportForRuleset($rootScope.loadedSavedReport, response.data, vm.rulesetDataSource);\r\n getRisks();\r\n });\r\n\r\n $scope.rulesetDropdownChange = function () {\r\n getRisks();\r\n $scope.populateCriteriaModel;\r\n };\r\n\r\n async function getRisks() {\r\n try {\r\n let response = await $http.get(apiUrl + 'api/arm/risks/ruleset/' + vm.selectedRuleset.RulesetId);\r\n response.data = $filter('filter')(response.data, { Enabled: true });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.allRisksDropdownObject = { \"Name\": \"All Risks\", \"Id\": 'AllObjectsInMultiSelect', 'Enabled': true };\r\n response.data.unshift(vm.allRisksDropdownObject);\r\n vm.riskDataSource = response.data;\r\n vm.riskSelectedIds = [vm.allRisksDropdownObject];\r\n vm.riskSelectedIds = await SavedReportSelectorService.checkSavedReportForRisks($rootScope.loadedSavedReport, response.data, vm.riskSelectedIds);\r\n $scope.runSavedReport();\r\n }\r\n catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n function updateRoleDataSource(roleDataSource, roleSelectedIds) {\r\n $scope.vm.responsibilityDataSource = roleDataSource;\r\n vm.responsibilities = roleSelectedIds;\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n function getReportMetadata() {\r\n return reportsDataService.getReportMetadata($scope.reportId)\r\n .then(data => {\r\n\r\n vm.reportMetadata = data.data._embedded.reportData; \r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n\r\n return vm.reportMetadata;\r\n });\r\n }\r\n // ---\r\n\r\n function intraResponsibilityToggleClicked() {\r\n vm.setColumns();\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n}\r\n","import { customAutoCompleteFilter, customBooleanFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport swal from \"sweetalert2\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, dataService, $http, helperService, errorsDataService, riskRulesetService) {\r\n const DEFAULT_SAP_OBJECTID = 20211; \r\n const DEFAULT_SAP_GRC_OBJECTID = 37130202; \r\n $scope.helperService = helperService;\r\n\r\n var vm = $scope.vm = {};\r\n $scope.$on('CodeChecker', _ => $scope.vm.codeCheckerDataSource.read());\r\n\r\n vm.showDropdown = false;\r\n\r\n vm.rulesets = [\r\n { name: 'SAP GRC Ruleset', value: 2 }\r\n ];\r\n\r\n var columnsVM =\r\n [\r\n { field: \"Product\", title: \"Product\", filterable: customAutoCompleteFilter },\r\n { field: \"TCode\", title: \"TCode\", filterable: customAutoCompleteFilter },\r\n { field: \"Object\", title: \"Object\", filterable: customAutoCompleteFilter },\r\n { field: \"ZTCode\", title: \"ZTCode\", filterable: customAutoCompleteFilter },\r\n { field: \"Function\", title: \"Function\", filterable: customAutoCompleteFilter },\r\n { field: \"BAPI\", title: \"BAPI\", filterable: customBooleanFilter },\r\n { field: \"Type\", title: \"Type\", filterable: customBooleanFilter },\r\n { field: \"ProcessName\", title: \"Business Process\", filterable: customBooleanFilter },\r\n {\r\n field: \"ExistsInBP\", title: \"Exists in Business Process\",\r\n template: `
\r\n {{ dataItem.ExistsInBP }}\r\n \r\n \r\n \r\n
`,\r\n filterable: customBooleanFilter\r\n }\r\n ];\r\n\r\n activate();\r\n\r\n function activate() {\r\n initializeRulesetInfo();\r\n setBpDropdownVisibility();\r\n }\r\n\r\n $scope.runCodeCheckerConfirmation = function () {\r\n swal(helperService.areYouSureParams('Run Code Checker', 'This process will analyze your custom programs and includes for TCodes in the ruleset.', 'Run')).then(function () {\r\n $http.post(apiUrl + 'api/assure/sap/SAP/codechecker/run')\r\n .then(function (response) {\r\n return;\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n\r\n });\r\n }, function (dismiss) {\r\n return;\r\n });\r\n };\r\n\r\n $scope.vm.addLink = function (dataItem) {\r\n if (dataItem.ZTCode && dataItem.ProcessName && dataItem.ExistsInBP === 'No') return true;\r\n else return false;\r\n };\r\n\r\n $scope.vm.addObjectToBusinessProcess = async function (dataItem) {\r\n\r\n let newGroupData = {\r\n BusinessProcessID: dataItem.ProcessID,\r\n BusinessProcessGroupID: dataItem.GroupID,\r\n Name: dataItem.ZTCode,\r\n Type: \"And\"\r\n };\r\n\r\n createNewGroup(newGroupData);\r\n };\r\n\r\n $scope.changeRuleset = function () {\r\n $scope.vm.codeCheckerDataSource.read();\r\n };\r\n\r\n async function setBpDropdownVisibility() {\r\n let products = await dataService.getProducts();\r\n vm.showDropdown = products.data.sum(product => product.ID === 'SapGrc');\r\n }\r\n\r\n async function createNewGroup(data) {\r\n try {\r\n await $http.post(apiUrl + 'api/assure/sap/SAP/codechecker/businessprocessgroups', data);\r\n $scope.vm.codeCheckerDataSource.read();\r\n } catch (error) { errorsDataService.catch(error); }\r\n }\r\n \r\n $scope.vm.codeCheckerGridOptions = helperService.setMainGridOptions(columnsVM, 600);\r\n\r\n async function initializeRulesetInfo() {\r\n let response = await riskRulesetService.getRiskRulesetList();\r\n if (response && response.data.length > 0) {\r\n let defaultRuleset = response.data.find(r => r.IsDefault === true);\r\n if (defaultRuleset) {\r\n vm.rulesets.unshift({\r\n name: defaultRuleset == null ? 'Fastpath Default Ruleset' : defaultRuleset.Name,\r\n value: 1\r\n });\r\n }\r\n else {\r\n vm.rulesets.unshift({\r\n name: response.data[0].Name,\r\n value: 1\r\n }); \r\n }\r\n }\r\n else {\r\n //If we didn't get any rulesets we will default to old functionality with generic name\r\n vm.rulesets.unshift({\r\n name: 'Fastpath Default Ruleset',\r\n value: 1\r\n });\r\n }\r\n\r\n vm.selectedRuleset = vm.rulesets[0];\r\n\r\n $scope.vm.codeCheckerDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: halSchemaKendoGrid,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n\r\n read: function (options) {\r\n\r\n var sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n let objectId = vm.selectedRuleset.value === 1 ? DEFAULT_SAP_OBJECTID : DEFAULT_SAP_GRC_OBJECTID;\r\n\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/core/reports/execute/' + objectId,\r\n data: sortsAndFilters,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(function (response) {\r\n\r\n var data = response.data._embedded.reportData;\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n\r\n }, function (response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n }\r\n}","import { customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, KPIGeneratorService, ViewProductImportPageService, objectIdDataService, CustomReportServices, $http, helperService) {\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource($scope.ObjectId);\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n var vm = $scope.vm = {};\r\n\r\n $scope.showSetup = false;\r\n\r\n $scope.helperService.getConfigurationValue('QuantificationThreshold').then(function (data) {\r\n vm.QuantificationThreshold = data;\r\n });\r\n\r\n $scope.helperService.getConfigurationValue('QuantificationLastDays').then(function (data) {\r\n vm.QuantificationLastDays = data;\r\n });\r\n\r\n var columnsForRiskRuleset = [\r\n { template: \"\", width: 55, filterable: false },\r\n { field: \"Name\", title: \"Risk Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Risk Description\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", filterable: customAutoCompleteFilter },\r\n { field: \"RulesetName\", title: \"Ruleset\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n $scope.gridOptions = helperService.setNonPageableGridOptions(columnsForRiskRuleset, 600);\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n sort: { field: \"Name\", dir: \"asc\" },\r\n transport: {\r\n\r\n read: function (options) {\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/arm/risks'\r\n }).then(function (response) {\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n $scope.toggleValue = function (dataItem) {\r\n\r\n var selectedCheckboxValue = dataItem.Quantifiable;\r\n\r\n if (selectedCheckboxValue === true) {\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/arm/risks/' + dataItem.Id + '/quantification',\r\n data: {}\r\n }).then(function successCallback(response) {\r\n return;\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n } else {\r\n $http({\r\n method: 'DELETE',\r\n url: apiUrl + 'api/arm/risks/' + dataItem.Id + '/quantification'\r\n }).then(function successCallback(response) {\r\n return;\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n\r\n });\r\n }\r\n };\r\n\r\n function highlightSelectedItem(ev, props) {\r\n var dataSource = ev.sender.args.dataSource.data;\r\n for (var i = 0; i < dataSource.length; i++) {\r\n if (i === props.index) {\r\n dataSource[i].color = \"#4F7E98\";\r\n } else {\r\n delete dataSource[i].color;\r\n }\r\n }\r\n ev.sender.args.dataSource.data = dataSource;\r\n ev.sender.setJSONData(ev.sender.args.dataSource);\r\n }\r\n\r\n $scope.fusionChartByRiskEvents = {\r\n dataPlotClick: function (ev, props) {\r\n var row = ev.sender.args.dataSource.data[props.index];\r\n $scope.selectItem(row, 'risk');\r\n highlightSelectedItem(ev, props);\r\n }\r\n };\r\n\r\n $scope.fusionChartByUserEvents = {\r\n dataPlotClick: function (ev, props) {\r\n var row = ev.sender.args.dataSource.data[props.index];\r\n $scope.selectItem(row, 'user');\r\n highlightSelectedItem(ev, props);\r\n }\r\n };\r\n\r\n $scope.createPartialSavedReportAndNavigate = function (filters, objectId) {\r\n $rootScope.loadedSavedReport = KPIGeneratorService.createSavedReportStub(filters, objectId);\r\n ViewProductImportPageService.launchReportByObjectId(objectId);\r\n };\r\n\r\n $scope.selectedRiskData = null;\r\n\r\n $scope.selectItem = function (row, type) {\r\n if (type === 'risk') {\r\n $scope.selectedRisk = row;\r\n $scope.selectedRiskLoading = true;\r\n\r\n $http.get(apiUrl + 'api/core/charts/12350565-69B1-4424-810A-BDD3B7CCFDD7/data?filterField=RiskName&filterValue=' + row.Label).then(function (response) {\r\n $scope.selectedRiskData = response.data;\r\n $scope.selectedRiskLoading = false;\r\n });\r\n\r\n } else if (type === 'user') {\r\n $scope.selectedUser = row;\r\n $scope.selectedUserLoading = true;\r\n\r\n $http.get(apiUrl + 'api/core/charts/B7BB0BE0-94EA-46E9-B8A1-09BA6CBEB933/data?filterField=UserName&filterValue=' + row.Label).then(function (response) {\r\n $scope.selectedUserData = response.data;\r\n\r\n $scope.selectedUserLoading = false;\r\n\r\n });\r\n\r\n }\r\n };\r\n\r\n $scope.myDataSourceByRisk = {\r\n chart: {\r\n caption: \"By Risk\",\r\n numberPrefix: \"$\",\r\n theme: \"ocean\"\r\n },\r\n data: []\r\n };\r\n\r\n $scope.myDataSourceByUser = {\r\n chart: {\r\n caption: \"By User\",\r\n numberPrefix: \"$\",\r\n theme: \"ocean\",\r\n enableSlicing: 0\r\n },\r\n data: []\r\n };\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/charts/' + 'B7BB0BE0-94EA-46E9-B8A1-09BA6CBEB933' + '/data'\r\n }).then(function (response) {\r\n $scope.myDataSourceByRisk.data = response.data;\r\n });\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/core/charts/' + '12350565-69B1-4424-810A-BDD3B7CCFDD7' + '/data'\r\n }).then(function (response) {\r\n $scope.myDataSourceByUser.data = response.data;\r\n\r\n });\r\n\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (sapAuthFieldGroupsDataService, $uibModalInstance, group, helperService, isEditingValues, objectId) {\r\n const vm = this;\r\n\r\n vm.dismiss = dismiss;\r\n vm.createFieldValue = createFieldValue;\r\n vm.deleteFieldValue = deleteFieldValue;\r\n vm.groupFormSubmit = groupFormSubmit;\r\n\r\n vm.group = { ...group };\r\n vm.isEditingValues = isEditingValues;\r\n vm.objectId = objectId;\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n async function createFieldValue(newField) { \r\n vm.fieldProcessing = true;\r\n let data = newField;\r\n newField.ProcessObjectId = vm.group.ProcessObjectId;\r\n newField.AuthFieldGroupId = vm.group.Id;\r\n try {\r\n let response = await sapAuthFieldGroupsDataService.createFieldValue(data);\r\n newField.Id = response.data;\r\n vm.group.AuthFieldValues.push(newField);\r\n vm.newField = null;\r\n vm.fieldProcessing = false;\r\n } catch (error) {\r\n vm.fieldProcessing = false;\r\n }\r\n }\r\n\r\n async function deleteFieldValue(field) {\r\n vm.fieldProcessing = true;\r\n try {\r\n await sapAuthFieldGroupsDataService.deleteFieldValue(field.Id);\r\n const fieldIndex = vm.group.AuthFieldValues.findIndex(value => value.Id === field.Id);\r\n vm.group.AuthFieldValues.splice(fieldIndex, 1);\r\n vm.fieldProcessing = false;\r\n } catch {\r\n vm.fieldProcessing = false;\r\n }\r\n }\r\n\r\n async function updateGroupInfo() {\r\n let data = { ...vm.group };\r\n delete data.AuthFieldValues;\r\n delete data.$$hashKey;\r\n try {\r\n await sapAuthFieldGroupsDataService.updateGroup(data);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n\r\n async function createGroup() {\r\n let data = { ...vm.group };\r\n data.ProcessObjectId = vm.objectId;\r\n try {\r\n await sapAuthFieldGroupsDataService.createGroup(data);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n\r\n function groupFormSubmit() {\r\n vm.saving = new createSpinner();\r\n if (vm.group.Id) {\r\n updateGroupInfo();\r\n } else {\r\n createGroup();\r\n }\r\n }\r\n}","import groupModalController from \"./groupModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, sapAuthFieldGroupsDataService) {\r\n const vm = this;\r\n\r\n vm.openManageGroupModal = openManageGroupModal;\r\n vm.deleteGroup = deleteGroup;\r\n\r\n vm.groupMenuOptions = [\r\n {\r\n text: 'Edit Group Info',\r\n click: function (modelValue) {\r\n vm.openManageGroupModal(modelValue.group, false);\r\n }\r\n },\r\n {\r\n text: 'Edit Field Values',\r\n click: function (modelValue) {\r\n vm.openManageGroupModal(modelValue.group, true);\r\n }\r\n },\r\n {\r\n text: 'Delete Group',\r\n click: function (modelValue) {\r\n vm.deleteGroup(modelValue.group.Id);\r\n }\r\n }\r\n ];\r\n\r\n async function openManageGroupModal(group, isEditingValues) {\r\n let groupModal = $uibModal.open({\r\n templateUrl: '/App/Components/MaintainBusinessProcess/SAPAuthFieldGroups/groupModal.tmpl.html',\r\n controller: groupModalController,\r\n controllerAs: 'gmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n group: () => group,\r\n isEditingValues: () => isEditingValues,\r\n objectId: () => vm.object.BusinessProcessObjectId\r\n }\r\n });\r\n\r\n try {\r\n await groupModal.result;\r\n vm.onGroupUpdated();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function deleteGroup(groupId) {\r\n try {\r\n await sapAuthFieldGroupsDataService.deleteGroup(groupId);\r\n vm.onGroupUpdated();\r\n } catch {\r\n return;\r\n }\r\n }\r\n}","import sapAuthFieldGroupsController from \"./sapAuthFieldGroups.controller\";\r\n\r\n/* sapAuthFieldGroups.component.js */\r\n\r\n/**\r\n * @desc component for viewing and managing SAP Auth Field Groups\r\n * @example \r\n */\r\n\r\nconst sapAuthFieldGroups = {\r\n bindings: {\r\n object: '<',\r\n isCustomRuleset: '<',\r\n onGroupUpdated: '&'\r\n },\r\n controller: sapAuthFieldGroupsController,\r\n controllerAs: 'safgvm',\r\n templateUrl: '/App/Components/MaintainBusinessProcess/SAPAuthFieldGroups/sapAuthFieldGroups.tmpl.html'\r\n};\r\n\r\nexport default sapAuthFieldGroups;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n createGroup,\r\n createFieldValue,\r\n updateGroup,\r\n deleteGroup,\r\n deleteFieldValue\r\n };\r\n\r\n return factory;\r\n\r\n // POST Requests\r\n async function createGroup(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/assure/sap/authfieldgroups`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function createFieldValue(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/assure/sap/authfieldvalues`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // PUT Requests\r\n async function updateGroup(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/assure/sap/authfieldgroups/${data.Id}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // DELETE Requests\r\n async function deleteGroup(groupId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/assure/sap/authfieldgroups/${groupId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteFieldValue(fieldId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/assure/sap/authfieldvalues/${fieldId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}","import { standardGridPageSize, customAutoCompleteFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, maintainProfilesDataService, helperService, isImport, existingProfiles) {\r\n\r\n const vm = this;\r\n\r\n vm.addProfile = addProfile;\r\n vm.cancel = cancel;\r\n vm.importProfiles = importProfiles;\r\n vm.isImport = isImport;\r\n vm.existingProfiles = [...existingProfiles];\r\n\r\n activate();\r\n\r\n function activate() {\r\n createAvailableProfilesGrid();\r\n }\r\n\r\n async function addProfile({ ProfileName, ProductId }) {\r\n kendo.ui.progress(vm.availableProfilesGrid.element, true);\r\n let postData = {\r\n ProfileName: ProfileName,\r\n ProductId: ProductId\r\n };\r\n\r\n try {\r\n await maintainProfilesDataService.updateProfiles(postData);\r\n vm.existingProfiles.push(postData);\r\n kendo.ui.progress(vm.availableProfilesGrid.element, false);\r\n await vm.availableProfilesGridDataSource.read();\r\n } catch {\r\n kendo.ui.progress(vm.availableProfilesGrid.element, false);\r\n }\r\n }\r\n\r\n function createAvailableProfilesGrid() {\r\n var availableGridColumns = [\r\n { title: \"Profile\", field: \"ProfileName\", filterable: customAutoCompleteFilter },\r\n { title: \"Product\", field: \"ProductName\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n vm.availableProfilesGridOptions = helperService.setMainGridOptions(availableGridColumns, null);\r\n vm.availableProfilesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let { data } = await maintainProfilesDataService.getProfiles();\r\n data = $filter(\"orderBy\")(data, \"ProfileName\");\r\n data = data.filter(profile => !vm.existingProfiles.some(existingProfile => existingProfile.ProfileName === profile.ProfileName && existingProfile.ProductId === profile.ProductId));\r\n options.success(data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function importProfiles(files) {\r\n vm.importPending = new createSpinner();\r\n let fd = new FormData();\r\n files.forEach(file => {\r\n fd.append(file.file.name, file.file);\r\n });\r\n if (files.length > 0) {\r\n vm.disableButton = true;\r\n try {\r\n await maintainProfilesDataService.importProfiles(fd);\r\n await helperService.successfulSaveButton(vm.importPending);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.importPending.loadingValue = false;\r\n vm.disableButton = false;\r\n }\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n}","import swal from \"sweetalert2\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport maintainProfilesModalController from \"../maintainProfilesModal/maintainProfilesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModal, maintainProfilesDataService, helperService, FileSaver) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = createMaintainProfilesGrid();\r\n\r\n vm.openMaintainProfilesModal = openMaintainProfilesModal;\r\n vm.deleteProfile = deleteProfile;\r\n vm.exportProfiles = exportProfiles;\r\n\r\n function createMaintainProfilesGrid() {\r\n let maintainProfilesGridColumns =\r\n [\r\n { field: \"ProfileName\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"ProductName\", title: \"Product\", filterable: customAutoCompleteFilter },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n\r\n ];\r\n\r\n vm.maintainProfilesGridOptions = helperService.setMainGridOptions(maintainProfilesGridColumns, 600);\r\n vm.maintainProfilesGridOptions.selectable = false;\r\n\r\n vm.maintainProfilesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let { data } = await maintainProfilesDataService.getSensitiveProfiles();\r\n data = $filter('orderBy')(data, 'ProfileName');\r\n vm.existingProfiles = data;\r\n options.success(data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function exportProfiles() {\r\n vm.exportUpdatePending = new createSpinner();\r\n\r\n try {\r\n let { data } = await maintainProfilesDataService.exportProfiles();\r\n await helperService.successfulSaveButton(vm.exportUpdatePending);\r\n FileSaver.saveAs(data, 'Profiles.xlsx');\r\n } catch {\r\n vm.exportUpdatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function deleteProfile({ ProfileName, Id }) {\r\n try {\r\n await swal(helperService.areYouSureParamsWithHTML('Delete Profile',\r\n `
Are you sure you want to delete profile\r\n
${ProfileName}?
\r\n
`, 'Delete'));\r\n await maintainProfilesDataService.deleteProfile(Id);\r\n vm.profile = null;\r\n vm.maintainProfilesGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n\r\n }\r\n\r\n async function openMaintainProfilesModal(isImport) {\r\n let profileModal = $uibModal.open({\r\n templateUrl: '/App/Components/maintainProfiles/maintainProfilesModal/maintainProfilesModal.tmpl.html',\r\n controller: maintainProfilesModalController,\r\n controllerAs: 'mpmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n isImport: () => isImport,\r\n existingProfiles: () => vm.existingProfiles\r\n }\r\n });\r\n\r\n try {\r\n await profileModal.result;\r\n vm.maintainProfilesGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n}","/* maintainProfilesGrid.component.js */\r\n\r\nimport maintainProfilesGridController from \"./maintainProfilesGrid.controller\";\r\n\r\n/**\r\n * @desc component to display, add, delete, import and export SAP users that are assigned to powerful profiles\r\n * @example \r\n */\r\n\r\nconst maintainProfilesGrid = {\r\n controller: maintainProfilesGridController,\r\n controllerAs: 'mpgvm',\r\n templateUrl: '/App/Components/maintainProfiles/maintainProfilesGrid/maintainProfilesGrid.tmpl.html'\r\n};\r\n\r\nexport default maintainProfilesGrid;","import angular from 'angular';\r\nimport SAPCodeCheckerViewModel from '../Components/SAPCodeChecker/SAPCodeCheckerViewModel';\r\nimport SAPRiskQuantificationViewModel from '../Components/SAPRiskQuantification/SAPRiskQuantificationViewModel';\r\nimport sapAuthFieldGroups from '../Components/MaintainBusinessProcess/SAPAuthFieldGroups/sapAuthFieldGroups.component';\r\nimport sapAuthFieldGroupsDataServiceFactory from '../Components/MaintainBusinessProcess/SAPAuthFieldGroups/sapAuthFieldGroupsDataService.factory';\r\nimport maintainProfilesGrid from '../Components/maintainProfiles/maintainProfilesGrid/maintainProfilesGrid.component';\r\nimport maintainProfiles from '../Components/maintainProfiles/maintainProfiles.component';\r\n\r\n\r\nexport default angular\r\n .module('app.accessRiskMonitor.sap', [])\r\n .controller(\"sapCodeCheckerViewModel\", SAPCodeCheckerViewModel)\r\n .controller(\"SAPRiskQuantificationViewModel\", SAPRiskQuantificationViewModel)\r\n .component(\"sapAuthFieldGroups\", sapAuthFieldGroups)\r\n .factory(\"sapAuthFieldGroupsDataService\", sapAuthFieldGroupsDataServiceFactory)\r\n .component('maintainProfiles', maintainProfiles)\r\n .component('maintainProfilesGrid', maintainProfilesGrid)\r\n .name;","/* maintainProfiles.component.js */\r\n\r\n/**\r\n * @desc component to configure profiles in SAP\r\n * @example \r\n */\r\n\r\nconst maintainProfiles = {\r\n template: `
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
`\r\n};\r\n\r\nexport default maintainProfiles;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport swal from \"sweetalert2\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($filter, errorsDataService, $http, helperService) {\r\n const vm = this,\r\n columns = [\r\n { field: \"RiskName\", title: \"Risk Name\", filterable: customAutoCompleteFilter },\r\n { field: \"RulesetName\", title: \" Ruleset Name\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", filterable: customAutoCompleteFilter },\r\n { field: \"Control\", title: \"Control\", filterable: customAutoCompleteFilter },\r\n { field: \"Status\", title: \"Status\", filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.applyDefaultMitigations = applyDefaultMitigations;\r\n vm.helperService = helperService;\r\n vm.DefaultMitigationsOverwriteCurrent;\r\n vm.ApplyDefaultMitigationsAfterImport;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.DefaultMitigationsOverwriteCurrent = await vm.helperService.getConfigurationValue('DefaultMitigationsOverwriteCurrent');\r\n vm.ApplyDefaultMitigationsAfterImport = await vm.helperService.getConfigurationValue('ApplyDefaultMitigationsAfterImport');\r\n vm.mainGridOptions = helperService.setMainGridOptions(columns, 600);\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: halSchemaKendoGrid,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n selectable: false,\r\n transport: {\r\n read: async options => {\r\n let sortsAndFilters = helperService.prepareSortsAndFilters(options),\r\n response;\r\n\r\n try {\r\n response = await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/core/reports/execute/10203',\r\n data: sortsAndFilters,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n });\r\n\r\n $filter('filter')(response.data._embedded.reportData, { DefaultMitigation: 'True' });\r\n\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n } catch (err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function applyDefaultMitigations() {\r\n try {\r\n await swal(helperService.areYouSureParams('Apply Default Mitigations', 'Are you sure you want to apply Default Mitigations to all risks?', 'Apply'));\r\n await $http.put(`${apiUrl}api/arm/usermitigations/applydefaultmitigations`, {});\r\n } catch (error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n}\r\n","import controller from \"./applyDefaultMitigations.controller\";\r\n\r\n/* applyDefaultMitigations.component.js */\r\n\r\n/**\r\n * @desc component for applying default mitigations\r\n * @example \r\n */\r\n\r\nconst applyDefaultMitigations = {\r\n controller: controller,\r\n controllerAs: 'admvm',\r\n templateUrl: '/App/Components/applyDefaultMitigations/applyDefaultMitigations.tmpl.html'\r\n};\r\n\r\nexport default applyDefaultMitigations;","import { standardGridPageSize, customAutoCompleteFilter, customBooleanFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($filter, helperService, dataService, risksDataService, assignRisksDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n\r\n vm.assignByUserDropdownChange = assignByUserDropdownChange;\r\n vm.assignByRiskDropdownChange = assignByRiskDropdownChange;\r\n vm.removeAssignByUser = removeAssignByUser;\r\n vm.assignByUser = assignByUser;\r\n vm.assignByRisk = assignByRisk;\r\n\r\n //Arrays to hold the current list of assigned users and risks\r\n vm.AssignByUserList = [];\r\n vm.AssignByRiskList = [];\r\n vm.risk = {};\r\n vm.AssignedUser = {\r\n AssignedUser: '',\r\n Active: false,\r\n Domain: '',\r\n Email: '',\r\n IsSystemAccount: false,\r\n UserID: '',\r\n UserLogonName: ''\r\n };\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.userDataSource = await getUsers();\r\n vm.riskManageType = await getRiskManageType();\r\n setupAssignByUserGrid();\r\n setupAssignByRiskGrid();\r\n }\r\n\r\n function getRiskManageType() {\r\n return helperService.getConfigurationValue('RiskManageType');\r\n }\r\n\r\n async function getUsers() {\r\n let response = await dataService.getUsers();\r\n response.data = response.data.filter(user => user.Active);\r\n response.data = $filter('orderBy')(response.data, 'UserLogonName');\r\n return response.data;\r\n }\r\n\r\n function setupAssignByUserGrid() {\r\n const userGridColumns = [\r\n { template: ``, width: 65, minResizableWidth: 65, title: \" \" },\r\n { field: \"User\", title: \"User Name\", filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", filterable: customAutoCompleteFilter },\r\n { template: `{{dataItem.AssignedUserName}}`, title: \"Assigned User\", width: 160, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.userGridOptions = helperService.setMainGridOptions(userGridColumns, 600);\r\n vm.userGridOptions.selectable = false;\r\n\r\n vm.userGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let response = await assignRisksDataService.getAssignedRisks();\r\n response.data.forEach(risk => risk.isAssigned = false);\r\n response.data = $filter('orderBy')(response.data, 'User');\r\n options.success(response.data);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function setupAssignByRiskGrid() {\r\n const riskGridColumns = [\r\n { template: ``, width: 65, minResizableWidth: 65, title: \" \" },\r\n { field: \"RulesetName\", title: \"Ruleset\", filterable: customAutoCompleteFilter },\r\n { field: \"RulesetEnabled\", title: \"Ruleset Enabled\", width: 140, filterable: customBooleanFilter },\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"ID\", title: \"Id\", filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel.Name\", title: \"Risk\", filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"Risk Enabled\", width: 140, filterable: customBooleanFilter },\r\n { template: `{{dataItem.AssignedUser.UserLogonName}}`, title: \"Assigned User\", width: 160, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.riskGridOptions = helperService.setMainGridOptions(riskGridColumns, 600);\r\n vm.riskGridOptions.selectable = false;\r\n\r\n vm.riskGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n RulesetEnabled: { type: \"boolean\" },\r\n Enabled: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n filter: [{ field: 'RulesetEnabled', operator: 'equal', value: true }, { field: 'Enabled', operator: 'equal', value: true }],\r\n transport: {\r\n read: async options => {\r\n try {\r\n let response = await risksDataService.getAllRisks();\r\n response.data.forEach(risk => {\r\n if (risk.AssignedUser === null) {\r\n risk.AssignedUser = vm.AssignedUser;\r\n }\r\n risk.isAssigned = false;\r\n });\r\n\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n\r\n }\r\n });\r\n }\r\n\r\n function assignByUserDropdownChange() {\r\n let userGridDataSource = vm.userGridDataSource.data()\r\n userGridDataSource.forEach(user => {\r\n user.isAssigned = user.UserMasterID === vm.risk.selectedAssignByUserUser.UserID;\r\n });\r\n }\r\n\r\n function assignByRiskDropdownChange() {\r\n let riskGridDataSource = vm.riskGridDataSource.data()\r\n riskGridDataSource.forEach(risk => {\r\n if (risk.isAssigned) {\r\n risk.isAssigned = false;\r\n }\r\n });\r\n }\r\n\r\n async function removeAssignByUser(dataItem) {\r\n kendo.ui.progress(vm.userGrid.element, true);\r\n try {\r\n await assignRisksDataService.removeAssignedRiskByUser(dataItem.UserMasterID);\r\n dataItem.AssignedUserId = null;\r\n dataItem.AssignedUserName = null;\r\n dataItem.isAssigned = false;\r\n kendo.ui.progress(vm.userGrid.element, false);\r\n } catch {\r\n kendo.ui.progress(vm.userGrid.element, false);\r\n }\r\n }\r\n\r\n async function assignByUser(dataItem) {\r\n kendo.ui.progress(vm.userGrid.element, true);\r\n if (vm.risk.selectedAssignByUserUser && vm.risk.selectedAssignByUserUser !== '') {\r\n const data = {\r\n 'AssignedUserId': vm.risk.selectedAssignByUserUser.UserID,\r\n 'UserMasterId': dataItem.UserMasterID\r\n };\r\n\r\n try {\r\n await assignRisksDataService.assignRiskByUser(data);\r\n dataItem.AssignedUserId = data.AssignedUserId;\r\n dataItem.AssignedUserName = vm.risk.selectedAssignByUserUser.UserLogonName;\r\n kendo.ui.progress(vm.userGrid.element, false);\r\n } catch {\r\n kendo.ui.progress(vm.userGrid.element, false);\r\n }\r\n }\r\n }\r\n\r\n async function assignByRisk(dataItem, remove) {\r\n kendo.ui.progress(vm.riskGrid.element, true);\r\n const data = {\r\n 'Id': dataItem.Id,\r\n 'AssignedUserId': remove ? null : vm.risk.selectedAssignByRiskUser.UserID\r\n };\r\n\r\n try {\r\n await assignRisksDataService.assignByRisk(data);\r\n if (remove) {\r\n dataItem.AssignedUser = vm.AssignedUser;\r\n dataItem.isAssigned = false;\r\n } else {\r\n dataItem.AssignedUser = vm.risk.selectedAssignByRiskUser;\r\n }\r\n kendo.ui.progress(vm.riskGrid.element, false);\r\n } catch {\r\n kendo.ui.progress(vm.riskGrid.element, false);\r\n }\r\n }\r\n}\r\n","import assignRisksController from \"./assignRisks.controller\";\r\n\r\n/* assignRisks.component.js */\r\n\r\n/**\r\n * @desc component for assigning risks\r\n * @example \r\n */\r\n\r\nconst assignRisks = {\r\n controller: assignRisksController,\r\n controllerAs: 'arvm',\r\n templateUrl: '/App/Components/assignRisks/assignRisks.tmpl.html'\r\n};\r\n\r\nexport default assignRisks;","import swal from \"sweetalert2\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, controlLibraryDataService, activeControlPlugins) {\r\n\r\n const vm = this;\r\n vm.cancel = cancel;\r\n vm.importControlLibrary = importControlLibrary;\r\n vm.importControlsFromPluginAPI = importControlsFromPluginAPI;\r\n\r\n vm.disableButton = false;\r\n vm.auditBoardActive = activeControlPlugins.some(plugin => plugin === 'AuditBoard');\r\n vm.workivaActive = activeControlPlugins.some(plugin => plugin === 'Workiva');\r\n vm.importType = \"InsertNewOnly\";\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n function successCallback(response) {\r\n vm.disableButton = false;\r\n vm.cancel();\r\n }\r\n\r\n // Import control functions\r\n\r\n async function importControlLibrary(file) {\r\n vm.pendingImport = new createSpinner();\r\n vm.pendingImport.loadingValue = true;\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n fd.append(\"ImportType\", vm.importType);\r\n\r\n vm.disableButton = true;\r\n\r\n try {\r\n let response = await controlLibraryDataService.importControlLibrary(fd);\r\n successCallback(response);\r\n vm.pendingImport.loadingValue = false;\r\n } catch {\r\n vm.pendingImport.loadingValue = false;\r\n vm.disableButton = false;\r\n }\r\n }\r\n\r\n async function importControlsFromPluginAPI(plugin) {\r\n vm.disableButton = true;\r\n try {\r\n await swal(helperService.areYouSureParams(`Import via ${plugin} API`, `Are you sure you want to import controls via ${plugin} API?`, 'Import'));\r\n let response = await controlLibraryDataService.importControlsFromPluginAPI(plugin);\r\n successCallback(response);\r\n } catch {\r\n vm.disableButton = false;\r\n }\r\n }\r\n\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, FileSaver, helperService, controlLibraryDataService, item, dataService) {\r\n const vm = this;\r\n vm.saveControl = saveControl;\r\n vm.cancel = cancel;\r\n vm.removeFile = removeFile;\r\n vm.downloadFile = downloadFile;\r\n\r\n activate();\r\n\r\n function activate() {\r\n setMitigations();\r\n setProducts();\r\n setUsers();\r\n setBusinessProcesses();\r\n\r\n vm.shouldBeOpen = true;\r\n\r\n if (item.Id) {\r\n vm.control = { ...item.toJSON() };\r\n // get any attachments that our control already has\r\n if (vm.control.Attachments.length) {\r\n vm.existingFilesDataSource = [...vm.control.Attachments];\r\n }\r\n }\r\n }\r\n\r\n // Functions for loading dropdown data\r\n async function setMitigations() {\r\n vm.mitigationDropdownLoading = true;\r\n let response = await controlLibraryDataService.getMitigations();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.mitigationDataSource = response.data;\r\n vm.mitigationDropdownLoading = false;\r\n }\r\n\r\n async function setProducts() {\r\n vm.productDropdownLoading = true;\r\n let response = await controlLibraryDataService.getProducts();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.productDataSource = response.data;\r\n vm.productDropdownLoading = false;\r\n }\r\n\r\n async function setUsers() {\r\n vm.userDropdownLoading = true;\r\n let response = await dataService.getUsers()\r\n response.data = response.data.filter(user => user.Active);\r\n response.data = $filter('orderBy')(response.data, 'UserLogonName');\r\n vm.usersDataSource = response.data;\r\n vm.userDropdownLoading = false;\r\n }\r\n\r\n async function setBusinessProcesses() {\r\n vm.businessProcessDropdownLoading = true;\r\n let response = await controlLibraryDataService.getBusinessProcesses();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.businessProcessDataSource = response.data.map(bp => {\r\n let noObjectsBp = {\r\n \"Id\": bp.Id,\r\n \"Name\": bp.Name,\r\n \"Description\": bp.Description,\r\n \"Type\": bp.Type,\r\n \"Objects\": [],\r\n \"RulesetId\": bp.RulesetId,\r\n \"RulesetName\": bp.RulesetName\r\n };\r\n return noObjectsBp;\r\n });\r\n vm.businessProcessDropdownLoading = false;\r\n }\r\n\r\n // Common modal functions\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n function close() { $uibModalInstance.close(); }\r\n\r\n async function saveControl(control) {\r\n vm.savePending = new createSpinner();\r\n if (control.BusinessProcesses) {\r\n control.selectedBusinessProcesses = control.BusinessProcesses.map(bp => bp.Id);\r\n }\r\n\r\n let controlToSave = {\r\n 'Id': control.Id,\r\n 'Name': control.Name,\r\n 'Description': control.Description,\r\n 'OwnerId': control.OwnerId,\r\n 'PerformerId': control.PerformerId,\r\n 'MitigationId': control.MitigationId,\r\n 'ProductType': control.ProductType,\r\n 'BusinessProcessIds': control.selectedBusinessProcesses\r\n };\r\n\r\n if (vm.control.Identifier) {\r\n controlToSave.Identifier = control.Identifier;\r\n }\r\n\r\n try {\r\n var controlData;\r\n if (vm.control.Identifier) {\r\n await controlLibraryDataService.editControl(controlToSave);\r\n controlData = item.Identifier;\r\n } else {\r\n var { data: controlData } = await controlLibraryDataService.addNewControl(controlToSave);\r\n }\r\n\r\n if (vm.attachments.flow.files.length) {\r\n uploadNewFiles(vm.attachments.flow.files, controlData);\r\n } else {\r\n await helperService.successfulSaveButton(vm.savePending)\r\n close();\r\n }\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function removeFile(file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n await controlLibraryDataService.deleteAttachment(file.Identifier);\r\n const index = vm.existingFilesDataSource.findIndex(remainingFile => remainingFile.Identifier === file.Identifier);\r\n vm.existingFilesDataSource.splice(index, 1);\r\n vm.fileActionPending = false;\r\n } catch {\r\n vm.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function downloadFile(file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n const response = await controlLibraryDataService.downloadAttachment(file.Identifier);\r\n FileSaver.saveAs(response.data, file.FileName);\r\n vm.fileActionPending = false;\r\n } catch {\r\n vm.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function uploadNewFiles(files, controlId) {\r\n let fd = new FormData();\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"Control\");\r\n fd.append(\"DataTypeId\", controlId);\r\n\r\n try {\r\n await controlLibraryDataService.addAttachments(fd);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n}","import { customAutoCompleteFilter, standardGridPageSize, customBooleanFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport importControlModalController from \"./importControlModal.controller\";\r\nimport newEditControlModalController from \"./newEditControlModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, FileSaver, $uibModal, helperService, controlLibraryDataService, configurationDataService) {\r\n\r\n const vm = this;\r\n vm.deleteControl = deleteControl;\r\n vm.exportControls = exportControls;\r\n vm.openNewEditModal = openNewEditModal;\r\n vm.openImportModal = openImportModal;\r\n vm.helperService = helperService;\r\n\r\n $scope.$on('ImportControlsLibrary', (event, args) => vm.gridDataSource.read());\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.activeControlPlugins = await getActiveControlPlugins();\r\n let columnsFromVM = [\r\n { field: \"Id\", title: \"Control ID\", filterable: customAutoCompleteFilter },\r\n { field: \"Name\", title: \"Control Name\", filterable: customAutoCompleteFilter },\r\n { field: \"PerformerName\", title: \"Control Performer\", filterable: customAutoCompleteFilter },\r\n { field: \"OwnerName\", title: \"Control Owner\", filterable: customAutoCompleteFilter },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n ];\r\n\r\n if (vm.activeControlPlugins.length > 0) {\r\n vm.activeControlPlugins.forEach(plugin => {\r\n columnsFromVM.splice(3, 0, { field: `Is${plugin}Control`, title: `Imported from ${plugin}`, filterable: customBooleanFilter, width: 150 });\r\n });\r\n }\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(columnsFromVM, 600);\r\n vm.mainGridOptions.selectable = false;\r\n }\r\n\r\n async function getActiveControlPlugins() {\r\n let pluginsArray = [];\r\n // individually get config values for specific plugins until we have a better way to accomplish this\r\n const workivaActive = await configurationDataService.getConfigurationValueByName(\"WORKIVA_Active\");\r\n const auditBoardActive = await configurationDataService.getConfigurationValueByName(\"AUDITBOARD_Active\");\r\n if (workivaActive.data) {\r\n pluginsArray.push('Workiva');\r\n }\r\n if (auditBoardActive.data) {\r\n pluginsArray.push('AuditBoard');\r\n }\r\n return pluginsArray;\r\n }\r\n\r\n function deleteControl(control) {\r\n controlLibraryDataService.deleteControl(control)\r\n .then(response => {\r\n vm.gridDataSource.read();\r\n }).catch(errorCallback);\r\n }\r\n\r\n function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n\r\n function exportControls() {\r\n\r\n vm.exportUpdatePending = new createSpinner();\r\n\r\n controlLibraryDataService.exportControls()\r\n .then(response => {\r\n helperService.successfulSaveButton(vm.exportUpdatePending)\r\n .then(result => {\r\n FileSaver.saveAs(response.data, 'Controls.xlsx');\r\n vm.exportUpdatePending.loadingValue = false;\r\n });\r\n }).catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n vm.exportUpdatePending.loadingValue = false;\r\n });\r\n }\r\n\r\n async function openNewEditModal(item) {\r\n let newEditModal = $uibModal.open({\r\n templateUrl: '/App/Components/controlLibrary/newEditControlModal.html',\r\n controller: newEditControlModalController,\r\n controllerAs: 'necvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n item: () => item || {}\r\n }\r\n });\r\n\r\n try {\r\n await newEditModal.result;\r\n vm.gridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function openImportModal() {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/controlLibrary/importControlModal.html',\r\n controller: importControlModalController,\r\n controllerAs: 'icmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n activeControlPlugins: () => vm.activeControlPlugins\r\n }\r\n });\r\n }\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n IsWorkivaControl: { type: \"boolean\" },\r\n IsAuditBoardControl: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n try {\r\n let response = await controlLibraryDataService.getControls();\r\n options.success(response.data);\r\n } catch (error) {\r\n options.error(error);\r\n }\r\n }\r\n }\r\n });\r\n\r\n}","/* controlLibrary.component.js */\r\n\r\nimport controlLibraryController from \"./controlLibrary.controller\";\r\n\r\n/**\r\n * @desc component for Control Library\r\n * @example \r\n */\r\n\r\nconst controlLibrary = {\r\n controller: controlLibraryController,\r\n controllerAs: 'clvm',\r\n templateUrl: '/App/Components/controlLibrary/controlLibrary.html'\r\n};\r\n\r\nexport default controlLibrary;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, businessCyclesDataService, businessCycle) {\r\n\r\n const vm = this;\r\n\r\n vm.dismiss = dismiss;\r\n vm.saveBusinessCycle = saveBusinessCycle;\r\n\r\n function activate() {\r\n vm.shouldBeOpen = true;\r\n\r\n if (businessCycle.ID) {\r\n vm.businessCycle = Object.assign({}, businessCycle.toJSON());\r\n }\r\n }\r\n\r\n activate();\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n //Save BusinessCycle\r\n function saveBusinessCycle() {\r\n vm.saving = new createSpinner();\r\n if (vm.businessCycle.ID) {\r\n modifyBusinessCycle(vm.businessCycle.ID, vm.businessCycle);\r\n } else {\r\n addBusinessCycle(vm.businessCycle);\r\n }\r\n }\r\n\r\n async function modifyBusinessCycle(businessCycleId, businessCycle) {\r\n try {\r\n await businessCyclesDataService.modifyBusinessCycle(businessCycleId, businessCycle);\r\n await helperService.successfulSaveButton(vm.saving);\r\n close();\r\n }\r\n catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n\r\n async function addBusinessCycle(businessCycle) {\r\n try {\r\n businessCycle.ID = '';\r\n await businessCyclesDataService.addBusinessCycle(businessCycle);\r\n await helperService.successfulSaveButton(vm.saving);\r\n close();\r\n }\r\n catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport businessCycleModalController from \"./businessCycleModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, businessCyclesDataService, $uibModal, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.shouldBeOpen = true;\r\n\r\n vm.deleteItem = deleteItem;\r\n vm.openModal = openModal;\r\n\r\n activate();\r\n\r\n function activate() {\r\n createBusinessCycleGrid();\r\n }\r\n\r\n function createBusinessCycleGrid() {\r\n const businessCyclesGridColumns =\r\n [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n\r\n ];\r\n\r\n vm.businessCyclesGridOptions = helperService.setMainGridOptions(businessCyclesGridColumns, 600);\r\n vm.businessCyclesGridOptions.selectable = false;\r\n\r\n vm.businessCyclesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let { data } = await businessCyclesDataService.getBusinessCycles();\r\n data = $filter('orderBy')(data, 'Name');\r\n options.success(data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function deleteItem(id) {\r\n try {\r\n kendo.ui.progress(vm.businessCyclesGrid.element, true);\r\n await businessCyclesDataService.removeBusinessCycle(id);\r\n kendo.ui.progress(vm.businessCyclesGrid.element, false);\r\n vm.businessCyclesGridDataSource.read();\r\n } catch {\r\n kendo.ui.progress(vm.businessCyclesGrid.element, false);\r\n }\r\n }\r\n\r\n async function openModal(businessCycle) {\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/maintainBusinessCycles/businessCycleModal.html',\r\n controller: businessCycleModalController,\r\n controllerAs: 'bcmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n businessCycle: () => businessCycle || {}\r\n }\r\n });\r\n\r\n try {\r\n await openModal.result;\r\n vm.businessCyclesGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n}","/* maintainBusinessCycles.component.js */\r\n\r\nimport maintainBusinessCyclesController from \"./maintainBusinessCycles.controller\";\r\n\r\n/**\r\n * @desc component to maintain Business Cycles\r\n * @example \r\n */\r\n\r\nconst maintainBusinessCycles = {\r\n controller: maintainBusinessCyclesController,\r\n controllerAs: 'bcvm',\r\n templateUrl: '/App/Components/maintainBusinessCycles/maintainBusinessCycles.html'\r\n};\r\n\r\nexport default maintainBusinessCycles;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, riskRulesetService, $filter, riskRuleset, isCloning, dataService, FileSaver) {\r\n\r\n const vm = this;\r\n\r\n vm.newRiskRulesetIsDefault = false;\r\n vm.isImport = false;\r\n vm.loadingImport = false;\r\n vm.importType = \"New\";\r\n vm.gridView = 'BusinessProcesses';\r\n vm.ineligibileBusinessProcessIds = [];\r\n\r\n vm.riskRuleset = Object.assign({}, riskRuleset);\r\n vm.riskRuleset.IsDefault = vm.riskRuleset.IsDefault !== undefined ? vm.riskRuleset.IsDefault : false;\r\n vm.riskRuleset.IsEnabled = vm.riskRuleset.IsEnabled !== undefined ? vm.riskRuleset.IsEnabled : true;\r\n vm.riskRuleset.BypassSecurityObjectValidation = vm.riskRuleset.BypassSecurityObjectValidation !== undefined ? vm.riskRuleset.BypassSecurityObjectValidation : false;\r\n vm.isCloning = isCloning;\r\n vm.downloadTemplate = downloadTemplate;\r\n\r\n\r\n vm.importChecked = importChecked;\r\n vm.getCustomRulesets = getCustomRulesets;\r\n vm.rulesetFormSubmit = rulesetFormSubmit;\r\n vm.addNewRiskRuleset = addNewRiskRuleset;\r\n vm.updateIneligibleBusinessProcessIds = updateIneligibleBusinessProcessIds;\r\n vm.hasIneligibleBusinessProcessId = hasIneligibleBusinessProcessId;\r\n vm.cancel = cancel;\r\n vm.checkDefaultEnabled = checkDefaultEnabled;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await hasSAP();\r\n if (vm.isCloning) {\r\n vm.actionTitle = 'Clone';\r\n setupCloningGrids();\r\n } else if (vm.riskRuleset.RulesetId) {\r\n vm.actionTitle = 'Edit';\r\n } else {\r\n vm.actionTitle = 'Create';\r\n }\r\n }\r\n\r\n function rulesetFormSubmit() {\r\n vm.disableSubmit = true;\r\n if (vm.isCloning) {\r\n cloneRiskRuleset();\r\n } else if (vm.riskRuleset.RulesetId) {\r\n updateRiskRuleset();\r\n } else if (vm.isImport) {\r\n importRiskRuleset(vm.files.files);\r\n } else {\r\n addNewRiskRuleset();\r\n }\r\n }\r\n\r\n // ----- CREATE RULESET -----\r\n function importChecked() {\r\n if (vm.isImport && !vm.customRiskRulesetDataSource) {\r\n getCustomRulesets();\r\n }\r\n }\r\n\r\n async function getCustomRulesets() {\r\n vm.loadingRiskRulesets = true;\r\n let response = await riskRulesetService.getRiskRulesetList();\r\n vm.loadingRiskRulesets = false;\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.customRiskRulesetDataSource = response.data.filter(ruleset => ruleset.IsCustom);\r\n }\r\n\r\n\r\n async function updateRiskRuleset() {\r\n vm.savingRiskRuleset = new createSpinner();\r\n const putBody = {\r\n \"RulesetId\": vm.riskRuleset.RulesetId,\r\n \"Name\": vm.riskRuleset.Name,\r\n \"Description\": vm.riskRuleset.Description,\r\n \"IsDefault\": vm.riskRuleset.IsDefault,\r\n \"IsEnabled\": vm.riskRuleset.IsEnabled\r\n };\r\n\r\n try {\r\n await riskRulesetService.updateRiskRuleset(vm.riskRuleset.RulesetId, putBody);\r\n await helperService.successfulSaveButton(vm.savingRiskRuleset);\r\n close();\r\n vm.disableSubmit = false;\r\n } catch (_) {\r\n vm.savingRiskRuleset.loadingValue = false;\r\n vm.disableSubmit = false;\r\n }\r\n }\r\n\r\n async function hasSAP() {\r\n let response = await dataService.getProducts();\r\n vm.hasSAP = response.data.some(product => product.Type === 'SAP');\r\n }\r\n\r\n async function downloadTemplate() {\r\n try {\r\n if (vm.hasSAP) {\r\n let response = await riskRulesetService.downloadRulesetTemplate('SAP');\r\n saveFile(response.data);\r\n } else {\r\n let response = await riskRulesetService.downloadRulesetTemplate();\r\n saveFile(response.data);\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function saveFile(file) {\r\n FileSaver.saveAs(file, 'RiskRuleset.xlsx');\r\n }\r\n\r\n async function importRiskRuleset(file) {\r\n vm.savingRiskRuleset = new createSpinner();\r\n let fd = new FormData();\r\n const fileName = file[0].name;\r\n file = file[0].file;\r\n fd.append(fileName, file);\r\n\r\n if (vm.importType === 'New') {\r\n fd.append(\"RulesetName\", vm.riskRuleset.Name);\r\n fd.append(\"RulesetDescription\", vm.riskRuleset.Description);\r\n fd.append(\"IsDefaultRuleset\", vm.riskRuleset.IsDefault);\r\n fd.append(\"BypassSecurityObjectValidation\", vm.riskRuleset.BypassSecurityObjectValidation);\r\n fd.append(\"IsEnabled\", vm.riskRuleset.IsEnabled);\r\n } else {\r\n fd.append(\"RulesetId\", vm.selectedRiskRulesetToOverwrite.RulesetId);\r\n }\r\n\r\n try {\r\n let response = await riskRulesetService.importRiskRuleset(fd);\r\n await helperService.successfulSaveButton(vm.savingRiskRuleset);\r\n close(response.data);\r\n } catch (_) {\r\n vm.savingRiskRuleset.loadingValue = false;\r\n vm.disableSubmit = false;\r\n }\r\n }\r\n\r\n async function addNewRiskRuleset() {\r\n vm.savingRiskRuleset = new createSpinner();\r\n const postBody = {\r\n \"Name\": vm.riskRuleset.Name,\r\n \"Description\": vm.riskRuleset.Description,\r\n \"IsDefault\": vm.riskRuleset.IsDefault,\r\n \"IsEnabled\": vm.riskRuleset.IsEnabled\r\n };\r\n\r\n try {\r\n let response = await riskRulesetService.addNewRiskRuleset(postBody);\r\n await helperService.successfulSaveButton(vm.savingRiskRuleset);\r\n close(response.data);\r\n vm.disableSubmit = false;\r\n } catch (_) {\r\n vm.savingRiskRuleset.loadingValue = false;\r\n vm.disableSubmit = false;\r\n }\r\n }\r\n\r\n\r\n // ----- CLONE RULESET -----\r\n function setupCloningGrids() {\r\n vm.cloneRiskRulesetRisksGridDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: async options => {\r\n let response = await riskRulesetService.getRisks(vm.riskRuleset.RulesetId);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n response.data.forEach(obj => {\r\n obj.isSelected = true;\r\n });\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n\r\n vm.cloneRiskRulesetBusinessProcessesGridDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: async options => {\r\n let response = await riskRulesetService.getBusinessProcesses(vm.riskRuleset.RulesetId);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n response.data.forEach(obj => {\r\n obj.isSelected = true;\r\n });\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n\r\n let businessProcessesGridOptions = [\r\n { template: \"\", width: 55, filterable: false },\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n let risksGridOptions = [\r\n { template: \"\", width: 55, filterable: false },\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.cloneRiskRulesetBusinessProcessGridOptions = helperService.setNonPageableGridOptions(businessProcessesGridOptions, 300);\r\n vm.cloneRiskRulesetBusinessProcessGridOptions.noRecords = {\r\n template: \"
No Business Processes exist for this ruleset
\"\r\n };\r\n\r\n vm.cloneRiskRulesetRisksGridOptions = helperService.setNonPageableGridOptions(risksGridOptions, 300);\r\n vm.cloneRiskRulesetRisksGridOptions.noRecords = {\r\n template: \"
No Risks exist for this ruleset
\"\r\n };\r\n }\r\n\r\n async function cloneRiskRuleset() {\r\n vm.disableSubmit = true;\r\n\r\n if (vm.cloneRiskRulesetRisksGridDataSource._data.length === 0) {\r\n await vm.cloneRiskRulesetRisksGridDataSource.read();\r\n }\r\n\r\n vm.selectedBusinessProcessIds = vm.cloneRiskRulesetBusinessProcessesGridDataSource._data.filter(businessProcess => businessProcess.isSelected).map(businessProcess => businessProcess.Id);\r\n vm.selectedRiskIds = vm.cloneRiskRulesetRisksGridDataSource._data.filter(risk => risk.isSelected).map(risk => risk.Id);\r\n\r\n const data = {\r\n \"Name\": vm.riskRuleset.Name,\r\n \"Description\": vm.riskRuleset.Description,\r\n \"IsDefault\": vm.riskRuleset.IsDefault,\r\n \"RiskIds\": vm.selectedRiskIds,\r\n \"BusinessProcessIds\": vm.selectedBusinessProcessIds,\r\n \"IsEnabled\": vm.riskRuleset.IsEnabled\r\n };\r\n\r\n try {\r\n await riskRulesetService.cloneRiskRuleset(data);\r\n vm.disableSubmit = false;\r\n cancel();\r\n } catch (_) {\r\n vm.disableSubmit = false;\r\n }\r\n }\r\n\r\n function updateIneligibleBusinessProcessIds(businessProcess) {\r\n const businessProcessId = businessProcess.Id;\r\n if (businessProcess.isSelected) {\r\n const index = vm.ineligibileBusinessProcessIds.indexOf(businessProcessId);\r\n if (index > -1) {\r\n vm.ineligibileBusinessProcessIds.splice(index, 1);\r\n }\r\n } else {\r\n vm.ineligibileBusinessProcessIds.push(businessProcessId);\r\n }\r\n }\r\n\r\n function hasIneligibleBusinessProcessId(risk) {\r\n let hasIneligibleIds = false;\r\n\r\n risk.Objects.forEach(object => {\r\n if (vm.ineligibileBusinessProcessIds.includes(object.BusinessProcessId)) {\r\n hasIneligibleIds = true;\r\n }\r\n });\r\n if (hasIneligibleIds) {\r\n risk.isSelected = false;\r\n }\r\n return hasIneligibleIds;\r\n }\r\n\r\n function checkDefaultEnabled() {\r\n if (!vm.riskRuleset.IsEnabled) {\r\n vm.riskRuleset.IsDefault = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, FileSaver, riskLevelsData, businessCyclesDataService, mitigationsDataService, statusDataService, controlLibraryDataService, configurationDataService, riskRulesetService, risk, rulesetId) {\r\n\r\n const vm = this;\r\n vm.attachments = {};\r\n vm.risk = Object.assign({}, risk);\r\n\r\n // Set up form fields for create or edit\r\n if (!vm.risk.Id) {\r\n vm.risk.IsDefaultMitigated = false;\r\n vm.risk.Enabled = true;\r\n vm.risk.BusinessCycle = null;\r\n } else {\r\n vm.risk.RiskLevel = vm.risk.RiskLevel ? vm.risk.RiskLevel.Id : vm.risk.RiskLevel;\r\n vm.risk.Status = vm.risk.Status ? vm.risk.Status.ID : vm.risk.Status;\r\n vm.risk.Mitigation = vm.risk.Mitigation ? vm.risk.Mitigation.ID : vm.risk.Mitigation;\r\n vm.risk.BusinessCycle = vm.risk.BusinessCycle ? vm.risk.BusinessCycle.ID : vm.risk.BusinessCycle;\r\n }\r\n\r\n vm.riskFormSubmit = riskFormSubmit;\r\n vm.removeFile = removeFile;\r\n vm.downloadFile = downloadFile;\r\n vm.cancel = cancel;\r\n vm.clearDefaultMitigationFields = clearDefaultMitigationFields;\r\n\r\n vm.riskTypesDataSource = [\r\n {\r\n Name: 'Segregation of Duties',\r\n Id: 1\r\n },\r\n {\r\n Name: 'Sensitive Access',\r\n Id: 2\r\n }\r\n ];\r\n\r\n activate();\r\n\r\n function activate() {\r\n getStandardMitigations();\r\n getRiskLevels();\r\n getBusinessCycles();\r\n getMitigations();\r\n getStatuses();\r\n getControls();\r\n }\r\n\r\n function riskFormSubmit() {\r\n vm.savingRisk = new createSpinner();\r\n vm.disableSubmit = true;\r\n if (vm.risk.Id) {\r\n updateRisk();\r\n } else {\r\n addNewRisk();\r\n }\r\n }\r\n\r\n async function getStandardMitigations() {\r\n const response = await configurationDataService.getStandardMitigations();\r\n vm.standardMitigations = response.data;\r\n }\r\n\r\n async function getRiskLevels() {\r\n const response = await riskLevelsData.getRiskLevels();\r\n vm.riskLevelDataSource = response.data;\r\n }\r\n\r\n async function getBusinessCycles() {\r\n const response = await businessCyclesDataService.getBusinessCycles();\r\n vm.businessCycleDataSource = response.data;\r\n }\r\n\r\n async function getMitigations() {\r\n const response = await mitigationsDataService.getMitigations();\r\n vm.mitigationDataSource = response.data;\r\n }\r\n\r\n async function getStatuses() {\r\n const response = await statusDataService.getStatuses();\r\n vm.statusDataSource = response.data;\r\n\r\n vm.canCurrentUserAccess = response.data.some(data => data.CanCurrentUserAccess === true);\r\n }\r\n\r\n async function getControls() {\r\n const response = await controlLibraryDataService.getControls();\r\n vm.controlLibrary = response.data;\r\n }\r\n\r\n async function addNewRisk() {\r\n const postBody = {\r\n \"AssignedUserId\": null,\r\n \"Name\": vm.risk.Name,\r\n \"Description\": vm.risk.Description,\r\n \"IsDefaultMitigated\": vm.risk.IsDefaultMitigated,\r\n \"MitigationId\": vm.risk.Mitigation,\r\n \"MitigationNotes\": vm.risk.MitigationNotes,\r\n \"RiskLevelId\": vm.risk.RiskLevel,\r\n \"StatusId\": vm.risk.Status,\r\n \"BusinessCycle\": vm.risk.BusinessCycle,\r\n \"RiskObjects\": vm.risk.Objects,\r\n \"Policy\": vm.risk.Policy === \"\" ? null : vm.risk.Policy,\r\n 'Enabled': vm.risk.Enabled,\r\n 'RulesetId': rulesetId,\r\n 'Controls': vm.risk.Controls ? vm.risk.Controls.map(control => control.Identifier) : null,\r\n 'RiskType': vm.risk.RiskType\r\n };\r\n\r\n try {\r\n const response = await riskRulesetService.addNewRisk(postBody);\r\n if (vm.attachments.flow.files.length) {\r\n uploadNewFiles(vm.attachments.flow.files, response.data, true);\r\n } else {\r\n vm.successText = 'created';\r\n await helperService.successfulSaveButton(vm.savingRisk);\r\n vm.disableSubmit = false;\r\n close({ riskId: response.data, isNewRecord: true });\r\n }\r\n } catch (_) {\r\n vm.savingRisk.loadingValue = false;\r\n vm.disableSubmit = false;\r\n }\r\n }\r\n\r\n async function updateRisk() {\r\n\r\n const putBody = {\r\n \"Id\": vm.risk.Id,\r\n \"Name\": vm.risk.Name,\r\n \"Description\": vm.risk.Description,\r\n \"IsDefaultMitigated\": vm.risk.IsDefaultMitigated,\r\n \"MitigationId\": vm.risk.Mitigation,\r\n \"MitigationNotes\": vm.risk.MitigationNotes,\r\n \"RiskLevelId\": vm.risk.RiskLevel,\r\n \"StatusId\": vm.risk.Status,\r\n \"BusinessCycle\": vm.risk.BusinessCycle,\r\n \"Policy\": vm.risk.Policy === \"\" ? null : vm.risk.Policy,\r\n 'Enabled': vm.risk.Enabled,\r\n 'Controls': vm.risk.Controls ? vm.risk.Controls.map(control => control.Identifier) : null,\r\n 'RiskType': vm.risk.RiskType\r\n };\r\n\r\n try {\r\n await riskRulesetService.updateRisk(vm.risk.Id, putBody);\r\n if (vm.attachments.flow.files.length) {\r\n uploadNewFiles(vm.attachments.flow.files, vm.risk.Id, false);\r\n } else {\r\n vm.successText = 'updated';\r\n await helperService.successfulSaveButton(vm.savingRisk);\r\n vm.disableSubmit = false;\r\n close({ riskId: vm.risk.Id, isNewRecord: false });\r\n }\r\n } catch (_) {\r\n vm.savingRisk.loadingValue = false;\r\n vm.disableSubmit = false;\r\n }\r\n }\r\n\r\n function clearDefaultMitigationFields() {\r\n vm.risk.Mitigation = null;\r\n vm.risk.Status = null;\r\n vm.risk.MitigationNotes = null;\r\n }\r\n\r\n function close(risk) {\r\n $uibModalInstance.close(risk);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n async function removeFile(file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n await controlLibraryDataService.deleteAttachment(file.Identifier);\r\n const index = vm.risk.Attachments.findIndex(remainingFile => remainingFile.Identifier === file.Identifier);\r\n vm.risk.Attachments.splice(index, 1);\r\n vm.fileActionPending = false;\r\n } catch (_) {\r\n vm.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function downloadFile(file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n let response = await controlLibraryDataService.downloadAttachment(file.Identifier);\r\n FileSaver.saveAs(response.data, file.FileName);\r\n vm.fileActionPending = false;\r\n } catch (_) {\r\n vm.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function uploadNewFiles(files, riskId, isNewRecord) {\r\n let fd = new FormData();\r\n files.forEach((file, i) => {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"Risk\");\r\n fd.append(\"DataTypeId\", riskId);\r\n\r\n try {\r\n await controlLibraryDataService.addAttachments(fd);\r\n vm.successText = isNewRecord ? 'created' : 'updated';\r\n await helperService.successfulSaveButton(vm.savingRisk);\r\n vm.disableSubmit = false;\r\n close({ riskId: riskId, isNewRecord: isNewRecord });\r\n } catch (_) {\r\n vm.savingRisk.loadingValue = false;\r\n vm.disableSubmit = false;\r\n return;\r\n }\r\n }\r\n\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, helperService, riskRulesetService, riskRulesetMapper, riskRuleset, risk) {\r\n const vm = this;\r\n\r\n vm.cancel = cancel;\r\n vm.addBusinessProcessToSelectedGrid = addBusinessProcessToSelectedGrid;\r\n vm.risk = risk;\r\n\r\n activate();\r\n\r\n function activate() {\r\n setUpObjectsGrid();\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function setUpObjectsGrid() {\r\n const availableObjectsGridColumns = [\r\n { title: \"Name\", field: \"BusinessProcessName\", filterable: customAutoCompleteFilter },\r\n { title: \"Description\", field: \"BusinessProcessDescription\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n vm.availableObjectsGridOptions = helperService.setMainGridOptions(availableObjectsGridColumns, null);\r\n vm.availableObjectsGridOptions.selectable = false;\r\n\r\n vm.availableObjectsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await riskRulesetService.getBusinessProcesses(riskRuleset.RulesetId);\r\n vm.originalObjects = riskRulesetMapper.mapBusinessProcesses(response.data);\r\n vm.availableObjects = vm.originalObjects.slice();\r\n vm.showBpGrid = true;\r\n\r\n risk.Objects.forEach(function (row, i) {\r\n const Id = row.BusinessProcessId;\r\n vm.availableObjects.forEach(el => {\r\n if (Id.toString() === el.BusinessProcessId) {\r\n vm.availableObjects.remove(el);\r\n }\r\n });\r\n\r\n });\r\n vm.availableObjects = $filter('orderBy')(vm.availableObjects, 'BusinessProcessName');\r\n options.success(vm.availableObjects);\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n async function addBusinessProcessToSelectedGrid(dataItem) {\r\n vm.processingBPAdd = true;\r\n\r\n const data = {\r\n \"RiskId\": risk.Id,\r\n \"BusinessProcessId\": dataItem.BusinessProcessId\r\n };\r\n\r\n try {\r\n const response = await riskRulesetService.addNewRiskObject(risk.Id, data);\r\n dataItem.Id = response.data;\r\n dataItem.ConditionList = [];\r\n risk.Objects.push(dataItem);\r\n vm.availableObjectsGridDataSource.read();\r\n vm.processingBPAdd = false;\r\n } catch (_) {\r\n vm.processingBPAdd = false;\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, helperService, businessProcessDataService, selectedBusinessProcess) {\r\n\r\n const vm = this;\r\n\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n function activate() {\r\n createObjectsGrid();\r\n }\r\n\r\n\r\n function createObjectsGrid() {\r\n const objectsDataGridColumns = [\r\n { field: \"GroupName\", title: \"Group\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObject.AltName\", title: \"Object Label\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObject.Name\", title: \"Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObject.SecurityObjectTypeName\", title: \"Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObject.ProductName\", title: \"Product\", width: 120, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.objectsDataGridOptions = helperService.setMainGridOptions(objectsDataGridColumns, 250);\r\n vm.objectsDataGridOptions.selectable = false;\r\n\r\n vm.objectsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await businessProcessDataService.getBusinessProcessObjects(selectedBusinessProcess.BusinessProcessId);\r\n vm.businessProcess = await response.data;\r\n vm.objects = await response.data.Objects;\r\n vm.objects = $filter('orderBy')(vm.objects, 'Group');\r\n vm.objects = $filter('orderBy')(vm.objects, 'SecurityObject.AltName');\r\n options.success(vm.objects);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n}","import createSpinner from \"../../Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, objects, ruleset, riskRulesetService, helperService) {\r\n const vm = this;\r\n\r\n vm.close = close;\r\n vm.objects = objects;\r\n vm.ruleset = ruleset;\r\n vm.deleteObject = deleteObject;\r\n vm.copyObjects = copyObjects;\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n\r\n activate();\r\n\r\n function activate() {\r\n getRiskRulesetsList();\r\n vm.objectType = vm.objects[0].RiskType ? 'risks' : 'bps';\r\n }\r\n\r\n // ----- Risk Ruleset -----\r\n async function getRiskRulesetsList() {\r\n vm.loadingRiskRulesetList = true;\r\n try {\r\n let { data: riskRulesets } = await riskRulesetService.getRiskRulesetList();\r\n const defaultRulesetId = 1;\r\n vm.riskRulesetDataSource = riskRulesets.filter(ruleset => ruleset.RulesetId !== vm.ruleset.RulesetId && ruleset.RulesetId !== defaultRulesetId);\r\n vm.loadingRiskRulesetList = false;\r\n } catch (error) {\r\n vm.loadingRiskRulesetList = false;\r\n }\r\n }\r\n\r\n function deleteObject(deletedObject) {\r\n vm.objects = vm.objects.filter(object => object.Id !== deletedObject.Id);\r\n }\r\n\r\n async function copyObjects() {\r\n vm.copyPending = new createSpinner();\r\n let data = {\r\n DestinationRulesetId: vm.destinationRuleset.RulesetId,\r\n SourceRulesetId: ruleset.RulesetId\r\n };\r\n if (vm.objectType === 'risks') {\r\n data.Risks = vm.objects.map(object => object.Id);\r\n data.IncludeBPs = vm.copyRiskBPs;\r\n }\r\n else {\r\n data.BusinessProcesses = vm.objects.map(object => {\r\n return object.BusinessProcessId ? object.BusinessProcessId : object.Id\r\n });\r\n }\r\n try {\r\n await riskRulesetService.copyObjectsToRuleset(vm.objectType, data);\r\n await helperService.successfulSaveButton(vm.copyPending);\r\n close();\r\n }\r\n catch {\r\n vm.copyPending.loadingValue = false;\r\n }\r\n }\r\n}","import riskRulesetModalController from \"./riskRulesetModal.controller\";\r\nimport swal from \"sweetalert2\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport riskModalController from \"./risksModal/riskModal.controller\";\r\nimport availableObjectsForRiskModalController from \"./Objects/availableObjectsForRiskModal.controller\";\r\nimport businessProcessObjectsModalController from \"./Objects/businessProcessObjectsModal.controller\";\r\nimport rulesetObjectCopyModalController from \"../../Shared/Components/rulesetObjectCopyModal/rulesetObjectCopyModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, FileSaver, $http, $uibModal, helperService, riskRulesetService) {\r\n\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.updatePending = false;\r\n\r\n vm.changeRulesetRowSelectedFromRiskRulesetTable = changeRulesetRowSelectedFromRiskRulesetTable;\r\n vm.changeRiskRowSelectedFromRiskTable = changeRiskRowSelectedFromRiskTable;\r\n vm.openManageConditionsModal = openManageConditionsModal;\r\n vm.openRiskRulesetModal = openRiskRulesetModal;\r\n vm.openRulesetObjectCopyModal = openRulesetObjectCopyModal;\r\n vm.deleteRiskRuleset = deleteRiskRuleset;\r\n vm.exportRiskRuleset = exportRiskRuleset;\r\n\r\n vm.openRiskModal = openRiskModal;\r\n vm.changeRiskSelected = changeRiskSelected;\r\n vm.deleteRisk = deleteRisk;\r\n\r\n vm.openBusinessProcessObjectsModal = openBusinessProcessObjectsModal;\r\n vm.removeFromSelectedRiskObjects = removeFromSelectedRiskObjects;\r\n vm.openAvailableObjectsModal = openAvailableObjectsModal;\r\n vm.selectObject = selectObject;\r\n vm.selectAllObjects = selectAllObjects;\r\n\r\n $scope.$on('ImportRiskRuleset', (event, args) => getRiskRulesetsList());\r\n $scope.$on('CloneRiskRuleset', (event, args) => getRiskRulesetsList());\r\n\r\n vm.riskRulesetMenuOptions = [\r\n {\r\n text: 'Clone',\r\n click: function ($itemScope, $event, modelValue) {\r\n const riskRuleset = modelValue;\r\n vm.openRiskRulesetModal(riskRuleset, true);\r\n }\r\n },\r\n {\r\n text: 'Edit',\r\n click: function ($itemScope, $event, modelValue) {\r\n const riskRuleset = modelValue;\r\n vm.openRiskRulesetModal(riskRuleset, false);\r\n },\r\n displayed: function (modelValue) {\r\n return true;\r\n }\r\n },\r\n {\r\n text: 'Export',\r\n click: function ($itemScope, $event, modelValue) {\r\n const riskRuleset = modelValue;\r\n vm.exportRiskRuleset(riskRuleset);\r\n }\r\n },\r\n {\r\n text: 'Set as Default',\r\n click: async function ($itemScope, $event, modelValue) {\r\n const riskRulesetId = modelValue.RulesetId;\r\n const data = {\r\n \"RulesetId\": riskRulesetId\r\n };\r\n await riskRulesetService.setDefaultRiskRuleset(riskRulesetId, data);\r\n getRiskRulesetsList();\r\n },\r\n displayed: function (modelValue) {\r\n return !modelValue.riskRuleset.IsDefault && modelValue.riskRuleset.IsEnabled;\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: function ($itemScope, $event, modelValue) {\r\n const riskRuleset = modelValue;\r\n vm.deleteRiskRuleset(riskRuleset);\r\n },\r\n displayed: function (modelValue) {\r\n return modelValue.riskRuleset.IsCustom;\r\n }\r\n }\r\n ];\r\n\r\n vm.riskMenuOptions = [\r\n {\r\n text: 'Edit',\r\n click: function ($itemScope, $event, modelValue) {\r\n const risk = modelValue;\r\n vm.openRiskModal(risk);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: function ($itemScope, $event, modelValue) {\r\n const risk = modelValue;\r\n vm.deleteRisk(risk);\r\n }\r\n }\r\n ];\r\n\r\n vm.selectedRisks = [];\r\n vm.selectedBPs = [];\r\n\r\n activate();\r\n\r\n function activate() {\r\n getRiskRulesetsList();\r\n }\r\n\r\n // ----- Risk Ruleset -----\r\n async function getRiskRulesetsList(mostRecentRulesetId) {\r\n if (vm.riskRulesetsDataSource) { vm.riskRulesetsDataSource = null; }\r\n vm.loadingRiskRulesetList = true;\r\n try {\r\n let response = await riskRulesetService.getRiskRulesetList();\r\n if (mostRecentRulesetId) {\r\n let mostRecentRuleset = response.data.find(r => r.RulesetId === mostRecentRulesetId);\r\n response.data = response.data.filter(i => i.RulesetId !== mostRecentRuleset.RulesetId);\r\n response.data.unshift(mostRecentRuleset);\r\n vm.changeRulesetRowSelectedFromRiskRulesetTable(mostRecentRuleset);\r\n }\r\n vm.riskRulesetsDataSource = response.data;\r\n vm.loadingRiskRulesetList = false;\r\n } catch (error) {\r\n vm.loadingRiskRulesetList = false;\r\n }\r\n }\r\n\r\n function changeRulesetRowSelectedFromRiskRulesetTable(riskRuleset) {\r\n // only do something if a new ruleset is selected\r\n if (!vm.selectedRiskRuleset || vm.selectedRiskRuleset.RulesetId !== riskRuleset.RulesetId) {\r\n vm.selectedRisk = null;\r\n vm.selectedRiskRuleset = riskRuleset;\r\n vm.riskSearchBox = \"\";\r\n clearObjectSelection();\r\n changeRiskRulesetSelected(riskRuleset);\r\n }\r\n }\r\n\r\n function clearObjectSelection(showRiskSelection) {\r\n // clear selected property for bps because new data isnt being fetched\r\n if (vm.selectedBPs.length) {\r\n vm.selectedRisk.Objects.forEach(object => object.copy = false);\r\n }\r\n\r\n if (!showRiskSelection) {\r\n vm.selectedRisks = vm.selectedRisks.map(risk => {\r\n risk.copy = false;\r\n\r\n return risk;\r\n });\r\n\r\n vm.selectedRisks = [];\r\n vm.selectRisksMode = false;\r\n vm.allRisksSelected = false;\r\n }\r\n vm.selectBPsMode = false;\r\n vm.selectedBPs = [];\r\n vm.allBPsSelected = false;\r\n }\r\n\r\n function changeRiskRulesetSelected() {\r\n getRisksList(null, true, true);\r\n }\r\n\r\n async function openRiskRulesetModal(riskRuleset, isCloning) {\r\n let riskRulesetModal = $uibModal.open({\r\n templateUrl: '/App/Components/maintainRiskRuleset/riskRulesetModal.html',\r\n controller: riskRulesetModalController,\r\n controllerAs: 'rrmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n riskRuleset: () => riskRuleset || null,\r\n isCloning: () => isCloning || null\r\n }\r\n });\r\n\r\n try {\r\n let result = await riskRulesetModal.result;\r\n getRiskRulesetsList(result);\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function deleteRiskRuleset(riskRuleset) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Risk Ruleset', 'Are you sure you want to delete ' + riskRuleset.Name + '?', 'Delete'));\r\n await riskRulesetService.deleteRiskRuleset(riskRuleset.RulesetId);\r\n vm.selectedRiskRuleset = null;\r\n vm.selectedRisk = null;\r\n getRiskRulesetsList();\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function exportRiskRuleset(riskRuleset) {\r\n riskRuleset.exportUpdatePending = new createSpinner();\r\n try {\r\n let response = await $http.get(`${apiUrl}api/arm/risks/export/ruleset/${riskRuleset.RulesetId}`, { responseType: \"blob\" });\r\n FileSaver.saveAs(response.data, 'RiskRuleset.xlsx');\r\n riskRuleset.exportUpdatePending.loadingValue = false;\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n riskRuleset.exportUpdatePending.loadingValue = false;\r\n }\r\n }\r\n // ----- END Risk Ruleset -----\r\n\r\n\r\n // ----- Risk -----\r\n async function getRisksList(preselect, isNewRecord, isRulesetChanged) {\r\n vm.selectedRisk = null;\r\n if (vm.risksDataSource && isNewRecord && isRulesetChanged) { vm.risksDataSource = null; }\r\n vm.loadingRiskList = true;\r\n try {\r\n let response = await riskRulesetService.getRisks(vm.selectedRiskRuleset.RulesetId);\r\n if (preselect) {\r\n response.data.forEach(function (row, i) {\r\n if (row.Id === preselect) {\r\n if (isNewRecord) {\r\n row['NewRecord'] = true;\r\n } else {\r\n row['NewRecord'] = false;\r\n }\r\n vm.selectedRisk = row;\r\n vm.changeRiskSelected();\r\n } else {\r\n row['NewRecord'] = false;\r\n }\r\n });\r\n\r\n }\r\n //Bubble New Record to top if possible\r\n response.data = $filter('orderBy')(response.data, ['-NewRecord', 'Name']);\r\n vm.risksDataSource = response.data;\r\n vm.loadingRiskList = false;\r\n } catch (error) {\r\n vm.loadingRiskList = false;\r\n }\r\n }\r\n\r\n function changeRiskRowSelectedFromRiskTable(risk) {\r\n vm.selectedRisk = risk;\r\n vm.searchBoxSelectedObjects = \"\";\r\n vm.changeRiskSelected();\r\n }\r\n\r\n function changeRiskSelected() {\r\n if (vm.selectedRisk) {\r\n clearObjectSelection(true);\r\n vm.selectedRisk.Objects.forEach(function (row, i) {\r\n $http.get(`${apiUrl}api/arm/defaultmitigationconditions/riskobjectId/${row.Id}`).then(function (response) {\r\n row.ConditionList = response.data;\r\n });\r\n });\r\n }\r\n }\r\n\r\n async function openRiskModal(risk) {\r\n let riskModal = $uibModal.open({\r\n templateUrl: '/App/Components/maintainRiskRuleset/risksModal/riskModal.html',\r\n controller: riskModalController,\r\n controllerAs: 'rmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n risk: () => risk || null,\r\n rulesetId: () => vm.selectedRiskRuleset.RulesetId\r\n }\r\n });\r\n\r\n try {\r\n const result = await riskModal.result;\r\n getRisksList(result.riskId, result.isNewRecord, result.isRulesetChanged);\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function openRulesetObjectCopyModal(objects) {\r\n let objectCopyModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Components/rulesetObjectCopyModal/rulesetObjectCopyModal.html',\r\n controller: rulesetObjectCopyModalController,\r\n controllerAs: 'rocmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n objects: () => objects,\r\n ruleset: () => vm.selectedRiskRuleset\r\n }\r\n });\r\n try {\r\n await objectCopyModal.result;\r\n clearObjectSelection();\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function deleteRisk(risk) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Risk', 'Are you sure you want to delete ' + risk.Name + '?', 'Delete'));\r\n try {\r\n vm.updatePending = true; \r\n await $http.delete(`${apiUrl}api/arm/risks/${risk.Id}`);\r\n vm.selectedRisk = null;\r\n getRisksList(null, false, false);\r\n vm.updatePending = false;\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n vm.updatePending = false;\r\n }\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n // ----- END Risk -----\r\n\r\n\r\n // ----- Objects -----\r\n async function openManageConditionsModal(object) {\r\n const manageConditionsModal = $uibModal.open({\r\n component: 'manageConditions',\r\n backdrop: 'static',\r\n size: 'xl',\r\n resolve: {\r\n object: () => object\r\n }\r\n });\r\n\r\n try {\r\n await manageConditionsModal.result;\r\n getRisksList(vm.selectedRisk.Id, false, false);\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function removeFromSelectedRiskObjects(businessProcess) {\r\n try {\r\n await swal(helperService.areYouSureParamsWithHTML('Remove Object', `
Are you sure you want to remove ${businessProcess.BusinessProcessName} from ${vm.selectedRisk.Name}?
This will also remove any associated conditions.
`, 'Remove'));\r\n await $http.delete(`${apiUrl}api/arm/risks/${vm.selectedRisk.Id}/objects/${businessProcess.Id}`);\r\n getRisksList(vm.selectedRisk.Id, false, false);\r\n } catch (_) {\r\n return;\r\n }\r\n\r\n\r\n }\r\n\r\n async function openAvailableObjectsModal() {\r\n let availableObjectsModal = $uibModal.open({\r\n templateUrl: '/App/Components/maintainRiskRuleset/objects/availableObjectsForRiskModal.html',\r\n controller: availableObjectsForRiskModalController,\r\n controllerAs: 'aocvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n riskRuleset: () => vm.selectedRiskRuleset,\r\n risk: () => vm.selectedRisk\r\n }\r\n });\r\n\r\n try {\r\n await availableObjectsModal.result;\r\n getRisksList(vm.selectedRisk.Id, false, false);\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n function openBusinessProcessObjectsModal(businessProcess) {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/maintainRiskRuleset/objects/businessProcessObjectsModal.html',\r\n controller: businessProcessObjectsModalController,\r\n controllerAs: 'bpovm',\r\n backdrop: 'static',\r\n resolve: {\r\n selectedBusinessProcess: () => businessProcess\r\n },\r\n size: 'lg'\r\n });\r\n }\r\n\r\n function selectObject(object, selectedObjects) {\r\n\r\n if (object.copy) {\r\n selectedObjects.push(object);\r\n }\r\n else {\r\n selectedObjects.splice(selectedObjects.indexOf(object), 1);\r\n }\r\n vm.allRisksSelected = vm.risksDataSource.every(object => object.copy);\r\n vm.allBPsSelected = vm.selectedRisk?.Objects.every(object => object.copy);\r\n }\r\n\r\n function selectAllObjects(objectType) {\r\n if (objectType === 'risk') {\r\n vm.risksDataSource.forEach(risk => risk.copy = vm.allRisksSelected);\r\n vm.selectedRisks = vm.risksDataSource.filter(object => object.copy);\r\n }\r\n else {\r\n vm.selectedRisk.Objects.forEach(object => object.copy = vm.allBPsSelected);\r\n vm.selectedBPs = vm.selectedRisk.Objects.filter(object => object.copy);\r\n }\r\n }\r\n // ----- END Objects -----\r\n\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, mitigationsDataService, mitigation) {\r\n const vm = this;\r\n\r\n vm.dismiss = dismiss;\r\n vm.saveMitigation = saveMitigation;\r\n\r\n function activate() {\r\n vm.shouldBeOpen = true;\r\n\r\n if (mitigation.ID) {\r\n vm.mitigation = Object.assign({}, mitigation.toJSON());\r\n }\r\n }\r\n\r\n activate();\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n //Save Mitigation\r\n function saveMitigation() {\r\n vm.saving = new createSpinner();\r\n if (vm.mitigation.ID) {\r\n modifyMitigation(vm.mitigation.ID, vm.mitigation);\r\n } else {\r\n addMitigation(vm.mitigation);\r\n }\r\n }\r\n\r\n async function modifyMitigation(mitigationId, mitigation) {\r\n try {\r\n await mitigationsDataService.modifyMitigation(mitigationId, mitigation);\r\n await helperService.successfulSaveButton(vm.saving);\r\n close();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n\r\n async function addMitigation(mitigation) {\r\n mitigation.ID = '';\r\n try {\r\n await mitigationsDataService.addMitigation(mitigation);\r\n await helperService.successfulSaveButton(vm.saving);\r\n close();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport mitigationModalController from \"./mitigationModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, $uibModal, helperService, mitigationsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.shouldBeOpen = true;\r\n\r\n vm.deleteItem = deleteItem;\r\n vm.openModal = openModal;\r\n\r\n function activate() {\r\n const mitigationsGridColumns =\r\n [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n\r\n ];\r\n\r\n vm.mitigationsGridOptions = helperService.setMainGridOptions(mitigationsGridColumns, 600);\r\n vm.mitigationsGridOptions.selectable = false;\r\n\r\n vm.mitigationsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let { data } = await mitigationsDataService.getMitigations();\r\n data = $filter('orderBy')(data, 'Name');\r\n options.success(data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n activate();\r\n\r\n async function deleteItem(id) {\r\n kendo.ui.progress(vm.mitigationsGrid.element, true);\r\n\r\n try {\r\n await mitigationsDataService.removeMitigation(id);\r\n kendo.ui.progress(vm.mitigationsGrid.element, false);\r\n vm.mitigationsGridDataSource.read(); \r\n } catch {\r\n kendo.ui.progress(vm.mitigationsGrid.element, false);\r\n }\r\n }\r\n\r\n async function openModal(mitigation) {\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/maintainMitigations/mitigationModal.html',\r\n controller: mitigationModalController,\r\n controllerAs: 'mmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n mitigation: () => mitigation || {}\r\n }\r\n });\r\n\r\n try {\r\n await openModal.result;\r\n vm.mitigationsGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n}","/* maintainMitigations.component.js */\r\n\r\nimport maintainMitigationsController from \"./maintainMitigations.controller\";\r\n\r\n/**\r\n * @desc component to display Maintain Mitigations\r\n * @example \r\n */\r\n\r\nconst maintainMitigations = {\r\n controller: maintainMitigationsController,\r\n controllerAs: 'mvm',\r\n templateUrl: '/App/Components/maintainMitigations/maintainMitigations.html'\r\n};\r\n\r\nexport default maintainMitigations;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, statusDataService, status) {\r\n\r\n const vm = this;\r\n\r\n vm.dismiss = dismiss;\r\n vm.saveStatus = saveStatus;\r\n\r\n function activate() {\r\n vm.shouldBeOpen = true;\r\n\r\n if (status.ID) {\r\n vm.status = Object.assign({}, status.toJSON());\r\n }\r\n }\r\n\r\n activate();\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n //Save status\r\n function saveStatus() {\r\n vm.saving = new createSpinner();\r\n if (vm.status.ID) {\r\n modifyStatus(vm.status.ID, vm.status);\r\n } else {\r\n addStatus(vm.status);\r\n }\r\n }\r\n\r\n async function modifyStatus(statusId, status) {\r\n try {\r\n await statusDataService.modifyStatus(statusId, status);\r\n await helperService.successfulSaveButton(vm.saving);\r\n close();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n\r\n async function addStatus(status) {\r\n try {\r\n status.ID = '';\r\n await statusDataService.addStatus(status);\r\n await helperService.successfulSaveButton(vm.saving);\r\n close();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport statusModalController from \"./statusModal.controller\";\r\n\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, $uibModal, helperService, statusDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.shouldBeOpen = true;\r\n\r\n vm.deleteItem = deleteItem;\r\n vm.openModal = openModal;\r\n\r\n function activate() {\r\n const statusGridColumns =\r\n [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n ];\r\n vm.statusGridOptions = helperService.setMainGridOptions(statusGridColumns, 600);\r\n vm.statusGridOptions.selectable = false;\r\n\r\n vm.statusGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let { data } = await statusDataService.getStatuses();\r\n data = $filter('filter')(data, { CanCurrentUserAccess: true });\r\n data = $filter('orderBy')(data, 'Name');\r\n options.success(data);\r\n } catch {\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n activate();\r\n\r\n async function deleteItem(id) {\r\n try {\r\n await statusDataService.removeStatus(id)\r\n vm.statusGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openModal(status) {\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/maintainStatuses/statusModal.html',\r\n controller: statusModalController,\r\n controllerAs: 'smvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n status: () => status || {}\r\n }\r\n });\r\n\r\n try {\r\n await openModal.result;\r\n vm.statusGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n}","/* maintainStatuses.component.js */\r\n\r\nimport maintainStatusesController from \"./maintainStatuses.controller\";\r\n\r\n/**\r\n * @desc component to display Maintain Statuses\r\n * @example \r\n */\r\n\r\nconst maintainStatuses = {\r\n controller: maintainStatusesController,\r\n controllerAs: 'msvm',\r\n templateUrl: '/App/Components/maintainStatuses/maintainStatuses.html'\r\n};\r\n\r\nexport default maintainStatuses;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport swal from \"sweetalert2\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, objectIdDataService, $http, helperService, dataService) {\r\n\r\n $scope.shouldBeOpen = true;\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n $scope.helperService = helperService;\r\n\r\n var vm = $scope.vm = {};\r\n\r\n $scope.vm.archive = {\r\n id: '',\r\n name: ''\r\n };\r\n\r\n $scope.rowArchive = {\r\n id: '',\r\n name: ''\r\n };\r\n\r\n var columnsFromVM = [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: \"\", \"title\": \"Restore\", width: 100 },\r\n { template: \"\", \"title\": \"Apply\", width: 100 },\r\n { template: \"\", \"title\": \"Delete\", width: 100 }\r\n ];\r\n\r\n //Archive Grid\r\n $scope.mainGridOptions = helperService.setMainGridOptions(columnsFromVM, 600);\r\n $scope.mainGridOptions.selectable = false;\r\n\r\n\r\n\r\n var gridDataSourceDefault = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/assure/archive').then(function (response) {\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n $scope.vm.gridDataSource = gridDataSourceDefault;\r\n\r\n //Update Archive\r\n $scope.restoreArchive = function (dataItem) {\r\n $scope.restoreBeingApplied = dataItem.ID;\r\n\r\n $scope.restoreArchiveInProgress = true;\r\n var id = dataItem.ID;\r\n var data = { ID: id };\r\n\r\n $http({\r\n method: 'PUT',\r\n url: apiUrl + 'api/assure/archive/' + id + '/restore',\r\n data: data\r\n\r\n }).then(function successCallback(response) {\r\n $scope.restoreArchiveInProgress = false;\r\n\r\n helperService.showConfirmationMessage(\"Success\", \"Archive Restored\");\r\n resetNew();\r\n }, function errorCallback(response) {\r\n $scope.restoreArchiveInProgress = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n };\r\n\r\n //Apply Archive\r\n function applyArchive(id, reapplyAutoMitigations, reapplyDefaultMitigations) {\r\n $scope.archiveBeingApplied = id;\r\n $scope.applyArchiveInProgress = true;\r\n var data = { ID: id, ReapplyAutoMitigations: reapplyAutoMitigations, ReapplyDefaultMitigations: reapplyDefaultMitigations };\r\n\r\n $http({\r\n method: 'PUT',\r\n url: apiUrl + 'api/assure/archive/' + id + '/apply',\r\n data: data\r\n\r\n }).then(function successCallback(response) {\r\n $scope.applyArchiveInProgress = false;\r\n helperService.showConfirmationMessage(\"Success\", \"Archive Applied\");\r\n resetNew();\r\n }, function errorCallback(response) {\r\n $scope.applyArchiveInProgress = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n }\r\n\r\n $scope.reapplyAutoMitigationsConfirm = async function (dataItem) {\r\n let productTypes = await dataService.getProductTypes()\r\n let showReApplyAutoMitigations = productTypes.data.some(p => p.Type === 'OR' || p.Type === 'PS' || p.Type === 'ORFC' || p.Type === 'SAP');\r\n\r\n let applyModal = $uibModal.open({\r\n templateUrl: '/App/Components/ManageArchives/applyArchiveModal.html',\r\n controller: applyArchiveModalController,\r\n controllerAs: 'aamvm',\r\n backdrop: 'static',\r\n resolve: {\r\n showReApplyAutoMitigations: () => showReApplyAutoMitigations\r\n }\r\n });\r\n\r\n try {\r\n let response = await applyModal.result;\r\n applyArchive(dataItem.ID, response.reapplyAutoMitigations, response.reapplyDefaultMitigations);\r\n } catch {\r\n return;\r\n }\r\n };\r\n\r\n //Delete Archive\r\n $scope.deleteArchive = function (dataItem) {\r\n\r\n var id = dataItem;\r\n\r\n $http({\r\n method: 'DELETE',\r\n url: apiUrl + 'api/assure/archive/' + id\r\n }).then(function successCallback(response) {\r\n\r\n //Remove item from datasource\r\n var datasourcedata = $scope.vm.gridDataSource.data();\r\n\r\n for (var i = 0; i < datasourcedata.length; i++) {\r\n if (datasourcedata[i].ID === id) {\r\n $scope.vm.gridDataSource.remove(datasourcedata[i]);\r\n break;\r\n }\r\n }\r\n\r\n resetNew();\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n\r\n });\r\n\r\n };\r\n\r\n $scope.openNewArchiveModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/NewArchiveModal.html',\r\n controller: newArchiveModalController,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n };\r\n\r\n function resetNew() {\r\n $scope.vm.archive.name = '';\r\n }\r\n\r\n}\r\n\r\nfunction newArchiveModalController($scope, $uibModalInstance, $http, $route, helperService) {\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n //Save Archive\r\n $scope.saveArchive = function (e, archiveName) {\r\n\r\n var isValid = true;\r\n if (archiveName === \"\") {\r\n isValid = false;\r\n }\r\n if (isValid) {\r\n var data = { Name: archiveName };\r\n\r\n $scope.pleaseWait = new createSpinner();\r\n\r\n $http({\r\n method: 'PUT',\r\n url: apiUrl + 'api/assure/archive/archive',\r\n data: data\r\n\r\n }).then(async function successCallback(response) {\r\n $scope.killModal = true;\r\n\r\n await helperService.successfulSaveButton($scope.pleaseWait).then(function (result) {\r\n //ID is not being returned from API so reload is required\r\n $route.reload();\r\n $scope.cancel();\r\n });\r\n\r\n }, function errorCallback(response) {\r\n $scope.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n };\r\n\r\n}\r\n\r\nfunction applyArchiveModalController($scope, $uibModalInstance, showReApplyAutoMitigations) {\r\n\r\n $scope.showReApplyAutoMitigations = showReApplyAutoMitigations;\r\n\r\n $scope.applyArchiveOptions = {\r\n reapplyAutoMitigations: true,\r\n reapplyDefaultMitigations: true\r\n }\r\n\r\n $scope.dismiss = function () {\r\n $uibModalInstance.dismiss();\r\n };\r\n\r\n //Save Archive\r\n $scope.applyArchive = function () {\r\n $uibModalInstance.close($scope.applyArchiveOptions);\r\n };\r\n\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (dataService, $http, helperService) {\r\n const vm = this;\r\n\r\n vm.startNewAudit = startNewAudit;\r\n\r\n vm.show = false;\r\n vm.showReApplyAutoMitigations = false;\r\n\r\n vm.audit = {\r\n Name: '',\r\n ReapplyAutoMitigations: true,\r\n ReapplyDefaultMitigations: true\r\n };\r\n\r\n activate();\r\n\r\n function activate() {\r\n showReapply();\r\n }\r\n\r\n function clear() {\r\n vm.audit.Name = '';\r\n vm.audit.ReapplyAutoMitigations = true;\r\n vm.audit.ReapplyDefaultMitigations = true;\r\n }\r\n\r\n //Check if we should show Reapply Auto Mitigations toggle\r\n async function showReapply() {\r\n let productTypes = await dataService.getProductTypes();\r\n\r\n vm.showReApplyAutoMitigations = productTypes.data.some(p => p.Type === 'OR' || p.Type === 'PS' || p.Type === 'ORFC');\r\n }\r\n\r\n\r\n\r\n //Start New Audit\r\n async function startNewAudit() {\r\n vm.updatePending = new createSpinner();\r\n\r\n try {\r\n await $http.put(`${apiUrl}api/assure/archive/startnewaudit`, vm.audit);\r\n helperService.successfulSaveButton(vm.updatePending);\r\n clear();\r\n } catch (error) {\r\n vm.updatePending.loadingValue = false;\r\n helperService.showErrorMessage(error.data);\r\n }\r\n }\r\n\r\n}\r\n","import startNewAuditController from \"./startNewAudit.controller\";\r\n\r\n/* startNewAudit.component.js */\r\n\r\n/**\r\n * @desc component for start new audit\r\n * @example \r\n */\r\n\r\nconst startNewAudit = {\r\n controller: startNewAuditController,\r\n controllerAs: 'snavm',\r\n templateUrl: '/App/Components/startNewAudit/startNewAudit.tmpl.html'\r\n};\r\n\r\nexport default startNewAudit;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (autoMitigationsDataService, product, $uibModalInstance, AutoMitigationDataService, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.product = product;\r\n\r\n vm.shouldBeOpen = true;\r\n vm.cancel = cancel;\r\n vm.importRuleset = importRuleset;\r\n vm.dismiss = dismiss;\r\n\r\n function importRuleset(file) {\r\n vm.importInProgress = new createSpinner();\r\n\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n\r\n if (vm.product) {\r\n importDynamicProductAutoMitigationRuleset(vm.product, fd);\r\n } else {\r\n importOracleAutoMitigationRuleset(fd);\r\n }\r\n }\r\n\r\n async function importDynamicProductAutoMitigationRuleset(product, file) {\r\n try {\r\n await autoMitigationsDataService.importAutoMitigationRuleset(product, file);\r\n await helperService.successfulSaveButton(vm.importInProgress);\r\n cancel();\r\n } catch {\r\n vm.importInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n async function importOracleAutoMitigationRuleset(file) {\r\n try {\r\n await AutoMitigationDataService.importAutoMitigationRuleset(file);\r\n await helperService.successfulSaveButton(vm.importInProgress);\r\n cancel();\r\n } catch {\r\n vm.importInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport { customAutoCompleteFilter, customBooleanFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../../Shared/kendo.module\";\r\nimport importAutoMitigationRulesetModalController from \"../../AutoMitigations/ImportAutoMitigationRulesetModal/importAutoMitigationRulesetModal.controller\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, objectIdDataService, dialogs, $uibModal, $http, helperService, AutoMitigationDataService, FileSaver) {\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n $scope.helperService = helperService;\r\n\r\n $scope.$on('ImportExclusions', (event, args) => $scope.vm.systemGridDataSource.read());\r\n $scope.$on('ImportExclusions', (event, args) => $scope.vm.objectGridDataSource.read());\r\n\r\n var vm = $scope.vm = {};\r\n\r\n $scope.openImportAutoMitigationRulesetModal = function () {\r\n $uibModal.open({\r\n templateUrl: 'App/Components/AutoMitigations/ImportAutoMitigationRulesetModal/importAutoMitigationRulesetModal.tmpl.html',\r\n controller: importAutoMitigationRulesetModalController,\r\n controllerAs: 'iamrmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n product: () => null\r\n }\r\n });\r\n };\r\n\r\n $scope.exportAutoMitigationRuleset = function () {\r\n vm.rulesetExportPending = true;\r\n\r\n AutoMitigationDataService.exportAutoMitigationRuleset().then(response => {\r\n FileSaver.saveAs(response.data, 'AutoMitigationRuleset.xlsx');\r\n vm.rulesetExportPending = false;\r\n }).catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n vm.rulesetExportPending = false;\r\n });\r\n };\r\n\r\n $scope.applyAutoMitigationConfirmation = function () {\r\n swal(helperService.areYouSureParams('Apply Auto Mitigation', 'This process will apply the defined Auto Mitigation Rules to the user risks that have not already been mitigated.', 'Apply')).then(function () {\r\n $http.put(apiUrl + 'api/arm/usermitigations/product/OR/applyautomitigations')\r\n .then(function (response) {\r\n return;\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }, function (dismiss) {\r\n return;\r\n });\r\n };\r\n\r\n //--System Auto Mitigation\r\n\r\n var systemColumnsFromVM =\r\n [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Type\", filterable: customAutoCompleteFilter },\r\n { field: \"Condition\", title: \"Condition\", filterable: customAutoCompleteFilter },\r\n { field: \"DisplayValue\", title: \"Display Value\", filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"Enabled\", width: 125, filterable: customBooleanFilter },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n\r\n ];\r\n\r\n $scope.vm.systemExclusionGridOptions = helperService.setMainGridOptions(systemColumnsFromVM, 275);\r\n\r\n $scope.vm.systemGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n Enabled: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/assure/or/systemexclusions')\r\n .then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n //Update AutoMitigation\r\n $scope.editSystemAutoMitigation = async function (dataItem) {\r\n $scope.vm.isCreate = false;\r\n $scope.vm.ModuleType = 'Edit';\r\n let { data } = await $http.get(`${apiUrl}api/assure/or/menus`);\r\n $scope.vm.autoMitigation = {\r\n Attachments: dataItem.Attachments,\r\n Id: 0,\r\n name: '',\r\n description: '',\r\n selectedType: { id: 0, name: '' },\r\n selectedCondition: { Id: 0, Name: '' },\r\n selectedValue: { Id: 0, Name: '' },\r\n value: '',\r\n excludedMenuItems: dataItem.ExcludedMenuItems,\r\n availableMenuItems: data\r\n };\r\n\r\n $scope.vm.autoMitigation.Id = dataItem.Id;\r\n\r\n $scope.vm.autoMitigation.name = dataItem.Name;\r\n $scope.vm.autoMitigation.description = dataItem.Description;\r\n\r\n $scope.vm.autoMitigation.selectedType.id = dataItem.TypeId;\r\n $scope.vm.autoMitigation.selectedType.name = dataItem.Type;\r\n\r\n $scope.vm.autoMitigation.selectedCondition.id = dataItem.ConditionId;\r\n $scope.vm.autoMitigation.selectedCondition.name = dataItem.Condition;\r\n\r\n if (dataItem.TechName !== '') {\r\n $scope.vm.autoMitigation.selectedValue.Id = dataItem.Value;\r\n $scope.vm.autoMitigation.selectedValue.Name = dataItem.TechName;\r\n $scope.vm.showValueDropdown = true;\r\n }\r\n else {\r\n $scope.vm.autoMitigation.Value = dataItem.Value;\r\n $scope.vm.showValueDropdown = false;\r\n }\r\n\r\n $scope.vm.autoMitigation.Enabled = dataItem.Enabled;\r\n\r\n var dlg = dialogs.create('/App/Components/Oracle/ApplyAutoMitigation/NewSystemAutoMitigationModal.html', newSystemAutoMitigationModalController, $scope.vm, { size: 'lg' });\r\n };\r\n\r\n //Delete AutoMitigation\r\n $scope.deleteSystemAutoMitigation = function (dataItem) {\r\n\r\n var id = dataItem.Id;\r\n\r\n $http({\r\n method: 'DELETE',\r\n url: apiUrl + 'api/assure/or/systemexclusions/' + id\r\n }).then(function successCallback(response) {\r\n\r\n //Remove item from datasource\r\n var datasourcedata = $scope.vm.systemGridDataSource.data();\r\n\r\n for (var i = 0; i < datasourcedata.length; i++) {\r\n if (datasourcedata[i].Id === id) {\r\n $scope.vm.systemGridDataSource.remove(datasourcedata[i]);\r\n break;\r\n }\r\n }\r\n\r\n resetNew();\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n\r\n });\r\n\r\n };\r\n\r\n $scope.openNewSystemAutoMitigationModal = async function () {\r\n $scope.vm.isCreate = true;\r\n $scope.vm.ModuleType = 'Create';\r\n let { data } = await $http.get(`${apiUrl}api/assure/or/menus`);\r\n $scope.vm.availableMenuItems = data;\r\n $scope.vm.autoMitigation = {\r\n Id: 0,\r\n name: '',\r\n description: '',\r\n selectedType: { id: 0, name: '' },\r\n selectedCondition: { Id: 0, Name: '' },\r\n selectedValue: { Id: 0, Name: '' },\r\n value: '',\r\n Enabled: true,\r\n availableMenuItems: $scope.vm.availableMenuItems\r\n };\r\n\r\n $scope.vm.autoMitigation.Id = null;\r\n\r\n $scope.vm.autoMitigation.selectedType = null;\r\n\r\n $scope.vm.autoMitigation.selectedCondition = null;\r\n\r\n $scope.vm.autoMitigation.selectedValue = null;\r\n\r\n\r\n var dlg = dialogs.create('/App/Components/Oracle/ApplyAutoMitigation/NewSystemAutoMitigationModal.html', newSystemAutoMitigationModalController, $scope.vm, { size: 'lg' });\r\n\r\n };\r\n\r\n function resetNew() {\r\n $scope.autoMitigation.name = '';\r\n }\r\n\r\n //--End System Auto Mitigation\r\n\r\n //--Object Auto Mitigation\r\n\r\n var objectColumnsFromVM =\r\n [\r\n { field: \"ExcludeObjectType\", title: \"Excluded Object Type\", filterable: customAutoCompleteFilter },\r\n { field: \"ExcludeObjectName\", title: \"Excluded Object\", filterable: customAutoCompleteFilter },\r\n { field: \"FromObjectType\", title: \"From Object Type\", filterable: customAutoCompleteFilter },\r\n { field: \"FromObjectName\", title: \"From Object\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"Enabled\", width: 125, filterable: customBooleanFilter },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n\r\n ];\r\n\r\n $scope.vm.objectExclusionGridOptions = helperService.setMainGridOptions(objectColumnsFromVM, 275);\r\n\r\n $scope.vm.objectGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n Enabled: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/assure/or/objectexclusions')\r\n .then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n\r\n //Update AutoMitigation\r\n $scope.editObjectAutoMitigation = function (dataItem) {\r\n $scope.vm.isCreate = false;\r\n $scope.vm.ModuleType = 'Edit';\r\n\r\n $scope.vm.autoMitigation = {\r\n Attachments: dataItem.Attachments,\r\n Id: 0,\r\n description: '',\r\n selectedExcludeType: { id: 0, name: '' },\r\n selectedFromType: { id: 0, name: '' },\r\n excludeObject: { Id: 0, Name: '' },\r\n fromObject: { Id: 0, Name: '' }\r\n };\r\n\r\n $scope.vm.autoMitigation.Id = dataItem.Id;\r\n\r\n $scope.vm.autoMitigation.selectedExcludeType.id = dataItem.ExcludeObjectTypeId;\r\n $scope.vm.autoMitigation.selectedExcludeType.name = dataItem.ExcludeObjectType;\r\n\r\n $scope.vm.autoMitigation.selectedFromType.id = dataItem.FromObjectTypeId;\r\n $scope.vm.autoMitigation.selectedFromType.name = dataItem.FromObjectType;\r\n\r\n $scope.vm.autoMitigation.excludeObject.Id = dataItem.ExcludeObjectId;\r\n $scope.vm.autoMitigation.excludeObject.Name = dataItem.ExcludeObjectName;\r\n\r\n\r\n $scope.vm.autoMitigation.fromObject.Id = dataItem.FromObjectId;\r\n $scope.vm.autoMitigation.fromObject.Name = dataItem.FromObjectName;\r\n\r\n $scope.vm.autoMitigation.description = dataItem.Description;\r\n $scope.vm.autoMitigation.Enabled = dataItem.Enabled;\r\n\r\n var dlg = dialogs.create('/App/Components/Oracle/ApplyAutoMitigation/NewObjectAutoMitigationModal.html', newObjectAutoMitigationModalController, $scope.vm);\r\n\r\n };\r\n\r\n //Delete AutoMitigation\r\n $scope.deleteObjectAutoMitigation = function (dataItem) {\r\n\r\n var id = dataItem.Id;\r\n\r\n $http({\r\n method: 'DELETE',\r\n url: apiUrl + 'api/assure/or/objectexclusions/' + id\r\n }).then(function successCallback(response) {\r\n\r\n //Remove item from datasource\r\n var datasourcedata = $scope.vm.objectGridDataSource.data();\r\n\r\n for (var i = 0; i < datasourcedata.length; i++) {\r\n if (datasourcedata[i].Id === id) {\r\n $scope.vm.objectGridDataSource.remove(datasourcedata[i]);\r\n break;\r\n }\r\n }\r\n\r\n resetNew();\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n\r\n });\r\n\r\n };\r\n\r\n $scope.openNewObjectAutoMitigationModal = function () {\r\n $scope.vm.isCreate = true;\r\n $scope.vm.ModuleType = 'Create';\r\n\r\n $scope.vm.autoMitigation = {\r\n Id: 0,\r\n Description: '',\r\n selectedExcludeType: { id: 0, name: '' },\r\n selectedFromType: { id: 0, name: '' },\r\n excludeObject: { Id: 0, Name: '' },\r\n fromObject: { Id: 0, Name: '' },\r\n Enabled: true\r\n };\r\n\r\n $scope.vm.autoMitigation.Id = null;\r\n\r\n $scope.vm.autoMitigation.selectedExcludeType = null;\r\n\r\n $scope.vm.autoMitigation.selectedFromType = null;\r\n\r\n $scope.vm.autoMitigation.excludeObject = null;\r\n\r\n $scope.vm.autoMitigation.fromObject = null;\r\n\r\n var dlg = dialogs.create('/App/Components/Oracle/ApplyAutoMitigation/NewObjectAutoMitigationModal.html', newObjectAutoMitigationModalController, $scope.vm);\r\n\r\n };\r\n\r\n function resetNew() {\r\n if ($scope.autoMitigation) {\r\n $scope.autoMitigation.name = '';\r\n }\r\n }\r\n //--End Object Auto Mitigation\r\n\r\n}\r\n\r\n/*@ngInject*/ function newObjectAutoMitigationModalController($scope, $uibModalInstance, $filter, data, $http, $route, helperService, FileSaver) {\r\n\r\n var vm = $scope.vm = data;\r\n\r\n $scope.removeFile = removeFile;\r\n $scope.downloadFile = downloadFile;\r\n\r\n if (!$scope.vm.isCreate) {\r\n if ($scope.vm.autoMitigation.Attachments.length > 0) {\r\n $scope.existingFilesDataSource = [];\r\n $scope.vm.autoMitigation.Attachments.forEach(attachment => $scope.existingFilesDataSource.push(attachment));\r\n }\r\n }\r\n\r\n $scope.attachments = {};\r\n\r\n $scope.init = function () {\r\n if ($scope.vm.autoMitigation) {\r\n $scope.vm.excludeTypeDropdownChange();\r\n $scope.vm.fromTypeDropdownChange();\r\n }\r\n };\r\n\r\n $scope.vm.excludeDropdownOptions = {\r\n dataSource: [\r\n { id: 1, name: \"Function\" },\r\n { id: 2, name: \"Menu\" },\r\n { id: 4, name: 'Concurrent Program' }\r\n ],\r\n dataTextField: \"name\",\r\n dataValueField: \"id\",\r\n optionLabel: \"--Select an item--\"\r\n };\r\n\r\n $scope.vm.fromDropdownOptions = {\r\n dataSource: $scope.vm.fromDropdownDataSource,\r\n dataTextField: \"name\",\r\n dataValueField: \"id\",\r\n optionLabel: \"--Select an item--\"\r\n };\r\n\r\n $scope.vm.excludeObjectDropdownOptions = {\r\n template: '{{dataItem.AltName}} | {{dataItem.Name}} | {{dataItem.SecurityObjectTypeName}} {{dataItem.ProductId}}',\r\n filter: \"contains\",\r\n autoBind: false,\r\n minLength: 3,\r\n virtual: {\r\n itemHeight: 26\r\n },\r\n height: 325\r\n };\r\n\r\n $scope.vm.fromObjectDropdownOptions = {\r\n template: '{{dataItem.AltName}} | {{dataItem.Name}} | {{dataItem.SecurityObjectTypeName}} {{dataItem.ProductId}}',\r\n filter: \"contains\",\r\n autoBind: false,\r\n virtual: {\r\n itemHeight: 26\r\n },\r\n height: 325\r\n };\r\n\r\n $scope.vm.fromDropdownDataSource = new kendo.data.DataSource({\r\n data: [{ id: 0, name: \"-- Select Exclude Type --\" }]\r\n });\r\n\r\n vm.fromFunctionDropdownDataSource = new kendo.data.DataSource({\r\n data: [{ id: 2, name: \"Menu\" },\r\n { id: 3, name: \"Responsibility\" }]\r\n });\r\n\r\n vm.fromMenuDropdownDataSource = new kendo.data.DataSource({\r\n data: [{ id: 2, name: \"Menu\" },\r\n { id: 3, name: \"Responsibility\" }]\r\n });\r\n\r\n vm.fromFunctionDropdownOptions = {\r\n dataSource: vm.fromFunctionDropdownDataSource,\r\n dataTextField: \"name\",\r\n dataValueField: \"id\"\r\n };\r\n\r\n vm.fromMenuDropdownOptions = {\r\n dataSource: vm.fromMenuDropdownDataSource,\r\n dataTextField: \"name\",\r\n dataValueField: \"id\"\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n $route.reload();\r\n }; // end done\r\n\r\n //Save Auto Mitigation\r\n $scope.saveAutoMitigation = function (e, enabled, description, excludeObjectType, excludeObject, fromObjectType, fromObject) {\r\n\r\n $scope.savingAutoMitigation = new createSpinner();\r\n\r\n let fromObjectID;\r\n let fromObjectRespApp = null;\r\n let fromName;\r\n\r\n if (fromObject.Id) {\r\n fromObjectID = fromObject.Id;\r\n }\r\n\r\n if (fromObject.ID) {\r\n fromObjectID = fromObject.ID;\r\n }\r\n\r\n if (fromObject.Name) {\r\n fromName = fromObject.Name;\r\n }\r\n\r\n if (fromObjectType.name === 'Responsibility') {\r\n fromObjectRespApp = fromObject.ApplicationId;\r\n }\r\n\r\n var data = {\r\n Enabled: $scope.vm.autoMitigation.Enabled,\r\n Description: description,\r\n ExcludeObjectID: excludeObject.Id,\r\n ExcludeObjectTechName: excludeObject.Name,\r\n ExcludeObjectType: excludeObjectType.id,\r\n FromObjectID: fromObjectID,\r\n FromObjectTechName: fromName,\r\n FromObjectRespApp: fromObjectRespApp,\r\n FromObjectType: fromObjectType.id\r\n };\r\n\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/assure/or/objectexclusions',\r\n data: data\r\n\r\n }).then(async function successCallback(response) {\r\n await helperService.successfulSaveButton($scope.savingAutoMitigation);\r\n if ($scope.attachments.flow.files.length) {\r\n uploadNewFiles($scope.attachments.flow.files, response.data);\r\n data.ID = response.data;\r\n } else {\r\n data.id = response.data;\r\n $route.reload();\r\n $scope.cancel();\r\n }\r\n\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n $scope.savingAutoMitigation.loadingValue = false;\r\n });\r\n\r\n };\r\n\r\n //Save Auto Mitigation\r\n $scope.updateAutoMitigation = function (e, enabled, description, id) {\r\n\r\n $scope.savingAutoMitigation = new createSpinner();\r\n\r\n var data = {\r\n ExclusionId: id,\r\n Enabled: enabled,\r\n Description: description\r\n };\r\n\r\n $http({\r\n method: 'PUT',\r\n url: apiUrl + 'api/assure/or/objectexclusions/' + id,\r\n data: data\r\n\r\n }).then(async function successCallback(response) {\r\n await helperService.successfulSaveButton($scope.savingAutoMitigation);\r\n if ($scope.attachments.flow.files.length) {\r\n uploadNewFiles($scope.attachments.flow.files, id);\r\n data.ID = response.data;\r\n } else {\r\n data.id = response.data;\r\n $route.reload();\r\n $scope.cancel();\r\n }\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n $scope.savingAutoMitigation.loadingValue = false;\r\n });\r\n\r\n };\r\n\r\n\r\n $scope.vm.excludeTypeDropdownChange = function () {\r\n if ($scope.vm.isCreate) {\r\n $scope.vm.autoMitigation.excludeObject = null;\r\n }\r\n\r\n if ($scope.vm.autoMitigation.selectedExcludeType) {\r\n //Reset from object type datasource\r\n vm.fromFunctionDropdownDataSource = new kendo.data.DataSource({\r\n data: [{ id: 2, name: \"Menu\" },\r\n { id: 3, name: \"Responsibility\" }]\r\n });\r\n //Function\r\n if ($scope.vm.autoMitigation.selectedExcludeType.id === 1) {\r\n\r\n $scope.vm.excludeObjectDropdown.options.dataValueField = \"Identifier\";\r\n $scope.vm.fromDropdown.setOptions(vm.fromFunctionDropdownOptions);\r\n $scope.vm.fromDropdown.setDataSource(vm.fromFunctionDropdownDataSource);\r\n\r\n $scope.vm.autoMitigation.excludeObjectDataSource = new kendo.data.DataSource({\r\n schema: halSchemaKendoGrid,\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: function (options) {\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n data.Filters[0].FieldName = \"SecurityObjectAltName\";\r\n }\r\n let params = {\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page\r\n };\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/universal/securityobjects/producttype/OR/type/FUNC',\r\n data: data,\r\n params: params\r\n }).then(function (response) {\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n //Menu\r\n else if ($scope.vm.autoMitigation.selectedExcludeType.id === 2) {\r\n\r\n $scope.vm.excludeObjectDropdown.options.dataValueField = \"Id\";\r\n $scope.vm.fromDropdown.setOptions(vm.fromMenuDropdownOptions);\r\n $scope.vm.fromDropdown.setDataSource(vm.fromMenuDropdownDataSource);\r\n\r\n $scope.vm.autoMitigation.excludeObjectDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/assure/or/menus'\r\n }).then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'AltName');\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n }\r\n //Concurrent Program\r\n else if ($scope.vm.autoMitigation.selectedExcludeType.id === 4) {\r\n\r\n $scope.vm.excludeObjectDropdown.options.dataValueField = \"Identifier\";\r\n $scope.vm.fromDropdown.setOptions(vm.fromFunctionDropdownOptions);\r\n vm.fromFunctionDropdownDataSource = new kendo.data.DataSource({\r\n data: [\r\n { id: 3, name: \"Responsibility\" }\r\n ]\r\n });\r\n $scope.vm.fromDropdown.setDataSource(vm.fromFunctionDropdownDataSource);\r\n\r\n $scope.vm.autoMitigation.excludeObjectDataSource = new kendo.data.DataSource({\r\n schema: halSchemaKendoGrid,\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: function (options) {\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n data.Filters[0].FieldName = \"SecurityObjectAltName\";\r\n }\r\n let params = {\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page\r\n };\r\n $http({\r\n method: 'POST',\r\n data: data,\r\n params: params,\r\n url: apiUrl + 'api/universal/securityobjects/producttype/OR/type/CP'\r\n }).then(function (response) {\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n }\r\n $scope.vm.autoMitigation.excludeObjectDataSource.read();\r\n\r\n }\r\n\r\n if ($scope.vm.autoMitigation.selectedFromType) {\r\n $scope.vm.fromDropdown.value($scope.vm.autoMitigation.selectedFromType.id);\r\n }\r\n };\r\n\r\n $scope.vm.fromTypeDropdownChange = function () {\r\n if ($scope.vm.isCreate) {\r\n $scope.vm.autoMitigation.fromObject = null;\r\n }\r\n\r\n //Function\r\n\r\n if ($scope.vm.autoMitigation.selectedFromType) {\r\n if ($scope.vm.autoMitigation.selectedFromType.id === 1) {\r\n\r\n $scope.vm.autoMitigation.fromObjectDataSource = new kendo.data.DataSource({\r\n schema: halSchemaKendoGrid,\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: function (options) {\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n data.Filters[0].FieldName = \"SecurityObjectAltName\";\r\n }\r\n let params = {\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page\r\n };\r\n $http({\r\n method: 'POST',\r\n data: data,\r\n params: params,\r\n url: apiUrl + 'api/universal/securityobjects/producttype/OR/type/FUNC'\r\n }).then(function (response) {\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n //Menu\r\n else if ($scope.vm.autoMitigation.selectedFromType.id === 2) {\r\n\r\n $scope.vm.autoMitigation.fromObjectDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/assure/or/menus'\r\n }).then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'AltName');\r\n options.success(response.data);\r\n\r\n });\r\n }\r\n }\r\n });\r\n }\r\n //Responsibility\r\n else if ($scope.vm.autoMitigation.selectedFromType.id === 3) {\r\n\r\n $scope.vm.autoMitigation.fromObjectDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: halSchemaKendoGrid,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: function (options) {\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n data.Filters[0].FieldName = \"RESPONSIBILITY_NAME\";\r\n }\r\n let params = { 'pagesize': options.data.pageSize, 'page': options.data.page };\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/assure/or/responsibilities',\r\n data: data,\r\n params: params\r\n }).then(function (response) {\r\n response.data._embedded.reportData.forEach(function (row, i) {\r\n row['AltName'] = row.Name;\r\n row['Name'] = row.Key;\r\n });\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n $scope.vm.autoMitigation.fromObjectDataSource.read();\r\n }\r\n };\r\n\r\n function errorCallBack(error) {\r\n helperService.showErrorMessage(error);\r\n }\r\n\r\n function removeFile(file) {\r\n $scope.fileActionPending = true;\r\n\r\n $http.delete(apiUrl + 'api/core/attachments/' + file.Identifier)\r\n .then(response => {\r\n var index = $scope.existingFilesDataSource.findIndex(remainingFile => remainingFile.Identifier === file.Identifier);\r\n $scope.existingFilesDataSource.splice(index, 1);\r\n $scope.fileActionPending = false;\r\n $scope.vm.objectGridDataSource.read();\r\n $scope.vm.systemGridDataSource.read();\r\n }).catch(response => {\r\n errorCallBack(response.data);\r\n $scope.fileActionPending = false;\r\n });\r\n }\r\n\r\n function downloadFile(file) {\r\n $scope.fileActionPending = true;\r\n\r\n $http.get(apiUrl + 'api/core/attachments/' + file.Identifier + '/download', { responseType: \"blob\" })\r\n .then(response => {\r\n FileSaver.saveAs(response.data, file.FileName);\r\n $scope.fileActionPending = false;\r\n })\r\n .catch(response => {\r\n errorCallBack(response.data);\r\n $scope.fileActionPending = false;\r\n });\r\n }\r\n\r\n function uploadNewFiles(files, autoMitigationId) {\r\n var fd = new FormData();\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"EbsAutoMitigationRule\");\r\n fd.append(\"DataTypeId\", autoMitigationId);\r\n\r\n $http.put(apiUrl + 'api/core/attachments/', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n }).then(response => {\r\n $route.reload();\r\n $scope.cancel();\r\n }).catch(response => errorCallBack(response.data));\r\n }\r\n\r\n}\r\n\r\n/*@ngInject*/ function newSystemAutoMitigationModalController($scope, $uibModalInstance, $filter, data, $http, $route, helperService, FileSaver, errorsDataService) {\r\n\r\n $scope.vm = data;\r\n\r\n $scope.cancel = cancel;\r\n $scope.removeFile = removeFile;\r\n $scope.downloadFile = downloadFile;\r\n $scope.vm.addMenuToList = addMenuToList;\r\n $scope.vm.deleteSelectedMenu = deleteSelectedMenu;\r\n $scope.vm.addAllMenus = addAllMenus;\r\n $scope.vm.deleteAllSelectedMenus = deleteAllSelectedMenus;\r\n $scope.vm.allMenusStatus = 0;\r\n $scope.vm.listOfSelectedMenus = $scope.vm.autoMitigation.excludedMenuItems || [];\r\n $scope.vm.listOfAvailableMenus = $scope.vm.autoMitigation.availableMenuItems || [];\r\n $scope.vm.listOfAvailableMenus = $scope.vm.listOfAvailableMenus.filter(itemA => {\r\n return !$scope.vm.listOfSelectedMenus.some(itemB => itemA.Id === itemB.Id);\r\n });\r\n $scope.vm.listOfSelectedMenuIds = $scope.vm.autoMitigation.excludedMenuItems\r\n ? $scope.vm.autoMitigation.excludedMenuItems.map(item => item.Id)\r\n : []\r\n ;\r\n\r\n if (!$scope.vm.isCreate) {\r\n if ($scope.vm.autoMitigation.Attachments.length > 0) {\r\n $scope.existingFilesDataSource = [];\r\n $scope.vm.autoMitigation.Attachments.forEach(attachment => $scope.existingFilesDataSource.push(attachment));\r\n }\r\n }\r\n\r\n $scope.attachments = {};\r\n\r\n $scope.vm.exclusionTypeDropdownOptions = {\r\n dataSource: [\r\n { id: 1, name: \"Function Name\" },\r\n { id: 2, name: \"Menu Name\" },\r\n { id: 3, name: \"Responsibility Name\" },\r\n { id: 4, name: \"User Name\" },\r\n { id: 5, name: \"Function Menu Prompt\" },\r\n { id: 6, name: \"Function Query Only\" },\r\n { id: 7, name: \"Concurrent Program Name\" }\r\n\r\n ],\r\n dataTextField: \"name\",\r\n dataValueField: \"id\"\r\n };\r\n\r\n // if RBAC is enabled - add Role Name to the exclusion dropdown\r\n if (JSON.parse(localStorage.getItem(\"ConfigurationValues\")).OR_RBACEnabled === '1') {\r\n $scope.vm.exclusionTypeDropdownOptions.dataSource.push({ id: 8, name: \"Role Name\" });\r\n }\r\n\r\n $scope.vm.searchDropdownOptions = {\r\n template: '{{dataItem.Name}} | {{dataItem.AltName}} | {{dataItem.SecurityObjectTypeName}} {{dataItem.ProductId}} | {{dataItem.DisplayName}} ',\r\n filter: \"contains\",\r\n autoBind: false,\r\n virtual: {\r\n itemHeight: 26\r\n },\r\n dataTextField: \"Name\",\r\n dataValueField: \"Id\",\r\n height: 325\r\n };\r\n\r\n $scope.vm.exclusionConditionDropdownOptions = {\r\n dataSource: [\r\n { id: 0, name: \"Equals\" },\r\n { id: 1, name: \"Contains\" },\r\n { id: 2, name: \"Is\" }\r\n ],\r\n dataTextField: \"name\",\r\n dataValueField: \"id\",\r\n index: 0\r\n };\r\n\r\n $scope.vm.conditionIsDropdownDataSource = new kendo.data.DataSource({\r\n data: [{ id: 2, name: \"Is\" }]\r\n });\r\n\r\n $scope.vm.conditionNoIsDropdownDataSource = new kendo.data.DataSource({\r\n data: [{ id: 0, name: \"Equals\" },\r\n { id: 1, name: \"Contains\" }]\r\n });\r\n\r\n $scope.vm.conditionContainsDropdownOptions = {\r\n dataSource: $scope.vm.conditionIsDropdownDataSource,\r\n dataTextField: \"name\",\r\n dataValueField: \"id\",\r\n minLength: 3\r\n };\r\n\r\n $scope.vm.conditionNoContainsDropdownOptions = {\r\n dataSource: $scope.vm.conditionNoIsDropdownDataSource,\r\n dataTextField: \"name\",\r\n dataValueField: \"id\",\r\n minLength: 3\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n $route.reload();\r\n }; // end done\r\n\r\n\r\n //Save Auto Mitigation\r\n $scope.saveAutoMitigation = async function (e, enabled, name, description, type, condition, textValue, comboBoxValue, excludedMenuIds) {\r\n\r\n $scope.savingAutoMitigation = new createSpinner();\r\n\r\n var objectRespApp;\r\n var objectName;\r\n var value;\r\n\r\n if (comboBoxValue) {\r\n value = comboBoxValue.Id ? comboBoxValue.Id : comboBoxValue.Name;\r\n objectName = comboBoxValue.Name;\r\n objectRespApp = comboBoxValue.ApplicationId;\r\n } else if (textValue !== '') {\r\n value = textValue;\r\n }\r\n\r\n var data = {\r\n\r\n Name: name,\r\n Description: description,\r\n Enabled: enabled,\r\n Type: type.id,\r\n Condition: condition.id,\r\n Value: value,\r\n TechName: objectName,\r\n RespApp: objectRespApp,\r\n ExcludedMenuIds: excludedMenuIds\r\n };\r\n\r\n try {\r\n let response = await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/assure/or/systemexclusions',\r\n data: data\r\n\r\n });\r\n await helperService.successfulSaveButton($scope.savingAutoMitigation);\r\n if ($scope.attachments.flow.files.length) {\r\n uploadNewFiles($scope.attachments.flow.files, response.data);\r\n data.ID = response.data;\r\n } else {\r\n data.ID = response.data;\r\n $route.reload();\r\n $scope.cancel();\r\n }\r\n //resetNew();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n $scope.savingAutoMitigation.loadingValue = false;\r\n }\r\n\r\n };\r\n\r\n //Save Auto Mitigation\r\n $scope.updateAutoMitigation = async function (e, enabled, id, name, description, excludedMenuIds) {\r\n\r\n $scope.savingAutoMitigation = createSpinner();\r\n\r\n var data = {\r\n ExclusionId: id,\r\n Name: name,\r\n Description: description,\r\n Enabled: enabled,\r\n ExcludedMenuIds: excludedMenuIds\r\n };\r\n\r\n try {\r\n let response = await $http({\r\n method: 'PUT',\r\n url: apiUrl + 'api/assure/or/systemexclusions/' + id,\r\n data: data\r\n\r\n });\r\n await helperService.successfulSaveButton($scope.savingAutoMitigation);\r\n if ($scope.attachments.flow.files.length) {\r\n uploadNewFiles($scope.attachments.flow.files, id);\r\n data.ID = response.data;\r\n } else {\r\n data.id = response.data;\r\n $route.reload();\r\n $scope.cancel();\r\n }\r\n\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n $scope.savingAutoMitigation.loadingValue = false;\r\n }\r\n\r\n };\r\n\r\n\r\n //Product Dropdown\r\n\r\n $scope.vm.typeDropdownChange = function () {\r\n if ($scope.vm.isCreate) {\r\n $scope.vm.autoMitigation.selectedValue = null;\r\n $scope.vm.autoMitigation.selectedCondition = null;\r\n }\r\n\r\n //Function Menu Prompt Or Function Query Only\r\n if ($scope.vm.autoMitigation.selectedType.id === 5 || $scope.vm.autoMitigation.selectedType.id === 6) {\r\n $scope.vm.conditionDropdown.setOptions($scope.vm.conditionContainsDropdownOptions);\r\n $scope.vm.conditionDropdown.setDataSource($scope.vm.conditionIsDropdownDataSource);\r\n\r\n $scope.vm.showValueDropdown = false;\r\n }\r\n else {\r\n\r\n $scope.vm.conditionDropdown.setOptions($scope.vm.conditionNoContainsDropdownOptions);\r\n $scope.vm.conditionDropdown.setDataSource($scope.vm.conditionNoIsDropdownDataSource);\r\n\r\n $scope.vm.showValueDropdown = false;\r\n }\r\n\r\n $scope.vm.ChangeUpdateValueControl();\r\n $scope.vm.EnableUpdate();\r\n };\r\n\r\n $scope.vm.conditionDropdownChange = function () {\r\n if ($scope.vm.isCreate) {\r\n $scope.vm.autoMitigation.selectedValue = null;\r\n }\r\n $scope.vm.ChangeUpdateValueControl();\r\n $scope.vm.EnableUpdate();\r\n\r\n };\r\n\r\n $scope.vm.ChangeUpdateValueControl = async function () {\r\n $scope.vm.showValueDropdown = false;\r\n $scope.vm.disableValueTextBox = true;\r\n\r\n if (($scope.vm.autoMitigation.selectedValue || $scope.vm.autoMitigation.selectedType) && $scope.vm.autoMitigation.selectedCondition) {\r\n //Responsibility Name && Equals\r\n if ($scope.vm.autoMitigation.selectedType.id === 3 && $scope.vm.autoMitigation.selectedCondition.id === 0) {\r\n $scope.vm.showValueDropdown = true;\r\n\r\n $scope.vm.searchDropdownOptions.dataTextField = \"Name\";\r\n $scope.vm.searchDropdownOptions.dataValueField = \"Id\";\r\n\r\n $scope.vm.autoMitigation.searchObjectDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: halSchemaKendoGrid,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: function (options) {\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n data.Filters[0].FieldName = \"RESPONSIBILITY_NAME\";\r\n }\r\n let params = { 'pagesize': options.data.pageSize, 'page': options.data.page };\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/assure/or/responsibilities',\r\n data: data,\r\n params: params\r\n }).then(function (response) {\r\n response.data._embedded.reportData.forEach(function (row, i) {\r\n row['AltName'] = row.Name;\r\n row['Name'] = row.Key;\r\n });\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n //Menu Name && Equals\r\n else if ($scope.vm.autoMitigation.selectedType.id === 2 && $scope.vm.autoMitigation.selectedCondition.id === 0) {\r\n $scope.vm.showValueDropdown = true;\r\n\r\n $scope.vm.searchDropdownOptions.dataTextField = \"AltName\";\r\n $scope.vm.searchDropdownOptions.dataValueField = \"Id\";\r\n\r\n $scope.vm.autoMitigation.searchObjectDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/assure/or/menus'\r\n }).then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'AltName');\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n //Function Name && Equals\r\n else if ($scope.vm.autoMitigation.selectedType.id === 1 && $scope.vm.autoMitigation.selectedCondition.id === 0) {\r\n $scope.vm.showValueDropdown = true;\r\n\r\n $scope.vm.searchDropdownOptions.dataTextField = \"AltName\";\r\n $scope.vm.searchDropdownOptions.dataValueField = \"Identifier\";\r\n\r\n $scope.vm.autoMitigation.searchObjectDataSource = new kendo.data.DataSource({\r\n schema: halSchemaKendoGrid,\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: function (options) {\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n data.Filters[0].FieldName = \"SecurityObjectAltName\";\r\n }\r\n let params = {\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page\r\n };\r\n $http({\r\n method: 'POST',\r\n data: data,\r\n params: params,\r\n url: apiUrl + 'api/universal/securityobjects/producttype/OR/type/FUNC'\r\n }).then(function (response) {\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n //Concurrent Program Name && Equals\r\n else if ($scope.vm.autoMitigation.selectedType.id === 7 && $scope.vm.autoMitigation.selectedCondition.id === 0) {\r\n $scope.vm.showValueDropdown = true;\r\n\r\n $scope.vm.searchDropdownOptions.dataTextField = \"AltName\";\r\n $scope.vm.searchDropdownOptions.dataValueField = \"Identifier\";\r\n\r\n $scope.vm.autoMitigation.searchObjectDataSource = new kendo.data.DataSource({\r\n schema: halSchemaKendoGrid,\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: function (options) {\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n data.Filters[0].FieldName = \"SecurityObjectAltName\";\r\n }\r\n let params = {\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page\r\n };\r\n $http({\r\n method: 'POST',\r\n data: data,\r\n params: params,\r\n url: apiUrl + 'api/universal/securityobjects/producttype/OR/type/CP'\r\n }).then(function (response) {\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n //Function Menu Prompt && Is\r\n else if ($scope.vm.autoMitigation.selectedType.id === 5 &&\r\n $scope.vm.autoMitigation.selectedCondition.id === 2) {\r\n $scope.vm.showValueDropdown = false;\r\n let response = await $http.get(`${apiUrl}api/assure/or/menus`);\r\n $scope.vm.listOfAvailableMenus = response.data;\r\n $scope.vm.autoMitigation.Value = \"BLANK\";\r\n $scope.vm.disableValueTextBox = true;\r\n\r\n }\r\n //Function Query Only && Is\r\n else if ($scope.vm.autoMitigation.selectedType.id === 6 &&\r\n $scope.vm.autoMitigation.selectedCondition.id === 2) {\r\n $scope.vm.showValueDropdown = false;\r\n\r\n $scope.vm.autoMitigation.Value = \"TRUE\";\r\n $scope.vm.disableValueTextBox = true;\r\n }\r\n //Role Name && Equals\r\n else if ($scope.vm.autoMitigation.selectedType.id === 8 && $scope.vm.autoMitigation.selectedCondition.id === 0) {\r\n $scope.vm.showValueDropdown = true;\r\n\r\n $scope.vm.searchDropdownOptions.dataTextField = \"Name\";\r\n $scope.vm.searchDropdownOptions.dataValueField = \"Id\";\r\n\r\n\r\n $scope.vm.autoMitigation.searchObjectDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/assure/or/roles'\r\n }).then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n $scope.vm.showValueDropdown = false;\r\n $scope.vm.disableValueTextBox = false;\r\n }\r\n }\r\n else {\r\n $scope.vm.showValueDropdown = false;\r\n }\r\n\r\n };\r\n\r\n $scope.vm.EnableUpdate = function () {\r\n if ($scope.vm.autoMitigation.selectedValue) {\r\n $scope.vm.autoMitigationvalue = $scope.vm.autoMitigation.selectedValue.Id;\r\n }\r\n\r\n if ($scope.vm.autoMitigation.Value) {\r\n $scope.vm.autoMitigationvalue = $scope.vm.autoMitigation.Value.Id;\r\n }\r\n\r\n };\r\n\r\n if (data.showValueDropdown) {\r\n $scope.vm.showValueDropdown = data.showValueDropdown;\r\n $scope.vm.ChangeUpdateValueControl();\r\n $scope.vm.EnableUpdate();\r\n }\r\n else {\r\n $scope.vm.showValueDropdown = false;\r\n }\r\n\r\n function errorCallBack(error) {\r\n helperService.showErrorMessage(error);\r\n }\r\n\r\n function removeFile(file) {\r\n $scope.fileActionPending = true;\r\n\r\n $http.delete(apiUrl + 'api/core/attachments/' + file.Identifier)\r\n .then(response => {\r\n var index = $scope.existingFilesDataSource.findIndex(remainingFile => remainingFile.Identifier === file.Identifier);\r\n $scope.existingFilesDataSource.splice(index, 1);\r\n $scope.fileActionPending = false;\r\n $scope.vm.objectGridDataSource.read();\r\n $scope.vm.systemGridDataSource.read();\r\n }).catch(response => {\r\n errorCallBack(response.data);\r\n $scope.fileActionPending = false;\r\n });\r\n }\r\n\r\n function downloadFile(file) {\r\n $scope.fileActionPending = true;\r\n\r\n $http.get(apiUrl + 'api/core/attachments/' + file.Identifier + '/download', { responseType: \"blob\" })\r\n .then(response => {\r\n FileSaver.saveAs(response.data, file.FileName);\r\n $scope.fileActionPending = false;\r\n })\r\n .catch(response => {\r\n errorCallBack(response.data);\r\n $scope.fileActionPending = false;\r\n });\r\n }\r\n\r\n function uploadNewFiles(files, autoMitigationId) {\r\n var fd = new FormData();\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"EbsAutoMitigationRule\");\r\n fd.append(\"DataTypeId\", autoMitigationId);\r\n\r\n $http.put(apiUrl + 'api/core/attachments/', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n }).then(response => {\r\n $route.reload();\r\n $scope.cancel();\r\n }).catch(response => errorCallBack(response.data));\r\n }\r\n\r\n function addMenuToList(menu) {\r\n $scope.vm.listOfAvailableMenus.forEach(function (row, i) {\r\n if (row.Id === menu.Id) {\r\n $scope.vm.listOfAvailableMenus.splice(i, 1);\r\n $scope.vm.listOfSelectedMenus.push(row);\r\n $scope.vm.listOfSelectedMenuIds.push(row.Id);\r\n }\r\n });\r\n }\r\n\r\n function deleteSelectedMenu(menu) {\r\n $scope.vm.listOfSelectedMenus.forEach(function (row, i) {\r\n if (row.Id === menu.Id) {\r\n $scope.vm.listOfSelectedMenus.splice(i, 1);\r\n $scope.vm.listOfSelectedMenuIds.splice(i, 1);\r\n $scope.vm.listOfAvailableMenus.push(row);\r\n }\r\n });\r\n }\r\n\r\n function addAllMenus() {\r\n let selectedIds = $scope.vm.listOfAvailableMenus.map(menu => menu.Id);\r\n $scope.vm.listOfSelectedMenuIds.push.apply($scope.vm.listOfSelectedMenuIds, selectedIds);\r\n $scope.vm.listOfSelectedMenus.push.apply($scope.vm.listOfSelectedMenus, $scope.vm.listOfAvailableMenus);\r\n $scope.vm.listOfAvailableMenus.length = 0;\r\n $scope.vm.allMenusStatus = 1;\r\n }\r\n\r\n function deleteAllSelectedMenus() {\r\n $scope.vm.listOfAvailableMenus.push.apply($scope.vm.listOfAvailableMenus, $scope.vm.listOfSelectedMenus);\r\n $scope.vm.listOfSelectedMenus = [];\r\n $scope.vm.listOfSelectedMenuIds.length = 0;\r\n $scope.vm.allMenusStatus = 2;\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();;\r\n }\r\n}","export default /*@ngInject*/ function ($scope, FileSaver, objectIdDataService, $http, helperService) {\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n $scope.helperService = helperService;\r\n\r\n var vm = $scope.vm = {};\r\n\r\n $scope.vm.showLoading = false;\r\n\r\n function enableDownloadButton(fileToDownload) {\r\n if (fileToDownload === \"RiskRuleset\") {\r\n $scope.riskRulesetDownloadInProgress = false;\r\n }\r\n if (fileToDownload === \"AutoMitigationRuleset\") {\r\n $scope.autoMitigationRulesetDownloadInProgress = false;\r\n }\r\n }\r\n\r\n $scope.exportFiles = function (fileToDownload) {\r\n\r\n function downloadFile(url, fileName) {\r\n $http.get(apiUrl + url, { responseType: \"blob\" })\r\n .then(function successCallback(response) {\r\n\r\n FileSaver.saveAs(response.data, fileName + '.xlsx');\r\n enableDownloadButton(fileToDownload);\r\n\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n enableDownloadButton(fileToDownload);\r\n });\r\n }\r\n\r\n if (fileToDownload === \"RiskRuleset\") {\r\n var url = 'api/arm/risks/export';\r\n downloadFile(url, fileToDownload);\r\n $scope.riskRulesetDownloadInProgress = true;\r\n }\r\n if (fileToDownload === \"AutoMitigationRuleset\") {\r\n var url = 'api/assure/or/exclusions/export';\r\n downloadFile(url, fileToDownload);\r\n $scope.autoMitigationRulesetDownloadInProgress = true;\r\n }\r\n };\r\n\r\n function enableUploadButton(fileToUpload) {\r\n if (fileToUpload === \"RiskRuleset\") {\r\n $scope.riskRulesetUploadInProgress = false;\r\n vm.importRiskRulesetFlow.files = [];\r\n\r\n }\r\n if (fileToUpload === \"AutoMitigationRuleset\") {\r\n $scope.autoMitigationRulesetUploadInProgress = false;\r\n vm.importAutoMitigationRuleset.files = [];\r\n }\r\n }\r\n\r\n $scope.upload = function (files, fileToUpload) {\r\n\r\n function uploadFile(url) {\r\n $http.put(apiUrl + url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n })\r\n .then(function successCallback(response) {\r\n enableUploadButton(fileToUpload);\r\n\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n enableUploadButton(fileToUpload);\r\n });\r\n }\r\n\r\n var fd = new FormData();\r\n var fileName = files[0].file.name;\r\n var file = files[0].file;\r\n fd.append(fileName, file);\r\n\r\n if (fileToUpload === \"RiskRuleset\") {\r\n uploadFile('api/arm/risks/import');\r\n $scope.riskRulesetUploadInProgress = true;\r\n }\r\n if (fileToUpload === \"AutoMitigationRuleset\") {\r\n uploadFile('api/assure/or/exclusions/import');\r\n $scope.autoMitigationRulesetUploadInProgress = true;\r\n }\r\n\r\n };\r\n\r\n}","import { halSchemaKendoGrid } from \"../../../Shared/kendo.module\";\r\nimport { standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, peoplesoftAutoMitigationsDataService, autoMitigation) {\r\n\r\n const vm = this;\r\n\r\n vm.needsSelectedExcludedObjectType = true;\r\n vm.needsSelectedFromObjectType = true;\r\n vm.updateAutoMitigation = updateAutoMitigation;\r\n vm.saveAutoMitigation = saveAutoMitigation;\r\n vm.dismiss = dismiss;\r\n vm.excludeTypeDropdownChange = excludeTypeDropdownChange;\r\n vm.fromTypeDropdownChange = fromTypeDropdownChange;\r\n vm.excludeDropdownOptions = {\r\n dataSource: [{\r\n id: 1, name: \"Page\"\r\n }],\r\n dataTextField: \"name\",\r\n dataValueField: \"id\",\r\n optionLabel: \"--Select an item--\"\r\n };\r\n vm.fromDropdownOptions = {\r\n dataSource: [\r\n { id: 5, name: \"Bar Name\" },\r\n { id: 4, name: \"Component\" },\r\n { id: 2, name: \"Menu\" },\r\n { id: 3, name: \"Permission List\" }\r\n ],\r\n dataTextField: \"name\",\r\n dataValueField: \"id\",\r\n optionLabel: \"--Select an item--\"\r\n };\r\n vm.excludeObjectDropdownOptions = {\r\n template: '{{dataItem.AltName}} | {{dataItem.Name}} | {{dataItem.SecurityObjectTypeName}} ',\r\n filter: \"contains\",\r\n autoBind: false,\r\n minLength: 3,\r\n virtual: {\r\n itemHeight: 26\r\n },\r\n height: 325\r\n };\r\n vm.fromObjectDropdownOptions = {\r\n template: `\r\n \r\n {{dataItem.BarName}}\r\n \r\n \r\n {{ dataItem.ComponentDescription }}\r\n | {{ dataItem.ComponentName }}\r\n | {{ dataItem.MarketId }}\r\n \r\n \r\n {{ dataItem.MenuLabel }}\r\n | {{ dataItem.MenuName }}\r\n \r\n \r\n {{ dataItem.Id }}\r\n | {{ dataItem.Name }}\r\n \r\n `,\r\n filter: \"contains\",\r\n autoBind: false\r\n };\r\n vm.fromFunctionDropdownOptions = {\r\n dataTextField: \"name\",\r\n dataValueField: \"id\"\r\n };\r\n\r\n\r\n activate();\r\n\r\n function activate() {\r\n if (autoMitigation.uid) {\r\n vm.isCreate = false;\r\n vm.moduleType = 'Edit';\r\n vm.autoMitigation = {\r\n description: autoMitigation.Description,\r\n ruleId: autoMitigation.RuleId,\r\n Enabled: autoMitigation.Enabled,\r\n selectedExcludeType: {\r\n name: autoMitigation.AutoMitigationObjectType\r\n },\r\n excludeObject: {\r\n Name: autoMitigation.AutoMitigationObjectName\r\n },\r\n selectedFromType: {\r\n name: autoMitigation.FromObjectType\r\n },\r\n fromObject: {\r\n Name: autoMitigation.FromObjectName\r\n }\r\n };\r\n } else {\r\n vm.isCreate = true;\r\n vm.moduleType = 'Create';\r\n vm.autoMitigation = autoMitigation;\r\n vm.autoMitigation.Enabled = true;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function getFromObjectId(autoMitigation) {\r\n let id;\r\n\r\n switch (autoMitigation.selectedFromType.id) {\r\n case 5:\r\n id = autoMitigation.fromObject.Id;\r\n break;\r\n case 4:\r\n id = autoMitigation.fromObject.ComponentName;\r\n break;\r\n case 3:\r\n id = autoMitigation.fromObject.Id;\r\n break;\r\n case 2:\r\n id = autoMitigation.fromObject.MenuName;\r\n break;\r\n default:\r\n id = undefined;\r\n break;\r\n }\r\n\r\n return id;\r\n }\r\n\r\n //Save Auto Mitigation\r\n async function saveAutoMitigation() {\r\n let data = {\r\n AutoMitigationObjectId: vm.autoMitigation.excludeObject.Name,\r\n AutoMitigationObjectType: vm.autoMitigation.selectedExcludeType.id,\r\n FromObjectId: getFromObjectId(vm.autoMitigation),\r\n FromObjectType: Number(vm.autoMitigation.selectedFromType.id),\r\n Enabled: vm.autoMitigation.Enabled,\r\n Description: vm.autoMitigation.description\r\n };\r\n\r\n vm.savingAutoMitigation = new createSpinner();\r\n \r\n try {\r\n await peoplesoftAutoMitigationsDataService.addAutoMitigation(data);\r\n await helperService.successfulSaveButton(vm.savingAutoMitigation);\r\n\r\n cancel();\r\n } catch {\r\n vm.savingAutoMitigation.loadingValue = false;\r\n }\r\n }\r\n\r\n //Update Auto Mitigation\r\n async function updateAutoMitigation() {\r\n let data = {\r\n RuleId: vm.autoMitigation.ruleId,\r\n Enabled: vm.autoMitigation.Enabled,\r\n Description: vm.autoMitigation.description\r\n };\r\n\r\n vm.savingAutoMitigation = new createSpinner();\r\n\r\n try {\r\n await peoplesoftAutoMitigationsDataService.modifyMitigation(vm.autoMitigation.ruleId, data);\r\n await helperService.successfulSaveButton(vm.savingAutoMitigation);\r\n\r\n cancel();\r\n } catch {\r\n vm.savingAutoMitigation.loadingValue = false;\r\n }\r\n }\r\n\r\n function excludeTypeDropdownChange() {\r\n if (!vm.autoMitigation.Id) {\r\n vm.autoMitigation.excludeObject = null;\r\n }\r\n\r\n if (vm.autoMitigation?.selectedExcludeType?.id === 1) {\r\n vm.autoMitigation.excludeObjectDataSource = new kendo.data.DataSource({\r\n schema: halSchemaKendoGrid,\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: async (options) => {\r\n let body = helperService.prepareSortsAndFilters(options),\r\n params = {\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page\r\n };\r\n\r\n if (body.Filters.length > 0) {\r\n body.Filters[0].FieldName = \"SecurityObjectAltName\";\r\n }\r\n let { data } = await peoplesoftAutoMitigationsDataService.getObjects(body, params);\r\n\r\n if (vm.autoMitigation.excludeObjectDataSource._data.length === 0) {\r\n vm.needsSelectedExcludedObjectType = false;\r\n vm.excludedObjectsDropdownList.setOptions({ optionLabel: '--Select an item--' });\r\n }\r\n options.success(data);\r\n }\r\n }\r\n });\r\n\r\n vm.autoMitigation.excludeObjectDataSource.read();\r\n\r\n } else if (!vm.autoMitigation.selectedExcludeType.id) {\r\n vm.needsSelectedExcludedObjectType = true;\r\n vm.autoMitigation.excludeObjectDataSource = [];\r\n }\r\n }\r\n\r\n function fromTypeDropdownChange() {\r\n if (!vm.autoMitigation.Id) {\r\n vm.autoMitigation.fromObject = null;\r\n }\r\n\r\n if (vm.autoMitigation?.selectedFromType?.id) {\r\n // String == number\r\n if (vm.autoMitigation.selectedFromType.id === 5) {\r\n vm.selectedFromObjectTypeRoute = apiUrl + 'api/assure/ps/barnames';\r\n vm.fromObjectDropdownList.setOptions({ dataTextField: 'BarName' });\r\n } else if (vm.autoMitigation.selectedFromType.id === 4) {\r\n vm.selectedFromObjectTypeRoute = apiUrl + 'api/assure/ps/components';\r\n vm.fromObjectDropdownList.setOptions({ dataTextField: 'ComponentName' });\r\n } else if (vm.autoMitigation.selectedFromType.id === 2) {\r\n vm.selectedFromObjectTypeRoute = apiUrl + 'api/assure/ps/menus';\r\n vm.fromObjectDropdownList.setOptions({ dataTextField: 'MenuName' });\r\n } else if (vm.autoMitigation.selectedFromType.id === 3) {\r\n vm.selectedFromObjectTypeRoute = apiUrl + 'api/assure/ps/permissionlists';\r\n vm.fromObjectDropdownList.setOptions({ dataTextField: 'Id' });\r\n }\r\n\r\n vm.autoMitigation.fromObjectDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: async (options) => {\r\n let { data } = await peoplesoftAutoMitigationsDataService.getObjectsByUrl(vm.selectedFromObjectTypeRoute);\r\n\r\n vm.needsSelectedFromObjectType = false;\r\n vm.fromObjectDropdownList.setOptions({ optionLabel: '--Select an item--' });\r\n options.success(helperService.generateRandomUuid(data));\r\n }\r\n }\r\n });\r\n\r\n vm.autoMitigation.fromObjectDataSource.read();\r\n\r\n } else if (!vm.autoMitigation.selectedFromType.id) {\r\n vm.needsSelectedFromObjectType = true;\r\n vm.autoMitigation.fromObjectDataSource = [];\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, customBooleanFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport swal from \"sweetalert2\";\r\nimport addMitigationRuleModalController from \"./addMitigationRuleModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModal, helperService, peoplesoftAutoMitigationsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.openAutoMitigationModal = openAutoMitigationModal;\r\n vm.removeMitigation = removeMitigation;\r\n vm.applyAutoMitigationConfirmation = applyAutoMitigationConfirmation;\r\n\r\n activate();\r\n\r\n function activate() {\r\n var autoMitigationRulesGridColumns = [\r\n { field: \"AutoMitigationObjectType\", title: \"Auto Mitigation Object Type\", filterable: customAutoCompleteFilter },\r\n { field: \"AutoMitigationObjectName\", title: \"Auto Mitigation Object Name\", filterable: customAutoCompleteFilter },\r\n { field: \"FromObjectType\", title: \"From Object Type\", filterable: customAutoCompleteFilter },\r\n { field: \"FromObjectName\", title: \"From Object Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"Enabled\", width: 125, filterable: customBooleanFilter },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 },\r\n { template: `Remove`, \"title\": \"Remove\", width: 90 }\r\n ];\r\n\r\n vm.autoMitigationRulesGridOptions = helperService.setMainGridOptions(autoMitigationRulesGridColumns, 275);\r\n vm.autoMitigationRulesGridOptions.selectable = false;\r\n\r\n vm.autoMitigationRulesGridDatasource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n Enabled: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async (options) => {\r\n let { data } = await peoplesoftAutoMitigationsDataService.getAutoMitigations();\r\n\r\n data = $filter('orderBy')(data, 'Name');\r\n options.success(data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function applyAutoMitigationConfirmation() {\r\n await swal(helperService.areYouSureParams('Apply Auto Mitigation', 'This process will apply the defined Auto Mitigation Rules to the user conflicts that have not already been mitigated.', 'Apply'));\r\n\r\n await peoplesoftAutoMitigationsDataService.applyAutoMitigations();\r\n }\r\n\r\n //Update AutoMitigation\r\n async function openAutoMitigationModal(autoMitigation) {\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/Peoplesoft/autoMitigations/addMitigationRuleModal.html',\r\n controller: addMitigationRuleModalController,\r\n controllerAs: 'amrmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n autoMitigation: () => autoMitigation || {}\r\n }\r\n });\r\n\r\n await openModal.result;\r\n\r\n vm.autoMitigationRulesGridDatasource.read();\r\n }\r\n\r\n async function removeMitigation(dataItem) {\r\n await peoplesoftAutoMitigationsDataService.removeAutoMitigation(dataItem.RuleId);\r\n \r\n vm.autoMitigationRulesGridDatasource.read();\r\n }\r\n}","import controller from \"./autoMitigations.controller\";\r\n\r\n/* autoMitigations.component.js */\r\n\r\n/**\r\n * @desc component for peoplesoft auto mitigations\r\n * @example \r\n */\r\n\r\nconst autoMitigations = {\r\n controller: controller,\r\n controllerAs: 'amvm',\r\n templateUrl: '/App/Components/Peoplesoft/autoMitigations/autoMitigations.tmpl.html'\r\n};\r\n\r\nexport default autoMitigations;","import { standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($http, helperService, autoMitigationsDataService, FileSaver, mitigation, product, $uibModalInstance) {\r\n\r\n const vm = this;\r\n\r\n vm.needsSelectedExcludedObjectType = true;\r\n vm.needsSelectedFromObjectType = true;\r\n vm.removedFiles = [];\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.saveAutoMitigation = saveAutoMitigation;\r\n vm.updateAutoMitigation = updateAutoMitigation;\r\n vm.excludeTypeDropdownChange = excludeTypeDropdownChange;\r\n vm.fromTypeDropdownChange = fromTypeDropdownChange;\r\n vm.remove = remove;\r\n vm.downloadFile = downloadFile;\r\n\r\n vm.product = product;\r\n\r\n vm.dismiss = dismiss;\r\n vm.close = close;\r\n\r\n function onInit() {\r\n if (mitigation.uid) {\r\n vm.action = 'Edit';\r\n vm.isCreate = false;\r\n vm.mitigation = {\r\n description: mitigation.Description,\r\n selectedExcludeType: {},\r\n excludeObject: {},\r\n selectedFromType: {},\r\n fromObject: {}\r\n };\r\n vm.mitigation.selectedExcludeType.name = mitigation.ExcludeObjectType;\r\n vm.mitigation.excludeObject.Name = mitigation.ExcludeObjectName;\r\n vm.mitigation.selectedFromType.name = mitigation.FromObjectType;\r\n vm.mitigation.ruleId = mitigation.Id;\r\n vm.mitigation.fromObject.Name = mitigation.FromObjectName;\r\n vm.mitigation.Enabled = mitigation.Enabled;\r\n if (mitigation.Attachments.length > 0) {\r\n vm.existingFilesDataSource = [];\r\n mitigation.Attachments.forEach(attachment => vm.existingFilesDataSource.push(attachment));\r\n }\r\n } else {\r\n vm.action = 'Create';\r\n vm.isCreate = true;\r\n vm.mitigation = mitigation;\r\n vm.mitigation.Enabled = true;\r\n }\r\n\r\n vm.excludeDropdownOptions = {\r\n dataSource: [\r\n { id: 1, name: \"Privileges\" }\r\n ],\r\n dataTextField: \"name\",\r\n dataValueField: \"id\",\r\n optionLabel: \"-- Select an item --\"\r\n };\r\n\r\n vm.fromDropdownOptions = {\r\n dataSource: [\r\n { id: 2, name: \"Roles\" }\r\n ],\r\n dataTextField: \"name\",\r\n dataValueField: \"id\",\r\n optionLabel: \"-- Select an item --\"\r\n };\r\n\r\n vm.excludeObjectDropdownOptions = {\r\n template: `\r\n {{dataItem.AltName}}\r\n | {{dataItem.Name}}\r\n | {{dataItem.SecurityObjectTypeName}} \r\n `,\r\n filter: \"contains\",\r\n autoBind: false,\r\n minLength: 3,\r\n virtual: {\r\n itemHeight: 26\r\n },\r\n height: 325\r\n };\r\n\r\n vm.fromObjectDropdownOptions = {\r\n template: `\r\n \r\n {{ dataItem.Name }}\r\n | {{ dataItem.Code }}\r\n \r\n `,\r\n filter: \"contains\",\r\n autoBind: false,\r\n minLength: 3,\r\n virtual: {\r\n itemHeight: 26\r\n },\r\n height: 325\r\n };\r\n\r\n vm.fromFunctionDropdownOptions = {\r\n dataTextField: \"name\",\r\n dataValueField: \"id\"\r\n };\r\n }\r\n\r\n //Save Auto Mitigation\r\n async function saveAutoMitigation() {\r\n vm.savingAutoMitigation = new createSpinner();\r\n const data = {\r\n ExcludeObjectId: vm.mitigation.excludeObject.Id,\r\n ExcludeObjectType: vm.mitigation.selectedExcludeType.id,\r\n FromObjectId: vm.mitigation.fromObject.Code,\r\n FromObjectType: vm.mitigation.selectedFromType.id,\r\n Enabled: vm.mitigation.Enabled,\r\n Description: vm.mitigation.description\r\n };\r\n try {\r\n let response = await autoMitigationsDataService.addAutoMitigation(vm.product, data);\r\n await helperService.successfulSaveButton(vm.savingAutoMitigation);\r\n if (vm.attachments.flow.files.length > 0) {\r\n await uploadNewFiles(vm.attachments.flow.files, response.data);\r\n }\r\n vm.close();\r\n } catch {\r\n vm.savingAutoMitigation.loadingValue = false;\r\n }\r\n }\r\n\r\n //Update Auto Mitigation\r\n async function updateAutoMitigation() {\r\n vm.savingAutoMitigation = new createSpinner();\r\n const data = {\r\n ExclusionId: vm.mitigation.ruleId,\r\n Enabled: vm.mitigation.Enabled,\r\n Description: vm.mitigation.description\r\n };\r\n try {\r\n await autoMitigationsDataService.modifyMitigation(vm.product, data.ExclusionId, data);\r\n await helperService.successfulSaveButton(vm.savingAutoMitigation);\r\n if (vm.removedFiles.length > 0) {\r\n vm.removedFiles.forEach(file => removeFile(file));\r\n }\r\n if (vm.attachments.flow.files.length > 0) {\r\n await uploadNewFiles(vm.attachments.flow.files, data.ExclusionId);\r\n }\r\n vm.close();\r\n } catch {\r\n vm.savingAutoMitigation.loadingValue = false;\r\n }\r\n }\r\n\r\n\r\n function excludeTypeDropdownChange() {\r\n if (vm.mitigation.selectedExcludeType.id) {\r\n if (vm.mitigation.selectedExcludeType.id === 1) {\r\n vm.mitigation.excludeObjectDataSource = new kendo.data.DataSource({\r\n schema: {\r\n data: \"_embedded.reportData\",\r\n total: \"TotalItems\"\r\n },\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: async function (options) {\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n data.Filters[0].FieldName = \"SecurityObjectAltName\";\r\n }\r\n const params = {\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page\r\n };\r\n\r\n let response = await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/assure/orfc/privileges',\r\n data: data,\r\n params: params\r\n });\r\n if (vm.mitigation.excludeObjectDataSource._data.length === 0) {\r\n vm.needsSelectedExcludedObjectType = false;\r\n vm.excludeObjectDropdown.setOptions({ optionLabel: '-- Select an item --' });\r\n }\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n\r\n vm.mitigation.excludeObjectDataSource.read();\r\n }\r\n\r\n else if (!vm.mitigation.selectedExcludeType.id) {\r\n vm.needsSelectedExcludedObjectType = true;\r\n vm.mitigation.excludeObjectDataSource = [];\r\n }\r\n }\r\n }\r\n\r\n function fromTypeDropdownChange() {\r\n if (vm.mitigation.selectedFromType.id) {\r\n vm.mitigation.fromObjectDataSource = new kendo.data.DataSource({\r\n schema: {\r\n data: \"_embedded.reportData\",\r\n total: \"TotalItems\"\r\n },\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: async function (options) {\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n data.Filters[0].FieldName = \"Name\";\r\n }\r\n const params = {\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page\r\n };\r\n let response = await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/assure/orfc/roles',\r\n data: data,\r\n params: params\r\n });\r\n if (vm.mitigation.fromObjectDataSource._data.length === 0) {\r\n vm.needsSelectedFromObjectType = false;\r\n vm.fromObjectDropdown.setOptions({ optionLabel: '-- Select an item --' });\r\n }\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n vm.mitigation.fromObjectDataSource.read();\r\n }\r\n\r\n else if (!vm.mitigation.selectedFromType.id) {\r\n vm.needsSelectedFromObjectType = true;\r\n vm.mitigation.fromObjectDataSource = [];\r\n }\r\n }\r\n\r\n function errorCallBack(error) {\r\n helperService.showErrorMessage(error);\r\n }\r\n\r\n function remove(identifier) {\r\n vm.removedFiles.push(identifier);\r\n var index = vm.existingFilesDataSource.findIndex(remainingFile => remainingFile.Identifier === identifier);\r\n vm.existingFilesDataSource.splice(index, 1);\r\n }\r\n\r\n async function removeFile(identifier) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n await $http.delete(apiUrl + 'api/core/attachments/' + identifier);\r\n vm.fileActionPending = false;\r\n } catch (err) {\r\n errorCallBack(err.data);\r\n vm.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function downloadFile(file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n let response = await $http.get(apiUrl + 'api/core/attachments/' + file.Identifier + '/download', { responseType: \"blob\" });\r\n FileSaver.saveAs(response.data, file.FileName);\r\n vm.fileActionPending = false;\r\n } catch (err) {\r\n errorCallBack(err.data);\r\n vm.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function uploadNewFiles(files, autoMitigationId) {\r\n let fd = new FormData();\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"OracleCloudAutoMitigationRule\");\r\n fd.append(\"DataTypeId\", autoMitigationId);\r\n\r\n try {\r\n await $http.put(apiUrl + 'api/core/attachments/', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n vm.close();\r\n } catch (err) {\r\n errorCallBack(err.data);\r\n }\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n}","import { customAutoCompleteFilter, customBooleanFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport swal from \"sweetalert2\";\r\nimport importAutoMitigationRulesetModalController from \"./ImportAutoMitigationRulesetModal/importAutoMitigationRulesetModal.controller\";\r\nimport autoMitigationModalController from \"./AutoMitigationModal/autoMitigationModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModal, FileSaver, helperService, autoMitigationsDataService, $scope) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.helperService = helperService;\r\n vm.openAutoMitigationModal = openAutoMitigationModal;\r\n vm.deleteSystemAutoMitigation = deleteSystemAutoMitigation;\r\n vm.applyAutoMitigationConfirmation = applyAutoMitigationConfirmation;\r\n vm.openImportAutoMitigationRulesetModal = openImportAutoMitigationRulesetModal;\r\n vm.exportAutoMitigationRuleset = exportAutoMitigationRuleset;\r\n\r\n $scope.$on('ImportExclusions', (event, args) => vm.autoMitigationRulesGridDatasource.read());\r\n\r\n function onInit() {\r\n const autoMitigationRulesGridColumns =\r\n [\r\n { field: \"ExcludeObjectType\", title: \"Exclude Object Type\", filterable: customAutoCompleteFilter },\r\n { field: \"ExcludeObjectId\", title: \"Exclude Object Id\", filterable: customAutoCompleteFilter },\r\n { field: \"ExcludeObjectName\", title: \"Exclude Object Name\", filterable: customAutoCompleteFilter },\r\n { field: \"FromObjectType\", title: \"From Object Type\", filterable: customAutoCompleteFilter },\r\n { field: \"FromObjectId\", title: \"From Object Id\", filterable: customAutoCompleteFilter },\r\n { field: \"FromObjectName\", title: \"From Object Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"Enabled\", width: 125, filterable: customBooleanFilter },\r\n { template:\r\n `Edit`,\r\n title: \"Edit\",\r\n width: 90\r\n },\r\n { template:\r\n `Delete`,\r\n title: \"Delete\",\r\n width: 90\r\n }\r\n ];\r\n\r\n vm.autoMitigationRulesGridOptions = helperService.setMainGridOptions(autoMitigationRulesGridColumns, 275);\r\n vm.autoMitigationRulesGridOptions.selectable = false;\r\n\r\n vm.autoMitigationRulesGridDatasource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n Enabled: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n try {\r\n const res = await autoMitigationsDataService.getAutoMitigations(vm.product);\r\n let { data } = res;\r\n data = $filter('orderBy')(data, 'Name');\r\n options.success(data);\r\n } catch (err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function applyAutoMitigationConfirmation() {\r\n try {\r\n await swal(\r\n helperService.areYouSureParams(\r\n 'Apply Auto Mitigation',\r\n 'This process will apply the defined Auto Mitigation Rules to the user risks that have not already been mitigated.',\r\n 'Apply'\r\n )\r\n );\r\n autoMitigationsDataService.applyAutoMitigations(vm.product.toUpperCase());\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n function openImportAutoMitigationRulesetModal() {\r\n $uibModal.open({\r\n controller: importAutoMitigationRulesetModalController,\r\n controllerAs: 'iamrmvm',\r\n templateUrl: 'App/Components/AutoMitigations/ImportAutoMitigationRulesetModal/importAutoMitigationRulesetModal.tmpl.html',\r\n backdrop: 'static',\r\n resolve: {\r\n product: () => vm.product\r\n }\r\n });\r\n }\r\n\r\n async function exportAutoMitigationRuleset() {\r\n vm.rulesetExportPending = true;\r\n try {\r\n const res = await autoMitigationsDataService.exportAutoMitigationRuleset(vm.product);\r\n FileSaver.saveAs(res.data, 'AutoMitigationRuleset.xlsx');\r\n vm.rulesetExportPending = false;\r\n } catch (err) {\r\n vm.rulesetExportPending = false;\r\n }\r\n }\r\n\r\n async function openAutoMitigationModal(mitigation) {\r\n const modal = $uibModal.open({\r\n controller: autoMitigationModalController,\r\n controllerAs: 'ammvm',\r\n templateUrl: '/App/Components/AutoMitigations/AutoMitigationModal/autoMitigationModal.tmpl.html',\r\n backdrop: 'static',\r\n resolve: {\r\n mitigation: () => mitigation || {},\r\n product: () => vm.product\r\n }\r\n });\r\n try {\r\n await modal.result;\r\n vm.autoMitigationRulesGridDatasource.read();\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function deleteSystemAutoMitigation(dataItem) {\r\n const { Id: mitigationId } = dataItem;\r\n try {\r\n await autoMitigationsDataService.deleteAutoMitigation(vm.product, mitigationId);\r\n vm.autoMitigationRulesGridDatasource.read();\r\n } catch (err) {\r\n return;\r\n }\r\n }\r\n\r\n}","import autoMitigationsController from \"./autoMitigations.controller\";\r\n\r\n/* autoMitigations.component.js */\r\n\r\n/**\r\n * @desc component for managing auto mitigations in ORFC and Peoplesoft\r\n * @example \r\n */\r\n\r\nconst autoMitigations = {\r\n bindings: {\r\n product: '<'\r\n },\r\n controller: autoMitigationsController,\r\n controllerAs: 'amvm',\r\n templateUrl: '/App/Components/AutoMitigations/autoMitigations.tmpl.html'\r\n};\r\n\r\nexport default autoMitigations;","import { standardGridPageSize, customAutoCompleteFilter } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function (dataService, $http, $filter, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.helperService = helperService;\r\n\r\n vm.typeDropdownChange = typeDropdownChange;\r\n vm.productTypesDropdownChange = productTypesDropdownChange;\r\n vm.productsDropdownChange = productsDropdownChange;\r\n vm.addCondition = addCondition;\r\n vm.removeFromListOfConditions = removeFromListOfConditions;\r\n vm.cancel = cancel;\r\n\r\n async function onInit() {\r\n vm.object = { ...vm.resolve.object };\r\n\r\n if (!vm.object.ProductType) {\r\n await getProductTypes();\r\n } else {\r\n vm.selectedProduct = { 'Type': vm.object.ProductType };\r\n vm.selectedProductType = { 'Type': vm.object.ProductType };\r\n await getProducts();\r\n }\r\n }\r\n\r\n function typeDropdownChange() {\r\n setupGrids();\r\n }\r\n\r\n function productTypesDropdownChange() {\r\n getProducts();\r\n }\r\n\r\n function productsDropdownChange() {\r\n getTypes();\r\n }\r\n\r\n\r\n async function addCondition(role) {\r\n const data = {\r\n \"RiskObjectId\": vm.object.Id,\r\n \"ProductId\": vm.selectedProduct.ID,\r\n \"SecurityRoleTypeId\": vm.selectedType.ID,\r\n \"SecurityRoleId\": role.ID,\r\n \"ProductType\": vm.selectedProductType.Type\r\n };\r\n\r\n let response = await $http.post(apiUrl + 'api/arm/defaultmitigationconditions', data);\r\n\r\n // Add to list displayed in modal\r\n const newCondition = {\r\n \"RiskObjectId\": vm.object.Id,\r\n \"Id\": response.data,\r\n \"ProductId\": vm.selectedProduct.ID,\r\n \"SecurityRoleId\": role.ID,\r\n \"SecurityRoleName\": role.Name,\r\n \"SecurityRoleTypeId\": vm.selectedType.ID,\r\n \"SecurityRoleTypeName\": vm.selectedType.Name,\r\n \"SecurityRoleDescription\": role.Description\r\n };\r\n\r\n vm.object.ConditionList.push(newCondition);\r\n vm.object.ConditionList = $filter('orderBy')(vm.object.ConditionList, 'SecurityRoleName');\r\n\r\n await vm.availableConditionsGridDataSource.read();\r\n await vm.selectedConditionsGridDataSource.read();\r\n\r\n }\r\n\r\n async function getProductTypes() {\r\n let response = await dataService.getProductTypes();\r\n vm.productTypesDataSource = response.data;\r\n vm.selectedProductType = response.data[0];\r\n getProducts();\r\n }\r\n\r\n async function getProducts() {\r\n let response = await $http.get(apiUrl + 'api/universal/products/producttype/' + vm.selectedProductType.Type);\r\n vm.productsDataSource = response.data;\r\n vm.selectedProduct = response.data[0];\r\n vm.selectedProductForCondition = response.data[0];\r\n getTypes();\r\n }\r\n\r\n async function getTypes() {\r\n if (vm.selectedProductForCondition) {\r\n let response = await $http.get(apiUrl + 'api/universal/securityroletypes/producttype/' + vm.selectedProduct.Type);\r\n vm.typeDataSource = response.data;\r\n vm.selectedType = response.data[0];\r\n setupGrids();\r\n }\r\n }\r\n\r\n function setupGrids() {\r\n const availableConditionsGridColumns = [\r\n { field: \"Name\", title: \"Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", width: 120, filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n const selectedConditionsGridColumns = [\r\n { field: \"SecurityRoleName\", title: \"Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityRoleDescription\", title: \"Description\", width: 120, filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n vm.availableConditionsGridOptions = helperService.setMainGridOptions(availableConditionsGridColumns, 500);\r\n vm.selectedConditionsGridOptions = helperService.setMainGridOptions(selectedConditionsGridColumns, 500);\r\n vm.availableConditionsGridOptions.selectable = false;\r\n vm.selectedConditionsGridOptions.selectable = false;\r\n\r\n vm.availableConditionsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: halSchemaKendoGrid,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async options => {\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n data.Filters.forEach(filter => {\r\n filter.FieldName = filter.FieldName === 'Name' ? 'SecurityRoleName' : 'SecurityRoleDescription';\r\n });\r\n }\r\n let response = await $http({\r\n method: 'POST',\r\n url: `${apiUrl}api/universal/securityroles/product/${vm.selectedProduct.ID}/type/${vm.selectedType.ID}`,\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n });\r\n vm.object.ConditionList.forEach(condition => {\r\n response.data._embedded.reportData = response.data._embedded.reportData.filter(role => role.ID !== condition.SecurityRoleId);\r\n });\r\n response.data._embedded.reportData = $filter('orderBy')(response.data._embedded.reportData, 'Name');\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n\r\n vm.selectedConditionsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: options => {\r\n vm.object.ConditionList = $filter('orderBy')(vm.object.ConditionList, 'Name');\r\n options.success(vm.object.ConditionList);\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n async function removeFromListOfConditions(role) {\r\n role = role.toJSON();\r\n\r\n await $http.delete(apiUrl + 'api/arm/defaultmitigationconditions/' + role.Id);\r\n\r\n const roleIndex = vm.object.ConditionList.findIndex(condition => condition.SecurityRoleId === role.SecurityRoleId);\r\n vm.object.ConditionList.splice(roleIndex, 1);\r\n\r\n await vm.selectedConditionsGridDataSource.read();\r\n await vm.availableConditionsGridDataSource.read();\r\n }\r\n\r\n function cancel() {\r\n vm.modalInstance.close();\r\n }\r\n\r\n}","import manageConditionsController from \"./manageConditions.controller\";\r\n\r\n/* manageConditions.component.js */\r\n\r\n/**\r\n * @desc component for managing conditions in Maintain Risk Ruleset\r\n * @example \r\n */\r\n\r\nconst manageConditions = {\r\n bindings: {\r\n resolve: '<',\r\n modalInstance: '<'\r\n },\r\n controller: manageConditionsController,\r\n controllerAs: 'mcvm',\r\n templateUrl: '/App/Components/maintainRiskRuleset/objects/manageConditions/manageConditions.tmpl.html'\r\n};\r\n\r\nexport default manageConditions;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, riskLevelsData, helperService, riskLevel) {\r\n\r\n const vm = this;\r\n\r\n if (riskLevel) {\r\n vm.riskLevel = { ...riskLevel };\r\n }\r\n\r\n vm.cancel = cancel;\r\n vm.submitForm = submitForm;\r\n\r\n async function createRiskLevel() {\r\n vm.loading = new createSpinner();\r\n let postData = { Name: vm.riskLevel.Name };\r\n try {\r\n let response = await riskLevelsData.createRiskLevel(postData);\r\n let riskLevelId = response.data;\r\n await helperService.successfulSaveButton(vm.loading);\r\n $uibModalInstance.close(riskLevelId);\r\n } catch {\r\n vm.loading.loadingValue = false;\r\n }\r\n }\r\n\r\n async function renameRiskLevel() {\r\n vm.loading = new createSpinner();\r\n\r\n let putData = {\r\n Name: vm.riskLevel.Name,\r\n Id: vm.riskLevel.Id\r\n };\r\n\r\n try {\r\n await riskLevelsData.renameRiskLevel(putData);\r\n await helperService.successfulSaveButton(vm.loading);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.loading.loadingValue = false;\r\n }\r\n }\r\n\r\n function submitForm() {\r\n if (vm.riskLevel.Id) {\r\n renameRiskLevel();\r\n } else {\r\n createRiskLevel();\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport riskLevelsModalController from \"../riskLevelsModal/riskLevelsModal.controller\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModal, riskLevelsData, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = createRiskLevelsGrid();\r\n\r\n vm.openModal = openModal;\r\n vm.deleteRisk = deleteRisk;\r\n\r\n function createRiskLevelsGrid() {\r\n let riskLevelsGridColumns =\r\n [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 }\r\n\r\n ];\r\n\r\n vm.riskLevelsGridOptions = helperService.setMainGridOptions(riskLevelsGridColumns, 600);\r\n vm.riskLevelsGridOptions.selectable = false;\r\n\r\n vm.riskLevelsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await riskLevelsData.getRiskLevels();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function deleteRisk(riskLevel) {\r\n try {\r\n await swal(helperService.areYouSureParamsWithHTML('Delete Risk Level',\r\n `
Are you sure you want to delete risk level\r\n
${riskLevel.Name}?
\r\n
`, 'Delete'));\r\n await riskLevelsData.deleteRiskLevel(riskLevel.Id);\r\n vm.riskLevel = null;\r\n vm.riskLevelsGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n\r\n }\r\n\r\n async function openModal(riskLevel) {\r\n let riskLevelModal = $uibModal.open({\r\n templateUrl: '/App/Components/maintainRiskLevels/riskLevelsModal/riskLevelsModal.html',\r\n controller: riskLevelsModalController,\r\n controllerAs: 'rlmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n riskLevel: () => riskLevel\r\n }\r\n });\r\n\r\n try {\r\n await riskLevelModal.result;\r\n vm.riskLevelsGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n}\r\n","import riskLevelsGridController from \"./riskLevelsGrid.controller\";\r\n\r\n/* riskLevelsGrid.component.js */\r\n\r\n/**\r\n * @desc component for displaying and selecting risk levels in a grid\r\n * @example \r\n */\r\n\r\nconst riskLevelsGrid = {\r\n controller: riskLevelsGridController,\r\n controllerAs: 'rlgvm',\r\n templateUrl: '/App/Components/maintainRiskLevels/riskLevelsGrid/riskLevelsGrid.tmpl.html'\r\n};\r\n\r\nexport default riskLevelsGrid;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, businessProcessDataService, businessProcess, riskRuleset) {\r\n const vm = this;\r\n\r\n vm.saveBusinessProcess = saveBusinessProcess;\r\n vm.close = close;\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n function activate() {\r\n if (businessProcess) {\r\n vm.businessProcess = {\r\n Name: businessProcess.Name,\r\n Description: businessProcess.Description,\r\n Id: businessProcess.Id,\r\n RulesetId: businessProcess.RulesetId\r\n }\r\n } else {\r\n vm.businessProcess = {\r\n RulesetId: riskRuleset.RulesetId\r\n };\r\n }\r\n }\r\n\r\n function saveBusinessProcess() {\r\n vm.bpSaveInProgress = new createSpinner();\r\n if (vm.businessProcess.Id) {\r\n updateBusinessProcess();\r\n } else {\r\n addBusinessProcess();\r\n }\r\n }\r\n\r\n async function addBusinessProcess() {\r\n try {\r\n let response = await businessProcessDataService.createBusinessProcess(vm.businessProcess);\r\n await helperService.successfulSaveButton(vm.bpSaveInProgress);\r\n close(response.data);\r\n } catch {\r\n vm.bpSaveInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n async function updateBusinessProcess() {\r\n try {\r\n await businessProcessDataService.updateBusinessProcess(vm.businessProcess);\r\n await helperService.successfulSaveButton(vm.bpSaveInProgress);\r\n close();\r\n } catch {\r\n vm.bpSaveInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n function close(bpId) {\r\n $uibModalInstance.close(bpId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, dataService, businessProcessDataService, configurationDataService, group, groupCount, selectedBpId, helpId) {\r\n const vm = this;\r\n\r\n vm.selectedProductChanged = selectedProductChanged;\r\n vm.useFioriAppToggleChanged = useFioriAppToggleChanged;\r\n vm.changeFioriAppSelected = changeFioriAppSelected;\r\n vm.changeFioriAppServiceSelected = changeFioriAppServiceSelected;\r\n vm.saveGroup = saveGroup;\r\n vm.cancel = cancel;\r\n\r\n vm.typeOptions = ['And', 'Or'];\r\n\r\n vm.group = { ...group };\r\n vm.helpId = helpId;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.availableProducts = await getProducts();\r\n vm.excludedAccessProducts = vm.availableProducts.filter(product => product.ID === 'NS' || product.ID === 'SF' || product.ID === 'AX7' || product.ID === 'AX' || product.ID === 'D365S' || product.ID === 'INT' || product.ID === 'NAV' || product.ID === 'AX5' || product.ID === 'D365Bc' || product.ID === 'WD' || product.ID === 'ADO' || product.ID === 'AD' || product.ID === 'SL' || product.ID === 'AAD' || product.ID === 'AZ');\r\n\r\n if (group) {\r\n vm.bpGroup = {\r\n ID: group.Id,\r\n Name: group.Name,\r\n BusinessProcessId: group.BusinessProcessId,\r\n IncludeReadViewAccess: group.IncludeReadViewAccess,\r\n Type: group.Type,\r\n ProductId: group.ProductId\r\n }\r\n\r\n vm.enableExcludeInquiryAccess = vm.excludedAccessProducts.some(product => product.ID === group.ProductId);\r\n } else {\r\n vm.bpGroup = {\r\n BusinessProcessId: selectedBpId,\r\n Type: 'And',\r\n IncludeReadViewAccess: false\r\n };\r\n\r\n if (groupCount > 0) {\r\n const groupNumber = groupCount + 1;\r\n vm.bpGroup.Name = \"Group \" + groupNumber;\r\n } else {\r\n vm.bpGroup.Name = \"Group 1\";\r\n }\r\n if (vm.availableProducts.length === 1) {\r\n vm.bpGroup.ProductId = vm.availableProducts[0].ID;\r\n selectedProductChanged();\r\n }\r\n }\r\n }\r\n\r\n async function getProducts() {\r\n const response = await dataService.getProducts();\r\n return response.data;\r\n }\r\n\r\n async function selectedProductChanged() {\r\n const selectedProduct = vm.availableProducts.find(product => product.ID === vm.bpGroup.ProductId);\r\n const s4Enabled = selectedProduct.Type === 'SAP' ? await getS4Config() === 'S4' : false;\r\n if (selectedProduct.Type === 'SAP' && s4Enabled) {\r\n vm.s4Enabled = true;\r\n } else {\r\n if (vm.bpGroup.AppId) {\r\n delete bpGroup.AppId;\r\n }\r\n vm.s4Enabled = false;\r\n }\r\n\r\n vm.enableExcludeInquiryAccess = vm.excludedAccessProducts.some(product => product.ID === selectedProduct.ID);\r\n }\r\n\r\n function useFioriAppToggleChanged() {\r\n if (vm.useFioriApp) {\r\n setupFioriAppGrid();\r\n } else {\r\n delete vm.bpGroup.AppId;\r\n delete vm.bpGroup.ServiceIds;\r\n }\r\n }\r\n\r\n function setupFioriAppGrid() {\r\n const columns = [\r\n { field: \"Name\", title: \"Application Name\", filterable: customAutoCompleteFilter },\r\n { field: \"FioriId\", title: \"Fiori Id\", filterable: customAutoCompleteFilter },\r\n ];\r\n\r\n vm.fioriAppGridOptions = helperService.setMainGridOptions(columns, 300);\r\n\r\n vm.fioriAppGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await businessProcessDataService.getSapFioriApplications(vm.bpGroup.ProductId);\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function setupFioriAppServicesGrid(appId) {\r\n const columns = [\r\n { selectable: true, width: 50 },\r\n { field: \"ServiceName\", title: \"Service Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Version\", title: \"Service Version\", filterable: customAutoCompleteFilter },\r\n ];\r\n\r\n vm.fioriAppServicesGridOptions = helperService.setMainGridOptions(columns, 300);\r\n vm.fioriAppServicesGridOptions.selectable = false;\r\n\r\n vm.fioriAppServicesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n id: \"S4ServiceId\"\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n let response = await businessProcessDataService.getSapFioriAppServices(vm.bpGroup.ProductId, appId);\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function changeFioriAppSelected(kendoEvent) {\r\n vm.bpGroup.ServiceIds = [];\r\n const grid = kendoEvent.sender;\r\n const selectedApp = grid.dataItem(grid.select())\r\n vm.selectedFioriId = selectedApp.FioriId\r\n vm.bpGroup.AppId = selectedApp.Id;\r\n vm.bpGroup.Name = `${selectedApp.FioriId} - ${selectedApp.Name}`;\r\n setupFioriAppServicesGrid(selectedApp.Id);\r\n }\r\n\r\n function changeFioriAppServiceSelected() {\r\n vm.bpGroup.ServiceIds = vm.appServiceGrid.selectedKeyNames();\r\n }\r\n\r\n async function getS4Config() {\r\n const response = await configurationDataService.getProductConfigurationValueByName('SAP', 'SAP_ErpType');\r\n return response.data.Value;\r\n }\r\n\r\n function saveGroup() {\r\n vm.bpGroupSaveInProgress = new createSpinner();\r\n\r\n if (vm.bpGroup.ID) {\r\n updateGroup();\r\n } else {\r\n createGroup();\r\n }\r\n }\r\n\r\n async function updateGroup() {\r\n try {\r\n await businessProcessDataService.updateBusinessProcessGroup(vm.bpGroup);\r\n await helperService.successfulSaveButton(vm.bpGroupSaveInProgress);\r\n close();\r\n } catch {\r\n vm.bpGroupSaveInProgress.loadingValue = false;\r\n }\r\n\r\n }\r\n\r\n async function createGroup() {\r\n try {\r\n const response = await businessProcessDataService.createBusinessProcessGroup(vm.bpGroup);\r\n await helperService.successfulSaveButton(vm.bpGroupSaveInProgress);\r\n close(response.data);\r\n } catch {\r\n vm.bpGroupSaveInProgress.loadingValue = false;\r\n }\r\n\r\n }\r\n\r\n function close(newGroupId) {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($http, $uibModalInstance, helperService, dataService, businessProcessDataService, businessProcess, bpGroup, groupObjects) {\r\n\r\n const vm = this;\r\n\r\n vm.addObjectToBpGroup = addObjectToBpGroup;\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.availableProducts = await getProducts();\r\n setupAvailableGrid();\r\n createAvailableObjectsDataSource();\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n async function getProducts() {\r\n const response = await dataService.getProducts();\r\n return response.data;\r\n }\r\n\r\n function setupAvailableGrid() {\r\n let availableGridColumns = [\r\n { title: \"Security Object Label\", field: \"AltName\", filterable: customAutoCompleteFilter },\r\n { title: \"Security Object Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"Module\", field: \"ModuleName\", filterable: customAutoCompleteFilter },\r\n { title: \"Type\", field: \"SecurityObjectTypeName\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n if (vm.availableProducts.length > 1) {\r\n availableGridColumns.unshift({ title: \"Product\", field: \"ProductName\", filterable: customAutoCompleteFilter });\r\n }\r\n\r\n vm.availableObjectsGridOptions = helperService.setMainGridOptions(availableGridColumns, null);\r\n }\r\n\r\n function createAvailableObjectsDataSource() {\r\n vm.availableObjectsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: halSchemaKendoGrid,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async options => {\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n let altNameFilterIndex = data.Filters.findIndex(filter => filter.FieldName === \"AltName\");\r\n let nameFilterIndex = data.Filters.findIndex(filter => filter.FieldName === \"Name\");\r\n\r\n if (altNameFilterIndex > -1) {\r\n data.Filters[altNameFilterIndex].FieldName = \"SecurityObjectAltName\";\r\n }\r\n if (nameFilterIndex > -1) {\r\n data.Filters[nameFilterIndex].FieldName = \"SecurityObjectName\";\r\n }\r\n }\r\n if (data.Sorts.length > 0) {\r\n let altNameSortIndex = data.Sorts.findIndex(sort => sort.FieldName === \"AltName\");\r\n let nameSortIndex = data.Sorts.findIndex(sort => sort.FieldName === \"Name\");\r\n if (altNameSortIndex > -1) {\r\n data.Sorts[altNameSortIndex].FieldName = \"SecurityObjectAltName\";\r\n }\r\n if (nameSortIndex > -1) {\r\n data.Sorts[nameSortIndex].FieldName = \"SecurityObjectName\";\r\n }\r\n }\r\n\r\n let response = await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/universal/securityobjects',\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page, 'productType': [bpGroup.ProductType] }\r\n });\r\n // filter out any objects that are already part of the group\r\n response.data._embedded.reportData = response.data._embedded.reportData.reduce((newArray, object) => {\r\n if (!groupObjects.some(groupObject => groupObject.Id === object.Id && groupObject.SecurityObjectTypeId === object.SecurityObjectTypeId && groupObject.ProductType === object.ProductType)) {\r\n newArray.push(object);\r\n }\r\n return newArray;\r\n }, []);\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n //Add Selected Object\r\n async function addObjectToBpGroup(dataItem) {\r\n vm.addingToSelectedGrid = true;\r\n kendo.ui.progress(vm.availableGrid.element, true);\r\n const data = {\r\n \"BusinessProcessID\": businessProcess.Id,\r\n \"SecurityObjectID\": dataItem.Id,\r\n \"SecurityObjectName\": dataItem.Name,\r\n \"SecurityObjectTypeID\": dataItem.SecurityObjectTypeId,\r\n \"ProductType\": dataItem.ProductType,\r\n \"GroupID\": bpGroup.Id\r\n };\r\n\r\n try {\r\n await businessProcessDataService.addObjectToBpGroup(data);\r\n groupObjects.push(dataItem);\r\n kendo.ui.progress(vm.availableGrid.element, false);\r\n await vm.availableObjectsGridDataSource.read();\r\n vm.addingToSelectedGrid = false;\r\n } catch (response) {\r\n vm.addingToSelectedGrid = false;\r\n kendo.ui.progress(vm.availableGrid.element, false);\r\n }\r\n };\r\n\r\n}","import swal from \"sweetalert2\";\r\nimport businessProcessModalController from \"./businessProcessModal/businessProcessModal.controller\";\r\nimport bpGroupModalController from \"./bpGroupModal/bpGroupModal.controller\";\r\nimport bpObjectsModalController from \"./bpObjectsModal/bpObjectsModal.controller\";\r\nimport rulesetObjectCopyModalController from \"../../Shared/Components/rulesetObjectCopyModal/rulesetObjectCopyModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModal, helperService, businessProcessDataService, riskRulesetService) {\r\n\r\n const vm = this;\r\n\r\n vm.openBusinessProcessModal = openBusinessProcessModal;\r\n vm.openBusinessProcessGroupModal = openBusinessProcessGroupModal;\r\n vm.openBpObjectsModal = openBpObjectsModal;\r\n vm.openRulesetObjectCopyModal = openRulesetObjectCopyModal;\r\n vm.changeRiskRuleset = changeRiskRuleset;\r\n vm.changeGroupSelected = changeGroupSelected;\r\n vm.changeBusinessProcessSelected = changeBusinessProcessSelected;\r\n vm.removeObjectFromBpGroup = removeObjectFromBpGroup;\r\n vm.deleteBusinessProcess = deleteBusinessProcess;\r\n vm.deleteGroup = deleteGroup;\r\n vm.selectBusinessProcess = selectBusinessProcess;\r\n vm.selectAllBPs = selectAllBPs;\r\n\r\n vm.helperService = helperService;\r\n\r\n vm.newFieldValueIsCollapsed = true;\r\n vm.businessProcessMenuOptions = [\r\n {\r\n text: 'Edit',\r\n click: function ($itemScope, $event, modelValue) {\r\n var item = modelValue;\r\n vm.openBusinessProcessModal(item);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: function ($itemScope, $event, modelValue) {\r\n var item = modelValue;\r\n vm.deleteBusinessProcess(item);\r\n }\r\n }\r\n ];\r\n vm.groupMenuOptions = [\r\n {\r\n text: 'Edit',\r\n click: function ($itemScope, $event, modelValue) {\r\n var item = modelValue;\r\n vm.openBusinessProcessGroupModal(item);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: function ($itemScope, $event, modelValue) {\r\n var item = modelValue;\r\n vm.deleteGroup(item);\r\n }\r\n }\r\n ];\r\n\r\n vm.selectedBPs = [];\r\n vm.helpId = '115007891947';\r\n activate();\r\n\r\n async function activate() {\r\n await getRiskRulesets();\r\n vm.businessProcessesLoading = true;\r\n getBusinessProcesses(null);\r\n clearObjectSelection();\r\n }\r\n\r\n function clearObjectSelection() {\r\n if (vm.selectedBPs.length) {\r\n vm.businessProcessDataSource.forEach(businessProcess => businessProcess.copy = false);\r\n }\r\n vm.selectedBPs = [];\r\n vm.selectBPsMode = false;\r\n vm.allBPsSelected = false;\r\n }\r\n\r\n async function openBusinessProcessModal(businessProcess) {\r\n const bpModal = $uibModal.open({\r\n templateUrl: '/App/Components/MaintainBusinessProcess/businessProcessModal/businessProcessModal.html',\r\n controller: businessProcessModalController,\r\n controllerAs: 'mbpgvm',\r\n backdrop: 'static',\r\n resolve: {\r\n businessProcess: () => businessProcess,\r\n riskRuleset: () => vm.selectedRiskRuleset\r\n }\r\n });\r\n\r\n try {\r\n const newBpId = await bpModal.result;\r\n getBusinessProcesses(newBpId);\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openBusinessProcessGroupModal(group) {\r\n const bpGroupModal = $uibModal.open({\r\n templateUrl: '/App/Components/MaintainBusinessProcess/bpGroupModal/bpGroupModal.html',\r\n controller: bpGroupModalController,\r\n controllerAs: 'bpgmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n group: () => group,\r\n groupCount: () => vm.businessProcessGroupsDataSource.length,\r\n selectedBpId: () => vm.selectedBusinessProcess.Id,\r\n helpId: () => vm.helpId\r\n\r\n }\r\n });\r\n\r\n try {\r\n let newBpGroupId = await bpGroupModal.result;\r\n changeBusinessProcessSelected(newBpGroupId, vm.selectedBusinessProcess);\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openBpObjectsModal() {\r\n const bpObjectsModal = $uibModal.open({\r\n templateUrl: '/App/Components/MaintainBusinessProcess/bpObjectsModal/bpObjectsModal.html',\r\n controller: bpObjectsModalController,\r\n controllerAs: 'bpomvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n businessProcess: () => vm.selectedBusinessProcess,\r\n bpGroup: () => vm.selectedGroup,\r\n groupObjects: () => vm.selectedObjectsForGroup\r\n }\r\n });\r\n\r\n await bpObjectsModal.result;\r\n changeGroupSelected(vm.selectedGroup);\r\n }\r\n\r\n async function openRulesetObjectCopyModal() {\r\n let objectCopyModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Components/rulesetObjectCopyModal/rulesetObjectCopyModal.html',\r\n controller: rulesetObjectCopyModalController,\r\n controllerAs: 'rocmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n objects: () => vm.selectedBPs,\r\n ruleset: () => vm.selectedRiskRuleset\r\n }\r\n });\r\n try {\r\n await objectCopyModal.result;\r\n clearObjectSelection();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function changeRiskRuleset() {\r\n vm.businessProcessGroupsDataSource = null;\r\n vm.businessProcessDataSource = null;\r\n vm.selectedObjectsForGroup = null;\r\n vm.businessProcessesLoading = true;\r\n getBusinessProcesses(null);\r\n clearObjectSelection();\r\n }\r\n\r\n async function getRiskRulesets() {\r\n vm.riskRulesetsLoading = true;\r\n let response = await riskRulesetService.getRiskRulesetList();\r\n response.data = response.data.filter(ruleset => ruleset.IsEnabled);\r\n vm.riskRulesetDataSource = response.data;\r\n vm.riskRulesetsLoading = false;\r\n vm.selectedRiskRuleset = vm.riskRulesetDataSource.find(ruleset => ruleset.IsDefault);\r\n return vm.riskRulesetDataSource;\r\n }\r\n\r\n async function getBusinessProcesses(preselect) {\r\n let response = await businessProcessDataService.getBusinessProcessesByRiskRuleset(vm.selectedRiskRuleset.RulesetId);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.businessProcessDataSource = response.data;\r\n if (preselect) {\r\n response.data.forEach(function (row, i) {\r\n if (row.Id === preselect) {\r\n vm.businessProcessDataSource = response.data.filter(bp => bp.Id !== preselect);\r\n vm.selectedBusinessProcess = row;\r\n vm.businessProcessDataSource.unshift(vm.selectedBusinessProcess);\r\n vm.changeBusinessProcessSelected(row.Id, vm.selectedBusinessProcess);\r\n }\r\n });\r\n }\r\n vm.businessProcessesLoading = false;\r\n return vm.businessProcessDataSource\r\n }\r\n\r\n\r\n async function changeGroupSelected(group) {\r\n vm.selectedGroup = group;\r\n if (vm.selectedGroup) {\r\n vm.changeGroupInProgress = true;\r\n let response = await businessProcessDataService.getBpGroupObjects(vm.selectedBusinessProcess.Id, group.Id);\r\n vm.selectedObjectsForGroup = response.data.reduce((groupObjects, object) => {\r\n object.SecurityObject.BusinessProcessObjectId = object.ID;\r\n object.SecurityObject.SAPAuthFieldGroupings = object.SAPAuthFieldGroupings;\r\n object.SecurityObject.newFieldValueIsCollapsed = true;\r\n groupObjects.push(object.SecurityObject);\r\n return groupObjects;\r\n }, []);\r\n vm.changeGroupInProgress = false;\r\n }\r\n };\r\n\r\n async function changeBusinessProcessSelected(preselectGroupId, businessProcess) {\r\n vm.selectedBusinessProcess = businessProcess;\r\n vm.changeGroupInProgress = true;\r\n vm.businessProcessGroupsDataSource = null;\r\n\r\n if (vm.selectedBusinessProcess) {\r\n clearObjectSelection();\r\n let response = await businessProcessDataService.getBpGroups(vm.selectedBusinessProcess.Id);\r\n vm.changeGroupInProgress = false;\r\n vm.businessProcessGroupsDataSource = response.data;\r\n checkForIncludeAllAccessTypes();\r\n\r\n if (preselectGroupId) {\r\n vm.selectedGroup = vm.businessProcessGroupsDataSource.find(e => e.Id === preselectGroupId);\r\n }\r\n else if (vm.businessProcessGroupsDataSource.length === 1) {\r\n vm.selectedGroup = vm.businessProcessGroupsDataSource[0];\r\n }\r\n else {\r\n vm.selectedGroup = null;\r\n }\r\n changeGroupSelected(vm.selectedGroup);\r\n } else {\r\n vm.changeGroupInProgress = false;\r\n }\r\n }\r\n\r\n function checkForIncludeAllAccessTypes() {\r\n const excludedProductsArray = ['NS', 'SF', 'AX7', 'AX', 'D365S', 'INT', 'NAV', 'AX5', 'D365Bc', 'WD', 'ADO', 'AD', 'SL', 'AAD', 'AZ']\r\n vm.businessProcessGroupsDataSource.forEach(group => {\r\n const productMatches = excludedProductsArray.some(id => id === group.ProductId);\r\n\r\n if (productMatches) {\r\n group.enableAllAccessTypes = true;\r\n } else {\r\n group.enableAllAccessTypes = false;\r\n }\r\n });\r\n }\r\n\r\n //Delete Selected Object\r\n async function removeObjectFromBpGroup(bpObject) {\r\n vm.objectsInProgress = true;\r\n try {\r\n await businessProcessDataService.removeBusinessProcessObjectsFromGroup(vm.selectedBusinessProcess.Id, bpObject.BusinessProcessObjectId);\r\n changeGroupSelected(vm.selectedGroup);\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n vm.objectsInProgress = false;\r\n }\r\n\r\n //Delete Business Process\r\n async function deleteBusinessProcess(bp) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Business Process', `Are you sure you want to delete Business Process: ${bp.Name}?`, 'Delete'));\r\n await businessProcessDataService.deleteBusinessProcess(bp.Id);\r\n vm.selectedGroup = null;\r\n vm.selectedBusinessProcess = null;\r\n vm.businessProcessesLoading = true;\r\n await getBusinessProcesses(null);\r\n\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n //Delete Group\r\n async function deleteGroup(bpGroup) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Group', `Are you sure you want to delete Business Process Group: ${bpGroup.Name}?`, 'Delete'));\r\n await businessProcessDataService.deleteBpGroup(vm.selectedBusinessProcess.Id, bpGroup.Id);\r\n changeBusinessProcessSelected(null, vm.selectedBusinessProcess);\r\n vm.selectedGroup = null;\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function selectBusinessProcess(businessProcess) {\r\n if (businessProcess.copy) {\r\n vm.selectedBPs.push(businessProcess);\r\n }\r\n else {\r\n vm.selectedBPs.splice(vm.selectedBPs.indexOf(businessProcess), 1);\r\n }\r\n vm.allBPsSelected = vm.businessProcessDataSource.every(bp => bp.copy);\r\n }\r\n function selectAllBPs() {\r\n vm.businessProcessDataSource.forEach(bp => bp.copy = vm.allBPsSelected);\r\n vm.selectedBPs = vm.businessProcessDataSource.filter(bp => bp.copy);\r\n }\r\n\r\n}","import angular from 'angular';\r\nimport applyDefaultMitigations from '../Components/applyDefaultMitigations/applyDefaultMitigations.component';\r\nimport assignRisks from '../Components/assignRisks/assignRisks.component';\r\nimport controlLibrary from '../Components/controlLibrary/controlLibrary.component';\r\nimport maintainBusinessCycles from '../Components/maintainBusinessCycles/maintainBusinessCycles.component';\r\nimport maintainRiskRulesetController from '../Components/maintainRiskRuleset/maintainRiskRuleset.controller';\r\nimport maintainMitigations from '../Components/maintainMitigations/maintainMitigations.component';\r\nimport riskLevels from '../Components/maintainRiskLevels/riskLevels.component';\r\nimport maintainStatuses from '../Components/maintainStatuses/maintainStatuses.component';\r\nimport ManageArchivesViewModel from '../Components/ManageArchives/ManageArchivesViewModel';\r\nimport startNewAudit from '../Components/startNewAudit/startNewAudit.component';\r\nimport ApplyAutoMitigationViewModel from '../Components/Oracle/ApplyAutoMitigation/ApplyAutoMitigationViewModel';\r\nimport transferRulesetController from '../Components/transferRuleset/transferRuleset.controller';\r\nimport peoplesoftAutoMitigations from '../Components/Peoplesoft/autoMitigations/autoMitigations.component';\r\nimport autoMitigations from '../Components/AutoMitigations/autoMitigations.component';\r\nimport manageConditions from '../Components/maintainRiskRuleset/objects/manageConditions/manageConditions.component';\r\nimport riskLevelsGrid from '../Components/maintainRiskLevels/riskLevelsGrid/riskLevelsGrid.component';\r\nimport maintainBusinessProcessController from '../Components/MaintainBusinessProcess/maintainBusinessProcess.controller';\r\n\r\nexport default angular\r\n .module('app.accessRiskMonitor.setup', [])\r\n .component(\"applyDefaultMitigations\", applyDefaultMitigations)\r\n .component(\"assignRisks\", assignRisks)\r\n .component(\"controlLibrary\", controlLibrary)\r\n .component(\"maintainBusinessCycles\", maintainBusinessCycles)\r\n .controller(\"maintainBusinessProcessController\", maintainBusinessProcessController)\r\n .controller(\"maintainRiskRulesetController\", maintainRiskRulesetController)\r\n .component(\"maintainMitigations\", maintainMitigations)\r\n .component('riskLevelsGrid', riskLevelsGrid)\r\n .component('riskLevels', riskLevels)\r\n .component(\"maintainStatuses\", maintainStatuses)\r\n .controller(\"manageArchivesViewModel\", ManageArchivesViewModel)\r\n .component(\"startNewAudit\", startNewAudit)\r\n .controller(\"applyAutoMitigationViewModel\", ApplyAutoMitigationViewModel)\r\n .controller(\"transferRulesetController\", transferRulesetController)\r\n .component(\"peoplesoftAutoMitigations\", peoplesoftAutoMitigations)\r\n .component('autoMitigations', autoMitigations)\r\n .component('manageConditions', manageConditions)\r\n .name;","import riskLevelsController from \"./riskLevels.controller\";\r\n\r\n/* riskLevels.component.js */\r\n\r\n/**\r\n * @desc component to display risk levels view\r\n * @example \r\n */\r\n\r\nconst riskLevels = {\r\n controller: riskLevelsController,\r\n controllerAs: 'rlvm',\r\n templateUrl: '/App/Components/maintainRiskLevels/riskLevels.tmpl.html'\r\n};\r\n\r\nexport default riskLevels;","export default function () {\r\n return;\r\n}","import { standardGridPageSize, customAutoCompleteFilter, customBooleanFilter, customDatePickerFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $filter, SavedReportSelectorService, dataService, BuildRoleAccessPostBody, objectIdDataService, CustomReportServices, $http, $location, helperService, reportsDataService, reportsService) {\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if ($scope.grid) {\r\n $scope.gridReady = true;\r\n $scope.runSavedReport();\r\n }\r\n });\r\n\r\n $scope.helperService = helperService;\r\n\r\n var vm = $scope.vm = {};\r\n\r\n vm.allRolesOption = true;\r\n vm.updateRoleDataSource = updateRoleDataSource;\r\n vm.objectSearchField = $rootScope.UserPreferences.ObjectSearchField;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n activate();\r\n\r\n async function aLAPluginActive() {\r\n let response = await $http.get(`${apiUrl}/api/core/plugins`);\r\n vm.aLAPluginActive = response.data.some(plugin => plugin.Id === 9 && plugin.Active);\r\n }\r\n\r\n function activate() {\r\n aLAPluginActive();\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource($scope.ObjectId);\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n dataService.getProducts().then(function (response) {\r\n response.data = response.data.filter(p => p.UserHasAccess === true);\r\n vm.productsDataSource = response.data;\r\n let defaultProduct = vm.productsDataSource.find(obj => obj.Name === $rootScope.UserPreferences.PreferredProduct);\r\n let defaultProductSelected = vm.productsDataSource.indexOf(defaultProduct);\r\n if ($scope.isDetailed) {\r\n vm.productsDataSource = vm.productsDataSource.filter(product => product.Type === \"AX\" || product.Type === \"AX5\" || product.Type === \"AX7\" || product.Type === \"GP\" || product.Type === \"ORFC\" || product.Type === \"SAP\");\r\n let defaultProductExists = vm.productsDataSource.some(obj => obj.Name === $rootScope.UserPreferences.PreferredProduct);\r\n if (defaultProductExists) {\r\n defaultProductSelected = vm.productsDataSource.indexOf(defaultProduct);\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProduct = vm.productsDataSource[defaultProductSelected];\r\n } else {\r\n\r\n vm.selectedProduct = vm.productsDataSource[0];\r\n }\r\n } else {\r\n vm.selectedProduct = vm.productsDataSource[0];\r\n }\r\n } else {\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProduct = vm.productsDataSource[defaultProductSelected];\r\n } else {\r\n vm.selectedProduct = vm.productsDataSource[0];\r\n }\r\n }\r\n\r\n vm.selectedProduct = SavedReportSelectorService.checkSavedReportForSingleProduct($rootScope.loadedSavedReport, response.data, vm.selectedProduct);\r\n\r\n if ($scope.isDetailed) {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type).ReportID;\r\n } else {\r\n $scope.reportId = securityObject.ReportID;\r\n }\r\n\r\n getObjectTypes();\r\n vm.setColumns();\r\n $scope.runSavedReport();\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n getReportMetadata().then(_ => {\r\n if ($rootScope.loadedSavedReport) {\r\n $scope.runSavedReport();\r\n }\r\n });\r\n });\r\n // ---\r\n });\r\n }\r\n\r\n if ($location.path().has('Detailed')) {\r\n $scope.isDetailed = true;\r\n } else {\r\n $scope.isDetailed = false;\r\n }\r\n\r\n vm.roleSelectedIds = [];\r\n\r\n $scope.runSavedReport = function () {\r\n if ($scope.gridReady && $rootScope.loadedSavedReport && vm.objectTypeDataSource && vm.productsDataSource && vm.roleDataSource && vm.objectDataSource && vm.filterCriteria.fields) {\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n $scope.generateGridWithSelectedValues();\r\n } else if ($scope.gridReady && !$rootScope.loadedSavedReport && vm.objectTypeDataSource && vm.productsDataSource && vm.roleDataSource && vm.objectDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n $scope.populateCriteriaModel();\r\n }\r\n };\r\n\r\n $scope.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n $scope.mainGridOptions.autoBind = false;\r\n $scope.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n\r\n $scope.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n $scope.applySelectedFilter = function () {\r\n helperService.applyFilterCatchError($scope);\r\n };\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n LastUsed: { type: \"date\"},\r\n PermissionOverride: { type: \"boolean\" },\r\n IsAssigned: { type: \"boolean\" },\r\n ViewCount: { type: \"number\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n let data = BuildRoleAccessPostBody.generateBody($scope.ObjectId, vm.selectedProductId, $scope.roles, vm.selectedObject, vm.selectedObjectType, $scope.isDetailed);\r\n\r\n data['QueryInput'] = helperService.prepareSortsAndFilters(options);\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: $scope.urlString,\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(function (response) {\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n\r\n if ($scope.isDetailed) {\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type);\r\n\r\n $scope.reportId = securityObject.ReportID;\r\n }\r\n\r\n }).catch(response => {\r\n const timeout = 408;\r\n\r\n if (response.status !== timeout) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n $scope.populateCriteriaModel = function () {\r\n // do not continue if the proper criteria are not loaded\r\n if (!vm.selectedProduct || vm.selectedObjectType === undefined || vm.selectedObject === undefined || vm.roleSelectedIds === undefined) {\r\n return;\r\n }\r\n $scope.product = vm.selectedProduct;\r\n vm.selectedProductId = [];\r\n $scope.securityObject = JSON.parse(JSON.stringify(vm.selectedObject));\r\n $scope.securityObjectType = vm.selectedObjectType;\r\n $scope.roles = vm.roleSelectedIds;//.map(function (el) { return el.ID; });\r\n\r\n CustomReportServices.convertCriteriaValueToNull($scope.securityObject, \"Identifier\");\r\n\r\n var criteria = [];\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityObjectType\", 'SecurityObjectType', $scope.securityObjectType.Name, { \"Id\": vm.selectedObjectType.Identifier }));\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityObject\", 'SecurityObject', $scope.securityObject.AltName, { \"Id\": $scope.securityObject.Identifier }));\r\n\r\n vm.roleSelectedIds.forEach(function (row, i) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityRoleIdentifier\", 'Role', row.Name, row.Identifier));\r\n });\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"ProductId\", 'Product', $scope.product.Name, $scope.product.ID));\r\n\r\n $scope.reportDetailsModel = criteria;\r\n\r\n if ($scope.isDetailed === true) {\r\n vm.selectedProductId.push($scope.product.ID);\r\n let productString = vm.selectedProduct.Type === 'SAP' ? 'SAP' : vm.selectedProduct.ID;\r\n $scope.urlString = apiUrl + 'api/arm/' + productString + '/places/roleaccess';\r\n } else {\r\n vm.selectedProductId.push($scope.product.ID);\r\n $scope.urlString = apiUrl + 'api/arm/places/roleaccess';\r\n }\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n\r\n };\r\n\r\n $scope.generateGridWithSelectedValues = function () {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.dataSource._filter = null;\r\n $scope.grid.dataSource._sort = null;\r\n }\r\n\r\n $scope.populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, $scope.grid, true);\r\n };\r\n\r\n vm.setColumns = function () {\r\n\r\n if ($scope.isDetailed === true) {\r\n if (vm.selectedProduct.Type === 'AX7') {\r\n $scope.mainGridColumns = [\r\n { field: \"RoleName\", title: \"Role\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleSystemName\", title: \"Role System Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SubRoleName\", title: \"Sub Role\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SubRoleSystemName\", title: \"Sub Role System Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"DutyName\", title: \"Duty Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"DutySystemName\", title: \"Duty System Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegeName\", title: \"Privilege Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegeSystemName\", title: \"Privilege System Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectName\", title: \"Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectLabel\", title: \"Object Label\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectType\", title: \"Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AccessType\", title: \"Access Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"MenuPath\", title: \"Menu Path\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"License\", title: \"License\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n\r\n if (vm.aLAPluginActive) {\r\n const lastUsedCol = { field: \"LastUsed\", title: \"Last Used\", template: \"{{ dataItem.LastUsed | date:'short'}}\", width: 200, filterable: customDatePickerFilter },\r\n viewCountCol = { field: \"ViewCount\", title: \"View Count\", width: 130, filterable: customAutoCompleteFilter };\r\n\r\n $scope.mainGridColumns.push(lastUsedCol);\r\n $scope.mainGridColumns.push(viewCountCol);\r\n }\r\n } else if (vm.selectedProduct.Type === 'AX') {\r\n $scope.mainGridColumns = [\r\n { field: \"RoleName\", title: \"Role\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RolePhysicalName\", title: \"Role Physical Name\", width: 120, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubRoleName\", title: \"Sub Role Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SubRolePhysicalName \", title: \"Sub Role Physical Name\", width: 120, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DutyName\", title: \"Duty\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"DutyPhysicalName\", title: \"Duty Physical Name\", width: 120, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"PrivilegeName\", title: \"Privilege\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegePhysicalName\", title: \"Privilege Physical Name\", width: 120, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectHelpText\", title: \"Object Help Text\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"LicenseType\", title: \"License Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"PermissionOverride\", title: \"Permission Override\", width: 120, filterable: customBooleanFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'AX5') {\r\n $scope.mainGridColumns = [\r\n { field: \"RoleId\", title: \"Group ID\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Group Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"DomainId\", title: \"Domain\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'GP') {\r\n $scope.mainGridColumns = [\r\n { field: \"RoleId\", title: \"Role ID\", width: 40, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object Alt Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Series\", title: \"Series\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'SAP') {\r\n $scope.mainGridColumns = [\r\n { field: \"RoleId\", title: \"Role ID\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectId\", title: \"Security Object ID\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Security Object\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Authorization\", title: \"Authorization\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalLow\", title: \"Technical Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Low\", title: \"Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalHigh\", title: \"Technical High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"High\", title: \"High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'ORFC') {\r\n $scope.mainGridColumns = [\r\n { field: \"RoleName\", title: \"Role Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RolePhysicalName\", title: \"Role Physical Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role Id\", width: 120, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubRoleName\", title: \"Sub Role Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SubRolePhysicalName\", title: \"Sub Role Physical Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegeDescription\", title: \"Privilege Description\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Path\", title: \"Path\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n }\r\n } else {\r\n $scope.mainGridColumns = [\r\n { field: \"RoleId\", title: \"Role ID\", width: 40, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleType\", title: \"Role Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectId\", title: \"Object ID\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n }\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.mainGridOptions.sortable = false;\r\n\r\n $scope.mainGridOptions.filterable = false;\r\n }\r\n\r\n vm.setLayout();\r\n };\r\n\r\n vm.setLayout = function () {\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout($scope, null);\r\n }\r\n };\r\n\r\n $scope.deleteFilter = function (id) {\r\n CustomReportServices.deleteFilterFilterManager($scope, id);\r\n };\r\n\r\n $scope.clearAllFilters = function () {\r\n $scope.gridDataSource.filter({});\r\n };\r\n\r\n $scope.saveReportLayoutButton = function () {\r\n CustomReportServices.saveGridLayout($scope, null);\r\n };\r\n\r\n $scope.productDropdownChange = function () {\r\n if ($scope.isDetailed) {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type).ReportID;\r\n getReportMetadata();\r\n }\r\n\r\n vm.roleSelectedIds = [];\r\n getObjectTypes();\r\n vm.setColumns();\r\n };\r\n\r\n function getObjectTypes() {\r\n vm.objectTypesDropdownLoading = true;\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/universal/securityobjecttypes/producttype',\r\n params: { 'productType': vm.selectedProduct.Type }\r\n }).then(function (response) {\r\n vm.objectTypesDropdownLoading = false;\r\n response.data.unshift({ \"Name\": \"All Object Types\", \"ID\": null });\r\n\r\n vm.selectedObjectType = response.data.first();\r\n vm.objectTypeDataSource = $filter('orderBy')(response.data, 'Name');\r\n vm.selectedObjectType = SavedReportSelectorService.checkSavedReportForObjectTypes($rootScope.loadedSavedReport, response.data, vm.selectedObjectType);\r\n $scope.objectTypeDropdownChange();\r\n $scope.runSavedReport();\r\n });\r\n }\r\n\r\n $scope.objectTypeDropdownChange = function () {\r\n $scope.kendoObjectDropdownDataSource._data = [];\r\n $scope.kendoObjectDropdownDataSource.read();\r\n };\r\n\r\n $scope.kendoObjectDropdownDataSource = new kendo.data.DataSource({\r\n schema: {\r\n data: \"_embedded.reportData\",\r\n total: \"TotalItems\"\r\n },\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: function (options) {\r\n\r\n if (vm.selectedObjectType && vm.selectedObjectType.Identifier !== '') {\r\n vm.objectsDropdownLoading = true;\r\n\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n if (vm.objectSearchField === 'AltName') {\r\n data.Filters[0].FieldName = \"SecurityObjectAltName\";\r\n } else {\r\n data.Filters[0].FieldName = \"SecurityObjectName\";\r\n }\r\n }\r\n\r\n if (vm.selectedProduct.Type === 'SAP') {\r\n data.ProductIds = [vm.selectedProduct.ID]\r\n }\r\n\r\n var urlString = null;\r\n var params = null;\r\n params = {\r\n \"productType\": vm.selectedProduct.Type,\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page\r\n };\r\n if (vm.selectedObjectType.Identifier) {\r\n urlString = apiUrl + 'api/universal/securityobjects/producttype/' + vm.selectedObjectType.ProductType + '/type/' + vm.selectedObjectType.ID;\r\n } else {\r\n urlString = apiUrl + 'api/universal/securityobjects';\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: urlString,\r\n data: data,\r\n params: params\r\n }).then(function (response) {\r\n let data = response.data._embedded.reportData;\r\n\r\n if (vm.objectSearchField === 'AltName') {\r\n data = fillAltNames(data);\r\n }\r\n\r\n if ($scope.kendoObjectDropdownDataSource._data.length === 0) {\r\n\r\n // objects are being loaded for the first time\r\n addAllObjectsOption();\r\n\r\n if ($rootScope.loadedSavedReport) {\r\n SavedReportSelectorService.getSavedReportSelectedObject($rootScope.loadedSavedReport).then(response => {\r\n if (response) {\r\n data.unshift(response);\r\n }\r\n success(data);\r\n });\r\n } else {\r\n success(data);\r\n }\r\n } else if (options.data.page === 1) {\r\n if (!options.data.filter || options.data.filter.filters.length === 0 || options.data.filter.filters[0].value === \"\") {\r\n addAllObjectsOption();\r\n }\r\n if (vm.selectedObject.Identifier !== \"-1\" && !data.some(object => object.Identifier === vm.selectedObject.Identifier)) {\r\n // selected object is not in the dataset we need to add it and make sure it stays selected\r\n data.unshift(vm.selectedObject);\r\n vm.selectedObject = data[0];\r\n }\r\n options.success(response.data);\r\n $scope.populateCriteriaModel();\r\n } else {\r\n options.success(response.data);\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n function addAllObjectsOption() {\r\n let AllObjects = {};\r\n if (vm.objectSearchField === 'AltName') {\r\n AllObjects = { \"AltName\": \"All Objects\", \"Id\": null, \"Identifier\": \"-1\" };\r\n } else {\r\n AllObjects = { \"Name\": \"All Objects\", \"Id\": null, \"Identifier\": \"-1\" };\r\n }\r\n data.unshift(AllObjects);\r\n }\r\n\r\n function success(data) {\r\n vm.objectDataSource = data;\r\n vm.selectedObject = data[0];\r\n vm.objectsDropdownLoading = false;\r\n $scope.runSavedReport();\r\n options.success(response.data);\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n });\r\n } else {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (vm.objectSearchField === 'AltName') {\r\n vm.dropdownTemplate = '{{dataItem.AltName}} | {{dataItem.Name}} | {{dataItem.SecurityObjectTypeName}} {{dataItem.Id}}';\r\n vm.dataTextField = 'AltName';\r\n } else {\r\n vm.dropdownTemplate = '{{dataItem.Name}} | {{dataItem.AltName}} | {{dataItem.SecurityObjectTypeName}} {{dataItem.Id}}';\r\n vm.dataTextField = 'Name';\r\n }\r\n\r\n $scope.objectDropdownOptions = {\r\n template: vm.dropdownTemplate,\r\n filter: \"contains\",\r\n autoBind: false,\r\n minLength: 3,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: \"dataItem\",\r\n valueMapper: function (options) {\r\n options.success(helperService.valueMapperFunction(options, $scope.vm.objectDataSource, 'Identifier'));\r\n }\r\n },\r\n open: function () {\r\n let filters = this.dataSource._filter;\r\n if (filters) {\r\n this.dataSource.filter({});\r\n }\r\n },\r\n change: function () {\r\n $scope.populateCriteriaModel();\r\n },\r\n height: 325\r\n };\r\n\r\n function updateRoleDataSource(roleDataSource, roleSelectedIds) {\r\n vm.roleDataSource = roleDataSource;\r\n vm.roleSelectedIds = roleSelectedIds;\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n function getReportMetadata() {\r\n return reportsDataService.getReportMetadata($scope.reportId)\r\n .then(data => {\r\n\r\n vm.reportMetadata = data.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n return vm.reportMetadata;\r\n });\r\n }\r\n // ---\r\n}\r\n\r\nfunction fillAltNames(data) {\r\n return data.map(object => {\r\n if (!object.AltName) {\r\n object.AltName = object.Name;\r\n object.Name = \"\"\r\n }\r\n\r\n return object;\r\n });\r\n}\r\n","import { standardGridPageSize, customAutoCompleteFilter, customDatePickerFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, SavedReportSelectorService, BuildUserAccessPostBody, $filter, dataService, objectIdDataService, CustomReportServices, $http, $location, helperService, reportsDataService, reportsService) {\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if ($scope.grid) {\r\n $scope.gridReady = true;\r\n $scope.runSavedReport();\r\n }\r\n });\r\n\r\n var vm = $scope.vm = {};\r\n\r\n $scope.helperService = helperService;\r\n\r\n $scope.CustomReportServices = CustomReportServices;\r\n\r\n vm.selectedCompanies = [];\r\n vm.selectedProducts = [];\r\n vm.objectSearchField = $rootScope.UserPreferences.ObjectSearchField;\r\n\r\n vm.updateUserDataSource = updateUserDataSource;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n $scope.hasDetailedVersion = true;\r\n\r\n objectIdDataService.getObjectID().then(async function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource($scope.ObjectId);\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n $scope.reportId = securityObject.ReportID;\r\n\r\n await aLAPluginActive();\r\n\r\n dataService.getProducts().then(function (response) {\r\n response.data = response.data.filter(p => p.UserHasAccess === true);\r\n vm.productsDataSource = response.data;\r\n let defaultProduct = vm.productsDataSource.find(obj => obj.Name === $rootScope.UserPreferences.PreferredProduct);\r\n let defaultProductSelected = vm.productsDataSource.indexOf(defaultProduct);\r\n if ($scope.isDetailed) {\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProducts = [vm.productsDataSource[defaultProductSelected]];\r\n } else {\r\n vm.selectedProducts = [vm.productsDataSource[0]];\r\n }\r\n } else {\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProducts = [vm.productsDataSource[defaultProductSelected]];\r\n } else {\r\n vm.selectedProducts = angular.copy(vm.productsDataSource);\r\n }\r\n }\r\n\r\n vm.selectedProducts = SavedReportSelectorService.checkSavedReportForProducts($rootScope.loadedSavedReport, response.data, vm.selectedProducts);\r\n\r\n if ($scope.isDetailed) {\r\n if (vm.selectedProducts[0].IsCustom) {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, \"customProduct\").ReportID;\r\n } else {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProducts[0].Type).ReportID;\r\n }\r\n } else {\r\n $scope.reportId = securityObject.ReportID;\r\n }\r\n\r\n getObjectTypes();\r\n vm.setColumns();\r\n $scope.runSavedReport();\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n getReportMetadata().then(_ => {\r\n if ($rootScope.loadedSavedReport) {\r\n $scope.runSavedReport();\r\n }\r\n });\r\n // ---\r\n });\r\n });\r\n\r\n if ($location.path().has('Detailed')) {\r\n $scope.isDetailed = true;\r\n } else {\r\n $scope.isDetailed = false;\r\n }\r\n\r\n $scope.runSavedReport = function () {\r\n if ($scope.gridReady && $rootScope.loadedSavedReport && vm.productsDataSource && vm.companyDataSource && vm.userDataSource && vm.objectTypeDataSource && vm.objectDataSource && vm.filterCriteria.fields) {\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n // ---\r\n\r\n $scope.generateGridWithSelectedValues();\r\n } else if ($scope.gridReady && !$rootScope.loadedSavedReport && vm.productsDataSource && vm.companyDataSource && vm.userDataSource && vm.objectTypeDataSource && vm.objectDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n $scope.populateCriteriaModel();\r\n }\r\n };\r\n\r\n $scope.changeView = function () {\r\n if ($scope.isDetailed === true) {\r\n $location.path('/AccessControl/Place/UserAccess').search('');\r\n } else {\r\n $location.path('/AccessControl/Place/UserAccessDetailed').search('');\r\n }\r\n };\r\n\r\n $scope.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n $scope.mainGridOptions.autoBind = false;\r\n\r\n $scope.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n\r\n $scope.dynamicSideGridOptions = helperService.setNonPageableGridOptions([]);\r\n\r\n $scope.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n $scope.applySelectedFilter = function () {\r\n helperService.applyFilterCatchError($scope);\r\n };\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n LastRun: { type: \"date\" },\r\n LastUsed: { type: \"date\" },\r\n UseCount: { type: \"number\" },\r\n ViewCount: { type: \"number\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n\r\n read: function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n var data = BuildUserAccessPostBody.generateBody($scope.products, $scope.ObjectId, $scope.securityObjectType, vm.selectedUserIds, $scope.companies, $scope.securityObject);\r\n data['QueryInput'] = helperService.prepareSortsAndFilters(options);\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n }\r\n // ---\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: $scope.urlString,\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(function (response) {\r\n\r\n var data = response.data._embedded.reportData;\r\n\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n\r\n if ($scope.isDetailed) {\r\n let securityObject;\r\n if (vm.selectedProducts[0].IsCustom) {\r\n // the security object for custom products has null for product type so we can't send the real product type\r\n securityObject = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, \"customProduct\");\r\n } else {\r\n securityObject = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProducts[0].Type);\r\n }\r\n $scope.reportId = securityObject.ReportID;\r\n }\r\n\r\n if (data.length > 0) {\r\n $scope.dynamicSideGridDataSource = null;\r\n }\r\n\r\n }).catch(response => {\r\n const timeout = 408;\r\n\r\n if (response.status !== timeout) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n function updateUserDataSource(selectedUsers, selectedUserIds, userDataSource) {\r\n vm.selectedUserIds = selectedUserIds;\r\n vm.users = selectedUsers;\r\n vm.userDataSource = userDataSource;\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n function continuePopulateCriteriaModel() {\r\n return vm.selectedProducts && vm.selectedUserIds && vm.selectedCompanies && vm.selectedObject && vm.selectedObjectType;\r\n }\r\n\r\n $scope.populateCriteriaModel = function () {\r\n // only continue if the proper criteria are loaded\r\n if (continuePopulateCriteriaModel()) {\r\n\r\n var criteria = [];\r\n\r\n $scope.products = vm.selectedProducts;\r\n $scope.users = vm.users?.length ? vm.users : [{ \"Name\": \"All Users\", \"ID\": null }];\r\n $scope.companies = vm.selectedCompanies;\r\n $scope.securityObject = JSON.parse(JSON.stringify(vm.selectedObject));\r\n\r\n CustomReportServices.convertCriteriaValueToNull($scope.securityObject, \"Identifier\");\r\n\r\n $scope.securityObjectType = vm.selectedObjectType;\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityObjectType\", 'SecurityObjectType', $scope.securityObjectType.Name, { \"Id\": vm.selectedObjectType.Identifier }));\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityObject\", 'SecurityObject', $scope.securityObject.AltName, { \"Id\": $scope.securityObject.Identifier }));\r\n\r\n $scope.users.forEach(function (user) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"UserMasterId\", 'User', user.Name, user.ID));\r\n });\r\n\r\n $scope.products.forEach(function (row) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"ProductId\", 'Product', row.Name, row.ID));\r\n });\r\n\r\n $scope.companies.forEach(function (row) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"CompanyMasterId\", 'Company', row.Name, row.ID));\r\n });\r\n\r\n $scope.reportDetailsModel = criteria;\r\n\r\n if (vm.selectedProducts.length === 1 && $scope.isDetailed === true) {\r\n let productString = vm.selectedProducts[0].Type === 'SAP' ? 'SAP' : vm.selectedProducts[0].ID;\r\n $scope.urlString = apiUrl + 'api/arm/' + productString + '/places/useraccess';\r\n } else {\r\n $scope.urlString = apiUrl + 'api/arm/places/useraccess';\r\n }\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n };\r\n\r\n $scope.generateGridWithSelectedValues = function () {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.dataSource._filter = null;\r\n $scope.grid.dataSource._sort = null;\r\n }\r\n\r\n $scope.populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, $scope.grid, true);\r\n }\r\n\r\n };\r\n\r\n function getCompanies() {\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/universal/companymaster'\r\n }).then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.allCompaniesDropdownObject = { \"Name\": \"All Companies\", \"ID\": \"AllObjectsInMultiSelect\" };\r\n response.data = response.data.filter(c => c.UserHasAccess === true);\r\n response.data.unshift(vm.allCompaniesDropdownObject);\r\n vm.companyDataSource = response.data;\r\n let defaultCompany = response.data.find(obj => obj.Name === $rootScope.UserPreferences.PreferredCompany);\r\n let defaultCompanySelected = vm.companyDataSource.indexOf(defaultCompany);\r\n if ($rootScope.UserPreferences.PreferredCompany !== null) {\r\n vm.selectedCompanies = [vm.companyDataSource[defaultCompanySelected]];\r\n } else {\r\n vm.selectedCompanies = [vm.allCompaniesDropdownObject];\r\n }\r\n vm.selectedCompanies = SavedReportSelectorService.checkSavedReportForCompanies($rootScope.loadedSavedReport, response.data, vm.selectedCompanies);\r\n $scope.companyDropdownChange();\r\n $scope.runSavedReport();\r\n });\r\n }\r\n getCompanies();\r\n\r\n function getObjectTypes() {\r\n if (vm.selectedProducts) {\r\n vm.objectTypesDropdownLoading = true;\r\n var products = vm.selectedProducts.map(function (el) {\r\n return el.Type;\r\n });\r\n\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/universal/securityobjecttypes/producttype',\r\n params: { 'productType': products }\r\n }).then(function (response) {\r\n vm.objectTypesDropdownLoading = false;\r\n vm.allObjectTypesDropdownObject = { \"Name\": \"All Object Types\", \"ID\": null };\r\n\r\n response.data.unshift(vm.allObjectTypesDropdownObject);\r\n\r\n vm.objectTypeDataSource = response.data;\r\n vm.objectTypeDataSource = $filter('orderBy')(response.data, 'Name');\r\n vm.selectedObjectType = response.data[0];\r\n vm.selectedObjectType = SavedReportSelectorService.checkSavedReportForObjectTypes($rootScope.loadedSavedReport, response.data, vm.selectedObjectType);\r\n $scope.objectTypeDropdownChange();\r\n $scope.runSavedReport();\r\n });\r\n }\r\n }\r\n\r\n $scope.companyDropdownChange = function (companies) {\r\n if (companies) {\r\n vm.selectedCompanies = helperService.deselectAllObjectsIfOtherIsClicked(companies, vm.allCompaniesDropdownObject);\r\n } else {\r\n vm.selectedCompanies = helperService.deselectAllObjectsIfOtherIsClicked(vm.selectedCompanies, vm.allCompaniesDropdownObject);\r\n }\r\n $scope.populateCriteriaModel();\r\n };\r\n\r\n $scope.objectTypeDropdownChange = function () {\r\n $scope.kendoObjectDropdownDataSource._data = [];\r\n $scope.kendoObjectDropdownDataSource.read();\r\n $scope.populateCriteriaModel();\r\n };\r\n\r\n $scope.kendoObjectDropdownDataSource = new kendo.data.DataSource({\r\n schema: {\r\n data: \"_embedded.reportData\",\r\n total: \"TotalItems\"\r\n },\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: function (options) {\r\n\r\n if (vm.selectedObjectType && vm.selectedObjectType.Identifier !== '') {\r\n vm.objectsDropdownLoading = true;\r\n\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n if (vm.objectSearchField === 'AltName') {\r\n data.Filters[0].FieldName = \"SecurityObjectAltName\";\r\n } else {\r\n data.Filters[0].FieldName = \"SecurityObjectName\";\r\n }\r\n }\r\n\r\n var urlString = null;\r\n var params = null;\r\n params = {\r\n \"productType\": vm.selectedProducts.map(function (el) { return el.Type; }),\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page\r\n };\r\n if (vm.selectedObjectType.Identifier) {\r\n urlString = apiUrl + 'api/universal/securityobjects/producttype/' + vm.selectedObjectType.ProductType + '/type/' + vm.selectedObjectType.ID;\r\n } else {\r\n urlString = apiUrl + 'api/universal/securityobjects';\r\n }\r\n $http({\r\n method: 'POST',\r\n url: urlString,\r\n params: params,\r\n data: data\r\n }).then(function (response) {\r\n let data = response.data._embedded.reportData;\r\n\r\n if (vm.objectSearchField === 'AltName') {\r\n data = fillAltNames(data);\r\n }\r\n\r\n if ($scope.kendoObjectDropdownDataSource._data.length === 0) {\r\n // objects are being loaded for the first time\r\n addAllObjectsOption();\r\n\r\n if ($rootScope.loadedSavedReport) {\r\n SavedReportSelectorService.getSavedReportSelectedObject($rootScope.loadedSavedReport).then(response => {\r\n if (response) {\r\n data.unshift(response);\r\n }\r\n success(data);\r\n });\r\n } else {\r\n success(data);\r\n }\r\n } else if (options.data.page === 1) {\r\n if (!options.data.filter || options.data.filter.filters.length === 0 || options.data.filter.filters[0].value === \"\") {\r\n addAllObjectsOption();\r\n }\r\n if (vm.selectedObject.Identifier !== \"-1\" && !data.some(object => object.Identifier === vm.selectedObject.Identifier)) {\r\n // selected object is not in the dataset we need to add it and make sure it stays selected\r\n data.unshift(vm.selectedObject);\r\n vm.selectedObject = data[0];\r\n }\r\n options.success(response.data);\r\n } else {\r\n options.success(response.data);\r\n }\r\n\r\n function addAllObjectsOption() {\r\n let AllObjects = {};\r\n if (vm.objectSearchField === 'AltName') {\r\n AllObjects = { \"AltName\": \"All Objects\", \"Id\": null, \"Identifier\": \"-1\" };\r\n } else {\r\n AllObjects = { \"Name\": \"All Objects\", \"Id\": null, \"Identifier\": \"-1\" };\r\n }\r\n data.unshift(AllObjects);\r\n }\r\n\r\n function success(data) {\r\n vm.objectDataSource = data;\r\n vm.selectedObject = data[0];\r\n vm.objectsDropdownLoading = false;\r\n $scope.runSavedReport();\r\n options.success(response.data);\r\n }\r\n\r\n });\r\n } else {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (vm.objectSearchField === 'AltName') {\r\n vm.dropdownTemplate = '{{dataItem.AltName}} | {{dataItem.Name}} | {{dataItem.SecurityObjectTypeName}} {{dataItem.Id}}';\r\n vm.dataTextField = 'AltName';\r\n } else {\r\n vm.dropdownTemplate = '{{dataItem.Name}} | {{dataItem.AltName}} | {{dataItem.SecurityObjectTypeName}} {{dataItem.Id}}';\r\n vm.dataTextField = 'Name';\r\n }\r\n\r\n $scope.objectDropdownOptions = {\r\n template: vm.dropdownTemplate,\r\n filter: \"contains\",\r\n autoBind: false,\r\n minLength: 3,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: \"dataItem\",\r\n valueMapper: function (options) {\r\n options.success(helperService.valueMapperFunction(options, $scope.vm.objectDataSource, 'Identifier'));\r\n }\r\n },\r\n open: function () {\r\n let filters = this.dataSource._filter;\r\n if (filters) {\r\n this.dataSource.filter({});\r\n }\r\n },\r\n height: 325\r\n };\r\n\r\n vm.setColumns = function () {\r\n if (vm.selectedProducts) {\r\n\r\n if (vm.selectedProducts.length === 1 && $scope.isDetailed === true) {\r\n if (vm.selectedProducts[0].Type === 'OR') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserMenuName\", title: \"User Menu Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"MenuName\", title: \"Menu Name\", width: 200, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"UserSubMenuName\", title: \"User Sub Menu Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SubMenuName\", title: \"Sub Menu Name\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectAltName\", title: \"User Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Operating Unit\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyId\", title: \"Company Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Prompt\", title: \"Prompt\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Path\", title: \"Path\", width: 180, filterable: customAutoCompleteFilter }\r\n\r\n ];\r\n\r\n if (!helperService.convertConfigValueToTrueFalse('OR_RBACEnabled')) {\r\n $scope.mainGridColumns.splice(3, 0, { field: \"Role\", title: \"Role\", width: 180, filterable: customAutoCompleteFilter }, { field: \"RoleCode\", title: \"Role Code\", width: 180, filterable: customAutoCompleteFilter }, { field: \"RoleType\", title: \"Role Type\", width: 180, filterable: customAutoCompleteFilter });\r\n } else {\r\n $scope.mainGridColumns.splice(3, 0, { field: \"Responsibility\", title: \"Responsibility\", width: 180, filterable: customAutoCompleteFilter }, { field: \"ResponsibilityID\", title: \"Responsibility ID\", width: 180, filterable: customAutoCompleteFilter }, { field: \"ResponsibilityKey\", title: \"Responsibility Key\", width: 180, filterable: customAutoCompleteFilter });\r\n }\r\n\r\n } else if (vm.selectedProducts[0].Type === 'INT') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"ApplicationName\", title: \"Application Name\", width: 180, filterable: customAutoCompleteFilter, hidden: !helperService.convertConfigValueToTrueFalse(\"INT_RoleBasedSecurity\") },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter, hidden: helperService.convertConfigValueToTrueFalse(\"INT_RoleBasedSecurity\") },\r\n { field: \"Module\", title: \"Module\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AdministrationLevel\", title: \"Administration Level \", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ActiveStatus\", title: \"Active Status \", width: 130, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n } else if (vm.selectedProducts[0].Type === 'NS') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserType\", title: \"User Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Subsidiary\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'NAV') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"FullName\", title: \"Full Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role ID\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'D365Bc') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role ID\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'Zuo' || vm.selectedProducts[0].IsCustom) {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role ID\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'CPA') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role ID\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n } else if (vm.selectedProducts[0].Type === 'AX7') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoleSystemName\", title: \"Role System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubRoleName\", title: \"Sub Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SubRoleSystemName\", title: \"Sub Role System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DutyName\", title: \"Duty Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"DutySystemName\", title: \"Duty System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"PrivilegeName\", title: \"Privilege Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegeSystemName\", title: \"Privilege System Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"LicenseType\", title: \"License Type\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n if (vm.aLAPluginActive) {\r\n const lastUsedCol = { field: \"LastUsed\", title: \"Last Used\", template: \"{{ dataItem.LastUsed | date:'short'}}\", width: 200, filterable: customDatePickerFilter },\r\n viewCountCol = { field: \"ViewCount\", title: \"View Count\", width: 130, filterable: customAutoCompleteFilter };\r\n\r\n $scope.mainGridColumns.push(lastUsedCol);\r\n $scope.mainGridColumns.push(viewCountCol);\r\n }\r\n } else if (vm.selectedProducts[0].Type === 'AX') {\r\n $scope.mainGridColumns = [\r\n { field: \"NetworkAlias\", title: \"Network Alias\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RolePhysicalName\", title: \"Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubRoleName\", title: \"Sub Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SubRolePhysicalName\", title: \"Sub Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"DutyName\", title: \"Duty Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"DutyPhysicalName\", title: \"Duty Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"PrivilegeName\", title: \"Privilege Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegePhysicalName\", title: \"Privilege Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"EntryPointName\", title: \"Entry Point Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"EntryPointPhysicalName\", title: \"Entry Point Physical Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"EntryPointTypeName\", title: \"Entry Point Type\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"EntryPointAccessName\", title: \"Entry Point Access\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectHelpText\", title: \"Security Object Help Text\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'SAP') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserGroup\", title: \"User Group\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserType\", title: \"User Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Name\", title: \"Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Authorization\", title: \"Authorization\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalLow\", title: \"Technical Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Low\", title: \"Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalHigh\", title: \"Technical High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"High\", title: \"High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UseCount\", title: \"Use Count\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"LastRun\", title: \"Last Run Date\", template: \"{{ dataItem.LastRun | date:'short'}}\", width: 200, filterable: customDatePickerFilter },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Department\", title: \"Department\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Location\", title: \"Location\", width: 200, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'SAPB1') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AuthorizationSource\", title: \"Authorization Source\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'SF') {\r\n $scope.mainGridColumns = [\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserFullName\", title: \"User Full Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Module\", title: \"Module\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedByType\", title: \"Access by Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AssignedByName\", title: \"Access By\", width: 130, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'GP') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"TaskName\", title: \"Task\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Series\", title: \"Series\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Alt Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter, hidden: true }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'AC') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'PS') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"RoleName\", title: \"Role\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"PermissionListId\", title: \"Permission List\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"MenuName\", title: \"Menu\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"BarName\", title: \"Bar Name\", width: 100, filterable: customAutoCompleteFilter },\r\n { field: \"ComponentName\", title: \"Component\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MarketName\", title: \"Market\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'JDE') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Application\", title: \"Application\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Version\", title: \"Version\", width: 110, filterable: customAutoCompleteFilter },\r\n { field: \"AccessSource\", title: \"Access Source\", width: 110, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'ORFC') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RolePhysicalName\", title: \"Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubRoleName\", title: \"Sub Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SubRolePhysicalName\", title: \"Sub Role Physical Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Business Unit\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RolePath\", title: \"Role Path\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'AX5') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"GroupId\", title: \"AX Group\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"DomainId\", title: \"AX Domain\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'SL') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"AccessSource\", title: \"Access Source\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n else if (vm.selectedProducts[0].Type === 'D365S') {\r\n $scope.mainGridColumns = [\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"TeamName\", title: \"Team Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"PrivilegeName\", title: \"Privilege\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 130, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n else if (vm.selectedProducts[0].Type === 'AD') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserId\", title: \"User Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SubGroupName\", title: \"Sub-Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Path\", title: \"Path\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n else if (vm.selectedProducts[0].Type === 'AAD') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserId\", title: \"User Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SubGroupName\", title: \"Sub-Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Path\", title: \"Path\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n\r\n else if (vm.selectedProducts[0].Type === 'WD') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityGroup\", title: \"Security Group\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessType\", title: \"Business Process Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcessDefinition\", title: \"Business Process Definition\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"StepOrder\", title: \"Step Order\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RoutingRestrictions\", title: \"Routing Restrictions\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Condition\", title: \"Condition\", width: 180, filterable: customAutoCompleteFilter }\r\n\r\n ];\r\n } else if (vm.selectedProducts[0].Type === 'OREPM') {\r\n $scope.mainGridColumns = [\r\n { field: \"UserID\", title: \"User Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Enabled\", title: \"User Enabled\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Service\", title: \"Service\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GrantedThroughGroup\", title: \"Granted Through Group\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n } else {\r\n $scope.mainGridColumns = [\r\n { field: \"ProductName\", title: \"Product\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserID\", title: \"User ID\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserDescription\", title: \"User Description\", width: 160, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 130, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyID\", title: \"Company ID\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.mainGridOptions.sortable = false;\r\n\r\n $scope.mainGridOptions.filterable = false;\r\n }\r\n\r\n vm.setLayout();\r\n }\r\n };\r\n\r\n async function aLAPluginActive() {\r\n let response = await $http.get(`${apiUrl}/api/core/plugins`);\r\n vm.aLAPluginActive = response.data.some(plugin => plugin.Id === 9 && plugin.Active);\r\n }\r\n\r\n vm.setLayout = function () {\r\n\r\n var productId;\r\n if ($scope.isDetailed === true && vm.selectedProducts.length === 1) {\r\n productId = vm.selectedProducts[0].ID;\r\n }\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout($scope, productId);\r\n }\r\n\r\n };\r\n\r\n $scope.productDropdownChange = function () {\r\n if ($scope.isDetailed) {\r\n if (vm.selectedProducts && vm.selectedProducts.length > 1) {\r\n vm.selectedProducts.remove(vm.selectedProducts[0]);\r\n }\r\n if (vm.selectedProducts[0].IsCustom) {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, \"customProduct\").ReportID;\r\n } else {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProducts[0].Type).ReportID;\r\n }\r\n getReportMetadata();\r\n }\r\n getObjectTypes();\r\n vm.setColumns();\r\n $scope.populateCriteriaModel();\r\n };\r\n\r\n $scope.changeRowSelected = function (kendoEvent) {\r\n $scope.sideGridIsNew = false;\r\n\r\n $scope.dynamicSideGridOptions = helperService.setNonPageableGridOptions([]);\r\n $scope.sideGridIsNew = true;\r\n $scope.sideGridLoading = true;\r\n $scope.dynamicSideGridDataSource = [];\r\n var grid = kendoEvent.sender;\r\n CustomReportServices.getATChangeCountForRow($scope, grid);\r\n CustomReportServices.getAccessDetailsForRow($scope, grid).then(response => {\r\n if (response.data.length > 0) {\r\n $scope.dynamicSideGridColumns = Object.keys(response.data[0]).map(f => {\r\n var column = {};\r\n column.field = f;\r\n column.title = helperService.headerStringTransformer(f);\r\n if (f === 'LastUsed') {\r\n column.template = \"{{ dataItem.LastUsed | date:'short'}}\";\r\n }\r\n return column;\r\n });\r\n $scope.dynamicSideGridDataSource = new kendo.data.DataSource({\r\n data: response.data\r\n });\r\n }\r\n });\r\n $scope.sideGridLoading = false;\r\n\r\n };\r\n\r\n $scope.deleteFilter = function (id) {\r\n CustomReportServices.deleteFilterFilterManager($scope, id);\r\n };\r\n\r\n $scope.splitHeaderText = function () {\r\n helperService.splitHeaderText(angular);\r\n };\r\n\r\n $scope.clearAllFilters = function () {\r\n $scope.gridDataSource.filter({\r\n });\r\n };\r\n\r\n $scope.saveReportLayoutButton = function () {\r\n var productId;\r\n if ($scope.isDetailed === true && vm.selectedProducts.length === 1) {\r\n productId = vm.selectedProducts[0].ID;\r\n }\r\n CustomReportServices.saveGridLayout($scope, productId);\r\n };\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n function getReportMetadata() {\r\n return reportsDataService.getReportMetadata($scope.reportId)\r\n .then(data => {\r\n\r\n vm.reportMetadata = data.data._embedded.reportData;\r\n if (vm.selectedProducts.some(product => product.Type === 'OR')) {\r\n if (helperService.convertConfigValueToTrueFalse('OR_RBACEnabled')) {\r\n vm.reportMetadata.Columns = vm.reportMetadata.Columns.filter(column => column.FieldName !== \"Role\" && column.FieldName !== \"RoleCode\" && column.FieldName !== \"RoleType\");\r\n } else {\r\n vm.reportMetadata.Columns = vm.reportMetadata.Columns.filter(column => column.FieldName !== \"Responsibility\" && column.FieldName !== \"ResponsibilityID\" && column.FieldName !== \"ResponsibilityKey\");\r\n }\r\n }\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n return vm.reportMetadata;\r\n });\r\n }\r\n // ---\r\n}\r\n\r\nfunction fillAltNames(data) {\r\n return data.map(object => {\r\n if (!object.AltName) {\r\n object.AltName = object.Name;\r\n object.Name = \"\"\r\n }\r\n\r\n return object;\r\n });\r\n}","import { standardGridPageSize, customAutoCompleteFilter, customBooleanFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $filter, SavedReportSelectorService, BuildResponsibilityAccessPostBody, objectIdDataService, CustomReportServices, $http, $location, helperService, reportsDataService, reportsService) {\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if ($scope.grid) {\r\n $scope.gridReady = true;\r\n $scope.runSavedReport();\r\n }\r\n });\r\n\r\n $scope.helperService = helperService;\r\n\r\n var vm = $scope.vm = {};\r\n vm.allRolesOption = true;\r\n vm.selectedResponsibilities = [];\r\n vm.updateRoleDataSource = updateRoleDataSource;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n $scope.hasDetailedVersion = true;\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource($scope.ObjectId);\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n $scope.reportId = securityObject.ReportID;\r\n\r\n vm.selectedProduct = {};\r\n vm.selectedProduct.ID = $scope.pageInfo.ProductType;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n getReportMetadata().then(_ => {\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n if ($rootScope.loadedSavedReport) {\r\n $scope.runSavedReport();\r\n }\r\n });\r\n // ---\r\n });\r\n if ($location.path().has('Detailed')) {\r\n $scope.isDetailed = true;\r\n } else {\r\n $scope.isDetailed = false;\r\n }\r\n\r\n $scope.runSavedReport = function () {\r\n if ($scope.gridReady && $rootScope.loadedSavedReport && $scope.vm.responsibilityDataSource && vm.objectTypeDataSource && $scope.vm.objectDataSource && vm.filterCriteria.fields) {\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n // ---\r\n $scope.generateGridWithSelectedValues();\r\n } else if ($scope.gridReady && !$rootScope.loadedSavedReport && $scope.vm.responsibilityDataSource && vm.objectTypeDataSource && $scope.vm.objectDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n $scope.populateCriteriaModel();\r\n }\r\n };\r\n\r\n $scope.changeView = function () {\r\n if ($scope.isDetailed === true) {\r\n $location.path('/AccessControl/Place/ResponsibilityAccess').search('');\r\n } else {\r\n $location.path('/AccessControl/Place/ResponsibilityAccessDetailed').search('');\r\n }\r\n };\r\n\r\n\r\n $scope.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n $scope.mainGridOptions.autoBind = false;\r\n\r\n\r\n $scope.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n\r\n $scope.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n vm.objectTypesDropdownLoading = true;\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/universal/securityobjecttypes/producttype/',\r\n params: { productType: 'OR' }\r\n }).then(function (response) {\r\n vm.objectTypesDropdownLoading = false;\r\n\r\n vm.objectTypeDataSource = response.data;\r\n vm.objectTypeDataSource = $filter('orderBy')(response.data, 'Name');\r\n vm.selectedObjectType = SavedReportSelectorService.checkSavedReportForObjectTypes($rootScope.loadedSavedReport, response.data, vm.selectedObjectType);\r\n $scope.objectTypeDropdownChange();\r\n $scope.runSavedReport();\r\n });\r\n\r\n $scope.objectTypeDropdownChange = function () {\r\n $scope.kendoObjectDropdownDataSource._data = [];\r\n $scope.kendoObjectDropdownDataSource.read();\r\n };\r\n\r\n $scope.kendoObjectDropdownDataSource = new kendo.data.DataSource({\r\n schema: halSchemaKendoGrid,\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: function (options) {\r\n\r\n if (vm.selectedObjectType && vm.selectedObjectType.Identifier !== '') {\r\n vm.objectsDropdownLoading = true;\r\n\r\n let data = helperService.prepareSortsAndFilters(options);\r\n if (data.Filters.length > 0) {\r\n if ($rootScope.UserPreferences.ObjectSearchField === 'AltName') {\r\n data.Filters[0].FieldName = \"SecurityObjectAltName\";\r\n } else {\r\n data.Filters[0].FieldName = \"SecurityObjectName\";\r\n }\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/universal/securityobjects/producttype/OR/type/' + vm.selectedObjectType.ID,\r\n data: data,\r\n params: { \"pagesize\": options.data.pageSize, \"page\": options.data.page }\r\n }).then(function (response) {\r\n let data = response.data._embedded.reportData;\r\n\r\n if ($scope.kendoObjectDropdownDataSource._data.length === 0) {\r\n // objects are being loaded for the first time\r\n addAllObjectsOption();\r\n\r\n if ($rootScope.loadedSavedReport) {\r\n SavedReportSelectorService.getSavedReportSelectedObject($rootScope.loadedSavedReport).then(response => {\r\n if (response) {\r\n data.unshift(response);\r\n }\r\n success(data);\r\n });\r\n } else {\r\n success(data);\r\n }\r\n } else if (options.data.page === 1) {\r\n if (!options.data.filter || options.data.filter.filters.length === 0 || options.data.filter.filters[0].value === \"\") {\r\n addAllObjectsOption();\r\n }\r\n if (vm.selectedObject.Identifier !== \"-1\" && !data.some(object => object.Identifier === vm.selectedObject.Identifier)) {\r\n // selected object is not in the dataset we need to add it and make sure it stays selected\r\n data.unshift(vm.selectedObject);\r\n vm.selectedObject = data[0];\r\n }\r\n options.success(response.data);\r\n } else {\r\n options.success(response.data);\r\n }\r\n\r\n function addAllObjectsOption() {\r\n let AllObjects = {};\r\n if ($rootScope.UserPreferences.ObjectSearchField === 'AltName') {\r\n AllObjects = { \"AltName\": \"All Objects\", \"Id\": null, \"Identifier\": \"-1\" };\r\n } else {\r\n AllObjects = { \"Name\": \"All Objects\", \"Id\": null, \"Identifier\": \"-1\" };\r\n }\r\n data.unshift(AllObjects);\r\n }\r\n\r\n function success(data) {\r\n vm.objectDataSource = data;\r\n vm.selectedObject = data[0];\r\n vm.objectsDropdownLoading = false;\r\n $scope.runSavedReport();\r\n options.success(response.data);\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n });\r\n } else {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n if ($rootScope.UserPreferences.ObjectSearchField === 'AltName') {\r\n vm.dropdownTemplate = '{{dataItem.AltName}} | {{dataItem.Name}} | {{dataItem.SecurityObjectTypeName}} {{dataItem.ProductId}}';\r\n vm.dataTextField = 'AltName';\r\n } else {\r\n vm.dropdownTemplate = '{{dataItem.Name}} | {{dataItem.AltName}} | {{dataItem.SecurityObjectTypeName}} {{dataItem.ProductId}}';\r\n vm.dataTextField = 'Name';\r\n }\r\n\r\n $scope.objectDropdownOptions = {\r\n template: vm.dropdownTemplate,\r\n filter: \"contains\",\r\n autoBind: false,\r\n minLength: 3,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: \"dataItem\",\r\n valueMapper: function (options) {\r\n options.success(helperService.valueMapperFunction(options, vm.objectDataSource, 'Identifier'));\r\n }\r\n },\r\n open: function () {\r\n let filters = this.dataSource._filter;\r\n if (filters) {\r\n this.dataSource.filter({});\r\n }\r\n },\r\n change: function () {\r\n $scope.populateCriteriaModel();\r\n },\r\n height: 325\r\n };\r\n\r\n $scope.applySelectedFilter = function () {\r\n helperService.applyFilterCatchError($scope);\r\n };\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n IsAssigned: { type: \"boolean\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n var data = BuildResponsibilityAccessPostBody.generateBody($scope.ObjectId, vm.selectedResponsibilities, vm.selectedObjectType, vm.selectedObject);\r\n data['QueryInput'] = helperService.prepareSortsAndFilters(options);\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: $scope.urlString,\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(function (response) {\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n\r\n }).catch(response => {\r\n const timeout = 408;\r\n\r\n if (response.status !== timeout) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n });\r\n }\r\n }\r\n\r\n });\r\n\r\n $scope.populateCriteriaModel = function () {\r\n // do not continue if the proper criteria are not loaded\r\n if (!$scope.vm.selectedObject || !$scope.vm.selectedObjectType || $scope.vm.selectedResponsibilities === undefined) {\r\n return;\r\n }\r\n var criteria = [];\r\n\r\n $scope.responsibilities = [];\r\n $scope.securityObject = JSON.parse(JSON.stringify($scope.vm.selectedObject));\r\n $scope.securityObjectType = $scope.vm.selectedObjectType;\r\n\r\n CustomReportServices.convertCriteriaValueToNull($scope.securityObject, \"Identifier\");\r\n\r\n $scope.vm.selectedResponsibilities.forEach(resp => {\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityRoleIdentifier\", 'Role', resp.Name, resp.Identifier));\r\n $scope.responsibilities.push(resp.ID);\r\n });\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityObjectType\", 'SecurityObjectType', $scope.securityObjectType.Name, { \"Id\": vm.selectedObjectType.Identifier }));\r\n criteria.push(CustomReportServices.CreateCriteria(\"SecurityObject\", 'SecurityObject', $scope.securityObject.AltName, { \"Id\": $scope.securityObject.Identifier }));\r\n\r\n $scope.reportDetailsModel = criteria;\r\n\r\n if ($scope.vm.selectedObject.Id === \"\") {\r\n $scope.securityObject = {};\r\n }\r\n\r\n if ($scope.isDetailed === true) {\r\n $scope.urlString = apiUrl + 'api/arm/or/places/responsibilityaccess/detailed';\r\n } else if ($scope.isDetailed === false) {\r\n $scope.urlString = apiUrl + 'api/arm/or/places/responsibilityaccess';\r\n }\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n };\r\n\r\n $scope.generateGridWithSelectedValues = function () {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.dataSource._filter = null;\r\n $scope.grid.dataSource._sort = null;\r\n }\r\n\r\n $scope.populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, $scope.grid, true);\r\n };\r\n\r\n if ($scope.isDetailed === false) {\r\n $scope.mainGridColumns = [\r\n { field: \"ResponsibilityName\", title: \"Responsibility\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"ResponsibilityID\", title: \"Responsibility ID\", width: 190, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"ResponsibilityKey\", title: \"Responsibility Key\", width: 190, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectAltName\", title: \"User Object Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Object Description\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n\r\n } else if ($scope.isDetailed === true) {\r\n $scope.mainGridColumns = [\r\n { field: \"ResponsibilityName\", title: \"Responsibility\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"ResponsibilityID\", title: \"Responsibility ID\", width: 190, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"ResponsibilityKey\", title: \"Responsibility Key\", width: 190, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"UserMenuName\", title: \"User Menu Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"MenuName\", title: \"Menu Name\", width: 180, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"UserSubMenuName\", title: \"User Sub Menu Name\", width: 200, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SubMenuName\", title: \"Sub Menu Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"User Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Object Description\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Prompt\", title: \"Prompt\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"Path\", title: \"Path\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 120, filterable: customBooleanFilter }\r\n ];\r\n }\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.mainGridOptions.sortable = false;\r\n\r\n $scope.mainGridOptions.filterable = false;\r\n }\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout($scope, null);\r\n }\r\n\r\n\r\n $scope.deleteFilter = function (id) {\r\n CustomReportServices.deleteFilterFilterManager($scope, id);\r\n };\r\n\r\n $scope.clearAllFilters = function () {\r\n $scope.gridDataSource.filter({});\r\n };\r\n\r\n $scope.saveReportLayoutButton = function () {\r\n CustomReportServices.saveGridLayout($scope, null);\r\n };\r\n\r\n function updateRoleDataSource(roleDataSource, roleSelectedIds) {\r\n $scope.vm.responsibilityDataSource = roleDataSource;\r\n vm.responsibilities = roleSelectedIds;\r\n $scope.populateCriteriaModel();\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n function getReportMetadata() {\r\n return reportsDataService.getReportMetadata($scope.reportId)\r\n .then(data => {\r\n\r\n vm.reportMetadata = data.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n\r\n return vm.reportMetadata;\r\n });\r\n }\r\n // ---\r\n}\r\n","import angular from 'angular';\r\nimport roleBusinessProcessController from '../Components/roleBusinessProcess/roleBusinessProcess.controller';\r\nimport roleRisksController from '../Components/roleRisks/roleRisks.controller';\r\nimport userBusinessProcessController from '../Components/userBusinessProcess/userBusinessProcess.controller';\r\nimport userRiskController from '../Components/userRisk/userRisk.controller';\r\nimport accessRiskMonitorNetSuiteModule from './armNetSuite.module';\r\nimport accessRiskMonitorFactoriesModule from './accessRiskMonitor.factories.module';\r\nimport D365ArmQuantificationController from '../Components/D365ArmQuantification/D365ArmQuantification.controller';\r\nimport responsibilityRiskController from '../Components/responsibilityRisk/responsibilityRisk.controller';\r\nimport accessRiskMonitorSAPModule from './armSAP.module';\r\nimport accessRiskMonitorSetupModule from './accessRiskMonitor.setup.module';\r\nimport roleAccessController from '../Components/roleAccess/roleAccess.controller';\r\nimport userAccessController from '../Components/userAccess/userAccess.controller';\r\nimport responsibilityAccessController from '../Components/responsibilityAccess/responsibilityAccess.controller';\r\n\r\nexport default angular\r\n .module('app.accessRiskMonitor', [accessRiskMonitorFactoriesModule, accessRiskMonitorNetSuiteModule, accessRiskMonitorSAPModule, accessRiskMonitorSetupModule])\r\n .controller(\"roleBusinessProcessController\", roleBusinessProcessController)\r\n .controller(\"roleRisksController\", roleRisksController)\r\n .controller(\"userBusinessProcessController\", userBusinessProcessController)\r\n .controller(\"userRiskController\", userRiskController)\r\n .controller(\"D365ArmQuantificationController\", D365ArmQuantificationController)\r\n .controller(\"responsibilityRiskController\", responsibilityRiskController)\r\n .controller(\"roleAccessController\", roleAccessController)\r\n .controller(\"userAccessController\", userAccessController)\r\n .controller(\"responsibilityAccessController\", responsibilityAccessController)\r\n .name;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, $timeout, $location, authenticationService, dataService, helperService, myReviewsDataService, delegationItems, reviewHeaderId, reviewType) {\r\n\r\n const vm = this;\r\n vm.userDropdownLoading = false;\r\n vm.helperService = helperService;\r\n vm.cancel = cancel;\r\n vm.reviewDelegation = reviewDelegation;\r\n vm.delegationItems = delegationItems.map(item => { return { ...item } });\r\n vm.selectAllChanged = selectAllChanged;\r\n vm.itemSelectionChanged = itemSelectionChanged;\r\n vm.checkAllSelection = checkAllSelection;\r\n vm.filterItems = filterItems;\r\n vm.itemsFilter = null;\r\n\r\n vm.selectedDelegationItems = [];\r\n\r\n activate();\r\n\r\n function activate() {\r\n getUsers();\r\n vm.delegationItems = $filter('orderBy')(vm.delegationItems, 'UserName');\r\n }\r\n\r\n async function getUsers() {\r\n vm.userDropdownLoading = true;\r\n const currentUser = await authenticationService.getUser();\r\n let response = await dataService.getUsers();\r\n if (!$location.path().includes('AllReviews')) {\r\n // we only want to filter out the current user if not coming from All Reviews\r\n response.data = response.data.filter(user => user.UserID !== currentUser.userId && user.UserID);\r\n }\r\n response.data = $filter('orderBy')(response.data, 'UserLogonName');\r\n response.data = response.data.filter(user => user.Active && user.RestrictDelegateAccessAC === false);\r\n vm.usersDataSource = response.data;\r\n vm.userDropdownLoading = false;\r\n }\r\n\r\n async function reviewDelegation() {\r\n let data = {\r\n ReviewHeaderId: reviewHeaderId,\r\n ReviewItemIds: vm.selectedDelegationItems.map(item => item.ItemId),\r\n DelegatedUserId: vm.DelegatedUserId,\r\n Notes: vm.delegationNotes\r\n };\r\n\r\n try {\r\n vm.delegationPending = new createSpinner();\r\n await myReviewsDataService.delegateReviewItems(reviewHeaderId, reviewType, data);\r\n await helperService.successfulSaveButton(vm.delegationPending);\r\n $uibModalInstance.close();\r\n } catch (err) {\r\n vm.delegationPending.loadingValue = false;\r\n }\r\n }\r\n\r\n function selectAllChanged() {\r\n if (vm.allSelected) {\r\n vm.filteredDelegationItems.forEach(item => item.selected = true);\r\n vm.selectedDelegationItems = [ ...vm.selectedDelegationItems, ...vm.filteredDelegationItems ];\r\n } else {\r\n // deselect the items currently being viewed\r\n vm.delegationItems.forEach(item => {\r\n if (vm.filteredDelegationItems.some(filteredItem => filteredItem.ItemId === item.ItemId)) {\r\n item.selected = false\r\n }\r\n });\r\n // update our selected array to only included currently selected items\r\n vm.selectedDelegationItems = vm.delegationItems.filter(item => item.selected);\r\n }\r\n\r\n // remove duplicate items\r\n vm.selectedDelegationItems = vm.selectedDelegationItems.filter((item, index, items) => {\r\n return index === items.findIndex(itemToFind => itemToFind.ItemId === item.ItemId)\r\n });\r\n\r\n checkAllSelection();\r\n }\r\n\r\n function itemSelectionChanged(item) {\r\n if (item.selected) {\r\n vm.selectedDelegationItems.push(item);\r\n } else {\r\n const itemIndex = vm.selectedDelegationItems.findIndex(selectedItem => selectedItem.ItemId === item.ItemId);\r\n vm.selectedDelegationItems.splice(itemIndex, 1);\r\n }\r\n checkAllSelection();\r\n }\r\n\r\n function checkAllSelection() {\r\n $timeout(_ => {\r\n vm.allSelected = vm.filteredDelegationItems.every(item => item.selected);\r\n }, 1);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function filterItems(item) {\r\n const keysToSearch = ['UserName', 'RiskName', 'RiskTypeName', 'RulesetName', 'BusinessProcessName', 'CompanyName', 'ProductName', 'SecurityRoleName', 'SecurityRoleTypeName', 'SecurityObjectAltName', 'SecurityObjectTypeName'];\r\n let foundItem = false;\r\n\r\n if (vm.itemsFilter && vm.itemsFilter !== \"\") {\r\n keysToSearch.forEach((keyField) => {\r\n if (item[keyField] && item[keyField].toLowerCase().includes(vm.itemsFilter.toLowerCase())) {\r\n foundItem = true;\r\n }\r\n });\r\n } else {\r\n foundItem = true;\r\n } \r\n\r\n return foundItem;\r\n };\r\n\r\n}","export default /*@ngInject*/ function (review, $uibModalInstance) {\r\n const vm = this;\r\n\r\n vm.dismiss = dismiss;\r\n\r\n vm.linkedTickets = review.Tickets;\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n \r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, controlLibraryDataService, review, helperService, FileSaver) {\r\n\r\n const vm = this;\r\n\r\n vm.removeFile = removeFile;\r\n vm.downloadFile = downloadFile;\r\n vm.uploadFiles = uploadFiles;\r\n vm.review = review;\r\n vm.cancel = cancel;\r\n\r\n vm.existingFilesDataSource = [];\r\n vm.review.Attachments.forEach(attachment => vm.existingFilesDataSource.push(attachment));\r\n\r\n\r\n async function removeFile(file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n await controlLibraryDataService.deleteAttachment(file.Identifier);\r\n\r\n const index = vm.existingFilesDataSource.findIndex(remainingFile => remainingFile.Identifier === file.Identifier);\r\n vm.existingFilesDataSource.splice(index, 1);\r\n vm.fileActionPending = false;\r\n } catch {\r\n vm.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function downloadFile(file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n const response = await controlLibraryDataService.downloadAttachment(file.Identifier);\r\n FileSaver.saveAs(response.data, file.FileName);\r\n vm.fileActionPending = false;\r\n } catch {\r\n vm.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function uploadFiles(files) {\r\n let fd = new FormData();\r\n vm.saving = new createSpinner();\r\n\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"CertReview\");\r\n fd.append(\"DataTypeId\", vm.review.HeaderId);\r\n\r\n await controlLibraryDataService.addAttachments(fd);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close(); \r\n }\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function (review, $uibModalInstance, $http, helperService, myReviewsDataService, errorsDataService, configurationDataService, manageDataDataService, controlLibraryDataService, onBehalfOf) {\r\n\r\n const vm = this;\r\n\r\n vm.review = review;\r\n vm.submitReviewCertification = submitReviewCertification;\r\n vm.helperService = helperService;\r\n vm.cancel = cancel;\r\n vm.itemsSelectionChanged = itemsSelectionChanged;\r\n vm.updateTicket = updateTicket;\r\n vm.removeTicket = removeTicket;\r\n vm.tickets = [];\r\n vm.onBehalfOf = onBehalfOf;\r\n vm.showGrid = false;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n if (vm.review.ReviewType === 'SecurityRole' || vm.review.ReviewType === 'Product') {\r\n if (vm.review.ReviewType === 'SecurityRole') {\r\n await checkCompanyConfig();\r\n }\r\n await getItemsForGrid();\r\n createRequestItemsGrid();\r\n } else {\r\n vm.showGrid = false;\r\n }\r\n }\r\n\r\n function updateTicket(ticket) {\r\n if (vm.tickets.every(item => item.TicketId !== ticket.TicketId)) {\r\n vm.tickets.push(ticket);\r\n }\r\n }\r\n\r\n function removeTicket(providerString) {\r\n vm.tickets = vm.tickets.filter(ticket => ticket.TicketProvider !== providerString);\r\n }\r\n\r\n // Attachments logic\r\n async function uploadFiles(files) {\r\n let fd = new FormData();\r\n\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"CertReview\");\r\n fd.append(\"DataTypeId\", vm.review.HeaderId);\r\n\r\n await controlLibraryDataService.addAttachments(fd);\r\n return files;\r\n }\r\n\r\n async function checkCompanyConfig() {\r\n vm.showCompany = vm.review.IncludeCompanyInReviews;\r\n }\r\n\r\n async function submitReviewCertification(files) {\r\n vm.pleaseWait = new createSpinner();\r\n\r\n let body = {};\r\n body.HeaderId = vm.review.HeaderId;\r\n body.Status = 3;\r\n body.Notes = vm.notes;\r\n body.ImRequestItems = vm.selectedItems;\r\n body.Tickets = vm.tickets;\r\n\r\n try {\r\n if (onBehalfOf) {\r\n body.SubmitReviewOnBehalfOf = true;\r\n await $http.put(`${apiUrl}api/certifications/reviews/${vm.review.HeaderId}/submitonbehalfof`, body);\r\n } else {\r\n await $http.put(`${apiUrl}api/certifications/reviews/${vm.review.HeaderId}/complete`, body);\r\n }\r\n if (files.length > 0) {\r\n await uploadFiles(files);\r\n }\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n $uibModalInstance.close();\r\n } catch (err) {\r\n vm.pleaseWait.loadingValue = false;\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n function createRequestItemsGrid() {\r\n let requestItemsGridColumns = [\r\n { selectable: true, width: 50 },\r\n { field: \"UserName\", title: \"User\", filterable: customAutoCompleteFilter },\r\n { field: \"ProductName\", title: \"Product\", filterable: customAutoCompleteFilter },\r\n ];\r\n if (vm.review.ReviewType === 'SecurityRole') {\r\n requestItemsGridColumns = requestItemsGridColumns.concat([\r\n { field: \"SecurityRoleName\", title: \"Role\", filterable: customAutoCompleteFilter },\r\n { field: \"CompanyName\", title: \"Company\", filterable: customAutoCompleteFilter, hidden: !vm.showCompany }\r\n ]);\r\n }\r\n\r\n vm.requestItemsGridOptions = helperService.setNonPageableGridOptions(requestItemsGridColumns, 350);\r\n vm.requestItemsGridOptions.selectable = false;\r\n vm.requestItemsGridOptions.filterable = {\r\n mode: \"row\"\r\n };\r\n\r\n vm.requestItemsGridDataSource = new kendo.data.DataSource({\r\n schema: {\r\n model: {\r\n id: \"ItemId\"\r\n }\r\n },\r\n transport: {\r\n read: options => {\r\n options.success(vm.gridItems);\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n async function getItemsForGrid() {\r\n vm.loadingGridItems = true;\r\n let response = await myReviewsDataService.getReviewDetails(vm.review.ReviewType, vm.review.HeaderId, \"ReviewType\");\r\n response = response.reduce((acc, curr) => {\r\n return acc.concat(curr.Items);\r\n }, []);\r\n response = response.filter(detail => detail.StatusId === 2);\r\n const productsArray = [...new Set(response.map(item => item.ProductId))];\r\n for (let i = 0; i < productsArray.length; i++) {\r\n let productConfig = await manageDataDataService.getConfigurationByProductId(productsArray[i]);\r\n const createImRequestSetting = productConfig.data.find(config => config.Name === 'IM_CreateRequestsFromCertReviews');\r\n if (!createImRequestSetting || createImRequestSetting.Value === '0') {\r\n response = response.filter(item => item.ProductId !== productsArray[i]);\r\n }\r\n }\r\n if (response.length > 0) {\r\n vm.showGrid = true;\r\n }\r\n vm.gridItems = response;\r\n vm.loadingGridItems = false;\r\n }\r\n\r\n function itemsSelectionChanged() {\r\n vm.selectedItems = vm.requestItemsGrid.selectedKeyNames();\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n}","import swal from \"sweetalert2\";\r\nimport reviewDelegationModalController from \"../MyReviews/DelegationModal/reviewDelegationModal.controller\";\r\nimport ticketModalController from \"../MyReviews/TicketModal/ticketModal.controller\";\r\nimport attachmentsModalController from \"./AttachmentsModal/attachmentsModal.controller\";\r\nimport submitReviewModalController from \"../MyReviews/SubmitReviewModal/submitReviewModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (accessCertificationsService, $scope, configurationDataService, helperService, certificationsAllReviewDataService, myReviewsDataService, $uibModal, $filter, $rootScope, archiveToastr) {\r\n\r\n const vm = this;\r\n\r\n vm.selectedReviewChanged = selectedReviewChanged;\r\n vm.selectedReviewerChanged = selectedReviewerChanged;\r\n vm.exportReview = exportReview;\r\n vm.refreshReviewSheduleExecution = refreshReviewSheduleExecution;\r\n vm.refreshReview = refreshReview;\r\n vm.deleteReview = deleteReview;\r\n vm.generateFailedImRequests = generateFailedImRequests;\r\n vm.downloadRejectedItemValidation = downloadRejectedItemValidation;\r\n vm.setSortAndFilterOptionsForRoleContentType = setSortAndFilterOptionsForRoleContentType;\r\n vm.helperService = helperService;\r\n vm.reopenReview = reopenReview;\r\n\r\n $scope.$on('RefreshReviewScheduleExecution', () => processRefresh());\r\n $scope.$on('RefreshSingleReview', () => {\r\n getReviews();\r\n getReviewersList(vm.selectedReview.Id);\r\n if (vm.selectedReviewer) {\r\n vm.loadingAssignmentItems = true;\r\n getReviewDetails(vm.selectedReviewer);\r\n }\r\n });\r\n\r\n activate();\r\n\r\n vm.itemsRadioFilter = 'All';\r\n\r\n vm.reviewMenuOptions = [\r\n {\r\n text: review => {\r\n switch (review.object.ReviewType) {\r\n case 'SecurityRole':\r\n return 'Download Rejected Role Item Validation';\r\n break;\r\n case 'Product':\r\n return 'Download Rejected Product Item Validation';\r\n break;\r\n case 'BusinessProcess':\r\n return 'Download Rejected Business Process Item Validation';\r\n break;\r\n case 'Risk':\r\n return 'Download Rejected Risk Item Validation';\r\n break;\r\n default:\r\n break;\r\n }\r\n },\r\n click: item => {\r\n downloadRejectedItemValidation(item.object);\r\n },\r\n displayed: review => review.object.ReviewType !== 'SecurityRoleContent'\r\n },\r\n {\r\n text: 'Export',\r\n click: item => {\r\n vm.exportReview(item.object);\r\n }\r\n },\r\n {\r\n text: 'Refresh',\r\n click: item => {\r\n vm.refreshReviewSheduleExecution(item.object);\r\n },\r\n displayed: modelValue => {\r\n const { Status } = modelValue.object;\r\n return Status === 'NotStarted' || Status === 'InProgress';\r\n }\r\n },\r\n {\r\n text: 'Send \"Review is Ready\" Notifications',\r\n click: item => {\r\n sendEmailNotifications(item.object, 4);\r\n },\r\n displayed: review => {\r\n const { Status } = review.object;\r\n return Status === 'NotStarted';\r\n }\r\n },\r\n {\r\n text: 'Send Reminder Notifications',\r\n click: item => {\r\n sendEmailNotifications(item.object, 1);\r\n },\r\n displayed: review => {\r\n const { Status } = review.object;\r\n return Status === 'NotStarted' || Status === 'InProgress';\r\n }\r\n },\r\n {\r\n text: 'Send Overdue Notifications',\r\n click: item => {\r\n sendEmailNotifications(item.object, 3);\r\n },\r\n displayed: review => {\r\n const { Status } = review.object;\r\n return Status === 'Overdue';\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.deleteReview(item.object);\r\n }\r\n }\r\n ];\r\n\r\n vm.reviewerMenuOptions = [\r\n {\r\n text: 'Delegate',\r\n click: async item => {\r\n openDelegateModal(item.object);\r\n },\r\n displayed: item => {\r\n return vm.checkForDelegateAllReviews && (item.object.TotalItems - item.object.CompletedItems !== 0);\r\n }\r\n },\r\n {\r\n text: 'Refresh',\r\n click: item => {\r\n item.object.Id = item.object.HeaderId;\r\n vm.refreshReview(item.object);\r\n },\r\n displayed: modelValue => {\r\n return $rootScope.UserSecurityList['9401'];\r\n }\r\n },\r\n {\r\n text: 'Reopen',\r\n click: item => {\r\n item.object.Id = item.object.HeaderId;\r\n vm.reopenReview(item.object);\r\n },\r\n displayed: item => {\r\n return $rootScope.UserSecurityList['9403']\r\n && item.object.CanReopen\r\n }\r\n },\r\n {\r\n text: 'Submit',\r\n click: async item => {\r\n openSubmitReviewModal(item.object);\r\n },\r\n displayed: item => {\r\n return vm.checkForSubmitOnBehalfOf\r\n && (item.object.TotalItems - (item.object.CompletedItems + item.object.ItemsCompletedByOthers)) === 0\r\n && (item.object.Status === 'InProgress' || item.object.Status === 'Overdue');\r\n }\r\n },\r\n {\r\n text: 'View Tickets',\r\n click: item => {\r\n openTicketModal(item.object);\r\n },\r\n displayed: item => {\r\n return item.object.Tickets.length > 0;\r\n }\r\n },\r\n {\r\n text: 'View Attachments',\r\n click: item => {\r\n openAttachmentsModal(item.object);\r\n },\r\n displayed: item => {\r\n return item.object.Attachments.length > 0;\r\n }\r\n }\r\n ];\r\n\r\n async function activate() {\r\n await getReviews();\r\n await checkSecurityObjectInformationToggle();\r\n await checkForDelegateAllReviews();\r\n await checkForSubmitOnBehalfOf();\r\n vm.userDisplay = await getUserDisplay();\r\n\r\n vm.reviewAssignmentTiles = accessCertificationsService.getReviewTypes();\r\n }\r\n\r\n async function reopenReview(item) {\r\n await swal(\r\n helperService.areYouSureParams(\r\n 'Reopen Review',\r\n 'Are you sure you want to reopen this completed review? If the corresponding review schedule execution is also closed, it will be reopened alongside the review.',\r\n 'Reopen'\r\n )\r\n );\r\n await certificationsAllReviewDataService.reopenReview(item.Id);\r\n getReviews();\r\n getReviewersList(vm.selectedReview.Id);\r\n if (vm.selectedReviewer) {\r\n vm.loadingAssignmentItems = true;\r\n getReviewDetails(vm.selectedReviewer);\r\n }\r\n }\r\n\r\n async function processRefresh() {\r\n if (vm.selectedReview) {\r\n await getReviewersList(vm.selectedReview.Id);\r\n\r\n if (vm.selectedReviewer) {\r\n getReviewDetails(vm.selectedReviewer);\r\n }\r\n }\r\n }\r\n\r\n async function getUserDisplay() {\r\n try {\r\n return await helperService.getConfigurationValue('Cert_UserDisplayField');\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n }\r\n\r\n async function getReviews() {\r\n let response = await certificationsAllReviewDataService.getReviews();\r\n vm.reviewsDataSource = response.data;\r\n }\r\n\r\n async function checkSecurityObjectInformationToggle() {\r\n let response = await configurationDataService.getConfigurationValues();\r\n var config = {};\r\n\r\n response.data.forEach(row => {\r\n config[row.Name] = row.Value;\r\n });\r\n\r\n vm.showBPObject = config['Cert_BusinessProcessObjects'];\r\n vm.showRoleContentBPObject = config['Cert_RoleContentBusinessProcessObjects'];\r\n }\r\n\r\n async function downloadRejectedItemValidation(item) {\r\n await certificationsAllReviewDataService.downloadRejectedItemValidation(item.Id);\r\n }\r\n\r\n async function sendEmailNotifications(item, notificationType) {\r\n let postBody = {\r\n ReviewScheduleId: item.Id,\r\n ReviewScheduleNotificationType: notificationType\r\n };\r\n try {\r\n await certificationsAllReviewDataService.sendEmailNotifications(item.Id, postBody);\r\n let archiveObject = {\r\n correlationId: 0,\r\n type: null,\r\n message: 'Your notification has been sent.',\r\n title: 'Complete',\r\n status: 'Success',\r\n response: null,\r\n options: {},\r\n };\r\n await archiveToastr.notifyArchive(archiveObject);\r\n } catch {\r\n return;\r\n }\r\n\r\n }\r\n\r\n async function exportReview(item) {\r\n var postData = {\r\n \"PreferredTimeZone\": $rootScope.applicationTimeZone\r\n };\r\n await certificationsAllReviewDataService.exportReview(item.Id, postData);\r\n }\r\n\r\n async function checkForDelegateAllReviews() {\r\n vm.checkForDelegateAllReviews = await certificationsAllReviewDataService.checkForDelegateAllReviews('Delegate All Reviews');\r\n }\r\n\r\n async function checkForSubmitOnBehalfOf() {\r\n vm.checkForSubmitOnBehalfOf = await certificationsAllReviewDataService.checkForSubmitOnBehalfOf('Submit Review On Behalf Of');\r\n }\r\n\r\n async function openDelegateModal(delegationContext) {\r\n let delegationItems = [];\r\n let response = await myReviewsDataService.getReviewDetails(delegationContext.ReviewType, delegationContext.HeaderId, \"ReviewType\");\r\n response = response.reduce((acc, curr) => {\r\n if (curr.Items) {\r\n return acc.concat(curr.Items);\r\n } else {\r\n return acc.concat(curr.items);\r\n }\r\n }, []);\r\n delegationItems = response.filter(detail => detail.StatusId === null);\r\n\r\n let delegateModal = $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/MyReviews/DelegationModal/reviewDelegationModal.html',\r\n controller: reviewDelegationModalController,\r\n controllerAs: 'rdmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n delegationItems: () => delegationItems,\r\n reviewHeaderId: () => delegationContext.HeaderId,\r\n reviewType: () => delegationContext.ReviewType\r\n }\r\n });\r\n\r\n try {\r\n await delegateModal.result;\r\n activate();\r\n } catch { return; }\r\n }\r\n\r\n async function openSubmitReviewModal(review, vm) {\r\n let reviewModal = $uibModal.open({\r\n templateUrl: 'App/Components/Certifications/MyReviews/SubmitReviewModal/submitReviewModal.html',\r\n controller: submitReviewModalController,\r\n controllerAs: 'srmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n review: () => review,\r\n onBehalfOf: () => true\r\n }\r\n });\r\n\r\n try {\r\n await reviewModal.result;\r\n if (vm.selectedReview.HeaderId === review.HeaderId) {\r\n vm.selectedReview = null;\r\n vm.selectedGroup = null;\r\n vm.selectedUser = null;\r\n }\r\n activate();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function refreshReviewSheduleExecution(item) {\r\n try {\r\n await swal(\r\n helperService.areYouSureParams(\r\n 'Refresh Review',\r\n 'Are you sure you want to refresh the review items for this review? This has the potential of adding and removing review items.',\r\n 'Refresh'\r\n )\r\n );\r\n await certificationsAllReviewDataService.refreshReviewSheduleExecution(item.Id);\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function refreshReview(item) {\r\n try {\r\n await swal(\r\n helperService.areYouSureParams(\r\n 'Refresh Review',\r\n 'Are you sure you want to refresh the review items for this review? This has the potential of adding and removing review items.',\r\n 'Refresh'\r\n )\r\n );\r\n await certificationsAllReviewDataService.refreshReview(item.Id);\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function deleteReview(item) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Review', 'Are you sure you want to delete this Review and all releated review items?', 'Delete'));\r\n await certificationsAllReviewDataService.deleteReview(item.Id);\r\n getReviews();\r\n if (vm.selectedReview === item) {\r\n vm.selectedReview = null;\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function selectedReviewChanged(selectedReview) {\r\n if (selectedReview && selectedReview !== vm.selectedReview) {\r\n vm.selectedReview = selectedReview;\r\n\r\n switch (vm.selectedReview.ReviewType) {\r\n case \"Risk\":\r\n vm.reviewDetailsSort = [\"RiskName\", \"UserName\"];\r\n vm.reviewDetailsThirdColumnFilter = ['RiskName', 'UserName', 'Company', 'CompanyIds', 'StatusName', 'Notes'];\r\n break;\r\n case \"BusinessProcess\":\r\n vm.reviewDetailsSort = [\"BusinessProcessName\", \"UserName\"];\r\n vm.reviewDetailsThirdColumnFilter = ['BusinessProcessName', 'UserName', 'CompanyName', 'CompanyId', 'StatusName', 'Notes'];\r\n break;\r\n case \"Product\":\r\n vm.reviewDetailsSort = [\"ProductName\", \"UserName\"];\r\n vm.reviewDetailsThirdColumnFilter = ['ProductName', 'UserName', 'CompanyName', 'CompanyId', 'StatusName', 'Notes'];\r\n break;\r\n case \"SecurityRole\":\r\n vm.reviewDetailsSort = [\"SecurityRoleName\", \"UserName\"];\r\n vm.reviewDetailsThirdColumnFilter = ['SecurityRoleName', 'UserName', 'CompanyName', 'CompanyId', 'StatusName', 'Notes'];\r\n break;\r\n case \"SecurityRoleContent\":\r\n // we don't know our security role content type so we can't set sorting or filtering options yet\r\n vm.reviewDetailsSort = [];\r\n vm.reviewDetailsThirdColumnFilter = [];\r\n break;\r\n default:\r\n break;\r\n }\r\n vm.reviewId = selectedReview.Id;\r\n await getReviewersList(selectedReview.Id);\r\n vm.reviewItemsDataSource = null;\r\n if (vm.reviewersDataSource.length === 1) {\r\n vm.selectedReviewerChanged(vm.reviewersDataSource[0]);\r\n } else {\r\n vm.selectedReviewer = null;\r\n }\r\n }\r\n }\r\n\r\n async function getReviewersList(reviewId) {\r\n let response = await certificationsAllReviewDataService.getReviewersByReviewId(reviewId);\r\n vm.reviewersDataSource = response.data;\r\n }\r\n\r\n async function selectedReviewerChanged(selectedItem) {\r\n if (selectedItem && selectedItem !== vm.selectedReviewer) {\r\n vm.allItems = null;\r\n vm.currentItemsPage = 1;\r\n vm.itemsRadioFilter = 'All';\r\n vm.selectedReviewer = selectedItem;\r\n vm.loadingAssignmentItems = true;\r\n getReviewDetails(selectedItem);\r\n }\r\n }\r\n\r\n async function getReviewDetails(reviewer) {\r\n let response = await myReviewsDataService.getReviewDetails(reviewer.ReviewType, reviewer.HeaderId, 'ReviewType');\r\n if (response.length) {\r\n response = response.reduce((acc, curr) => {\r\n return reviewer.ReviewType === 'SecurityRoleContent' ? acc.concat(curr.items) : acc.concat(curr.Items);\r\n }, []);\r\n vm.securityRoleContentTypeFilter = response[0].RoleContentType;\r\n vm.securityRoleContentTypeFilterOptions = response.map(item => item.RoleContentType).unique();\r\n vm.securityRoleContentTypeFilterOptions = $filter('orderBy')(vm.securityRoleContentTypeFilterOptions);\r\n setSortAndFilterOptionsForRoleContentType(vm.securityRoleContentTypeFilter);\r\n }\r\n vm.reviewItemsDataSource = response;\r\n vm.reviewItemsDataSource.forEach(u => u.userDisplay = u[vm.userDisplay]);\r\n vm.loadingAssignmentItems = false;\r\n }\r\n\r\n async function generateFailedImRequests(reviewId) {\r\n await certificationsAllReviewDataService.reprocessImRequests(reviewId);\r\n }\r\n\r\n function setSortAndFilterOptionsForRoleContentType(securityRoleContentType) {\r\n switch (securityRoleContentType) {\r\n case 'BusinessProcess':\r\n vm.reviewDetailsSort = ['BusinessProcessName'];\r\n vm.reviewDetailsThirdColumnFilter = ['BusinessProcessName', 'SecurityRoleName', 'RulesetName', 'SecurityObjectAltName', 'SecurityObjectName', 'SecurityObjectTypeName', 'Notes'];\r\n break;\r\n case 'Risk':\r\n vm.reviewDetailsSort = ['RiskName'];\r\n vm.reviewDetailsThirdColumnFilter = ['RiskName', 'RulesetName', 'SecurityRoleName', 'Notes'];\r\n break;\r\n case 'RoleAccess':\r\n vm.reviewDetailsSort = ['SecurityObjectAltName'];\r\n vm.reviewDetailsThirdColumnFilter = ['SecurityObjectAltName', 'SecurityRoleName', 'SecurityObjectName', 'AccessTypeName', 'AccessLevelName', 'Notes'];\r\n break;\r\n default:\r\n return;\r\n\r\n }\r\n }\r\n\r\n function openTicketModal(review) {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/MyReviews/TicketModal/ticketModal.tmpl.html',\r\n controller: ticketModalController,\r\n controllerAs: 'tmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n review: () => review\r\n }\r\n });\r\n }\r\n\r\n async function openAttachmentsModal(review) {\r\n const attachmentsModal = $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/AllReviews/AttachmentsModal/attachmentsModal.tmpl.html',\r\n controller: attachmentsModalController,\r\n controllerAs: 'amvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n review: () => review\r\n }\r\n });\r\n\r\n await attachmentsModal.result;\r\n getReviewersList(vm.reviewId);\r\n\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService, authenticationService, dataService) {\r\n var service = {\r\n getReviews,\r\n getReviewersByReviewId,\r\n checkForDelegateAllReviews,\r\n checkForSubmitOnBehalfOf,\r\n refreshReviewSheduleExecution,\r\n refreshReview,\r\n downloadRejectedItemValidation,\r\n sendEmailNotifications,\r\n exportReview,\r\n deleteReview,\r\n reprocessImRequests,\r\n reopenReview\r\n };\r\n\r\n return service;\r\n\r\n async function getReviews() {\r\n try {\r\n return await $http.get(`${apiUrl}api/certifications/reviewscheduleexecutions`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getReviewersByReviewId(reviewId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/certifications/reviewscheduleexecutions/${reviewId}/reviews`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function downloadRejectedItemValidation(id) {\r\n try {\r\n return await $http.post(`${apiUrl}api/certifications/reviews/${id}/items/validation/export`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function sendEmailNotifications(id, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/certifications/reviewscheduleexecutions/${id}/sendnotifications`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function checkForDelegateAllReviews(delegateAllReviews) {\r\n const user = await authenticationService.getUser();\r\n let response = await dataService.getClaims(user.userId);\r\n let data = response.data;\r\n\r\n return await data.some(data => data.Value === delegateAllReviews);\r\n }\r\n\r\n async function checkForSubmitOnBehalfOf(submitOnBehalfOf) {\r\n const user = await authenticationService.getUser();\r\n let response = await dataService.getClaims(user.userId);\r\n let data = response.data;\r\n\r\n return await data.some(data => data.Value === submitOnBehalfOf);\r\n }\r\n\r\n async function refreshReviewSheduleExecution(reviewId) {\r\n try {\r\n await $http.post(`${apiUrl}api/certifications/reviewscheduleexecutions/${reviewId}/refresh`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function refreshReview(reviewId) {\r\n try {\r\n await $http.post(`${apiUrl}/api/certifications/reviews/${reviewId}/refresh`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function deleteReview(reviewId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/certifications/reviewscheduleexecutions/${reviewId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function exportReview(reviewId, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/certifications/reviewscheduleexecutions/${reviewId}/export`, data)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function reprocessImRequests(reviewId) {\r\n try {\r\n return await $http.put(`${apiUrl}api/certifications/reviews/${reviewId}/reprocessim`)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function reopenReview(reviewId) {\r\n try {\r\n return await $http.put(`${apiUrl}api/certifications/reviews/${reviewId}/reopen`)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getTeamMembers,\r\n getTeamMembersByProduct,\r\n addTeamMember,\r\n removeTeamMember\r\n };\r\n\r\n return service;\r\n\r\n async function getTeamMembers(teamTypeUrl) {\r\n try {\r\n return await $http.get(`${apiUrl}api/certifications/teammembers/${teamTypeUrl}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getTeamMembersByProduct(productId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/certifications/teammembers/security/product/${productId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function addTeamMember(newTeamMemberInfo) {\r\n try {\r\n return await $http.post(`${apiUrl}api/certifications/teammembers`, newTeamMemberInfo);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeTeamMember(memberId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/certifications/teammembers/${memberId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getReviewTypes,\r\n exportReviews,\r\n addReviewAssignment,\r\n importReviews,\r\n deleteReview\r\n };\r\n\r\n return service;\r\n\r\n async function getReviewTypes() {\r\n try {\r\n return await $http.get(apiUrl + 'api/certifications/reviewtypes');\r\n }\r\n catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function exportReviews() {\r\n try {\r\n return await $http.get(`${apiUrl}api/certifications/reviewassignments/export`, { responseType: 'blob' });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function addReviewAssignment(data) {\r\n try {\r\n return await $http.post(apiUrl + 'api/certifications/reviewassignments', data);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importReviews(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/certifications/reviewassignments/import`, data, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteReview(reviewId) {\r\n try {\r\n return await $http.delete(apiUrl + 'api/certifications/reviewassignments/' + reviewId);\r\n } catch(err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getProfile,\r\n getWorkdayProfile,\r\n getSecurityRoleDetails,\r\n getAccess,\r\n getCatalog\r\n };\r\n\r\n return service;\r\n\r\n async function getProfile(identifier) {\r\n try {\r\n const res = await $http.get(`${apiUrl}api/universal/securityroles/${identifier}`);\r\n return res.data;\r\n } catch(err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getWorkdayProfile(securityRoleId) {\r\n try {\r\n const res = await $http.get(`${apiUrl}api/universal/wd/securityrole/${securityRoleId}`);\r\n return res.data;\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSecurityRoleDetails(roleId, productId) {\r\n try {\r\n const res = await $http.get(`${apiUrl}api/universal/securityroles/${roleId}/product/${productId}`);\r\n return res.data;\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAccess(identifier, data, page, pageSize) {\r\n try {\r\n const res = await $http({\r\n method: 'POST',\r\n url: `${apiUrl}api/universal/securityroles/${identifier}/access`,\r\n data: data,\r\n params: { 'pagesize': pageSize, 'page': page }\r\n });\r\n return res;\r\n } catch(err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getCatalog(reportId, data, page, pageSize) {\r\n try {\r\n return await $http({\r\n method: 'POST',\r\n url: `${apiUrl}api/core/reports/${reportId}/execute`,\r\n data: data,\r\n params: { 'pagesize': pageSize, 'page': page }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getReviews,\r\n getReviewDetails,\r\n updateItemStatus,\r\n delegateReviewItems,\r\n exportReview\r\n };\r\n\r\n return service;\r\n\r\n async function getReviews() {\r\n try {\r\n return await $http.get(apiUrl + 'api/certifications/reviews');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n\r\n }\r\n\r\n async function getReviewDetails(reviewType, headerId, groupByType) {\r\n try {\r\n let response = await $http.get(apiUrl + `api/certifications/reviews/${headerId}/${reviewType}/items/${groupByType}`);\r\n return response.data;\r\n }\r\n catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function updateItemStatus(headerId, selectedTile, data) {\r\n try {\r\n return await $http.put(apiUrl + `api/certifications/reviews/${headerId}/${selectedTile}/items`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function delegateReviewItems(reviewHeaderId, reviewType, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/certifications/reviews/${reviewHeaderId}/${reviewType}/items/delegate`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function exportReview(reviewId, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/certifications/reviews/${reviewId}/export`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getRoutingCriteria,\r\n postRoutingCriteria,\r\n deleteRoutingCriteria,\r\n getSchedules,\r\n getInstances,\r\n getInstanceAssignments,\r\n createSchedule,\r\n createInstance,\r\n cloneInstance,\r\n updateSchedule,\r\n updateInstance,\r\n deleteInstance,\r\n deleteInstanceSchedule,\r\n deleteReviewInstanceAssignment,\r\n runSchedule\r\n };\r\n\r\n return service;\r\n\r\n async function getRoutingCriteria(reviewAssignmentId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/reviewassignments/${reviewAssignmentId}/routing-criteria`);\r\n }\r\n catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function postRoutingCriteria(reviewAssignmentId, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/reviewassignments/${reviewAssignmentId}/routing-criteria`, data);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteRoutingCriteria(reviewAssignmentId, id) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/reviewassignments/${reviewAssignmentId}/routing-criteria/${id}`);\r\n }\r\n catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSchedules() {\r\n try {\r\n return await $http.get(`${apiUrl}api/certifications/reviewschedules`);\r\n }\r\n catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getInstances() {\r\n try {\r\n return await $http.get(`${apiUrl}api/certifications/reviewinstances`);\r\n }\r\n catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getInstanceAssignments(instanceId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/certifications/reviewassignments/reviewinstance/${instanceId}`);\r\n }\r\n catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function createSchedule(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/certifications/reviewschedules`, data);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function createInstance(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/certifications/reviewinstances`, data);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function cloneInstance(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/certifications/reviewinstances/clone`, data);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateSchedule(scheduleId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/certifications/reviewschedules/${scheduleId}`, data);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateInstance(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/certifications/reviewInstances/${data.Id}`, data);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteInstance(instanceId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/certifications/reviewInstances/${instanceId}`);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteInstanceSchedule(scheduleId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/certifications/reviewschedules/${scheduleId}`);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteReviewInstanceAssignment(assignmentId) {\r\n try {\r\n return await $http.delete(apiUrl + 'api/certifications/reviewassignments/' + assignmentId);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function runSchedule(scheduleId) {\r\n try {\r\n return await $http.post(`${apiUrl}api/certifications/reviewschedules/${scheduleId}/run`);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n}","import angular from 'angular';\r\nimport certificationsAllReviewDataServiceFactory from '../Components/Certifications/AllReviews/certificationsAllReviewDataService.factory';\r\nimport accessCertificationsService from '../Shared/Services/accessCertifications.service';\r\nimport notificationTeamsServiceFactory from '../Components/Certifications/notificationTeams/notificationTeamsService.factory';\r\nimport certificationsReviewAssignmentsDataServiceFactory from '../Components/Certifications/reviewSchedules/certificationsReviewAssignmentsDataService.factory';\r\nimport roleSecurityProfileDataServiceFactory from '../Shared/Components/roleSecurityProfile/roleSecurityProfileDataService.factory';\r\nimport myReviewsDataServiceFactory from '../Components/Certifications/MyReviews/myReviewsDataService.factory';\r\nimport reviewSchedulesDataServiceFactory from '../Components/Certifications/reviewSchedules/reviewSchedulesDataService.factory';\r\n\r\n\r\nexport default angular\r\n .module('app.accessCertifications.factories', [])\r\n .factory('certificationsAllReviewDataService', certificationsAllReviewDataServiceFactory)\r\n .factory('accessCertificationsService', accessCertificationsService)\r\n .factory('notificationTeamsDataService', notificationTeamsServiceFactory)\r\n .factory('reviewAssignmentsDataService', certificationsReviewAssignmentsDataServiceFactory)\r\n .factory('roleSecurityProfileDataService', roleSecurityProfileDataServiceFactory)\r\n .factory('myReviewsDataService', myReviewsDataServiceFactory)\r\n .factory('reviewSchedulesDataService', reviewSchedulesDataServiceFactory)\r\n .name;","export default function () {\r\n const service = {\r\n getReviewTypes\r\n };\r\n return service;\r\n\r\n function getReviewTypes() {\r\n return [\r\n { Name: \"Risk\", Id: \"Risk\", Background: \"review-assignment_Risk\", Icon: \"icons8-risk\" },\r\n { Name: \"Security Role\", Id: \"SecurityRole\", Background: \"review-assignment_Roles\", Icon: \"icons8-user-avatar\" },\r\n { Name: \"Security Role Content\", Id: \"SecurityRoleContent\", Background: \"review-assignment_Roles\", Icon: \"icons8-user-menu-male\" },\r\n { Name: \"Business Process\", Id: \"BusinessProcess\", Background: \"review-assignment_BusinessProcess\", Icon: \"icons8-warning-shield\" },\r\n { Name: \"Product\", Id: \"Product\", Background: \"review-assignment_Products\", Icon: \"icons8-globe\" },\r\n { Name: \"Manager\", Id: \"Manager\", Background: \"review-assignment_Manager\", Icon: \"icons8-briefcase\" }\r\n ];\r\n }\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, reviewItem, notesRequired, allowCancel, helperService) {\r\n const vm = this;\r\n \r\n vm.reviewItem = reviewItem ? { ...reviewItem } : null;\r\n vm.notesRequired = notesRequired;\r\n vm.allowCancel = allowCancel;\r\n\r\n vm.saveNotes = saveNotes;\r\n vm.dismiss = dismiss;\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n async function saveNotes() {\r\n vm.savingNotes = new createSpinner();\r\n\r\n await helperService.successfulSaveButton(vm.savingNotes);\r\n $uibModalInstance.close(vm.reviewItem.Notes);\r\n }\r\n\r\n}","import submitReviewModalController from \"./SubmitReviewModal/submitReviewModal.controller\";\r\nimport reviewDelegationModalController from \"./DelegationModal/reviewDelegationModal.controller\";\r\nimport ticketModalController from \"./TicketModal/ticketModal.controller\";\r\nimport notesModalController from \"./notesModal/notesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $scope, $rootScope, $timeout, $window, configurationDataService, $location, $uibModal, accessCertificationsService, authenticationService, emailNavigationService, helperService, errorsDataService, myReviewsDataService) {\r\n\r\n const vm = this;\r\n const tenantInlocalStorage = angular.fromJson(localStorage.getItem(\"selectedTenant\"));\r\n\r\n vm.pageParams = $location.search();\r\n vm.groupBy = '';\r\n vm.reviewDetailsSort = [];\r\n vm.selectedReviewGroups = [];\r\n vm.selectedGroupingMethod = null;\r\n vm.selectedReview = null;\r\n vm.selectedUser = null;\r\n vm.selectedGroup = null;\r\n vm.openNotesModal = openNotesModal;\r\n vm.helperService = helperService;\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Export',\r\n click: item => {\r\n exportReview(item.review);\r\n }\r\n },\r\n {\r\n text: 'Delegate',\r\n click: item => {\r\n openDelegateModal(item.review);\r\n },\r\n displayed: item => {\r\n return (item.review.TotalItems - item.review.CompletedItems) !== 0;\r\n }\r\n },\r\n {\r\n text: 'View Tickets',\r\n click: item => {\r\n openTicketModal(item.review, 'View');\r\n },\r\n displayed: item => {\r\n return item.review.Tickets.length > 0;\r\n }\r\n }\r\n ];\r\n\r\n vm.groupMenuOptions = [\r\n {\r\n text: 'Delegate',\r\n click: item => {\r\n openDelegateModal(item.object);\r\n }\r\n }\r\n ];\r\n\r\n vm.selectUser = selectUser;\r\n vm.selectedGroupChanged = selectedGroupChanged;\r\n vm.setupGroupByList = setupGroupByList;\r\n vm.getReviews = getReviews;\r\n vm.selectReview = selectReview;\r\n vm.toggleReviews = toggleReviews;\r\n vm.resetReviews = resetReviews;\r\n vm.openSubmitReviewModal = openSubmitReviewModal;\r\n vm.changeItemStatus = changeItemStatus;\r\n vm.updateAllItemStatuses = updateAllItemStatuses;\r\n vm.updateItemNote = updateItemNote;\r\n vm.changeTypeItemStatus = changeTypeItemStatus;\r\n vm.openDelegateModal = openDelegateModal;\r\n vm.updateReviewCounts = updateReviewCounts\r\n vm.changeSearchFilter = changeSearchFilter;\r\n vm.radioFilterChanged = radioFilterChanged;\r\n\r\n activate();\r\n\r\n $scope.$on('DelegateReviewItems', (event, args) => activate());\r\n\r\n async function activate() {\r\n vm.currentUser = await authenticationService.getUser();\r\n vm.selfReviewConfigValue = await helperService.getConfigurationValue('Cert_SelfReview');\r\n vm.showAllCompaniesToggle = Number(await helperService.getConfigurationValue('Cert_AllowFilterByAllCompanies'));\r\n vm.username = vm.currentUser.fullName;\r\n vm.userDisplay = await getUserDisplay();\r\n await redirectIfNeeded();\r\n await getReviewTypes();\r\n await getReviews();\r\n setupMyReviewsListview();\r\n vm.groupBy = 'type';\r\n if (vm.pageParams.InstanceId) {\r\n selectReview(vm.reviews.find(review => review.ReviewInstanceId === vm.pageParams.InstanceId));\r\n }\r\n }\r\n\r\n function redirectIfNeeded() {\r\n if (vm.pageParams.tenantid) {\r\n if (vm.pageParams.tenantid === tenantInlocalStorage.ID) {\r\n vm.sufficientSecurityAccess = true;\r\n return;\r\n }\r\n else {\r\n findTenantFromEmail();\r\n }\r\n }\r\n else {\r\n vm.sufficientSecurityAccess = true;\r\n return;\r\n }\r\n }\r\n\r\n async function findTenantFromEmail() {\r\n emailNavigationService.availableTenants(vm.currentUser.userId)\r\n .then(response => {\r\n\r\n let validTenant = response.data.find(tenant => {\r\n return tenant.ID === vm.pageParams.tenantid;\r\n });\r\n\r\n if (validTenant) {\r\n vm.redirectToTenant = true;\r\n localStorage.setItem(\"selectedTenant\", JSON.stringify(angular.copy(validTenant)));\r\n $window.location.reload();\r\n\r\n } else {\r\n vm.insufficientSecurityAccess = true;\r\n }\r\n\r\n });\r\n }\r\n\r\n function getReviewTypes() {\r\n vm.reviewAssignmentTiles = accessCertificationsService.getReviewTypes();\r\n }\r\n\r\n async function getReviews() {\r\n try {\r\n const reviews = await myReviewsDataService.getReviews();\r\n reviews.data.forEach(review => {\r\n const match = vm.reviewAssignmentTiles.find(tile => tile.Id === review.ReviewType);\r\n review.Tile = match;\r\n });\r\n vm.reviews = reviews.data;\r\n\r\n } catch (err) {\r\n return;\r\n }\r\n }\r\n\r\n async function getUserDisplay() {\r\n try {\r\n return await helperService.getConfigurationValue('Cert_UserDisplayField');\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n }\r\n\r\n function selectReview(review) {\r\n\r\n if (review === vm.selectedReview || review.Status === 'Processing') return;\r\n\r\n vm.selectedGroup = null;\r\n vm.selectedReviewGroups = [];\r\n vm.selectedUser = null;\r\n\r\n if (review.ReviewType === vm.selectedReview) {\r\n vm.selectedReview = null;\r\n } else {\r\n switch (review.ReviewType) {\r\n case \"Risk\":\r\n vm.reviewTypeName = \"Risks\";\r\n vm.reviewDetailsFilter = \"RiskName\";\r\n vm.reviewDetailsSort = [\"RiskName\", \"UserName\"];\r\n break;\r\n case \"BusinessProcess\":\r\n vm.reviewTypeName = \"Business Processes\";\r\n vm.reviewDetailsFilter = \"BusinessProcessName\";\r\n vm.reviewDetailsSort = [\"BusinessProcessName\", \"UserName\"];\r\n break;\r\n case \"Product\":\r\n vm.reviewTypeName = \"Products\";\r\n vm.reviewDetailsFilter = \"ProductName\";\r\n vm.reviewDetailsSort = [\"ProductName\", \"UserName\"];\r\n break;\r\n case \"SecurityRole\":\r\n case \"SecurityRoleContent\":\r\n vm.reviewTypeName = \"Roles\";\r\n vm.reviewDetailsFilter = \"SecurityRoleName\";\r\n vm.reviewDetailsSort = [\"SecurityRoleName\", \"UserName\"];\r\n break;\r\n }\r\n }\r\n vm.selectedReview = review;\r\n setupGroupByListview();\r\n }\r\n\r\n\r\n function resetReviews() {\r\n vm.selectedGroup = null;\r\n vm.selectedTile = null;\r\n }\r\n\r\n // my reviews list-view\r\n function setupMyReviewsListview() {\r\n setupToggle();\r\n toggleReviews('0');\r\n }\r\n\r\n function setupToggle() {\r\n if (vm.reviews.length > 0) {\r\n if (vm.reviews.some(review => review.Status === 'Completed' || review.Status === 'Incomplete')) {\r\n vm.showToggle = true;\r\n } else {\r\n vm.showToggle = false;\r\n }\r\n }\r\n }\r\n\r\n function toggleReviews(val) {\r\n if (val !== '1') {\r\n vm.filteredReviews = vm.reviews.filter(review => review.Status !== 'Completed' && review.Status !== 'Incomplete');\r\n } else {\r\n vm.filteredReviews = vm.reviews;\r\n }\r\n vm.filteredReviews = $filter('orderBy')(vm.filteredReviews, '-GeneratedDate');\r\n }\r\n\r\n async function openSubmitReviewModal(review, vm) {\r\n vm.review = review;\r\n let reviewModal = $uibModal.open({\r\n templateUrl: 'App/Components/Certifications/MyReviews/SubmitReviewModal/submitReviewModal.html',\r\n controller: submitReviewModalController,\r\n controllerAs: 'srmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n review: () => review,\r\n onBehalfOf: () => false\r\n\r\n }\r\n });\r\n\r\n try {\r\n await reviewModal.result;\r\n if (vm.selectedReview.HeaderId === review.HeaderId) {\r\n vm.selectedReview = null;\r\n vm.selectedGroup = null;\r\n vm.selectedUser = null;\r\n }\r\n activate();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function exportReview(review) {\r\n var postData = {\r\n \"PreferredTimeZone\": $rootScope.applicationTimeZone\r\n };\r\n myReviewsDataService.exportReview(review.HeaderId, postData);\r\n }\r\n\r\n // group by list-view\r\n function setupGroupByListview() {\r\n vm.availableGroupingMethods = [\r\n {\r\n name: `Group Reviews by ${vm.reviewTypeName}`,\r\n type: 'ReviewType'\r\n },\r\n {\r\n name: 'Group Reviews by Users',\r\n type: 'User'\r\n }\r\n ];\r\n\r\n let groupByPreference = $rootScope.UserPreferences.DefaultGroupReviews;\r\n\r\n if (vm.selectedReview.ReviewType === 'SecurityRoleContent') {\r\n groupByPreference = 'ReviewType'\r\n }\r\n\r\n vm.selectedGroupingMethod = vm.availableGroupingMethods.find(groupingMethods => groupingMethods.type === groupByPreference);\r\n setupGroupByList();\r\n }\r\n\r\n function resetValues() {\r\n vm.selectedGroup = null;\r\n vm.selectedUser = null;\r\n vm.searchQuery = '';\r\n }\r\n\r\n async function setupGroupByList() {\r\n vm.loadingGroupItems = true;\r\n\r\n resetValues();\r\n\r\n let groupingList = await myReviewsDataService.getReviewDetails(vm.selectedReview.ReviewType, vm.selectedReview.HeaderId, vm.selectedGroupingMethod.type);\r\n\r\n if (vm.selectedGroupingMethod.type === 'ReviewType') {\r\n buildTypeList(groupingList);\r\n } else if (vm.selectedGroupingMethod.type === 'User') {\r\n buildUserList(groupingList);\r\n }\r\n\r\n }\r\n\r\n function getItemId(reviewType) {\r\n switch (reviewType) {\r\n case \"SecurityRole\":\r\n case \"SecurityRoleContent\":\r\n return \"SecurityRoleIdentifier\";\r\n break;\r\n case \"Product\":\r\n return \"ProductId\";\r\n break;\r\n case \"Risk\":\r\n return \"RiskId\";\r\n break;\r\n case \"BusinessProcess\":\r\n return \"BusinessProcessId\";\r\n break;\r\n default:\r\n return null;\r\n break;\r\n }\r\n }\r\n\r\n function buildTypeList(groupItems) {\r\n\r\n groupItems = groupItems.map(obj => {\r\n if (vm.selectedReview.ReviewType === 'SecurityRoleContent') {\r\n obj.Remaining = obj.items.filter(item => !item.StatusId && item.MultiApprovalStatus !== \"Complete\").length;\r\n let itemTypes = obj.items.map(item => item.RoleContentType).unique();\r\n obj.RemainingCounts = [];\r\n itemTypes.forEach(type => {\r\n let countObject = {\r\n Type: type,\r\n Remaining: obj.items.filter(item => !item.StatusId && item.RoleContentType === type && item.MultiApprovalStatus !== 'Complete').length,\r\n ReviewedByOthers: obj.items.filter(item => item.RoleContentType === type && item.MultiApprovalStatus === 'Complete').length\r\n };\r\n obj.RemainingCounts.push(countObject);\r\n });\r\n // update counts for Review items\r\n if (vm.selectedGroup) {\r\n vm.selectedGroup = { ...vm.selectedGroup };\r\n }\r\n } else {\r\n obj.Remaining = obj.Items.filter(item => !item.StatusId && item.MultiApprovalStatus !== \"Complete\").length;\r\n }\r\n if (vm.selectedReview.ReviewType === 'Risk') {\r\n obj.Risk = obj.Items[0].RiskLevel;\r\n }\r\n obj.ItemId = obj[getItemId(vm.selectedReview.ReviewType)];\r\n return obj;\r\n });\r\n\r\n vm.selectedReviewGroups = groupItems;\r\n\r\n vm.loadingGroupItems = false;\r\n }\r\n\r\n async function buildUserList(groupItems) {\r\n if (!vm.selectedUser) {\r\n vm.users = [];\r\n }\r\n\r\n vm.users = groupItems.map(obj => {\r\n obj.Remaining = obj.Items.filter(item => !item.StatusId && item.MultiApprovalStatus !== \"Complete\").length;\r\n obj.userDisplay = obj[vm.userDisplay];\r\n return obj;\r\n });\r\n\r\n vm.loadingGroupItems = false;\r\n\r\n }\r\n\r\n function selectedGroupChanged(object) {\r\n\r\n if (vm.selectedGroup === object || vm.processingItemStatus) return;\r\n vm.allFilteredUsers = null;\r\n vm.allTypes = null;\r\n vm.currentUsersPage = 1;\r\n vm.currentTypesPage = 1;\r\n\r\n let reviewType = vm.selectedReview.ReviewType;\r\n\r\n switch (reviewType) {\r\n case \"Risk\":\r\n vm.reviewDetailsSort = [\"RiskName\", \"UserName\"];\r\n break;\r\n case \"BusinessProcess\":\r\n vm.reviewDetailsSort = [\"BusinessProcessName\", \"UserName\"];\r\n break;\r\n case \"Product\":\r\n vm.reviewDetailsSort = [\"ProductName\", \"UserName\"];\r\n break;\r\n case \"SecurityRole\":\r\n vm.reviewDetailsSort = [\"SecurityRoleName\", \"UserName\"];\r\n break;\r\n }\r\n vm.selectedGroup = object;\r\n if (reviewType === 'SecurityRoleContent') {\r\n setupGroupBySecurityRoleTypeListview();\r\n } else {\r\n setupGroupByUserListview();\r\n }\r\n\r\n }\r\n\r\n function selectUser(object) {\r\n if (vm.processingItemStatus) return;\r\n vm.selectedUser = object;\r\n setupGroupByTypeListview();\r\n }\r\n\r\n // select user list-view\r\n async function setupGroupByUserListview() {\r\n if (vm.selectedGroup || vm.selectedUser) {\r\n await setupPermissions();\r\n filterUsers();\r\n vm.allItemStatus = checkAllStatus(vm.filteredUsers);\r\n }\r\n }\r\n\r\n async function setupGroupBySecurityRoleTypeListview() {\r\n if (vm.selectedGroup || vm.selectedUser) {\r\n await setupPermissions();\r\n vm.configValues = {\r\n showBPObject: vm.showRoleContentBPObject,\r\n showCAObject: vm.showRoleContentCAObject,\r\n showSelectAll: vm.showSelectAll\r\n }\r\n }\r\n }\r\n\r\n async function setupPermissions() {\r\n\r\n vm.loadingItems = true;\r\n\r\n let config = {};\r\n let values = await configurationDataService.getConfigurationValues();\r\n\r\n values.data.forEach(row => config[row.Name] = row.Value);\r\n\r\n vm.showSelectAll = config['Cert_AllowSelectAll'];\r\n vm.showBPObject = config['Cert_BusinessProcessObjects'];\r\n vm.showRoleContentBPObject = config['Cert_RoleContentBusinessProcessObjects'];\r\n vm.requireNotesOnRejectedItems = config['Cert_RequireNotesOnRejectedItems'] === '1' ? true : false;\r\n vm.loadingItems = false;\r\n }\r\n\r\n function filterUsers() {\r\n vm.loadingItems = true;\r\n let objects;\r\n\r\n if (vm.selectedGroup) {\r\n objects = vm.selectedGroup.Items;\r\n } else {\r\n objects = vm.selectedUser.Items;\r\n }\r\n\r\n vm.totalObjects = objects;\r\n\r\n vm.filteredUsers = objects;\r\n\r\n vm.filteredUsers.forEach(u => u.userDisplay = u[vm.userDisplay]);\r\n vm.usersRadioFilter = 'All';\r\n vm.showAssignedinAllCompaniesOnly = false;\r\n vm.loadingItems = false;\r\n vm.filteredUsers;\r\n }\r\n\r\n function changeSearchFilter() {\r\n $timeout(async _ => {\r\n vm.allItemStatus = checkAllStatus(vm.filteredUserItems);\r\n }, 1);\r\n }\r\n\r\n async function openNotesModal(item) {\r\n let itemNotesModal = $uibModal.open({\r\n templateUrl: 'App/Components/Certifications/MyReviews/notesModal/notesModal.tmpl.html',\r\n controller: notesModalController,\r\n controllerAs: 'nmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n reviewItem: () => item,\r\n notesRequired: () => vm.requireNotesOnRejectedItems,\r\n allowCancel: () => true\r\n }\r\n });\r\n\r\n try {\r\n let itemNotes = await itemNotesModal.result;\r\n item.Notes = itemNotes;\r\n updateItemStatus(item, true);\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function changeItemStatus(item) {\r\n if (vm.requireNotesOnRejectedItems && item.StatusId === 2) {\r\n let itemNotesModal = $uibModal.open({\r\n templateUrl: 'App/Components/Certifications/MyReviews/notesModal/notesModal.tmpl.html',\r\n controller: notesModalController,\r\n controllerAs: 'nmvm',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n reviewItem: () => item,\r\n notesRequired: () => vm.requireNotesOnRejectedItems,\r\n allowCancel: () => false\r\n }\r\n });\r\n\r\n try {\r\n let itemNotes = await itemNotesModal.result;\r\n item.Notes = itemNotes;\r\n } catch {\r\n return;\r\n }\r\n }\r\n let filteredUsers = vm.filteredUsers.slice();\r\n filteredUsers.remove(item);\r\n\r\n if (!item.Notes) { item.Notes = \"\" }\r\n\r\n updateItemStatus(item);\r\n }\r\n\r\n async function updateItemStatus(item, notesOnly) {\r\n vm.processingItemStatus = true;\r\n\r\n if (item.StatusId === null && item.MultiApprovalStatus === 'Complete' && !notesOnly) {\r\n // need to set multiapproval status back to pending since reviewer is resetting their action\r\n item.MultiApprovalStatus = 'Pending';\r\n }\r\n\r\n let putBody = {\r\n \"ReviewItems\": []\r\n };\r\n\r\n putBody.ReviewItems.push({\r\n \"HeaderId\": item.HeaderId,\r\n \"ItemId\": item.ItemId,\r\n \"Status\": item.StatusId,\r\n \"Notes\": item.Notes\r\n });\r\n\r\n await myReviewsDataService.updateItemStatus(item.HeaderId, vm.selectedReview.ReviewType, putBody);\r\n await vm.getReviews();\r\n getUpdatedRemainingReviewItems();\r\n vm.processingItemStatus = false;\r\n vm.allItemStatus = checkAllStatus(vm.filteredUserItems);\r\n }\r\n\r\n async function updateAllItemStatuses(newValue) {\r\n if (vm.selectedGroupingMethod.type === 'User') {\r\n filterUsers();\r\n }\r\n vm.processingItemStatus = true;\r\n\r\n let putBody = {\r\n \"ReviewItems\": []\r\n };\r\n\r\n let users = vm.filteredUserItems;\r\n\r\n if (users.every(user => user.StatusId === newValue)) {\r\n newValue = null;\r\n }\r\n\r\n // if they require notes for rejected items we need to capture notes and apply them to all the rejected items\r\n if (newValue === 2 && vm.requireNotesOnRejectedItems) {\r\n let itemNotesModal = $uibModal.open({\r\n templateUrl: 'App/Components/Certifications/MyReviews/notesModal/notesModal.tmpl.html',\r\n controller: notesModalController,\r\n controllerAs: 'nmvm',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n reviewItem: () => null,\r\n notesRequired: () => vm.requireNotesOnRejectedItems,\r\n allowCancel: () => false\r\n }\r\n });\r\n\r\n try {\r\n var itemNotes = await itemNotesModal.result;\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n let filteredUsers = [...users];\r\n\r\n if (vm.selfReviewConfigValue === '3') {\r\n filteredUsers = filteredUsers.filter(row => !row.IsSelfReview);\r\n }\r\n\r\n if (filteredUsers.length > 0) {\r\n\r\n filteredUsers.forEach(row => {\r\n if (row.MultiApprovalStatus === 'Complete' && row.StatusId === null) {\r\n return;\r\n }\r\n\r\n if (row.StatusId === null && row.MultiApprovalStatus === 'Complete' && newValue === null) {\r\n row.MultiApprovalStatus = 'Pending';\r\n }\r\n\r\n row.StatusId = newValue;\r\n\r\n putBody.ReviewItems.push({\r\n \"HeaderId\": row.HeaderId,\r\n \"ItemId\": row.ItemId,\r\n \"Status\": row.StatusId,\r\n \"Notes\": itemNotes ? itemNotes : row.Notes\r\n });\r\n if (itemNotes) {\r\n row.Notes = itemNotes;\r\n }\r\n });\r\n\r\n await myReviewsDataService.updateItemStatus(putBody.ReviewItems[0].HeaderId, vm.selectedReview.ReviewType, putBody);\r\n await vm.getReviews();\r\n getUpdatedRemainingReviewItems();\r\n vm.processingItemStatus = false;\r\n vm.allItemStatus = checkAllStatus(vm.filteredUserItems);\r\n } else {\r\n helperService.showErrorMessage(\"None of the selected items are eligible for review.\");\r\n vm.allItemStatus = checkAllStatus(vm.filteredUserItems);\r\n vm.processingItemStatus = false;\r\n }\r\n }\r\n\r\n function updateItemNote(item) {\r\n updateItemStatus(item);\r\n }\r\n\r\n async function getUpdatedRemainingReviewItems() {\r\n if (vm.selectedGroup) {\r\n buildTypeList(vm.selectedReviewGroups);\r\n } else if (vm.selectedUser) {\r\n buildUserList(vm.users);\r\n }\r\n toggleReviews(vm.showAll);\r\n }\r\n\r\n // select type list-view\r\n async function setupGroupByTypeListview() {\r\n await setupPermissions();\r\n vm.typesRadioFilter = 'All';\r\n vm.allItemStatus = checkAllStatus(vm.selectedUser.Items);\r\n }\r\n\r\n\r\n async function changeTypeItemStatus(item) {\r\n if (vm.requireNotesOnRejectedItems && item.StatusId === 2) {\r\n let itemNotesModal = $uibModal.open({\r\n templateUrl: 'App/Components/Certifications/MyReviews/notesModal/notesModal.tmpl.html',\r\n controller: notesModalController,\r\n controllerAs: 'nmvm',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n reviewItem: () => item,\r\n notesRequired: () => vm.requireNotesOnRejectedItems,\r\n allowCancel: () => false\r\n }\r\n });\r\n\r\n try {\r\n let itemNotes = await itemNotesModal.result;\r\n item.Notes = itemNotes;\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n const types = vm.selectedUser.Items.slice();\r\n types.remove(item);\r\n\r\n if (!item.Notes) { item.Notes = \"\" }\r\n\r\n updateItemStatus(item);\r\n vm.allItemStatus = checkAllStatus(vm.selectedUser.Items);\r\n\r\n }\r\n\r\n async function openDelegateModal(delegationContext) {\r\n vm.delegatePending = true;\r\n let delegationItems = [];\r\n if (delegationContext.Types) {\r\n delegationItems = delegationContext.Types.filter(type => type.StatusId === null);\r\n } else if (delegationContext.Items) {\r\n delegationItems = delegationContext.Items.filter(item => item.StatusId === null);\r\n } else if (delegationContext.items) {\r\n delegationItems = delegationContext.items.filter(item => item.StatusId === null);\r\n } else {\r\n let response = await myReviewsDataService.getReviewDetails(delegationContext.ReviewType, delegationContext.HeaderId, \"ReviewType\");\r\n response = response.reduce((acc, curr) => {\r\n if (curr.Items) {\r\n return acc.concat(curr.Items);\r\n } else {\r\n return acc.concat(curr.items);\r\n }\r\n }, []);\r\n delegationItems = response.filter(detail => detail.StatusId === null);\r\n }\r\n\r\n let delegateModal = $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/MyReviews/DelegationModal/reviewDelegationModal.html',\r\n controller: reviewDelegationModalController,\r\n controllerAs: 'rdmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n delegationItems: () => delegationItems,\r\n reviewHeaderId: () => delegationContext.HeaderId ? delegationContext.HeaderId : vm.selectedReview.HeaderId,\r\n reviewType: () => delegationContext.ReviewType ? delegationContext.ReviewType : vm.selectedReview.ReviewType\r\n }\r\n });\r\n\r\n try {\r\n await delegateModal.result;\r\n vm.delegatePending = false;\r\n } catch { vm.delegatePending = false; }\r\n }\r\n\r\n function radioFilterChanged() {\r\n $timeout(async _ => {\r\n vm.allItemStatus = checkAllStatus(vm.filteredUserItems);\r\n }, 1);\r\n }\r\n\r\n function checkAllStatus(reviewItems) {\r\n if (reviewItems.length > 0) {\r\n if (reviewItems.every(item => item.StatusId === 1)) {\r\n return '1';\r\n } else if (reviewItems.every(item => item.StatusId === 2)) {\r\n return '2';\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n async function updateReviewCounts() {\r\n await vm.getReviews();\r\n getUpdatedRemainingReviewItems();\r\n }\r\n\r\n async function openTicketModal(review) {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/MyReviews/TicketModal/ticketModal.tmpl.html',\r\n controller: ticketModalController,\r\n controllerAs: 'tmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n review: () => review\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { customAutoCompleteFilter, customBooleanFilter, standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\nimport notesModalController from \"../notesModal/notesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (category, configValues, reviewStatus, requireNotes, $uibModalInstance, $uibModal, $timeout, myReviewsDataService) {\r\n const vm = this;\r\n vm.category = category;\r\n vm.configValues = configValues;\r\n vm.reviewStatus = reviewStatus;\r\n vm.requireNotes = requireNotes;\r\n\r\n vm.filterCheckAllStatus = filterCheckAllStatus;\r\n vm.checkAllStatus = checkAllStatus;\r\n vm.changeItemStatus = changeItemStatus;\r\n vm.updateAllItemStatuses = updateAllItemStatuses;\r\n vm.openNotesModal = openNotesModal;\r\n vm.close = close;\r\n\r\n activate();\r\n\r\n function activate() {\r\n vm.securityRoleName = category.Items[0].SecurityRoleName;\r\n vm.categoryType = category.Items[0].RoleContentType;\r\n setupFilterTypes();\r\n vm.itemsRadioFilter = 'All';\r\n vm.allItemStatus = checkAllStatus(vm.filteredReviewItems);\r\n }\r\n\r\n function setupFilterTypes() {\r\n switch (vm.categoryType) {\r\n case 'BusinessProcess':\r\n vm.reviewitemsSortKey = ['BusinessProcessName'];\r\n vm.reviewItemsFilterKey = ['BusinessProcessName', 'RulesetName', 'SecurityRoleName', 'SecurityObjectAltName', 'SecurityObjectName', 'SecurityObjectTypeName', 'Notes'];\r\n break;\r\n case 'Risk':\r\n vm.reviewitemsSortKey = ['RiskName'];\r\n vm.reviewItemsFilterKey = ['RiskName', 'RulesetName', 'SecurityRoleName', 'Notes'];\r\n break;\r\n case 'RoleAccess':\r\n vm.reviewitemsSortKey = ['SecurityObjectAltName'];\r\n vm.reviewItemsFilterKey = ['SecurityObjectAltName', 'SecurityObjectName', 'Notes'];\r\n break;\r\n }\r\n }\r\n\r\n function filterCheckAllStatus() {\r\n $timeout(_ => {\r\n vm.allItemStatus = checkAllStatus(vm.filteredReviewItems);\r\n if (vm.filteredReviewItems.length === 0) {\r\n vm.hideSelectAll = true;\r\n } else {\r\n vm.hideSelectAll = false;\r\n }\r\n }, 1);\r\n }\r\n\r\n function checkAllStatus(reviewItems) {\r\n if (!reviewItems) {\r\n reviewItems = vm.category.Items;\r\n }\r\n if (reviewItems.length > 0) {\r\n if (reviewItems.every(item => item.StatusId === 1)) {\r\n return '1';\r\n } else if (reviewItems.every(item => item.StatusId === 2)) {\r\n return '2';\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n async function changeItemStatus(item) {\r\n if (requireNotes && item.StatusId === 2) {\r\n let itemNotesModal = $uibModal.open({\r\n templateUrl: 'App/Components/Certifications/MyReviews/notesModal/notesModal.tmpl.html',\r\n controller: notesModalController,\r\n controllerAs: 'nmvm',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n reviewItem: () => item,\r\n notesRequired: () => requireNotes,\r\n allowCancel: () => false\r\n }\r\n });\r\n\r\n try {\r\n let itemNotes = await itemNotesModal.result;\r\n item.Notes = itemNotes;\r\n } catch {\r\n return;\r\n }\r\n }\r\n const types = category.Items.slice();\r\n types.remove(item);\r\n\r\n updateItemStatus(item);\r\n }\r\n\r\n async function updateItemStatus(item) {\r\n vm.processingItemStatus = true;\r\n\r\n if (!item.StatusId && item.MultiApprovalStatus === 'Complete') {\r\n item.MultiApprovalStatus = 'Pending';\r\n }\r\n\r\n let putBody = {\r\n \"ReviewItems\": []\r\n };\r\n\r\n putBody.ReviewItems.push({\r\n \"HeaderId\": item.HeaderId,\r\n \"ItemId\": item.ItemId,\r\n \"Status\": item.StatusId,\r\n \"Notes\": item.Notes\r\n });\r\n\r\n await myReviewsDataService.updateItemStatus(item.HeaderId, 'SecurityRoleContent', putBody);\r\n vm.processingItemStatus = false;\r\n vm.allItemStatus = checkAllStatus(vm.filteredReviewItems);\r\n }\r\n\r\n async function updateAllItemStatuses(newValue) {\r\n vm.processingItemStatus = true;\r\n\r\n let putBody = {\r\n \"ReviewItems\": []\r\n };\r\n\r\n let items = vm.filteredReviewItems;\r\n\r\n if (items.every(item => item.StatusId === newValue)) {\r\n newValue = null;\r\n }\r\n\r\n // if they require notes for rejected items we need to capture notes and apply them to all the rejected items\r\n if (newValue === 2 && requireNotes) {\r\n let itemNotesModal = $uibModal.open({\r\n templateUrl: 'App/Components/Certifications/MyReviews/notesModal/notesModal.tmpl.html',\r\n controller: notesModalController,\r\n controllerAs: 'nmvm',\r\n backdrop: 'static',\r\n keyboard: false,\r\n resolve: {\r\n reviewItem: () => null,\r\n notesRequired: () => requireNotes,\r\n allowCancel: () => false\r\n }\r\n });\r\n\r\n try {\r\n var itemNotes = await itemNotesModal.result;\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n items.forEach(item => {\r\n if (item.MultiApprovalStatus !== 'Complete') {\r\n item.StatusId = newValue;\r\n if (itemNotes) {\r\n item.Notes = itemNotes;\r\n }\r\n putBody.ReviewItems.push({\r\n \"HeaderId\": item.HeaderId,\r\n \"ItemId\": item.ItemId,\r\n \"Status\": item.StatusId,\r\n \"Notes\": item.Notes\r\n });\r\n }\r\n });\r\n\r\n await myReviewsDataService.updateItemStatus(putBody.ReviewItems[0].HeaderId, 'SecurityRoleContent', putBody);\r\n vm.allItemStatus = checkAllStatus(vm.filteredReviewItems);\r\n vm.processingItemStatus = false;\r\n }\r\n\r\n async function openNotesModal(item) {\r\n let itemNotesModal = $uibModal.open({\r\n templateUrl: 'App/Components/Certifications/MyReviews/notesModal/notesModal.tmpl.html',\r\n controller: notesModalController,\r\n controllerAs: 'nmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n reviewItem: () => item,\r\n notesRequired: () => requireNotes,\r\n allowCancel: () => true\r\n }\r\n });\r\n\r\n try {\r\n let itemNotes = await itemNotesModal.result;\r\n item.Notes = itemNotes;\r\n updateItemStatus(item);\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n}","import roleContentReviewModalController from \"./roleContentReviewModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit, vm.$onChanges = activate;\r\n\r\n vm.openReviewModal = openReviewModal;\r\n\r\n\r\n function activate() {\r\n if (!vm.securityRole.items) { return; }\r\n vm.reviewItemCategories = vm.securityRole.items.reduce((categories, item) => {\r\n let existingIndex = categories.findIndex(category => category.Name === item.RoleContentType);\r\n if (existingIndex === -1) {\r\n categories.push({ Name: item.RoleContentType, Items: [item] });\r\n } else {\r\n categories[existingIndex].Items.push(item);\r\n }\r\n return categories;\r\n }, []);\r\n getCounts(vm.reviewItemCategories);\r\n }\r\n\r\n function getCounts(array) {\r\n array.forEach(item => { \r\n item.ApprovedCount = item.Items.filter(i => i.StatusId === 1).length;\r\n item.RejectedCount = item.Items.filter(i => i.StatusId === 2).length;\r\n item.NotReviewedCount = item.Items.filter(i => !i.StatusId).length;\r\n item.ReviewedByOthersCount = item.Items.filter(i => i.MultiApprovalStatus === 'Complete').length;\r\n });\r\n }\r\n\r\n async function openReviewModal(category) {\r\n let reviewModal = $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/MyReviews/SecurityRoleContentItemsList/roleContentReviewModal.tmpl.html',\r\n controller: roleContentReviewModalController,\r\n controllerAs: 'rcrmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n category: () => category,\r\n configValues: () => vm.configValues,\r\n reviewStatus: () => vm.reviewStatus,\r\n requireNotes: () => vm.requireNotes\r\n }\r\n });\r\n\r\n try {\r\n await reviewModal.result;\r\n vm.updateReviewCounts();\r\n } catch {\r\n return;\r\n }\r\n }\r\n}","/* securityRoleContentItemsList.component.js */\r\n\r\nimport securityRoleContentItemsListController from \"./securityRoleContentItemsList.controller\";\r\n\r\n/**\r\n * @desc component for displaying and reviewing items for a Security Role Content Review Type\r\n * @example \r\n */\r\n\r\nconst securityRoleContentItemsList = {\r\n bindings: {\r\n securityRole: '<',\r\n configValues: '<',\r\n updateReviewCounts: '&',\r\n reviewStatus: '<',\r\n requireNotes: '<'\r\n },\r\n controller: securityRoleContentItemsListController,\r\n controllerAs: 'srcilvm',\r\n templateUrl: '/App/Components/Certifications/MyReviews/SecurityRoleContentItemsList/securityRoleContentItemsList.tmpl.html'\r\n};\r\n\r\nexport default securityRoleContentItemsList;","import { customAutoCompleteFilter, customAutoCompleteFilterEqualToOnly, customDatePickerFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($http, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.removeIMRequestTicketLink = removeIMRequestTicketLink;\r\n vm.openTicketTable = openTicketTable;\r\n vm.createLink = createLink;\r\n vm.showLinkTicketBody = false;\r\n\r\n vm.isJira = false;\r\n vm.isServiceNow = false;\r\n vm.isZendesk = false;\r\n vm.isCustom = false;\r\n vm.url = null;\r\n vm.existingTickets = false;\r\n\r\n vm.$onInit = activate;\r\n\r\n function activate() {\r\n if (vm.isModify) {\r\n vm.existingTickets = true;\r\n vm.tickets.forEach(async ticket => await openTicketTable(ticket));\r\n } else {\r\n vm.linkedTickets = vm.tickets;\r\n }\r\n\r\n vm.existingTickets = false;\r\n }\r\n\r\n async function openTicketTable(ticket) {\r\n let ticketType;\r\n if (vm.existingTickets) {\r\n ticketType = ticket.TicketProvider;\r\n } else {\r\n ticketType = ticket;\r\n }\r\n vm.showLinkTicketBody = true;\r\n switch (ticketType) {\r\n case 'Jira':\r\n vm.isJira = true;\r\n vm.url = 'api/core/tickets/jira/search/';\r\n vm.template = `Link`;\r\n vm.isFreshservice = false;\r\n vm.isServiceNow = false;\r\n vm.isZendesk = false;\r\n vm.isCustom = false;\r\n if (vm.existingTickets) {\r\n await createLink(ticket);\r\n } else {\r\n await updateTicketGrid();\r\n }\r\n break;\r\n case 'Freshservice':\r\n vm.isFreshservice = true;\r\n vm.daysToSearch = '30';\r\n vm.url = 'api/core/tickets/freshservice/search/';\r\n vm.template = `Link`;\r\n vm.isJira = false;\r\n vm.isServiceNow = false;\r\n vm.isZendesk = false;\r\n vm.isCustom = false;\r\n if (vm.existingTickets) {\r\n await createLink(ticket);\r\n } else {\r\n await updateTicketGrid();\r\n }\r\n break;\r\n case 'ServiceNow':\r\n vm.isServiceNow = true;\r\n vm.url = 'api/core/tickets/servicenow/search/';\r\n vm.template = `Link`;\r\n vm.isJira = false;\r\n vm.isFreshservice = false;\r\n vm.isZendesk = false;\r\n vm.isCustom = false;\r\n if (vm.existingTickets) {\r\n await createLink(ticket);\r\n } else {\r\n await updateTicketGrid();\r\n }\r\n break;\r\n case 'Zendesk':\r\n vm.isZendesk = true;\r\n vm.url = 'api/core/tickets/zendesk/search/';\r\n vm.template = `Link`;\r\n vm.isJira = false;\r\n vm.isFreshservice = false;\r\n vm.isServiceNow = false;\r\n vm.isCustom = false;\r\n if (vm.existingTickets) {\r\n await createLink(ticket);\r\n } else {\r\n await updateTicketGrid();\r\n }\r\n break;\r\n case 'Custom':\r\n vm.isCustom = true;\r\n vm.url = null;\r\n vm.isJira = false;\r\n vm.isFreshservice = false;\r\n vm.isServiceNow = false;\r\n vm.isZendesk = false;\r\n if (vm.existingTickets) {\r\n await createLink(ticket);\r\n }\r\n default:\r\n return;\r\n\r\n }\r\n }\r\n\r\n //set columns as they are all the same \r\n function updateTicketGrid() {\r\n let statusTemplate = \"{{dataItem.Status}}\";\r\n\r\n let columnsFromVM = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { title: ' ', width: 90, template: vm.template }\r\n ];\r\n\r\n vm.gridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n vm.gridOptions.selectable = false;\r\n vm.gridOptions.pageable = false;\r\n vm.gridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n\r\n vm.gridDataSource.read();\r\n }\r\n\r\n if (!vm.isCustom) {\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async function (options) {\r\n let sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n let postBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n\r\n try {\r\n let response = await $http.post(apiUrl + vm.url, postBody);\r\n vm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function createLink(dataItem) {\r\n if (!vm.linkedTickets) vm.linkedTickets = [];\r\n let linkedTicket = {};\r\n\r\n if (vm.existingTickets) { dataItem.Id = dataItem.TicketId };\r\n\r\n if (vm.isJira) {\r\n linkedTicket.TicketId = dataItem.Id;\r\n linkedTicket.TicketProvider = 'Jira';\r\n vm.jiraTicketLinked = true;\r\n }\r\n else if (vm.isFreshservice) {\r\n linkedTicket.TicketId = dataItem.Id;\r\n linkedTicket.TicketProvider = 'Freshservice';\r\n vm.freshServiceTicketLinked = true;\r\n }\r\n else if (vm.isServiceNow) {\r\n linkedTicket.TicketId = dataItem.Id;\r\n linkedTicket.TicketProvider = 'ServiceNow';\r\n vm.serviceNowTicketLinked = true;\r\n }\r\n else if (vm.isZendesk) {\r\n linkedTicket.TicketId = dataItem.Id;\r\n linkedTicket.TicketProvider = 'Zendesk';\r\n vm.zendeskTicketLinked = true;\r\n } else if (vm.isCustom) {\r\n linkedTicket.TicketId = vm.customTicketId ? vm.customTicketId : dataItem.Id;\r\n linkedTicket.TicketProvider = 'Custom';\r\n vm.customTicketLinked = true;\r\n }\r\n\r\n vm.linkedTickets.push(linkedTicket);\r\n\r\n if (dataItem) {\r\n dataItem.isLinked = true;\r\n }\r\n\r\n vm.showLinkTicketBody = false;\r\n\r\n let ticket = linkedTicket;\r\n\r\n if (!vm.existingTickets) { vm.onUpdateTicket({ ticket }); }\r\n };\r\n\r\n // Remove a ticket\r\n function removeIMRequestTicketLink(providerString) {\r\n vm.linkedTickets = vm.linkedTickets.filter(ticket => ticket.TicketProvider !== providerString);\r\n\r\n if (providerString === 'Jira') vm.jiraTicketLinked = false;\r\n else if (providerString === 'Freshservice') vm.freshServiceTicketLinked = false;\r\n else if (providerString === 'ServiceNow') vm.serviceNowTicketLinked = false;\r\n else if (providerString === 'Zendesk') vm.zendeskTicketLinked = false;\r\n else if (providerString === 'Custom') vm.customTicketLinked = false; vm.customTicketId = '';\r\n\r\n vm.onRemoveTicket({ providerString });\r\n }\r\n\r\n}","/* linkTicketsDropdown.component.js */\r\n\r\nimport linkTicketsDropdownController from \"./linkTicketsDropdown.controller\";\r\n\r\n/**\r\n * @desc component for the Link Tickets dropdown\r\n * @example \r\n */\r\n\r\nconst linkTicketsDropdown = {\r\n bindings: {\r\n tickets: '<',\r\n onUpdateTicket: '&',\r\n onRemoveTicket: '&',\r\n isModify: '<'\r\n },\r\n controller: linkTicketsDropdownController,\r\n controllerAs: 'ltdvm',\r\n templateUrl: 'App/Components/Certifications/LinkTickets/linkTicketsDropdown.tmpl.html'\r\n};\r\n\r\nexport default linkTicketsDropdown;","import createSpinner from \"../../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, $uibModalInstance, helperService, reviewSchedulesDataService, scheduleData) {\r\n\r\n const vm = this;\r\n vm.ReviewInstance = scheduleData.selectedReviewInstance;\r\n vm.scheduleType = scheduleData.scheduleType;\r\n\r\n vm.daysInMonth = helperService.getDayOfMonthDropdownOptions();\r\n vm.months = helperService.getMonthsDropdownOptions();\r\n vm.frequencyTypesDataSource = [{ Name: 'Full', Id: 'Full' }, { Name: 'Rolling', Id: 'Rolling' }];\r\n vm.saveSchedule = saveSchedule;\r\n vm.cancel = cancel;\r\n\r\n vm.frequencyDataSource = [\r\n { Name: 'Monthly', Id: 'Monthly' },\r\n { Name: 'Quarterly', Id: 'Quarterly' },\r\n { Name: 'Semi Annually', Id: 'SemiAnnually' },\r\n { Name: 'Yearly', Id: 'Yearly' }];\r\n\r\n activate();\r\n\r\n function activate() {\r\n setUpForm();\r\n }\r\n\r\n\r\n function setUpForm() {\r\n //Load data for existing schedule\r\n if (scheduleData.selectedSchedule) {\r\n vm.ReviewInstanceId = scheduleData.selectedReviewInstance.Id\r\n vm.Frequency = vm.frequencyDataSource.find(function (object) { return object.Name === scheduleData.selectedSchedule.Frequency.replace(/([a-z])([A-Z])/g, '$1 $2'); });\r\n vm.FrequencyType = vm.frequencyTypesDataSource.find(function (object) { return object.Id === scheduleData.selectedSchedule.FrequencyType; });\r\n vm.Month = scheduleData.selectedSchedule.Month;\r\n vm.DayOfMonth = scheduleData.selectedSchedule.DayOfMonth;\r\n } else {\r\n //Load Data for new schedule\r\n vm.ReviewInstanceId = scheduleData.selectedReviewInstance.Id\r\n vm.FrequencyType = vm.frequencyTypesDataSource.find(function (object) { return object.Id === scheduleData.selectedFrequencyType; });\r\n }\r\n }\r\n\r\n function saveSchedule() {\r\n vm.pleaseWait = new createSpinner();\r\n if (scheduleData.selectedSchedule) {\r\n updateSchedule();\r\n } else {\r\n createSchedule();\r\n }\r\n }\r\n\r\n async function createSchedule() {\r\n const postData = {\r\n \"ReviewInstanceId\": vm.ReviewInstanceId,\r\n \"FrequencyType\": vm.FrequencyType.Id,\r\n \"Frequency\": vm.Frequency.Id,\r\n \"TimeZone\": $rootScope.applicationTimeZone,\r\n \"DayOfMonth\": vm.DayOfMonth,\r\n \"Month\": vm.Month\r\n };\r\n\r\n try {\r\n await reviewSchedulesDataService.createSchedule(postData);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n vm.disableSubmit = false;\r\n }\r\n };\r\n\r\n async function updateSchedule() {\r\n const putData = {\r\n \"Id\": scheduleData.selectedSchedule.Id,\r\n \"FrequencyType\": vm.FrequencyType.Id,\r\n \"Frequency\": vm.Frequency.Id,\r\n \"TimeZone\": $rootScope.applicationTimeZone,\r\n \"DayOfMonth\": vm.DayOfMonth,\r\n \"Month\": vm.Month\r\n };\r\n\r\n try {\r\n await reviewSchedulesDataService.updateSchedule(scheduleData.selectedSchedule.Id, putData);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n vm.disableSubmit = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n };\r\n}\r\n","import createSpinner from \"../../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (reviewAssignmentsDataService, $uibModalInstance, helperService) {\r\n const vm = this;\r\n vm.cancel = cancel;\r\n vm.dismiss = dismiss;\r\n vm.disableButton = false;\r\n vm.importSchedules = importSchedules;\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n function dismiss() { $uibModalInstance.dismiss(); }\r\n\r\n // Import Schedules\r\n async function importSchedules(file) {\r\n vm.importPending = new createSpinner();\r\n vm.disableButton = true;\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n try {\r\n await reviewAssignmentsDataService.importReviews(fd);\r\n await helperService.successfulSaveButton(vm.importPending);\r\n cancel();\r\n } catch {\r\n vm.importPending.loadingValue = false;\r\n vm.disableButton = false;\r\n }\r\n }\r\n}","import createSpinner from \"../../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (reviewSchedulesDataService, reviewAssignmentsDataService, $uibModalInstance, schedule, isClone, helperService) {\r\n const vm = this;\r\n vm.isClone = isClone;\r\n\r\n vm.saveSchedule = saveSchedule;\r\n vm.dismiss = dismiss;\r\n\r\n vm.schedule = { ...schedule };\r\n\r\n activate();\r\n\r\n function activate() {\r\n if (isClone) {\r\n vm.scheduleInstanceId = vm.schedule.Id;\r\n vm.schedule = {};\r\n } else {\r\n getReviewTypes();\r\n }\r\n }\r\n\r\n async function getReviewTypes() {\r\n const response = await reviewAssignmentsDataService.getReviewTypes();\r\n vm.scheduleTypesDataSource = response.data;\r\n }\r\n\r\n async function saveSchedule() {\r\n vm.saveInProgress = new createSpinner();\r\n let scheduleInstance = {\r\n Name: vm.schedule.Name,\r\n Description: vm.schedule.Description,\r\n ReviewType: vm.schedule.ReviewType,\r\n IncludeSupervisorReviews: vm.schedule.IncludeSupervisorReviews,\r\n IncludeCompanyInReviews: vm.schedule.IncludeCompanyInReviews\r\n }\r\n if (vm.schedule.Id && !isClone) {\r\n updateScheduleInstance(scheduleInstance);\r\n } else if (isClone) {\r\n cloneScheduleInstance(scheduleInstance);\r\n }\r\n else {\r\n createScheduleInstance(scheduleInstance);\r\n }\r\n }\r\n\r\n async function createScheduleInstance(scheduleInstance) {\r\n try {\r\n const response = await reviewSchedulesDataService.createInstance(scheduleInstance)\r\n await helperService.successfulSaveButton(vm.saveInProgress);\r\n close(response.data);\r\n } catch {\r\n vm.saveInProgress.loadingValue = false;\r\n }\r\n \r\n }\r\n\r\n async function cloneScheduleInstance(scheduleInstance) {\r\n scheduleInstance.ReviewInstanceId = vm.scheduleInstanceId;\r\n\r\n try {\r\n const response = await reviewSchedulesDataService.cloneInstance(scheduleInstance)\r\n await helperService.successfulSaveButton(vm.saveInProgress);\r\n close(response.data);\r\n } catch {\r\n vm.saveInProgress.loadingValue = false;\r\n }\r\n\r\n }\r\n\r\n async function updateScheduleInstance(scheduleInstance) {\r\n scheduleInstance.Id = vm.schedule.Id;\r\n scheduleInstance.ReviewType = schedule.ReviewType;\r\n try {\r\n await reviewSchedulesDataService.updateInstance(scheduleInstance)\r\n await helperService.successfulSaveButton(vm.saveInProgress);\r\n close();\r\n } catch {\r\n vm.saveInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n function close(newInstanceId) {\r\n $uibModalInstance.close(newInstanceId);\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport scheduleModalController from \"./scheduleModal/scheduleModal.controller\";\r\nimport importSchedulesModalController from \"./importSchedulesModal/importSchedulesModal.controller\";\r\nimport scheduleInstanceModalController from \"./scheduleInstanceModal/scheduleInstanceModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (reviewSchedulesDataService, reviewAssignmentsDataService, helperService, $uibModal, $filter, FileSaver) {\r\n const vm = this;\r\n\r\n vm.openScheduleModal = openScheduleModal;\r\n vm.openScheduleInstanceModal = openScheduleInstanceModal;\r\n vm.openImportReviewSchedulesModal = openImportReviewSchedulesModal;\r\n vm.deleteScheduleInstance = deleteScheduleInstance;\r\n vm.deleteInstanceSchedule = deleteInstanceSchedule;\r\n vm.selectedReviewScheduleChanged = selectedReviewScheduleChanged;\r\n vm.runSchedule = runSchedule;\r\n vm.exportReviews = exportReviews;\r\n\r\n vm.reviewScheduleMenuOptions = [\r\n {\r\n text: 'Clone',\r\n click: item => {\r\n vm.openScheduleInstanceModal(item.reviewSchedule, true);\r\n }\r\n },\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n vm.openScheduleInstanceModal(item.reviewSchedule, false);\r\n }\r\n },\r\n {\r\n text: 'Full Review...',\r\n children: _ => {\r\n return [\r\n {\r\n text: 'Schedule',\r\n click: item => {\r\n vm.openScheduleModal(item.reviewSchedule, \"Full\");\r\n },\r\n displayed: item => {\r\n return !item.reviewSchedule.FullSchedule;\r\n }\r\n },\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n vm.openScheduleModal(item.reviewSchedule, \"Full\");\r\n },\r\n displayed: item => {\r\n return item.reviewSchedule.FullSchedule;\r\n }\r\n },\r\n {\r\n text: 'Run Now',\r\n click: item => {\r\n vm.runSchedule(item.reviewSchedule.FullSchedule.Id);\r\n swal(\"\", `The ${item.reviewSchedule.Name} review has been initiated. Reviewers will be notified of their review items soon.`, 'success');\r\n },\r\n displayed: item => {\r\n return item.reviewSchedule.FullSchedule;\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.deleteInstanceSchedule(item.reviewSchedule.FullSchedule.Id);\r\n },\r\n displayed: item => {\r\n return item.reviewSchedule.FullSchedule;\r\n }\r\n }\r\n ];\r\n }\r\n },\r\n {\r\n text: 'Rolling Review...',\r\n children: _ => {\r\n return [\r\n {\r\n text: 'Schedule',\r\n click: item => {\r\n vm.openScheduleModal(item.reviewSchedule, \"Rolling\");\r\n },\r\n displayed: item => {\r\n return !item.reviewSchedule.RollingSchedule;\r\n }\r\n },\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n vm.openScheduleModal(item.reviewSchedule, \"Rolling\");\r\n },\r\n displayed: item => {\r\n return item.reviewSchedule.RollingSchedule;\r\n }\r\n },\r\n {\r\n text: 'Run Now',\r\n click: item => {\r\n vm.runSchedule(item.reviewSchedule.RollingSchedule.Id);\r\n swal(\"\", `The ${item.reviewSchedule.Name} review has been initiated. Reviewers will be notified of their review items soon.`, 'success');\r\n },\r\n displayed: item => {\r\n return item.reviewSchedule.RollingSchedule;\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.deleteInstanceSchedule(item.reviewSchedule.RollingSchedule.Id);\r\n },\r\n displayed: item => {\r\n return item.reviewSchedule.RollingSchedule;\r\n }\r\n }\r\n ];\r\n },\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.deleteScheduleInstance(item.reviewSchedule);\r\n }\r\n }\r\n ]\r\n\r\n vm.$onInit = getScheduleInstances;\r\n\r\n async function getScheduleInstances() {\r\n vm.loadingReviewSchedules = true;\r\n let response = await reviewSchedulesDataService.getInstances();\r\n vm.reviewSchedules = response.data.reduce((schedulesArray, schedule) => {\r\n schedule.FullSchedule = schedule.Schedules.find(s => s.FrequencyType === 'Full');\r\n schedule.RollingSchedule = schedule.Schedules.find(s => s.FrequencyType === 'Rolling');\r\n return schedulesArray;\r\n }, []);\r\n vm.reviewSchedules = $filter('orderBy')(response.data, 'Name');\r\n vm.loadingReviewSchedules = false;\r\n }\r\n\r\n async function openScheduleModal(scheduleInstance, frequencyType) {\r\n let scheduleData,\r\n existingSchedule = frequencyType === 'Full' ? scheduleInstance.FullSchedule : scheduleInstance.RollingSchedule;\r\n if (existingSchedule) {\r\n scheduleData = {\r\n selectedSchedule: existingSchedule,\r\n scheduleType: 'Edit',\r\n selectedReviewInstance: scheduleInstance\r\n }\r\n } else {\r\n scheduleData = {\r\n selectedSchedule: null,\r\n scheduleType: 'Create',\r\n selectedReviewInstance: scheduleInstance,\r\n selectedFrequencyType: frequencyType\r\n };\r\n }\r\n let scheduleModal = $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/reviewSchedules/reviewScheduleInstancesList/scheduleModal/scheduleModal.html',\r\n controller: scheduleModalController,\r\n controllerAs: 'smvm',\r\n backdrop: 'static',\r\n resolve: {\r\n scheduleData: () => scheduleData\r\n }\r\n });\r\n\r\n try {\r\n await scheduleModal.result;\r\n await getScheduleInstances();\r\n } catch (dismiss) { return; }\r\n }\r\n\r\n async function openScheduleInstanceModal(schedule, isClone) {\r\n let scheduleInstanceModal = $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/reviewSchedules/reviewScheduleInstancesList/scheduleInstanceModal/scheduleInstanceModal.tmpl.html',\r\n controller: scheduleInstanceModalController,\r\n controllerAs: 'simvm',\r\n backdrop: 'static',\r\n resolve: {\r\n schedule: () => schedule || null,\r\n isClone: () => isClone\r\n }\r\n });\r\n\r\n try {\r\n let newInstanceId = await scheduleInstanceModal.result;\r\n await getScheduleInstances();\r\n if (newInstanceId) {\r\n sendNewScheduleInstanceToTop(newInstanceId);\r\n selectedReviewScheduleChanged(vm.reviewSchedules.find(schedule => schedule.Id === newInstanceId));\r\n }\r\n } catch (dismiss) { return; }\r\n }\r\n\r\n async function openImportReviewSchedulesModal() {\r\n let importReviewSchedulesModal = $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/reviewSchedules/reviewScheduleInstancesList/importSchedulesModal/importSchedulesModal.tmpl.html',\r\n controller: importSchedulesModalController,\r\n controllerAs: 'ismvm',\r\n backdrop: 'static'\r\n });\r\n\r\n try {\r\n await importReviewSchedulesModal.result;\r\n getScheduleInstances();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function selectedReviewScheduleChanged(schedule) {\r\n vm.selectedScheduleInstance = schedule;\r\n vm.onSelectSchedule({ schedule });\r\n }\r\n\r\n function sendNewScheduleInstanceToTop(newInstanceId) {\r\n vm.selectedScheduleInstance = vm.reviewSchedules.find(schedule => schedule.Id === newInstanceId);\r\n vm.reviewSchedules = vm.reviewSchedules.filter(schedule => schedule.Id !== newInstanceId);\r\n vm.reviewSchedules.unshift(vm.selectedScheduleInstance);\r\n }\r\n\r\n async function deleteScheduleInstance(scheduleInstance) {\r\n await swal(helperService.areYouSureParams('Delete Review Schedule', `Are you sure you want to delete Review Schedule ${scheduleInstance.Name}?`, 'Delete'));\r\n await reviewSchedulesDataService.deleteInstance(scheduleInstance.Id);\r\n if (vm.selectedScheduleInstance && vm.selectedScheduleInstance.Id === scheduleInstance.Id) {\r\n selectedReviewScheduleChanged(null);\r\n }\r\n getScheduleInstances();\r\n }\r\n\r\n async function deleteInstanceSchedule(instanceScheduleId) {\r\n vm.processingReviewSchedules = true;\r\n try {\r\n await reviewSchedulesDataService.deleteInstanceSchedule(instanceScheduleId);\r\n vm.processingReviewSchedules = false;\r\n } catch {\r\n vm.processingReviewSchedules = false;\r\n }\r\n \r\n getScheduleInstances();\r\n }\r\n\r\n async function runSchedule(id) {\r\n vm.processingReviewSchedules = true;\r\n try {\r\n await reviewSchedulesDataService.runSchedule(id);\r\n vm.processingReviewSchedules = false;\r\n } catch {\r\n vm.processingReviewSchedules = false;\r\n }\r\n }\r\n\r\n async function exportReviews() {\r\n vm.exportUpdatePending = new createSpinner();\r\n\r\n let response = await reviewAssignmentsDataService.exportReviews();\r\n FileSaver.saveAs(response.data, 'ReviewSchedules.xlsx');\r\n vm.exportUpdatePending.loadingValue = false;\r\n }\r\n}","/* reviewScheduleInstancesList.component.js */\r\n\r\nimport reviewScheduleInstancesListController from \"./reviewScheduleInstancesList.controller\";\r\n\r\n/**\r\n * @desc component for viewing and managing access certifications review schedule and assignment items\r\n * @example \r\n */\r\n\r\nconst reviewScheduleInstancesList = {\r\n bindings: {\r\n onSelectSchedule: '&'\r\n },\r\n controller: reviewScheduleInstancesListController,\r\n controllerAs: 'rsilvm',\r\n templateUrl: '/App/Components/Certifications/reviewSchedules/reviewScheduleInstancesList/reviewScheduleInstancesList.tmpl.html'\r\n};\r\n\r\nexport default reviewScheduleInstancesList;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, existingSchedules, ownershipGroupTypeName, reviewInstance, reviewAssignmentsDataService, ownershipGroupsDataService) {\r\n\r\n const vm = this;\r\n vm.helperService = helperService;\r\n vm.existingSchedules = existingSchedules;\r\n vm.reviewInstance = reviewInstance;\r\n vm.ownershipGroupTypeName = ownershipGroupTypeName;\r\n\r\n vm.cancel = cancel;\r\n vm.addAssignment = addAssignment;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.ownershipGroupDropdownLoading = true;\r\n vm.ownershipGroupsDataSource = await getOwnershipGroups();\r\n vm.ownershipGroupDropdownLoading = false;\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n async function getOwnershipGroups() {\r\n let { data } = await ownershipGroupsDataService.getOwnershipGroups();\r\n data = removeExistingObjects(data);\r\n data = data.filter(group => group.TypeName === ownershipGroupTypeName);\r\n return data;\r\n }\r\n\r\n async function addAssignment() {\r\n vm.pleaseWait = new createSpinner();\r\n\r\n let assignment = {\r\n \"ReviewInstanceId\": reviewInstance.Id,\r\n \"OwnershipGroupIds\": [vm.selectedItem.Id],\r\n };\r\n\r\n try {\r\n await reviewAssignmentsDataService.addReviewAssignment(assignment);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n return;\r\n }\r\n }\r\n\r\n function removeExistingObjects(array) {\r\n return array.filter(ownershipGroup => !existingSchedules?.some(schedule => schedule.OwnershipGroupId === ownershipGroup.Id));\r\n }\r\n}","import createSpinner from \"../../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, ownershipGroupsDataService, reviewAssignmentId, reviewSchedulesDataService) {\r\n\r\n const vm = this;\r\n vm.dismiss = dismiss;\r\n vm.addRoutingCriteria = addRoutingCriteria;\r\n \r\n activate();\r\n\r\n async function activate() { \r\n vm.helperService = helperService;\r\n vm.owners = []; \r\n vm.ownershipGroupsDataSource = await getOwnershipGroups(); \r\n }\r\n\r\n async function getOwnershipGroups() {\r\n vm.ownershipGroupDropdownLoading = true;\r\n let { data } = await ownershipGroupsDataService.getOwnershipGroups(); \r\n vm.ownershipGroupDropdownLoading = false;\r\n return data = data.filter(group => group.TypeName === 'Company');\r\n }\r\n\r\n async function addRoutingCriteria() {\r\n vm.pleaseWait = new createSpinner();\r\n\r\n let routingCriteria = {\r\n RoutingCriteriaOwnershipGroupId: vm.selectedItem.Id,\r\n ReviewAssignmentId: reviewAssignmentId\r\n };\r\n\r\n try {\r\n await reviewSchedulesDataService.postRoutingCriteria(reviewAssignmentId, routingCriteria);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n $uibModalInstance.close(reviewAssignmentId);\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.close();\r\n }\r\n}","import instanceAssignmentModalController from \"./instanceAssignmentModal.controller\";\r\nimport routingCriteriaModalController from \"./routingCriteriaModal/routingCriteriaModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (reviewSchedulesDataService, reviewAssignmentsDataService, $uibModal) {\r\n const vm = this;\r\n\r\n vm.openInstanceAssignmentModal = openInstanceAssignmentModal;\r\n vm.removeInstanceAssignment = removeInstanceAssignment;\r\n vm.openGroupAssignmentsModal = openGroupAssignmentsModal;\r\n vm.openDefineRoutingCriteriaModal = openDefineRoutingCriteriaModal;\r\n vm.selectedOwnershipGroupChanged = selectedOwnershipGroupChanged;\r\n\r\n vm.reviewOwnershipGroupsOptions = [\r\n {\r\n text: 'Define Routing Crtieria',\r\n click: item => {\r\n vm.openDefineRoutingCriteriaModal(item.instanceAssignment);\r\n },\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.selectedOwnershipGroupChanged(null);\r\n vm.removeInstanceAssignment(item.instanceAssignment.Id);\r\n }\r\n }\r\n ]\r\n\r\n vm.$onChanges = activate;\r\n\r\n function activate() {\r\n vm.ownershipGroupTypeName = vm.scheduleInstance.OwnershipGroupTypeName;\r\n vm.reviewType = vm.scheduleInstance.ReviewType;\r\n vm.routingCriteriaEnabled = vm.reviewType === 'SecurityRole' || vm.reviewType === 'Risk' || vm.reviewType === 'BusinessProcess' ? true : false;\r\n setInstanceAssignments();\r\n }\r\n\r\n async function setInstanceAssignments() {\r\n vm.loadingAssignments = true;\r\n let { data } = await reviewSchedulesDataService.getInstanceAssignments(vm.scheduleInstance.Id);\r\n vm.instanceAssignmentsDisplayList = data;\r\n vm.loadingAssignments = false;\r\n }\r\n\r\n async function openDefineRoutingCriteriaModal(instanceAssignment) {\r\n\r\n let routingCriteriaModal = $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/reviewSchedules/scheduleInstanceAssignmentsList/routingCriteriaModal/routingCriteriaModal.html',\r\n controller: routingCriteriaModalController,\r\n controllerAs: 'rcmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n existingSchedules: () => vm.instanceAssignmentsDisplayList || null,\r\n reviewAssignmentId: () => instanceAssignment.Id,\r\n ownershipGroupTypeName: () => vm.ownershipGroupTypeName\r\n }\r\n });\r\n\r\n try {\r\n let modifiedAssignment = await routingCriteriaModal.result;\r\n if (modifiedAssignment) {\r\n instanceAssignment = { ...instanceAssignment };\r\n selectedOwnershipGroupChanged(instanceAssignment);\r\n }\r\n } catch (dismiss) { return; }\r\n }\r\n\r\n async function openInstanceAssignmentModal() {\r\n let instanceAssignmentModal = $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/reviewSchedules/scheduleInstanceAssignmentsList/instanceAssignmentModal.tmpl.html',\r\n controller: instanceAssignmentModalController,\r\n controllerAs: 'iamvm',\r\n backdrop: 'static',\r\n resolve: {\r\n existingSchedules: () => vm.instanceAssignmentsDisplayList || null,\r\n reviewInstance: () => vm.scheduleInstance,\r\n ownershipGroupTypeName: () => vm.ownershipGroupTypeName,\r\n }\r\n });\r\n\r\n try {\r\n await instanceAssignmentModal.result;\r\n await setInstanceAssignments();\r\n } catch (dismiss) { return; }\r\n }\r\n\r\n async function openGroupAssignmentsModal(group) {\r\n $uibModal.open({\r\n template: `\r\n
\r\n
\r\n

{{ogamvm.ownershipGroup.Name}} Group Assignments

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
`,\r\n controller: /*@ngInject*/ function (ownershipGroup, $uibModalInstance) {\r\n const vm = this;\r\n\r\n vm.ownershipGroup = ownershipGroup;\r\n\r\n vm.dismiss = dismiss;\r\n\r\n function dismiss() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n },\r\n controllerAs: 'ogamvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => {\r\n return { GroupType: group.OwnershipGroupType, Id: group.OwnershipGroupId, Name: group.OwnershipGroupName, TypeName: group.ReviewTypeName };\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function removeInstanceAssignment(assignmentId) {\r\n vm.processingAssignments = true;\r\n try {\r\n await reviewAssignmentsDataService.deleteReview(assignmentId);\r\n vm.processingAssignments = false;\r\n await setInstanceAssignments();\r\n } catch {\r\n vm.processingAssignments = false;\r\n }\r\n }\r\n\r\n async function selectedOwnershipGroupChanged(ownershipGroup) {\r\n vm.onSelectOwnershipGroup({ ownershipGroup });\r\n }\r\n}","/* instanceAssignmentsList.component.js */\r\n\r\nimport instanceAssignmentsListController from \"./instanceAssignmentsList.controller\";\r\n\r\n/**\r\n * @desc component for viewing and managing access certifications review schedule instance assignments\r\n * @example \r\n */\r\n\r\nconst scheduleInstanceAssignmentsList = {\r\n bindings: {\r\n scheduleInstance: '<',\r\n onSelectOwnershipGroup: '&'\r\n },\r\n controller: instanceAssignmentsListController,\r\n controllerAs: 'ialvm',\r\n templateUrl: '/App/Components/Certifications/reviewSchedules/scheduleInstanceAssignmentsList/instanceAssignmentsList.tmpl.html'\r\n};\r\n\r\nexport default scheduleInstanceAssignmentsList;","\r\nexport default /*@ngInject*/ function ($uibModalInstance, ownershipGroupsDataService, ownershipGroupName, routingCriteriaData) {\r\n\r\n const vm = this;\r\n vm.dismiss = dismiss;\r\n activate();\r\n\r\n async function activate() {\r\n vm.ownershipGroupName = ownershipGroupName;\r\n vm.ownershipGroupId = routingCriteriaData.RoutingCriteriaOwnershipGroupId;\r\n vm.routingCriteriaOwnershipGroups = await getOwnershipGroups();\r\n vm.routingCriteriaOwnershipGroup = vm.routingCriteriaOwnershipGroups.find(ownershipGroup => ownershipGroup.Id === vm.ownershipGroupId); \r\n }\r\n\r\n async function getOwnershipGroups() {\r\n let { data } = await ownershipGroupsDataService.getOwnershipGroups();\r\n return data.filter(group => group.TypeName === 'Company');\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import routingCriteriaInstanceModalController from \"./routingCriteriaInstanceModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (reviewSchedulesDataService, ownershipGroupsDataService, $uibModal) {\r\n const vm = this;\r\n\r\n vm.openRoutingCriteriaInstanceModal = openRoutingCriteriaInstanceModal;\r\n vm.removeRoutingCriteria = removeRoutingCriteria;\r\n vm.$onChanges = activate;\r\n vm.$onInit = activate;\r\n \r\n async function activate() {\r\n vm.ownershipGroupsList = await getOwnershipGroups();\r\n setRoutingCriteriaInstances(vm.ownershipGroup?.Id); \r\n }\r\n\r\n async function setRoutingCriteriaInstances(id) {\r\n vm.loadingAssignments = true;\r\n\r\n let response = await reviewSchedulesDataService.getRoutingCriteria(id);\r\n vm.routingCriteriaList = response.data.reduce((routingCriteriaArray, currentCriteria) => {\r\n const routingCriteria = {\r\n Id: currentCriteria.Id,\r\n ReviewAssignmentId: currentCriteria.ReviewAssignmentId,\r\n RoutingCriteriaOwnershipGroupId: currentCriteria.RoutingCriteriaOwnershipGroupId,\r\n RoutingCriteriaOwnershipGroupName: vm.ownershipGroupsList\r\n .find(ownershipGroup => ownershipGroup.Id === currentCriteria.RoutingCriteriaOwnershipGroupId)\r\n .Name\r\n }\r\n routingCriteriaArray.push(routingCriteria);\r\n return routingCriteriaArray;\r\n }, []);\r\n\r\n vm.loadingAssignments = false;\r\n }\r\n\r\n async function openRoutingCriteriaInstanceModal(routingCriteriaInstance) {\r\n\r\n let routingCriteriaInstanceModal = $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/reviewSchedules/routingCriteriaInstancesList/routingCriteriaInstanceModal.tmpl.html',\r\n controller: routingCriteriaInstanceModalController,\r\n controllerAs: 'rcimvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroupName: () => routingCriteriaInstance.RoutingCriteriaOwnershipGroupName,\r\n routingCriteriaData: () => routingCriteriaInstance\r\n }\r\n });\r\n\r\n try {\r\n await routingCriteriaInstanceModal.result;\r\n } catch (dismiss) { return; }\r\n }\r\n\r\n async function getOwnershipGroups() {\r\n let { data } = await ownershipGroupsDataService.getOwnershipGroups();\r\n return data.filter(group => group.TypeName === 'Company');\r\n }\r\n\r\n async function removeRoutingCriteria(item) {\r\n await reviewSchedulesDataService.deleteRoutingCriteria(item.reviewAssignmentId, item.Id);\r\n await setRoutingCriteriaInstances(vm.ownershipGroup.Id);\r\n }\r\n\r\n}","/* routingCriteriaInstancesList.component.js */\r\n\r\nimport routingCriteriaInstancesListController from \"./routingCriteriaInstancesList.controller\";\r\n\r\n/**\r\n * @desc component for viewing and managing access certifications review schedule and assignment items\r\n * @example \r\n */\r\n\r\nconst routingCriteriaInstancesList = {\r\n bindings: {\r\n ownershipGroup: '<'\r\n },\r\n controller: routingCriteriaInstancesListController,\r\n controllerAs: 'rcilvm',\r\n templateUrl: '/App/Components/Certifications/reviewSchedules/routingCriteriaInstancesList/routingCriteriaInstancesList.tmpl.html'\r\n};\r\n\r\nexport default routingCriteriaInstancesList;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModalInstance, helperService, notificationTeamsDataService, dataService, teamMembersList, teamType, selectedProduct) {\r\n\r\n const vm = this;\r\n\r\n teamMembersList = [...teamMembersList];\r\n\r\n vm.cancel = cancel;\r\n vm.addTeamMember = addTeamMember;\r\n\r\n function activate() {\r\n setupUsersGrid();\r\n createAvailableUsersDataSource();\r\n }\r\n\r\n activate();\r\n\r\n function setupUsersGrid() {\r\n let availableGridColumns = [\r\n { title: \"Name\", field: \"UserLogonName\", filterable: customAutoCompleteFilter },\r\n { title: \"Email\", field: \"Email\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \"\", width: 20, filterable: false }\r\n ];\r\n\r\n vm.availableUsersGridOptions = helperService.setMainGridOptions(availableGridColumns, null);\r\n vm.availableUsersGridOptions.selectable = false;\r\n }\r\n\r\n\r\n function createAvailableUsersDataSource() {\r\n vm.availableUsersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let response = await dataService.getUsers();\r\n vm.users = await response.data;\r\n teamMembersList.forEach(member => {\r\n vm.users = vm.users.filter(user => user.UserLogonName !== member.UserLogonName);\r\n });\r\n vm.users = vm.users.filter(user => user.Active === true);\r\n vm.users = $filter('orderBy')(vm.users, 'UserLogonName');\r\n options.success(vm.users);\r\n } catch {\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function addTeamMember(user) {\r\n kendo.ui.progress(vm.availableUsersGrid.element, true);\r\n\r\n const newTeamMemberInfo = {\r\n AdmUserId: user.UserID,\r\n TeamType: teamType,\r\n ProductId: selectedProduct?.ID\r\n }\r\n\r\n try {\r\n await notificationTeamsDataService.addTeamMember(newTeamMemberInfo);\r\n teamMembersList.push(user);\r\n kendo.ui.progress(vm.availableUsersGrid.element, false);\r\n vm.availableUsersGridDataSource.read();\r\n } catch {\r\n kendo.ui.progress(vm.availableUsersGrid.element, false);\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n}","import addTeamMemberModalController from \"./addTeamMemberModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, $uibModal, dataService, notificationTeamsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.teamsList = [];\r\n\r\n vm.selectTeam = selectTeam;\r\n vm.selectProduct = selectProduct;\r\n vm.openAddTeamMemberModal = openAddTeamMemberModal;\r\n vm.removeTeamMember = removeTeamMember;\r\n\r\n activate();\r\n\r\n function activate() {\r\n vm.teamsList = [{ Name: 'Security Team', TeamType: 'Security', urlString: 'security' },\r\n { Name: 'Audit Team', TeamType: 'Audit', urlString: 'audit' },\r\n { Name: 'Access Certification Administrators Team', TeamType: 'AccessCertificationAdministrators', urlString: 'access-certification-administrators' }];\r\n\r\n vm.teamsList = $filter('orderBy')(vm.teamsList, 'Name');\r\n }\r\n\r\n function selectTeam(team) {\r\n vm.selectedTeam = team;\r\n\r\n if (team.TeamType === 'Security') {\r\n getAssociatedProducts();\r\n } else {\r\n vm.selectedProduct = null;\r\n getTeamMembers(team.urlString);\r\n }\r\n }\r\n\r\n async function getTeamMembers(teamTypeUrlString) {\r\n vm.loadingTeamMembers = true;\r\n\r\n try {\r\n let { data } = await notificationTeamsDataService.getTeamMembers(teamTypeUrlString);\r\n vm.teamMembersList = $filter('orderBy')(data, 'UserLogonName');\r\n vm.loadingTeamMembers = false;\r\n } catch {\r\n vm.loadingTeamMembers = false;\r\n }\r\n }\r\n\r\n async function selectProduct(product) {\r\n vm.selectedProduct = product;\r\n vm.selectedTeamMember = null;\r\n vm.loadingSelectedProductTeamMembers = true;\r\n\r\n try {\r\n let { data } = await notificationTeamsDataService.getTeamMembersByProduct(product.ID);\r\n vm.teamMembersList = $filter('orderBy')(data, 'UserLogonName');\r\n vm.loadingSelectedProductTeamMembers = false;\r\n } catch {\r\n vm.loadingSelectedProductTeamMembers = false;\r\n }\r\n }\r\n\r\n async function getAssociatedProducts() {\r\n vm.loadingAssociatedProducts = true;\r\n\r\n try {\r\n let { data } = await dataService.getProducts();\r\n vm.associatedProductsList = $filter('orderBy')(data, 'Name');\r\n vm.loadingAssociatedProducts = false;\r\n } catch {\r\n vm.loadingAssociatedProducts = false;\r\n }\r\n }\r\n\r\n async function removeTeamMember(selectedTeamMember) {\r\n try {\r\n await notificationTeamsDataService.removeTeamMember(selectedTeamMember.Id);\r\n updateTeamMembersList();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openAddTeamMemberModal() {\r\n let modal = $uibModal.open({\r\n templateUrl: '/App/Components/Certifications/notificationTeams/addTeamMemberModal.html',\r\n controller: addTeamMemberModalController,\r\n controllerAs: 'atmmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n teamMembersList: () => vm.teamMembersList,\r\n teamType: () => vm.selectedTeam.TeamType,\r\n selectedProduct: () => vm.selectedProduct\r\n }\r\n });\r\n\r\n try {\r\n await modal.result;\r\n updateTeamMembersList();\r\n } catch (cancel) {\r\n return;\r\n }\r\n }\r\n\r\n function updateTeamMembersList() {\r\n if (vm.selectedProduct) {\r\n selectProduct(vm.selectedProduct);\r\n } else {\r\n getTeamMembers(vm.selectedTeam.urlString)\r\n }\r\n }\r\n}","/* notificationTeams.component.js */\r\n\r\nimport notificationTeamsController from \"./notificationTeams.controller\";\r\n\r\n/**\r\n * @desc component to view and manage the Audit and Security teams and their members\r\n * @example \r\n */\r\n\r\nconst notificationTeams = {\r\n controller: notificationTeamsController,\r\n controllerAs: 'ntvm',\r\n templateUrl: '/App/Components/Certifications/notificationTeams/notificationTeams.tmpl.html'\r\n};\r\n\r\nexport default notificationTeams;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function (helperService, $uibModalInstance, configurationDataService, roleSecurityProfileDataService, role) {\r\n\r\n const vm = this,\r\n fioriReportId = 'eaefba7b-1d22-47d7-8618-ce3cf439a98d';\r\n\r\n vm.roleCollapsed = true;\r\n vm.catalogCollapsed = true;\r\n vm.isWorkDay = false;\r\n vm.helperService = helperService;\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.toggleRoleAccess = toggleRoleAccess;\r\n vm.toggleFioriCatalog = toggleFioriCatalog;\r\n vm.cancel = cancel;\r\n\r\n async function onInit() {\r\n vm.securityRoleIdentifier = role?.SecurityRoleIdentifier || role.Identifier;\r\n vm.profile = await roleSecurityProfileDataService.getProfile(vm.securityRoleIdentifier);\r\n\r\n if (role.ProductType === 'WD') {\r\n vm.isWorkDay = true;\r\n vm.workDayProfileInformation = await roleSecurityProfileDataService.getWorkdayProfile(role.SecurityRoleId);\r\n }\r\n setupRoleGrid();\r\n\r\n vm.s4Enabled = vm.profile?.ProductType === 'SAP' ? await getS4Config() : false;\r\n\r\n if (vm.s4Enabled) {\r\n setupCatalogGrid();\r\n }\r\n }\r\n\r\n async function getS4Config() {\r\n const { data } = await configurationDataService.getProductConfigurationValueByName('SAP', 'SAP_ErpType');\r\n\r\n return data.Value === 'S4';\r\n }\r\n\r\n async function setupRoleGrid() {\r\n vm.roleGridColumns = [\r\n { field: \"SecurityObjectName\", title: \"Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Object Label\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectTypeName\", title: \"Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 120, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.roleGridOptions = helperService.setMainGridOptions(vm.roleGridColumns, 400);\r\n\r\n vm.roleGridDataSource = new kendo.data.DataSource({\r\n schema: {\r\n data: \"_embedded.reportData\",\r\n total: \"TotalItems\"\r\n },\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n transport: {\r\n read: async options => {\r\n try {\r\n const { page, pageSize } = options.data,\r\n sortsAndFilters = helperService.prepareSortsAndFilters(options),\r\n { data } = await roleSecurityProfileDataService.getAccess(vm.securityRoleIdentifier, sortsAndFilters, page, pageSize);\r\n\r\n options.success(data);\r\n } catch (err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function setupCatalogGrid() {\r\n vm.catalogGridColumns = [\r\n { field: \"Role\", title: \"Role\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleDescription\", title: \"Role Description\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Catalog\", title: \"Catalog\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"CatalogDescription\", title: \"Catalog Description\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"FioriID\", title: \"Fiori Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"FioriDescription\", title: \"Fiori Description\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SemanticObject\", title: \"Semantic Object\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SemanticAction\", title: \"Semantic Action\", width: 120, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.catalogGridOptions = helperService.setMainGridOptions(vm.catalogGridColumns, 400);\r\n\r\n vm.catalogGridDataSource = new kendo.data.DataSource({\r\n schema: {\r\n data: \"_embedded.reportData\",\r\n total: \"TotalItems\"\r\n },\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n noRecords: {\r\n template: \"
No items to display
\"\r\n },\r\n transport: {\r\n read: async options => {\r\n try {\r\n const { page, pageSize } = options.data;\r\n let sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n //Only show data for role in profile\r\n sortsAndFilters.Filters.push({ FieldName: \"Role\", Operator: \"Equals\", Value: vm.profile.Name })\r\n const { data } = await roleSecurityProfileDataService.getCatalog(fioriReportId, sortsAndFilters, page, pageSize);\r\n\r\n options.success(data);\r\n } catch (err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function toggleRoleAccess() {\r\n vm.roleCollapsed = !vm.roleCollapsed;\r\n\r\n if (vm.roleCollapsed) {\r\n return;\r\n } else {\r\n vm.roleGridDataSource.read();\r\n }\r\n }\r\n\r\n function toggleFioriCatalog() {\r\n vm.catalogCollapsed = !vm.catalogCollapsed;\r\n\r\n if (vm.catalogCollapsed) {\r\n return;\r\n } else {\r\n vm.catalogGridDataSource.read();\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import roleSecurityProfileModalController from \"./roleSecurityProfileModal/roleSecurityProfileModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.openRoleSecurityProfile = openRoleSecurityProfile;\r\n\r\n async function openRoleSecurityProfile(role) {\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Components/roleSecurityProfile/roleSecurityProfileModal/roleSecurityProfileModal.tmpl.html',\r\n controller: roleSecurityProfileModalController,\r\n controllerAs: 'rspmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n role: () => vm.role\r\n }\r\n });\r\n\r\n }\r\n}","/* roleSecurityProfile.component.js */\r\n\r\nimport roleSecurityProfileController from \"./roleSecurityProfile.controller\";\r\n\r\n/**\r\n * @desc component for opening and viewing Role Security Profile\r\n * @example \r\n */\r\n\r\nconst roleSecurityProfile = {\r\n bindings: {\r\n role: '<'\r\n },\r\n controller: roleSecurityProfileController,\r\n controllerAs: 'rspvm',\r\n template:\r\n `\r\n \r\n \r\n `\r\n};\r\n\r\nexport default roleSecurityProfile;","import angular from 'angular';\r\nimport certificationsAllReviewController from '../Components/Certifications/AllReviews/certificationsAllReview.controller';\r\nimport accessCertificationsFactoriesModule from './accessCertifications.factories.module';\r\nimport myReviewsController from '../Components/Certifications/MyReviews/myReviews.controller';\r\nimport reviewSchedules from '../Components/Certifications/reviewSchedules/reviewSchedules.component';\r\nimport securityRoleContentItemsList from '../Components/Certifications/MyReviews/SecurityRoleContentItemsList/securityRoleContentItemsList.component';\r\nimport linkTicketsDropdown from '../Components/Certifications/LinkTickets/linkTicketsDropdown.component';\r\nimport reviewScheduleInstancesList from '../Components/Certifications/reviewSchedules/reviewScheduleInstancesList/reviewScheduleInstancesList.component';\r\nimport scheduleInstanceAssignmentsList from '../Components/Certifications/reviewSchedules/scheduleInstanceAssignmentsList/instanceAssignmentsList.component';\r\nimport routingCriteriaInstancesList from '../Components/Certifications/reviewSchedules/routingCriteriaInstancesList/routingCriteriaInstancesList.component';\r\nimport notificationTeams from '../Components/Certifications/notificationTeams/notificationTeams.component';\r\nimport roleSecurityProfile from '../Shared/Components/roleSecurityProfile/roleSecurityProfile.component';\r\n\r\nexport default angular\r\n .module('app.accessCertifications', [accessCertificationsFactoriesModule])\r\n .controller(\"certificationsAllReviewController\", certificationsAllReviewController)\r\n .controller(\"MyReviewsController\", myReviewsController)\r\n .component('securityRoleContentItemsList', securityRoleContentItemsList)\r\n .component('linkTicketsDropdown', linkTicketsDropdown)\r\n .component('reviewSchedules', reviewSchedules)\r\n .component('reviewScheduleInstancesList', reviewScheduleInstancesList)\r\n .component('reviewScheduleInstanceAssignmentsList', scheduleInstanceAssignmentsList)\r\n .component('reviewScheduleRoutingCriteriaInstancesList', routingCriteriaInstancesList)\r\n .component('notificationTeams', notificationTeams)\r\n .component('roleSecurityProfile', roleSecurityProfile )\r\n .name;","/* reviewSchedules.component.js */\r\n\r\nimport reviewSchedulesController from \"./reviewSchedules.controller\";\r\n\r\n/**\r\n * @desc component for viewing and managing access certifications review schedules and assignments\r\n * @example \r\n */\r\n\r\nconst reviewSchedules = {\r\n controller: reviewSchedulesController,\r\n controllerAs: 'rsvm',\r\n templateUrl: '/App/Components/Certifications/reviewSchedules/reviewSchedules.tmpl.html'\r\n};\r\n\r\nexport default reviewSchedules;","export default /*@ngInject*/ function () {\r\n const vm = this;\r\n\r\n vm.selectedScheduleChanged = selectedScheduleChanged;\r\n vm.reviewAssignmentsUpdated = reviewAssignmentsUpdated;\r\n vm.selectedOwnershipGroupChanged = selectedOwnershipGroupChanged;\r\n\r\n function selectedScheduleChanged(schedule) {\r\n vm.selectedInstanceAssignment = null;\r\n vm.selectedOwnershipGroup = null;\r\n vm.selectedSchedule = schedule;\r\n }\r\n\r\n function selectedOwnershipGroupChanged(ownershipGroup) {\r\n vm.selectedOwnershipGroup = ownershipGroup;\r\n }\r\n\r\n function reviewAssignmentsUpdated(updateList) {\r\n vm.updateAssignmentsList = updateList;\r\n }\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($http, $uibModalInstance, helperService, dataItemRecords, selectedColumns, selectedProduct, uniqueValues, modify, existingTickets) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.existingTickets = existingTickets;\r\n vm.tickets = [...existingTickets];\r\n vm.dataItemRecords = dataItemRecords;\r\n vm.selectedColumns = selectedColumns;\r\n vm.selectedProduct = selectedProduct;\r\n vm.uniqueItems = uniqueValues;\r\n vm.modify = modify;\r\n\r\n vm.saveTickets = saveTickets;\r\n vm.linkTicket = linkTicket;\r\n vm.checkExistingTickets = checkExistingTickets;\r\n vm.updateTicket = updateTicket;\r\n vm.removeTicket = removeTicket;\r\n vm.dismiss = dismiss;\r\n\r\n function onInit() {\r\n vm.ticketsToRemove = [];\r\n vm.dataItem = [...vm.dataItemRecords];\r\n\r\n let keyFields = vm.selectedColumns.map(column => column.field);\r\n let extracted = vm.dataItemRecords.map(object => {\r\n let response = keyFields.map(element => {\r\n return { [element]: object[element] };\r\n });\r\n\r\n object = Object.assign({}, ...response); \r\n\r\n return object;\r\n });\r\n vm.extractedItems = extracted.unique();\r\n vm.dataItemRecords = { items: [], auditLogTicket: false };\r\n\r\n if (vm.selectedProduct) {\r\n vm.dataItemRecords.ProductId = vm.selectedProduct.ID;\r\n vm.dataItemRecords.ProductType = vm.selectedProduct.Type;\r\n } else {\r\n vm.dataItemRecords.auditLogTicket = true;\r\n }\r\n\r\n vm.dataItemRecords.items = vm.dataItemRecords.items.concat(vm.dataItem);\r\n\r\n vm.AtHeaderIds = vm.uniqueItems.map(item => item.ChangeHeaderId);\r\n\r\n defineSelectedItemsGrid();\r\n }\r\n\r\n function checkExistingTickets() {\r\n if (modify) {\r\n tickets.forEach(ticket => updateTicket(ticket));\r\n }\r\n }\r\n\r\n function updateTicket(ticket) {\r\n if (vm.tickets.every(item => item.TicketId !== ticket.TicketId)) {\r\n vm.tickets.push(ticket);\r\n }\r\n }\r\n\r\n function removeTicket(providerString) {\r\n vm.tickets = vm.tickets.filter(ticket => ticket.TicketProvider !== providerString);\r\n\r\n vm.ticketsToRemove.push(vm.dataItem.find(item => item.TicketProvider === providerString));\r\n }\r\n\r\n function defineSelectedItemsGrid() {\r\n vm.selectedItemsGridOptions = helperService.setMainGridOptions(vm.selectedColumns, null);\r\n vm.selectedItemsGridOptions.selectable = false;\r\n vm.selectedItemsGridOptions.autoBind = true;\r\n vm.selectedItemsGridOptions.filterable = false;\r\n\r\n vm.selectedItemsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n options.success(vm.extractedItems);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function saveTickets() {\r\n vm.actionInProgress = new createSpinner();\r\n\r\n // Link selected header ids to each ticket\r\n try {\r\n vm.tickets.forEach(async ticket => {\r\n if (ticket !== vm.existingTickets.find(existingTicket => existingTicket.TicketId === ticket.TicketId)) {\r\n await linkTicket(ticket);\r\n }\r\n });\r\n\r\n if (vm.ticketsToRemove.length) {\r\n vm.ticketsToRemove.forEach(async ticket => {\r\n await unLinkRecord(ticket.AtHeaderTicketId);\r\n });\r\n }\r\n\r\n await helperService.successfulSaveButton(vm.actionInProgress);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.actionInProgress.loadingValue = false;\r\n return;\r\n }\r\n }\r\n\r\n async function linkTicket(ticket) {\r\n const productType = vm.dataItemRecords.ProductType;\r\n\r\n let postData = {\r\n \"TicketId\": ticket.TicketId,\r\n \"Provider\": ticket.TicketProvider\r\n }\r\n\r\n postData.AtHeaderIds = vm.AtHeaderIds;\r\n postData.ProductId = vm.dataItemRecords.ProductId;\r\n postData.ProductType = productType;\r\n\r\n try {\r\n await $http.post(apiUrl + 'api/audittrail/tickets', postData);\r\n\r\n if (productType === 'OR' || productType === 'AX7' || productType === 'SAP') {\r\n await buildHeaderPost(productType, vm.uniqueItems);\r\n }\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n return;\r\n }\r\n }\r\n\r\n async function buildHeaderPost(productType, dataItems) {\r\n let headerPostData = { \"Tickets\": [] };\r\n let headerEndpoint = '';\r\n\r\n dataItems.forEach(dataItem => {\r\n if (productType === 'OR') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": dataItem.RecId,\r\n \"ChangeDate\": dataItem.ChangeDate,\r\n \"Template\": dataItem.Template,\r\n \"TableName\": dataItem.TableName,\r\n \"Event\": dataItem.Event,\r\n \"UserName\": dataItem.User,\r\n \"Responsibility\": dataItem.Responsibility,\r\n \"Application\": dataItem.Application\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/or/tickets';\r\n }\r\n else if (productType === 'AX7') {\r\n headerPostData.Tickets.push({\r\n \"RecId\": dataItem.RecId,\r\n \"ObjRecId\": dataItem.ObjRecId,\r\n \"ModifiedOn\": dataItem.ModifiedOn,\r\n \"TableName\": dataItem.TableName,\r\n \"Event\": dataItem.Event,\r\n \"Description\": dataItem.Description,\r\n \"ModifiedBy\": dataItem.ModifiedBy\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/ax7/tickets';\r\n }\r\n else if (productType === 'SAP') {\r\n headerPostData.Tickets.push({\r\n \"ChangeNumber\": dataItem.ChangeNumber,\r\n \"Template\": dataItem.Template,\r\n \"ChangeDate\": dataItem.ChangeDate,\r\n \"TableName\": dataItem.TableName,\r\n \"Event\": dataItem.Event,\r\n \"UserName\": dataItem.User\r\n });\r\n\r\n headerEndpoint = 'api/audittrail/sap/tickets';\r\n }\r\n });\r\n\r\n try {\r\n await $http.post(apiUrl + headerEndpoint, headerPostData);\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.actionInProgress = false;\r\n }\r\n }\r\n\r\n async function unLinkRecord(headerTicketId) {\r\n try {\r\n await $http.delete(`${apiUrl}api/audittrail/tickets/${headerTicketId}`);\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n }\r\n\r\n function dismiss() {\r\n if (modify) {\r\n $uibModalInstance.close();\r\n } else {\r\n $uibModalInstance.dismiss();\r\n }\r\n }\r\n}","import { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\nimport { standardGridPageSize, customDatePickerNotNullableFilter, customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport linkTicketsModalController from \"./linkTicketsModal/linkTicketsModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, SavedReportSelectorService, dataService, objectIdDataService, CustomReportServices, $uibModal, $filter, $http, $timeout, helperService, AuditTrailEntityDataService, reportsDataService, reportsService) {\r\n\r\n const vm = $scope.vm = {};\r\n\r\n vm.RelativeDateTypeDataSource = CustomReportServices.getRelativeDateTypes();\r\n vm.PeriodTypeDataSource = CustomReportServices.getPeriodTypes();\r\n $scope.onRead = onRead;\r\n\r\n vm.RelativeDateType = 2;\r\n vm.PeriodType = 0;\r\n $scope.dateCriteria = [\r\n {\r\n \"DataType\": \"DateTime\",\r\n \"FieldName\": \"Date\",\r\n \"IsNullable\": false\r\n }\r\n ];\r\n\r\n vm.selectedTemplateType = [];\r\n vm.selectedItems = [];\r\n vm.ticketModalColumns = null;\r\n vm.allSelected = false;\r\n $scope.openTicketLinkingModal = openTicketLinkingModal;\r\n $scope.modifyTicket = modifyTicket;\r\n $scope.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n $scope.mainGridOptions.autoBind = false;\r\n $scope.mainGridOptions.selectable = false;\r\n $scope.helperService = helperService;\r\n $scope.selectAllChanged = selectAllChanged;\r\n $scope.itemSelectionChanged = itemSelectionChanged;\r\n $scope.checkAllSelection = checkAllSelection;\r\n $scope.unlinkTicket = unlinkTicket;\r\n $scope.clearAllPages = clearAllPages;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n vm.filterCriteria.dateQuery = [];\r\n // ---\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if ($scope.grid) {\r\n $scope.gridReady = true;\r\n $scope.runSavedReport();\r\n }\r\n });\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getObjectId();\r\n getProducts();\r\n }\r\n\r\n async function getObjectId() {\r\n let objectId = await objectIdDataService.getObjectID();\r\n // Needed for report toolbar controller functions\r\n $scope.ObjectId = objectId;\r\n $scope.reportName = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId).Name;\r\n $scope.filtersDataSource = CustomReportServices.setfiltersDataSource($scope.ObjectId);\r\n }\r\n\r\n async function getProducts() {\r\n let { data: products } = await dataService.getProducts();\r\n\r\n vm.productsDataSource = products.filter(product => product.HasAuditTrailModule);\r\n\r\n //Filter Netsuite and Oracle Cloud products from dropdown as they have their own custom Data Changes reports\r\n vm.productsDataSource = products.filter(product => product.ID !== 'NS' && product.ID !== 'ORFC');\r\n\r\n\r\n let defaultProduct = vm.productsDataSource.find(obj => obj.Name === $rootScope.UserPreferences.PreferredProduct);\r\n let defaultProductSelected = vm.productsDataSource.indexOf(defaultProduct);\r\n let defaultProductExists = vm.productsDataSource.some(obj => obj.Name === $rootScope.UserPreferences.PreferredProduct);\r\n if (defaultProductExists) {\r\n if ($rootScope.UserPreferences.PreferredProduct !== null) {\r\n vm.selectedProduct = vm.productsDataSource[defaultProductSelected];\r\n } else {\r\n vm.selectedProduct = vm.productsDataSource[0];\r\n }\r\n } else {\r\n vm.selectedProduct = vm.productsDataSource[0];\r\n }\r\n\r\n if ($rootScope.loadedSavedReport) {\r\n loadSavedReportCriteria();\r\n }\r\n vm.selectedProduct = SavedReportSelectorService.checkSavedReportForSingleProduct($rootScope.loadedSavedReport, products, vm.selectedProduct);\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type).ReportID;\r\n $scope.productDropdownChange();\r\n }\r\n\r\n $scope.runSavedReport = async function () {\r\n if ($scope.gridReady && $rootScope.loadedSavedReport && vm.productsDataSource && vm.templateTypesDataSource && vm.filterCriteria.fields) {\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type).ReportID;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n // Convert date filters to criteria\r\n const dateFieldName = vm.selectedProduct.Type === 'AX' ? 'TimeStamp' : vm.selectedProduct.Type === 'AX7' ? 'ModifiedOn' : vm.selectedProduct.Type === 'SF' ? 'CreatedDate' : 'Date';\r\n\r\n if ($rootScope.loadedSavedReport && $rootScope.loadedSavedReport.ReportDefinition.DateFilters.length > 0) {\r\n const criteriaDateFilterIndex = $rootScope.loadedSavedReport.ReportDefinition.DateFilters.findIndex(filter => filter.FieldName === dateFieldName);\r\n if (criteriaDateFilterIndex > -1) {\r\n loadDateFilterAsCriteria($rootScope.loadedSavedReport.ReportDefinition.DateFilters[criteriaDateFilterIndex]);\r\n $rootScope.loadedSavedReport.ReportDefinition.DateFilters.splice(criteriaDateFilterIndex, 1);\r\n }\r\n } else if ($rootScope.loadedSavedReport && $rootScope.loadedSavedReport.ReportDefinition.Filters.length > 0) {\r\n const dateRangeFilters = $rootScope.loadedSavedReport.ReportDefinition.Filters.filter(filter => filter.FieldName === dateFieldName);\r\n if (dateRangeFilters.length > 0) {\r\n $rootScope.loadedSavedReport.ReportDefinition.Filters = $rootScope.loadedSavedReport.ReportDefinition.Filters.filter(filter => filter.FieldName !== dateFieldName);\r\n dateRangeFilters.forEach(filter => {\r\n loadDateFilterAsCriteria(filter);\r\n });\r\n }\r\n }\r\n\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.dateQuery = reportsService.getSavedReportDateFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n // ---\r\n $scope.generateGridWithSelectedValues();\r\n } else if ($scope.gridReady && !$rootScope.loadedSavedReport && vm.productsDataSource && vm.templateTypesDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n $scope.populateCriteriaModel();\r\n }\r\n };\r\n\r\n function loadDateFilterAsCriteria(DateFilter) {\r\n if (DateFilter.Operator === 'GreaterThanOrEqual' || DateFilter.Operator === 'LessThanOrEqual') {\r\n if (!$rootScope.loadedSavedReport.ReportDefinition.Criteria[0]) {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria = [{\r\n \"CriteriaType\": \"Date\",\r\n \"CriteriaValue\": DateFilter.FieldName,\r\n Filters: []\r\n }];\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria[0].Filters.push(DateFilter);\r\n } else {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria[0].Filters.push(DateFilter);\r\n }\r\n } else {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria = [{\r\n \"CriteriaType\": \"Date\",\r\n \"CriteriaValue\": DateFilter.FieldName,\r\n Filters: []\r\n }];\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria[0].DateFilter = DateFilter;\r\n }\r\n }\r\n\r\n function setupFilters() {\r\n if (!$scope.sortsAndFilters) {\r\n $scope.sortsAndFilters = {};\r\n }\r\n if (!$scope.sortsAndFilters.Filters) {\r\n $scope.sortsAndFilters.Filters = [];\r\n }\r\n if (!$scope.sortsAndFilters.DateFilter) {\r\n $scope.sortsAndFilters.DateFilters = [];\r\n }\r\n\r\n let dateFilters = $scope.getDateFilters();\r\n\r\n if (dateFilters) {\r\n $scope.sortsAndFilters.Criteria = dateFilters.Criteria;\r\n $scope.sortsAndFilters.Filters = $scope.sortsAndFilters.Filters.concat(dateFilters.Filters);\r\n $scope.sortsAndFilters.Filters = getUniqueObjects($scope.sortsAndFilters.Filters);\r\n if (dateFilters.RelativeFilter && !dateFilters.Criteria) {\r\n $scope.sortsAndFilters.DateFilters.push(dateFilters.RelativeFilter);\r\n } else {\r\n $scope.sortsAndFilters.DateFilters = [];\r\n }\r\n }\r\n }\r\n\r\n $scope.productDropdownChange = function () {\r\n getTemplates();\r\n vm.setColumns();\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type).ReportID;\r\n setReportMetadata();\r\n $scope.populateCriteriaModel();\r\n };\r\n\r\n $scope.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n ModifiedDate: { type: \"date\" },\r\n ChangeDate: { type: \"date\" },\r\n TimeStamp: { type: \"date\" },\r\n ModifiedOn: { type: \"date\" },\r\n dateandTime: { type: \"date\" },\r\n Date: { type: \"date\" },\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n\r\n var data = {\r\n 'TemplateIds': $scope.templateTypes\r\n };\r\n $scope.sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n setupFilters();\r\n\r\n if (vm.selectedProduct.Type === \"D365Bc\" || vm.selectedProduct.Type === 'SF' || vm.selectedProduct.Type === 'WD') {\r\n data = {\r\n QueryInput: $scope.sortsAndFilters\r\n }\r\n } else {\r\n data.QueryInput = $scope.sortsAndFilters;\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n data['QueryInput'].DateFilters = data['QueryInput'].DateFilters.concat(vm.filterCriteria.dateQuery);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n try {\r\n const response = await $http({\r\n method: 'POST',\r\n url: $scope.urlString,\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n });\r\n\r\n // assign 'selected' property and set false\r\n response.data._embedded.reportData = response.data._embedded.reportData.map(item => ({ ...item, selected: false }));\r\n options.success(response.data);\r\n await dataItemsSelected();\r\n checkAllSelection();\r\n vm.enableGrid = true;\r\n\r\n $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type).ReportID;\r\n } catch (response) {\r\n const timeout = 408;\r\n\r\n if (response.status !== timeout) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n function loadSavedReportCriteria() {\r\n if ($rootScope.loadedSavedReport && $rootScope.loadedSavedReport.ReportDefinition.Criteria) {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria.forEach(function (criteria) {\r\n if (criteria.DateFilter) {\r\n switch (criteria.DateFilter.DateType) {\r\n case 'Previous':\r\n vm.RelativeDateType = 0;\r\n vm.PeriodType = $scope.getPeriodId(criteria.DateFilter.Period);\r\n break;\r\n\r\n case 'ToDate':\r\n vm.RelativeDateType = 1;\r\n vm.PeriodType = $scope.getPeriodId(criteria.DateFilter.Period);\r\n break;\r\n\r\n case 'LastNumberOf':\r\n vm.RelativeDateType = 2;\r\n vm.PeriodType = $scope.getPeriodId(criteria.DateFilter.Period);\r\n vm.LastNumberOf = criteria.DateFilter.Value;\r\n break;\r\n\r\n }\r\n }\r\n if (criteria.Filters.length > 0) {\r\n criteria.Filters.forEach(function (filter) {\r\n switch (filter.Operator) {\r\n case 'GreaterThanOrEqual':\r\n vm.RelativeDateType = 4;\r\n $scope.vm.startDate = new Date(filter.Value);\r\n break;\r\n\r\n case 'LessThanOrEqual':\r\n vm.RelativeDateType = 4;\r\n $scope.vm.endDate = new Date(filter.Value);\r\n break;\r\n }\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n if ($rootScope.loadedSavedReport && $rootScope.loadedSavedReport.ReportDefinition.DateFilters.length > 0) {\r\n const dateFilter = $rootScope.loadedSavedReport.ReportDefinition.DateFilters[0];\r\n switch (dateFilter.DateType) {\r\n case 'Previous':\r\n vm.RelativeDateType = 0;\r\n vm.PeriodType = $scope.getPeriodId(dateFilter.Period);\r\n break;\r\n\r\n case 'ToDate':\r\n vm.RelativeDateType = 1;\r\n vm.PeriodType = $scope.getPeriodId(dateFilter.Period);\r\n break;\r\n\r\n case 'LastNumberOf':\r\n vm.RelativeDateType = 2;\r\n vm.PeriodType = $scope.getPeriodId(dateFilter.Period);\r\n vm.LastNumberOf = dateFilter.Value;\r\n break;\r\n\r\n }\r\n }\r\n }\r\n\r\n vm.deselectSelectedTemplateType = function () {\r\n\r\n if (vm.selectedTemplateType && vm.selectedTemplateType[vm.selectedTemplateType.length - 1].Id !== 'AllObjectsInMultiSelect') {\r\n vm.selectedTemplateType.forEach(function (row, i) {\r\n if (row.Id === 'AllObjectsInMultiSelect') {\r\n vm.selectedTemplateType.splice(i, 1);\r\n }\r\n });\r\n } else if (vm.selectedProduct.Type === 'GP' || vm.selectedProduct.Type === 'AX' || vm.selectedProduct.Type === 'AX5' || vm.selectedProduct.Type === 'NAV' || vm.selectedProduct.Type === 'SL') {\r\n vm.selectedTemplateType = [{ \"Name\": \"All Tables\", \"Id\": 'AllObjectsInMultiSelect' }];\r\n } else {\r\n vm.selectedTemplateType = [{ \"Name\": \"All Template Types\", \"Id\": 'AllObjectsInMultiSelect' }];\r\n }\r\n $scope.populateCriteriaModel();\r\n };\r\n\r\n function getTemplates() {\r\n if (vm.selectedProduct.Type === 'AX7') {\r\n vm.templateDropdownIsLoading = true;\r\n AuditTrailEntityDataService.getAllTemplates().then(function (response) {\r\n\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n //removes template Type if Insert, Update, Delete are all false\r\n response.data.remove(function (el) { return el.Insert === false && el.Update === false && el.Delete === false; });\r\n\r\n var All = { \"Name\": \"All Template Types\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(All);\r\n vm.templateTypesDataSource = response.data;\r\n vm.selectedTemplateType = [All];\r\n vm.selectedTemplateType = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedTemplateType);\r\n $scope.runSavedReport();\r\n vm.templateDropdownIsLoading = false;\r\n\r\n\r\n });\r\n } else if (vm.selectedProduct.Type === 'SAP') {\r\n vm.templateDropdownIsLoading = true;\r\n\r\n $http.get(apiUrl + 'api/audittrail/sap/' + vm.selectedProduct.ID + '/templates').then(function (response) {\r\n response.data.forEach(function (row) {\r\n row['Id'] = row.Name;\r\n });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n var All = { \"Name\": \"All Template Types\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(All);\r\n vm.templateTypesDataSource = response.data;\r\n vm.selectedTemplateType = [All];\r\n vm.selectedTemplateType = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedTemplateType);\r\n $scope.runSavedReport();\r\n vm.templateDropdownIsLoading = false;\r\n\r\n });\r\n } else if (vm.selectedProduct.Type === 'OR') {\r\n vm.templateDropdownIsLoading = true;\r\n\r\n $http.get(apiUrl + 'api/audittrail/or/templates').then(function (response) {\r\n response.data.forEach(function (row) {\r\n row['Id'] = row.Name;\r\n });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n var All = { \"Name\": \"All Template Types\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(All);\r\n vm.templateTypesDataSource = response.data;\r\n vm.selectedTemplateType = [All];\r\n vm.selectedTemplateType = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedTemplateType);\r\n $scope.runSavedReport();\r\n vm.templateDropdownIsLoading = false;\r\n\r\n });\r\n } else if (vm.selectedProduct.Type === 'AX') {\r\n vm.templateDropdownIsLoading = true;\r\n\r\n $http.get(apiUrl + 'api/audittrail/ax/tables').then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n var All = { \"Name\": \"All Tables\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(All);\r\n vm.templateTypesDataSource = response.data;\r\n vm.selectedTemplateType = [All];\r\n vm.selectedTemplateType = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedTemplateType);\r\n $scope.runSavedReport();\r\n vm.templateDropdownIsLoading = false;\r\n\r\n });\r\n } else if (vm.selectedProduct.Type === 'GP') {\r\n vm.templateDropdownIsLoading = true;\r\n\r\n $http.get(apiUrl + 'api/audittrail/gp/tables').then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n var All = { \"Name\": \"All Tables\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(All);\r\n vm.templateTypesDataSource = response.data;\r\n vm.selectedTemplateType = [All];\r\n vm.selectedTemplateType = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedTemplateType);\r\n $scope.runSavedReport();\r\n vm.templateDropdownIsLoading = false;\r\n\r\n });\r\n } else if (vm.selectedProduct.Type === 'NAV') {\r\n vm.templateDropdownIsLoading = true;\r\n\r\n $http.get(apiUrl + 'api/audittrail/nav/tables').then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n var All = { \"Name\": \"All Tables\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(All);\r\n vm.templateTypesDataSource = response.data;\r\n vm.selectedTemplateType = [All];\r\n vm.selectedTemplateType = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedTemplateType);\r\n $scope.runSavedReport();\r\n vm.templateDropdownIsLoading = false;\r\n\r\n });\r\n } else if (vm.selectedProduct.Type === 'AX5') {\r\n vm.templateDropdownIsLoading = true;\r\n\r\n $http.get(apiUrl + 'api/audittrail/ax5/tables').then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n var All = { \"Name\": \"All Tables\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(All);\r\n vm.templateTypesDataSource = response.data;\r\n vm.selectedTemplateType = [All];\r\n vm.selectedTemplateType = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedTemplateType);\r\n $scope.runSavedReport();\r\n vm.templateDropdownIsLoading = false;\r\n\r\n });\r\n } else if (vm.selectedProduct.Type === 'SL') {\r\n vm.templateDropdownIsLoading = true;\r\n\r\n $http.get(apiUrl + 'api/audittrail/sl/tables').then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n var All = { \"Name\": \"All Tables\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(All);\r\n vm.templateTypesDataSource = response.data;\r\n vm.selectedTemplateType = [All];\r\n vm.selectedTemplateType = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedTemplateType);\r\n $scope.runSavedReport();\r\n vm.templateDropdownIsLoading = false;\r\n\r\n });\r\n } else if (vm.selectedProduct.IsCustom) {\r\n vm.templateDropdownIsLoading = true;\r\n\r\n $http.get(apiUrl + 'api/audittrail/universal/' + vm.selectedProduct.ID +'/tables').then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n var All = { \"Name\": \"All Tables\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(All);\r\n vm.templateTypesDataSource = response.data;\r\n vm.selectedTemplateType = [All];\r\n vm.selectedTemplateType = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedTemplateType);\r\n $scope.runSavedReport();\r\n vm.templateDropdownIsLoading = false;\r\n\r\n });\r\n } else {\r\n vm.templateTypesDataSource = [];\r\n }\r\n }\r\n\r\n //Start Date picker settings\r\n $scope.thirtyDaysAgo = function () {\r\n var newDate = new Date();\r\n newDate.setDate(newDate.getDate() - 30);\r\n $scope.startDate = newDate;\r\n $scope.startDate = SavedReportSelectorService.checkSavedReportForDate($rootScope.loadedSavedReport, \"StartDate\", $scope.startDate);\r\n };\r\n $scope.thirtyDaysAgo();\r\n\r\n $scope.startDateOptions = {\r\n dateDisabled: disabled,\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && date > $scope.endDate;\r\n }\r\n\r\n $scope.openStartDate = function () {\r\n $scope.startDatePopup.opened = true;\r\n };\r\n\r\n $scope.startDatePopup = {\r\n opened: false\r\n };\r\n\r\n //End Date picker settings\r\n $scope.today = function () {\r\n $scope.endDate = new Date();\r\n $scope.endDate = SavedReportSelectorService.checkSavedReportForDate($rootScope.loadedSavedReport, \"EndDate\", $scope.endDate);\r\n };\r\n $scope.today();\r\n\r\n $scope.endDateOptions = {\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n maxDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n $scope.openEndDate = function () {\r\n $scope.endDatePopup.opened = true;\r\n };\r\n\r\n $scope.endDatePopup = {\r\n opened: false\r\n };\r\n\r\n $scope.populateCriteriaModel = function () {\r\n // do not continue if the proper criteria are not loaded\r\n if (!vm.selectedProduct || vm.selectedTemplateType === undefined) {\r\n return;\r\n }\r\n var criteria = [];\r\n\r\n $scope.product = vm.selectedProduct.ID;\r\n $scope.productType = vm.selectedProduct.Type;\r\n\r\n $scope.templateTypes = helperService.returnNullIfAllIsFound(vm.selectedTemplateType.map(function (el) { return el.Id; }));\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"ProductId\", 'Product', vm.selectedProduct.Name, vm.selectedProduct.ID));\r\n\r\n vm.selectedTemplateType.forEach(function (row) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"TemplateIds\", 'TemplateId', row.Name, row.Id));\r\n });\r\n\r\n setupFilters();\r\n\r\n if (vm.selectedProduct.IsCustom) {\r\n $scope.urlString = apiUrl + 'api/audittrail/universal/' + $scope.productType + '/datachanges';\r\n } else {\r\n $scope.urlString = apiUrl + 'api/audittrail/' + $scope.productType + '/datachanges';\r\n }\r\n\r\n $scope.reportDetailsModel = criteria;\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo($scope);\r\n }\r\n\r\n };\r\n\r\n $scope.generateGridWithSelectedValues = function () {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.dataSource._filter = null;\r\n $scope.grid.dataSource._sort = null;\r\n }\r\n\r\n if ($scope.startDate <= $scope.endDate) {\r\n $scope.populateCriteriaModel();\r\n clearMultiSelectData();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, $scope.grid, true);\r\n } else {\r\n helperService.showErrorMessage(\"Start Date must be before or equal to End Date\");\r\n }\r\n };\r\n\r\n function onRead() {\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n $scope.gridDataSource.read();\r\n }\r\n\r\n const checkboxTemplate = `
`;\r\n\r\n const titleTemplate = `
`;\r\n\r\n var ticketTemplate = `{{ dataItem.TicketProvider }}   {{dataItem.TicketId}}\r\n {{ dataItem.TicketProvider }}   {{dataItem.TicketId}}`;\r\n\r\n vm.setColumns = function () {\r\n if (vm.selectedProduct) {\r\n if (vm.selectedProduct.Type === 'AX7') {\r\n $scope.mainGridColumns = [\r\n { field: \"selected\", headerTemplate: titleTemplate, template: checkboxTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 28, filterable: false, sortable: false },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"ModifiedOn\", title: \"Modified On\", template: \"{{ dataItem.ModifiedOn | date:'short'}}\", filterable: customDatePickerNotNullableFilter },\r\n { field: \"TableLabel\", title: \"Table Label\", filterable: customAutoCompleteFilter },\r\n { field: \"ColumnLabel\", title: \"Column Label\", filterable: customAutoCompleteFilter },\r\n { field: \"Event\", title: \"Event\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter },\r\n { field: \"ModifiedBy\", title: \"Modified By\", filterable: customAutoCompleteFilter },\r\n { field: \"CompanyName\", title: \"Company\", filterable: customAutoCompleteFilter },\r\n { field: \"TitleField1\", title: \"Title Field 1\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"TitleField2\", title: \"Title Field 2\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"RecId\", title: \"Rec Id\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyId\", title: \"Company Id\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"TableId\", title: \"Table Id\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"ColumnId\", title: \"Column Id\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"ObjRecId\", title: \"Obj Rec Id\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"TicketId\", title: \"Ticket Id\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"AtHeaderTicketId\", title: \"Header Ticket Id\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"TicketUrl\", title: \"Ticket Url\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"TicketProvider\", title: \"Ticket Provider\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"TableName\", title: \"Table Name\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"ColumnName\", title: \"Column Name\", hidden: true, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n } else if (vm.selectedProduct.Type === 'SAP') {\r\n $scope.mainGridColumns = [\r\n { field: \"selected\", headerTemplate: titleTemplate, template: checkboxTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 28, filterable: false, sortable: false },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"ChangeDate\", title: \"Date\", template: \"{{ dataItem.ChangeDate | date:'short'}}\", filterable: customDatePickerNotNullableFilter },\r\n { field: \"Template\", title: \"Template\", filterable: customAutoCompleteFilter },\r\n { field: \"TableName\", title: \"Table\", filterable: customAutoCompleteFilter },\r\n { field: \"Event\", title: \"Event\", filterable: customAutoCompleteFilter },\r\n { field: \"FieldName\", title: \"Field\", filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter },\r\n { field: \"User\", title: \"User\", filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'OR') {\r\n $scope.mainGridColumns = [\r\n { field: \"selected\", headerTemplate: titleTemplate, template: checkboxTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 28, filterable: false, sortable: false },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"ChangeDate\", title: \"Date\", template: \"{{ dataItem.ChangeDate | date:'short'}}\", filterable: customDatePickerNotNullableFilter },\r\n { field: \"Template\", title: \"Template\", filterable: customAutoCompleteFilter },\r\n { field: \"TableName\", title: \"Table\", filterable: customAutoCompleteFilter },\r\n { field: \"KeyField\", title: \"Key Field\", filterable: customAutoCompleteFilter },\r\n { field: \"Event\", title: \"Event\", filterable: customAutoCompleteFilter },\r\n { field: \"FieldName\", title: \"Field\", filterable: customAutoCompleteFilter },\r\n { field: \"FieldDescription\", title: \"Field Description\", filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter },\r\n { field: \"User\", title: \"User\", filterable: customAutoCompleteFilter },\r\n { field: \"Responsibility\", title: \"Responsibility\", filterable: customAutoCompleteFilter },\r\n { field: \"Application\", title: \"Application\", filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'AX') {\r\n $scope.mainGridColumns = [\r\n { field: \"selected\", headerTemplate: titleTemplate, template: checkboxTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 28, filterable: false, sortable: false },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"TimeStamp\", title: \"Date\", template: \"{{ dataItem.TimeStamp | date:'short'}}\", filterable: customDatePickerNotNullableFilter },\r\n { field: \"Event\", title: \"Event\", filterable: customAutoCompleteFilter },\r\n { field: \"TableName\", title: \"Table Name\", filterable: customAutoCompleteFilter },\r\n { field: \"TableSystemName\", title: \"Table System Name\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"ColumnName\", title: \"Column Name\", filterable: customAutoCompleteFilter },\r\n { field: \"ColumnSystemName\", title: \"Column System Name\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyName\", title: \"Company Name\", filterable: customAutoCompleteFilter },\r\n { field: \"CompanyId\", title: \"Company Id\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter },\r\n { field: \"User\", title: \"User\", filterable: customAutoCompleteFilter },\r\n { field: \"Application\", title: \"Application\", filterable: customAutoCompleteFilter },\r\n { field: \"Machine\", title: \"Machine\", filterable: customAutoCompleteFilter },\r\n { field: \"KeyField\", title: \"Key Field\", filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'NAV' || vm.selectedProduct.Type === 'SL' || vm.selectedProduct.Type === 'AX5') {\r\n $scope.mainGridColumns = [\r\n { field: \"selected\", headerTemplate: titleTemplate, template: checkboxTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 28, filterable: false, sortable: false },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"Date\", title: \"Date\", template: \"{{ dataItem.Date | date:'short'}}\", filterable: customDatePickerNotNullableFilter },\r\n { field: \"TableName\", title: \"Table\", filterable: customAutoCompleteFilter },\r\n { field: \"Event\", title: \"Event\", filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", filterable: customAutoCompleteFilter },\r\n { field: \"KeyField\", title: \"Key Field\", filterable: customAutoCompleteFilter },\r\n { field: \"ColumnName\", title: \"Column Name\", filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter },\r\n { field: \"User\", title: \"User\", filterable: customAutoCompleteFilter },\r\n { field: \"Application\", title: \"Application\", filterable: customAutoCompleteFilter },\r\n { field: \"Machine\", title: \"Machine\", filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'GP') {\r\n $scope.mainGridColumns = [\r\n { field: \"selected\", headerTemplate: titleTemplate, template: checkboxTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 28, filterable: false, sortable: false },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"Date\", title: \"Date\", template: \"{{ dataItem.Date | date:'short'}}\", filterable: customDatePickerNotNullableFilter },\r\n { field: \"TableName\", title: \"Table\", filterable: customAutoCompleteFilter },\r\n { field: \"UserTableName\", title: \"Table Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Event\", title: \"Event\", filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", filterable: customAutoCompleteFilter },\r\n { field: \"KeyField\", title: \"Key Field\", filterable: customAutoCompleteFilter },\r\n { field: \"ColumnName\", title: \"Column Name\", filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter },\r\n { field: \"User\", title: \"User\", filterable: customAutoCompleteFilter },\r\n { field: \"Application\", title: \"Application\", filterable: customAutoCompleteFilter },\r\n { field: \"Machine\", title: \"Machine\", filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'D365Bc') {\r\n $scope.mainGridColumns = [\r\n { field: \"selected\", headerTemplate: titleTemplate, template: checkboxTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 28, filterable: false, sortable: false },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"dateandTime\", title: \"Date And Time\", template: \"{{ dataItem.dateandTime | date:'short'}}\", filterable: customDatePickerNotNullableFilter },\r\n { field: \"TableName\", title: \"Table Name\", filterable: customAutoCompleteFilter },\r\n { field: \"tableNo\", title: \"Table Number\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"FieldName\", title: \"Field Name\", filterable: customAutoCompleteFilter },\r\n { field: \"fieldNo\", title: \"Field Number\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"typeOfChange\", title: \"Change Type\", filterable: customAutoCompleteFilter },\r\n { field: \"oldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"newValue\", title: \"New Value\", filterable: customAutoCompleteFilter },\r\n { field: \"userId\", title: \"Modified By\", filterable: customAutoCompleteFilter },\r\n { field: \"primaryKeyField1Value\", title: \"Primary Key Field 1 Value\", filterable: customAutoCompleteFilter },\r\n { field: \"primaryKeyField1No\", title: \"Primary Key Field 1 Number\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"primaryKeyField2Value\", title: \"Primary Key Field 2 Value\", filterable: customAutoCompleteFilter },\r\n { field: \"primaryKeyField2No\", title: \"Primary Key Field 2 Number\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"primaryKeyField3Value\", title: \"Primary Key Field 3 Value\", filterable: customAutoCompleteFilter },\r\n { field: \"primaryKeyField3No\", title: \"Primary Key Field 3 Number\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"recId\", title: \"Record Id\", hidden: true, filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'SF') {\r\n $scope.mainGridColumns = [\r\n { field: \"selected\", headerTemplate: titleTemplate, template: checkboxTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 28, filterable: false, sortable: false },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"CreatedDate\", title: \"Created Date\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerNotNullableFilter },\r\n { field: \"CreatedBy\", title: \"Created By\", filterable: customAutoCompleteFilter },\r\n { field: \"Object\", title: \"Object\", filterable: customAutoCompleteFilter },\r\n { field: \"ObjectName\", title: \"Object Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", filterable: customAutoCompleteFilter },\r\n { field: \"DataType\", title: \"Data Type\", filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProduct.Type === 'WD') {\r\n $scope.mainGridColumns = [\r\n { field: \"InstanceId\", title: \"Instance Id\", filterable: customAutoCompleteFilter },\r\n { field: \"WorkdayId\", title: \"Workday Id\", filterable: customAutoCompleteFilter },\r\n { field: \"Date\", title: \"Date\", template: \"{{ dataItem.Date | date:'short'}}\", filterable: customDatePickerNotNullableFilter },\r\n { field: \"ClassesUpdated\", title: \"Classes Updated\", filterable: customAutoCompleteFilter },\r\n { field: \"TaskName\", title: \"Task Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Event\", title: \"Event\", filterable: customAutoCompleteFilter },\r\n { field: \"ChangeType\", title: \"Change Type\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter },\r\n { field: \"ModifiedBy\", title: \"Modified By\", filterable: customAutoCompleteFilter }\r\n ];\r\n } else if (vm.selectedProduct.IsCustom) {\r\n $scope.mainGridColumns = [\r\n { field: \"selected\", headerTemplate: titleTemplate, template: checkboxTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 28, filterable: false, sortable: false },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"Date\", title: \"Date\", template: \"{{ dataItem.Date | date:'short'}}\", filterable: customDatePickerNotNullableFilter },\r\n { field: \"TableName\", title: \"Table\", filterable: customAutoCompleteFilter },\r\n { field: \"UserTableName\", title: \"Table Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Event\", title: \"Event\", filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Company\", filterable: customAutoCompleteFilter },\r\n { field: \"KeyField\", title: \"Key Field\", filterable: customAutoCompleteFilter },\r\n { field: \"ColumnName\", title: \"Column Name\", filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter },\r\n { field: \"User\", title: \"User\", filterable: customAutoCompleteFilter },\r\n { field: \"Application\", title: \"Application\", filterable: customAutoCompleteFilter },\r\n { field: \"Machine\", title: \"Machine\", filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n\r\n vm.ticketModalColumns = [...$scope.mainGridColumns.filter(item => item.field !== 'selected' && item.field !== 'TicketDisplayName')];\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n $scope.mainGridOptions.sortable = false;\r\n\r\n $scope.mainGridOptions.filterable = false;\r\n }\r\n\r\n vm.setLayout(); \r\n }\r\n };\r\n\r\n vm.setLayout = function () {\r\n\r\n var productId;\r\n if (vm.selectedProduct) {\r\n productId = vm.selectedProduct.ID;\r\n }\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout($scope, productId);\r\n }\r\n };\r\n\r\n $scope.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n\r\n $scope.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n $scope.applySelectedFilter = function () {\r\n helperService.applyFilterCatchError($scope);\r\n };\r\n\r\n $scope.deleteFilter = function (id) {\r\n CustomReportServices.deleteFilterFilterManager($scope, id);\r\n };\r\n\r\n $scope.clearAllFilters = function () {\r\n $scope.gridDataSource.filter({});\r\n };\r\n\r\n $scope.saveReportLayoutButton = function () {\r\n CustomReportServices.saveGridLayout($scope, vm.selectedProduct.ID);\r\n };\r\n\r\n //Ticket Multiselect settings\r\n async function modifyTicket(item) {\r\n const matchingHeaderIdItems = $scope.gridDataSource._data.reduce((filtered, option) => {\r\n if (option.ChangeHeaderId === item.ChangeHeaderId) {\r\n option.selected = true;\r\n filtered.push(option);\r\n }\r\n return filtered;\r\n }, []);\r\n\r\n vm.existingTickets = matchingHeaderIdItems.map(match => ({ TicketId: match.TicketId, TicketProvider: match.TicketProvider })).unique();\r\n vm.selectedItems = vm.selectedItems.concat(matchingHeaderIdItems);\r\n await removeDuplicates();\r\n openTicketLinkingModal(true);\r\n }\r\n\r\n async function openTicketLinkingModal(modify) {\r\n onRead();\r\n const ticketModal = $uibModal.open({\r\n templateUrl: 'App/Components/DataChanges/linkTicketsModal/linkTicketsModal.tmpl.html',\r\n controller: linkTicketsModalController,\r\n controllerAs: 'tmvm',\r\n backdrop: 'static',\r\n size: 'xl',\r\n resolve: {\r\n dataItemRecords: () => vm.selectedItems,\r\n selectedProduct: () => vm.selectedProduct,\r\n selectedColumns: () => vm.ticketModalColumns,\r\n uniqueValues: () => vm.uniqueValues,\r\n modify: () => modify,\r\n existingTickets: () => vm.existingTickets || []\r\n }\r\n });\r\n\r\n try {\r\n await ticketModal.result;\r\n clearMultiSelectData();\r\n onRead();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function clearMultiSelectData() {\r\n vm.selectedItems = [];\r\n vm.tickets = [];\r\n vm.existingTickets = [];\r\n vm.allSelected = false;\r\n }\r\n\r\n function clearAllPages() {\r\n clearMultiSelectData();\r\n onRead();\r\n }\r\n\r\n function selectAllChanged() {\r\n if (vm.allSelected) {\r\n $scope.gridDataSource._data.forEach(item => item.TicketId ? item.selected = false : item.selected = true);\r\n vm.selectedItems = [...vm.selectedItems, ...$scope.gridDataSource._data];\r\n } else {\r\n // deselect the items currently being viewed\r\n $scope.gridDataSource._data.forEach(item => item.selected = false);\r\n }\r\n\r\n // update our selected array to only included currently selected items\r\n vm.selectedItems = vm.selectedItems.filter(item => item.selected);\r\n removeDuplicates();\r\n }\r\n\r\n function removeDuplicates() {\r\n vm.selectedItems = vm.selectedItems.filter((item, index, items) => {\r\n return index === items.findIndex(itemToFind => JSON.stringify(itemToFind) === JSON.stringify(item));\r\n });\r\n\r\n vm.uniqueValues = getUniqueValues(vm.selectedItems, 'ChangeHeaderId');\r\n }\r\n\r\n function getUniqueValues(arr, key) {\r\n const seen = new Set();\r\n return arr.filter(item => {\r\n const keyValue = key ? item[key] : JSON.stringify(item);\r\n return seen.has(keyValue) ? false : seen.add(keyValue);\r\n });\r\n }\r\n\r\n function dataItemsSelected() {\r\n if (vm.selectedItems.length) {\r\n $scope.gridDataSource._data.forEach(item => { \r\n if (vm.selectedItems.find(selectedItem => selectedItem.ChangeHeaderId === item.ChangeHeaderId)) {\r\n item.selected = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n function itemSelectionChanged(item) {\r\n if (item.selected) {\r\n const matchingHeaderIdItems = $scope.gridDataSource._data.reduce((filtered, option) => {\r\n if (option.ChangeHeaderId === item.ChangeHeaderId) {\r\n option.selected = true;\r\n filtered.push(option);\r\n }\r\n return filtered;\r\n }, []);\r\n vm.selectedItems = vm.selectedItems.concat(matchingHeaderIdItems);\r\n } else {\r\n $scope.gridDataSource._data = $scope.gridDataSource._data.map(dataItem => {\r\n if (dataItem.ChangeHeaderId === item.ChangeHeaderId) {\r\n dataItem.selected = false;\r\n }\r\n\r\n return dataItem;\r\n });\r\n\r\n vm.selectedItems = vm.selectedItems.filter(selectedItem => selectedItem.ChangeHeaderId !== item.ChangeHeaderId);\r\n }\r\n\r\n removeDuplicates();\r\n checkAllSelection();\r\n }\r\n\r\n function checkAllSelection() {\r\n $timeout(_ => {\r\n if ($scope.gridDataSource._data.length === 0) {\r\n vm.allSelected = false;\r\n } else {\r\n const unlinkedItems = $scope.gridDataSource._data.filter(item => !item.TicketId);\r\n vm.allSelected = unlinkedItems.every(item => item.selected);\r\n }\r\n }, 1);\r\n }\r\n\r\n async function unlinkTicket(headerTicketId) {\r\n try {\r\n await $http.delete(`${apiUrl}api/audittrail/tickets/${headerTicketId}`);\r\n onRead();\r\n } catch (err) {\r\n helperService.showErrorMessage(err);\r\n }\r\n }\r\n\r\n //Date picker settings\r\n $scope.setDates = function () {\r\n var newDate = new Date();\r\n newDate.setDate(newDate.getDate() - $rootScope.UserPreferences.DefaultDaysForAuditTrailReports);\r\n vm.LastNumberOf = $rootScope.UserPreferences.DefaultDaysForAuditTrailReports;\r\n\r\n $scope.vm.startDate = newDate;\r\n $scope.vm.endDate = new Date();\r\n };\r\n $scope.setDates();\r\n\r\n $scope.getDateFilters = function () {\r\n var dateCriteria = $scope.dateCriteria[0];\r\n\r\n if (vm.selectedProduct.Type === 'AX') {\r\n dateCriteria.FieldName = \"TimeStamp\";\r\n } else if (vm.selectedProduct.Type === 'AX7') {\r\n dateCriteria.FieldName = \"ModifiedOn\";\r\n } else if (vm.selectedProduct.Type === 'D365Bc') {\r\n dateCriteria.FieldName = \"dateandTime\";\r\n } else if (vm.selectedProduct.Type === 'SF') {\r\n dateCriteria.FieldName = \"CreatedDate\";\r\n } else {\r\n dateCriteria.FieldName = \"Date\";\r\n }\r\n\r\n if (dateCriteria) {\r\n var dateTimeFieldName = dateCriteria.FieldName;\r\n var dateFilters = {\r\n Criteria: null,\r\n Filters: [],\r\n DateFilters: [],\r\n RelativeFilter: null\r\n };\r\n\r\n var startDate = helperService.setDateToBeginningOfDay(vm.startDate);\r\n var endDate = helperService.setDateToEndOfDay(vm.endDate);\r\n\r\n if (vm.RelativeDateType === 4) {\r\n var startDateRow = {\r\n \"FieldName\": dateTimeFieldName,\r\n \"Operator\": 'GreaterThanOrEqual',\r\n \"Value\": startDate\r\n };\r\n var endDateRow = {\r\n \"FieldName\": dateTimeFieldName,\r\n \"Operator\": 'LessThanOrEqual',\r\n \"Value\": endDate\r\n };\r\n\r\n dateFilters.Filters.push(startDateRow);\r\n dateFilters.Filters.push(endDateRow);\r\n\r\n }\r\n if (vm.RelativeDateType !== 4) {\r\n var relativeDate = {\r\n \"DateType\": vm.RelativeDateType,\r\n \"FieldName\": dateTimeFieldName,\r\n \"Period\": vm.PeriodType,\r\n \"Value\": vm.RelativeDateType === 2 ? vm.LastNumberOf : null\r\n };\r\n\r\n dateFilters.RelativeFilter = relativeDate;\r\n }\r\n\r\n return dateFilters;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n function getUniqueObjects(arr) {\r\n const seen = new Set();\r\n return arr.filter(obj => {\r\n const strObj = JSON.stringify(obj);\r\n if (seen.has(strObj)) {\r\n return false;\r\n }\r\n seen.add(strObj);\r\n return true;\r\n });\r\n }\r\n\r\n $scope.getPeriodId = function (name) {\r\n if (name) {\r\n return vm.PeriodTypeDataSource.find(function (type) {\r\n return type.Name === name;\r\n }).Id;\r\n }\r\n };\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n function setReportMetadata() {\r\n return reportsDataService.getDataChangesReportMetadata(vm.selectedProduct.Type.toLowerCase(), vm.selectedProduct.IsCustom)\r\n .then(data => {\r\n vm.reportMetadata = data.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n vm.filterCriteria.fields.forEach(field => field.displayName = $filter('insertSpaceBetweenCapitalWords')(field.displayName));\r\n if ($rootScope.loadedSavedReport) {\r\n $scope.runSavedReport();\r\n }\r\n });\r\n }\r\n // ---\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n var service = {\r\n getTemplates,\r\n getObjects,\r\n getObjectsByTemplateId,\r\n getFieldsByObjectId,\r\n createTemplate,\r\n editTemplate,\r\n updateTemplate,\r\n cloneTemplate,\r\n deleteTemplate,\r\n addObjectToTemplate,\r\n addFieldToObject,\r\n removeObjectByTemplateIdAndObjectId,\r\n removeFieldByTemplateIdTemplateObjectIdAndTemplateFieldId\r\n };\r\n\r\n return service;\r\n\r\n async function getTemplates(productType) {\r\n switch (productType) {\r\n case 'NS':\r\n try {\r\n return await $http.get(apiUrl + 'api/audittrail/ns/v2/templates');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n break;\r\n case 'ORFC':\r\n try {\r\n return await $http.get(apiUrl + 'api/audittrail/orfc/products');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n }\r\n\r\n function getObjects() {\r\n return $http.get(apiUrl + 'api/audittrail/ns/v2/objects')\r\n .then(getObjectsComplete)\r\n .catch(getObjectsFailed);\r\n\r\n function getObjectsComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function getObjectsFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function getObjectsByTemplateId(templateId) {\r\n return $http.get(apiUrl + 'api/audittrail/ns/v2/templates/' + templateId)\r\n .then(getObjectsByTemplateIdComplete)\r\n .catch(getObjectsByTemplateIdFailed);\r\n\r\n function getObjectsByTemplateIdComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function getObjectsByTemplateIdFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function getFieldsByObjectId(objectId) {\r\n return $http.get(apiUrl + 'api/audittrail/ns/v2/objects/' + objectId + '/fields')\r\n .then(getObjectsByTemplateIdComplete)\r\n .catch(getObjectsByTemplateIdFailed);\r\n\r\n function getObjectsByTemplateIdComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function getObjectsByTemplateIdFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function createTemplate(data) {\r\n return $http.post(apiUrl + 'api/audittrail/ns/v2/templates', data)\r\n .then(createTemplateComplete)\r\n .catch(createTemplateFailed);\r\n\r\n function createTemplateComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function createTemplateFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function editTemplate(templateId, data) {\r\n return $http.put(apiUrl + 'api/audittrail/ns/v2/templates/' + templateId, data)\r\n .then(editTemplateComplete)\r\n .catch(editTemplateFailed);\r\n\r\n function editTemplateComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function editTemplateFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n async function updateTemplate(template) {\r\n try {\r\n return await $http.put(apiUrl + 'api/audittrail/orfc/products', template);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function cloneTemplate(templateId, data) {\r\n return $http.post(apiUrl + 'api/audittrail/ns/v2/templates/' + templateId + '/clone', data)\r\n .then(cloneTemplateComplete)\r\n .catch(cloneTemplateFailed);\r\n\r\n function cloneTemplateComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function cloneTemplateFailed(error) {\r\n errorsDataService.catch(error);\r\n throw error;\r\n }\r\n }\r\n\r\n function deleteTemplate(templateId) {\r\n return $http.delete(apiUrl + 'api/audittrail/ns/v2/templates/' + templateId)\r\n .then(deleteTemplateComplete)\r\n .catch(deleteTemplateFailed);\r\n\r\n function deleteTemplateComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function deleteTemplateFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function addObjectToTemplate(templateId, data) {\r\n return $http.post(apiUrl + 'api/audittrail/ns/v2/templates/' + templateId + '/objects', data)\r\n .then(addObjectToTemplateComplete)\r\n .catch(addObjectToTemplateFailed);\r\n\r\n function addObjectToTemplateComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function addObjectToTemplateFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function addFieldToObject(templateId, templateObjectId, data) {\r\n return $http.post(apiUrl + 'api/audittrail/ns/v2/templates/' + templateId + '/objects/' + templateObjectId + '/fields', data)\r\n .then(addFieldToObjectComplete)\r\n .catch(addFieldToObjectFailed);\r\n\r\n function addFieldToObjectComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function addFieldToObjectFailed(error) {\r\n errorsDataService.catch(error);\r\n throw error;\r\n }\r\n }\r\n\r\n function removeObjectByTemplateIdAndObjectId(templateId, templateObjectId) {\r\n return $http.delete(apiUrl + 'api/audittrail/ns/v2/templates/' + templateId + '/objects/' + templateObjectId)\r\n .then(removeObjectByTemplateIdAndObjectIdComplete)\r\n .catch(removeObjectByTemplateIdAndObjectIdFailed);\r\n\r\n function removeObjectByTemplateIdAndObjectIdComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function removeObjectByTemplateIdAndObjectIdFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function removeFieldByTemplateIdTemplateObjectIdAndTemplateFieldId(templateId, templateObjectId, templateFieldId) {\r\n return $http.delete(apiUrl + 'api/audittrail/ns/v2/templates/' + templateId + '/objects/' + templateObjectId + '/fields/' + templateFieldId)\r\n .then(removeFieldByTemplateIdTemplateObjectIdAndTemplateFieldIdComplete)\r\n .catch(removeFieldByTemplateIdTemplateObjectIdAndTemplateFieldIdFailed);\r\n\r\n function removeFieldByTemplateIdTemplateObjectIdAndTemplateFieldIdComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function removeFieldByTemplateIdTemplateObjectIdAndTemplateFieldIdFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function showError(error) {\r\n errorsDataService.catch(error);\r\n }\r\n\r\n function sendError(error) {\r\n throw error;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getConfigurationByProductId,\r\n getNetSuiteAuditTrailVersion,\r\n setProductConfiguration,\r\n dataActionCall\r\n };\r\n\r\n return service;\r\n\r\n //GET Requests\r\n async function getConfigurationByProductId(productId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/products/${productId}/configuration`);\r\n } catch {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getNetSuiteAuditTrailVersion() {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/configuration/NS_AT2_Version`);\r\n } catch {\r\n showError(err);\r\n }\r\n }\r\n\r\n //PUT Requests\r\n async function setProductConfiguration(productId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/products/${productId}/configuration`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function dataActionCall(action, data) {\r\n if (action === 'import') {\r\n try {\r\n return await $http.put(`${apiUrl}api/audittrail/sf/object-tracking/import-metadata`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n } else {\r\n try {\r\n return await $http.put(`${apiUrl}api/audittrail/auditdata/` + action, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getGeneratedReports,\r\n createGeneratedReport,\r\n createAx7GeneratedReport,\r\n deleteReport\r\n };\r\n\r\n return service;\r\n\r\n async function getGeneratedReports() {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/reports`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function createGeneratedReport(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/audittrail/reports`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function createAx7GeneratedReport(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/audittrail/ax7/reports`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteReport(reportId) {\r\n try {\r\n await $http.delete(`${apiUrl}api/audittrail/reports/${reportId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n}"," export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getSnapshots,\r\n getDistinctRecordType,\r\n getRecordType,\r\n updateRecordType,\r\n updateSnapshot,\r\n updateReportCurrentByDate\r\n };\r\n\r\n return service;\r\n\r\n async function getSnapshots(productType) {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/${productType}/reports`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRecordType() {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/ns/snapshot/recordtype`)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getDistinctRecordType(selectedRecordType) {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/ns/snapshot/header/distinctbyrecordtype/${selectedRecordType}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function updateRecordType(data, rowId) {\r\n try {\r\n return await $http({\r\n method: 'PUT',\r\n url: `${apiUrl}/api/audittrail/ns/snapshot/recordtype/` + rowId,\r\n data: data\r\n });\r\n } catch (err) {\r\n showError(err)\r\n sendError(err);\r\n }\r\n\r\n }\r\n\r\n async function updateSnapshot(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/audittrail/orfc/reports/${data.Id}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateReportCurrentByDate(data, params) {\r\n try {\r\n return await $http({\r\n method: 'POST',\r\n url: `${apiUrl}api/audittrail/ns/snapshot/report/currentbydate`,\r\n data: data,\r\n params: params\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, $q, errorsDataService) {\r\n\r\n var Entity = function (params) {\r\n this.Id = params.Id;\r\n this.Name = params.Name;\r\n this.TrackedTableList = params.TrackedTableList;\r\n this.IsCustom = params.IsCustom;\r\n this.CreatedDate = params.CreatedDate;\r\n this.CreatedBy = params.CreatedBy;\r\n this.IsEnabled = params.IsEnabled;\r\n this.BaseTemplate = params.BaseTemplate;\r\n };\r\n\r\n var TrackedTable = function (params) {\r\n this.Id = params.Id;\r\n this.Name = params.Name;\r\n this.Label = params.Label;\r\n this.TrackedFields = params.TrackedFields;\r\n this.TrackAll = params.TrackAll;\r\n this.TrackInsert = params.TrackInsert,\r\n this.TrackUpdate = params.TrackUpdate;\r\n this.TrackDelete = params.TrackDelete;\r\n this.Type = 'Table';\r\n };\r\n\r\n var TrackedField = function (params) {\r\n this.Id = params.Id;\r\n this.Name = params.Name;\r\n this.Label = params.Label,\r\n this.TrackAll = params.TrackAll;\r\n this.TrackInsert = params.TrackInsert,\r\n this.TrackUpdate = params.TrackUpdate;\r\n this.TrackDelete = params.TrackDelete;\r\n this.Type = 'Field';\r\n };\r\n\r\n this.convertToTrackedTable = function (table) {\r\n var convertedFields = [];\r\n table.TrackedFields.forEach(function (field) {\r\n convertedFields.push(new TrackedField({ Id: field.Id, Name: field.Name, Label: field.Label, TrackAll: false, TrackDelete: false, TrackInsert: false, TrackUpdate: false }));\r\n });\r\n\r\n return new TrackedTable({\r\n Id: table.Id,\r\n Name: table.Name,\r\n Label: table.Label,\r\n TrackedFields: convertedFields,\r\n TrackAll: false,\r\n TrackInsert: false,\r\n TrackUpdate: false,\r\n TrackDelete: false,\r\n Type: 'Table'\r\n });\r\n };\r\n\r\n this.convertFromTrackedTable = function (templateId, tableList) {\r\n\r\n var convertedTables = [];\r\n var convertedFields = [];\r\n\r\n tableList.forEach(function (trackedTable) {\r\n convertedFields = new Array();\r\n trackedTable.TrackedFields.forEach(function (field) {\r\n convertedFields.push({\r\n \"FieldId\": field.Id,\r\n \"TrackInsert\": field.TrackInsert,\r\n \"TrackUpdate\": field.TrackUpdate,\r\n \"TrackDelete\": field.TrackDelete\r\n });\r\n });\r\n\r\n convertedTables.push({\r\n \"TableId\": trackedTable.Id,\r\n \"Fields\": convertedFields\r\n });\r\n });\r\n\r\n return convertedTables;\r\n };\r\n\r\n function checkAll(field) {\r\n return field.TrackInsert === true && field.TrackUpdate === true && field.TrackDelete === true;\r\n }\r\n\r\n function checkInsert(field) {\r\n return field.TrackInsert === true;\r\n }\r\n\r\n function checkUpdate(field) {\r\n return field.TrackUpdate === true;\r\n }\r\n\r\n function checkDelete(field) {\r\n return field.TrackDelete === true;\r\n }\r\n\r\n //Convert API tracked templates into UI Entities for use on UI side\r\n this.mapTemplate = function (template, includeUntrackedFields) {\r\n\r\n var templateDfrd = $.Deferred();\r\n\r\n var entityList = [];\r\n var trackedFieldList = [];\r\n var trackedTableList = [];\r\n var returnedTemplate = null;\r\n var promises = [];\r\n var selectedTemplate = null;\r\n\r\n getTrackingTemplate(template.Id).then(function (response) {\r\n returnedTemplate = response.data;\r\n trackedFieldList = new Array();\r\n trackedTableList = new Array();\r\n\r\n returnedTemplate.TrackedTables.forEach(function (templateTable) {\r\n\r\n promises.push(getAXFieldsByTableId(templateTable.TableId).then(function (fieldList) {\r\n trackedFieldList = new Array();\r\n\r\n fieldList.data.forEach(function (field) {\r\n var foundField = templateTable.TrackedFields.find(function (trackedField) {\r\n return trackedField.FieldId === field.Id;\r\n });\r\n\r\n if (foundField) {\r\n trackedFieldList.push(new\r\n TrackedField({\r\n Id: foundField.FieldId,\r\n Name: foundField.FieldName,\r\n Label: foundField.FieldLabel,\r\n TrackAll: foundField.TrackInsert === true && foundField.TrackUpdate === true && foundField.TrackDelete === true ? true : false,\r\n TrackInsert: foundField.TrackInsert,\r\n TrackUpdate: foundField.TrackUpdate,\r\n TrackDelete: foundField.TrackDelete\r\n }));\r\n }\r\n else {\r\n if (includeUntrackedFields) {\r\n trackedFieldList.push(new\r\n TrackedField({\r\n Id: field.Id,\r\n Name: field.Name,\r\n Label: field.Label,\r\n TrackAll: false,\r\n TrackInsert: false,\r\n TrackUpdate: false,\r\n TrackDelete: false\r\n }));\r\n }\r\n }\r\n });\r\n\r\n trackedTableList.push(new TrackedTable({\r\n Id: templateTable.TableId,\r\n Name: templateTable.TableName,\r\n Label: templateTable.TableLabel,\r\n TrackedFields: trackedFieldList,\r\n TrackAll: trackedFieldList.every(checkAll),\r\n TrackInsert: trackedFieldList.every(checkInsert),\r\n TrackUpdate: trackedFieldList.every(checkUpdate),\r\n TrackDelete: trackedFieldList.every(checkDelete)\r\n }));\r\n }));\r\n\r\n });\r\n\r\n $q.all(promises).then(function () {\r\n selectedTemplate = new Entity({ Id: template.Id, Name: template.Name, IsEnabled: template.IsEnabled, IsCustom: template.IsCustom, BaseTemplate: template.BaseTemplate, CreatedBy: template.CreatedBy, CreatedDate: template.CreatedDate, TrackedTableList: trackedTableList });\r\n\r\n templateDfrd.resolve(selectedTemplate);\r\n });\r\n });\r\n\r\n return $.when(templateDfrd).done(function () {\r\n return;\r\n }).promise();\r\n };\r\n\r\n this.mapTemplateHeaders = function (trackedTemplateList) {\r\n\r\n var templateDfrd = $.Deferred();\r\n\r\n var entityList = [];\r\n\r\n //Loop thru API Tracked Template list\r\n trackedTemplateList.forEach(function (template) {\r\n\r\n entityList.push(new Entity({ Id: template.Id, Name: template.Name, IsEnabled: template.IsEnabled, IsCustom: template.IsCustom, BaseTemplate: template.BaseTemplate, CreatedBy: template.CreatedBy, CreatedDate: template.CreatedDate }));\r\n });\r\n\r\n templateDfrd.resolve(entityList);\r\n\r\n return $.when(templateDfrd).done(function () {\r\n return;\r\n }).promise();\r\n };\r\n\r\n this.mapTemplateHeader = function (template) {\r\n\r\n var templateDfrd = $.Deferred();\r\n var convertedTemplate = null;\r\n\r\n convertedTemplate = new Entity({ Id: template.Id, Name: template.Name, IsEnabled: template.IsEnabled, IsCustom: template.IsCustom, BaseTemplate: template.BaseTemplate, CreatedBy: template.CreatedBy, CreatedDate: template.CreatedDate });\r\n\r\n templateDfrd.resolve(convertedTemplate);\r\n\r\n return $.when(templateDfrd).done(function () {\r\n return;\r\n }).promise();\r\n };\r\n\r\n this.getAllTemplates = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/audittrail/template'\r\n });\r\n };\r\n\r\n function getTemplate(id) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/audittrail/template/' + id\r\n });\r\n }\r\n\r\n this.getTemplate = function (id) {\r\n return getTemplate(id);\r\n };\r\n\r\n this.getTrackingTemplate = function (id) {\r\n return getTrackingTemplate(id);\r\n };\r\n\r\n function getTrackingTemplate(id) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/audittrail/templatetracking/' + id\r\n });\r\n }\r\n\r\n this.createTemplate = function (name, productId) {\r\n return $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/audittrail/template',\r\n data: {\r\n Name: name,\r\n ProductId: productId\r\n }\r\n });\r\n };\r\n\r\n this.updateTemplateTables = function (templateId, tables) {\r\n return $http({\r\n method: 'PUT',\r\n url: apiUrl + 'api/audittrail/templatetracking/' + templateId,\r\n data:\r\n {\r\n \"TemplateId\": templateId,\r\n \"tables\": tables\r\n }\r\n });\r\n };\r\n\r\n this.deleteTemplate = function (templateId) {\r\n\r\n return $http({\r\n method: 'DELETE',\r\n url: apiUrl + 'api/audittrail/template/' + templateId\r\n });\r\n };\r\n\r\n this.revertTemplate = function (templateId) {\r\n return $http({\r\n method: 'PUT',\r\n url: apiUrl + 'api/audittrail/template/' + templateId + '/revert',\r\n data: {\r\n TemplateId: templateId\r\n }\r\n });\r\n };\r\n\r\n this.applyTemplates = function (selectedTemplates) {\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/audittrail/ax7/template/apply',\r\n data: selectedTemplates\r\n }).then(response => {\r\n return response;\r\n }).catch(response => {\r\n errorsDataService.catch(response);\r\n throw response.data;\r\n });\r\n };\r\n\r\n this.exportTemplates = function () {\r\n return $http.get(`${apiUrl}api/audittrail/template/ax7/export`, { responseType: 'blob' });\r\n };\r\n\r\n this.importTemplates = function (data) {\r\n return $http.put(`${apiUrl}api/audittrail/ax7/template/import`, data, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n };\r\n\r\n\r\n //AX AT Calls\r\n this.getAllAXTables = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/audittrail/ax7/metadata/tables'\r\n });\r\n };\r\n\r\n function getAXFieldsByTableId(tableId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/audittrail/ax7/metadata/table/' + tableId + '/fields'\r\n });\r\n }\r\n\r\n this.getAXFieldsByTableId = function (tableId) {\r\n return getAXFieldsByTableId(tableId);\r\n };\r\n\r\n}\r\n","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getTemplates,\r\n getSelectedClasses,\r\n getAllClasses,\r\n createTemplate,\r\n addClassToTemplate,\r\n cloneTemplate,\r\n updateTemplate,\r\n deleteTemplate,\r\n deleteClass\r\n };\r\n\r\n return service;\r\n\r\n // GET Calls\r\n async function getTemplates() {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/template`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSelectedClasses(templateId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/wd/template/${templateId}/classes`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n // POST calls\r\n async function createTemplate(postData) {\r\n try {\r\n return await $http.post(`${apiUrl}api/audittrail/template`, postData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getAllClasses(postData, params) {\r\n return await $http({\r\n method: 'POST',\r\n url: `${apiUrl}api/audittrail/wd/classes`,\r\n data: postData,\r\n params: params\r\n });\r\n }\r\n\r\n async function addClassToTemplate(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/audittrail/wd/template/class`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function cloneTemplate(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/audittrail/wd/template/clone`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // PUT calls\r\n async function updateTemplate(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/audittrail/template/${data.Id}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n //DELETE calls\r\n async function deleteTemplate(templateId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/audittrail/wd/template/${templateId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n\r\n async function deleteClass(templateClassId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/audittrail/wd/template/classes/${templateClassId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) { errorsDataService.catch(err); }\r\n function sendError(err) { throw err; }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getObjectsToTrack,\r\n saveFieldDataChanges,\r\n saveObjectDataChanges,\r\n exportObjectData,\r\n importObjectData,\r\n importObjectTrackingMetadata\r\n };\r\n\r\n return service;\r\n\r\n async function getObjectsToTrack() {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/sf/object-tracking`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err)\r\n }\r\n }\r\n\r\n async function saveFieldDataChanges(fieldData) {\r\n const data = { \"Id\": fieldData.Id, \"Enabled\": fieldData.Enabled };\r\n try {\r\n return await $http.put(`${apiUrl}api/audittrail/sf/object-tracking/field/${fieldData.Id}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err)\r\n }\r\n }\r\n\r\n async function saveObjectDataChanges(fieldData) {\r\n const data = { \"Id\": fieldData.Id, \"Enabled\": fieldData.Enabled };\r\n try {\r\n return await $http.put(`${apiUrl}api/audittrail/sf/object-tracking/object/${fieldData.Id}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err)\r\n }\r\n }\r\n\r\n async function importObjectTrackingMetadata() {\r\n try {\r\n return await $http.put(`${apiUrl}api/audittrail/sf/object-tracking/import-metadata`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err)\r\n }\r\n }\r\n\r\n async function exportObjectData() {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/sf/object-tracking/export`, {responseType: \"blob\"});\r\n } catch (err) {\r\n showError(err);\r\n sendError(err)\r\n }\r\n }\r\n\r\n async function importObjectData(formData) {\r\n try {\r\n return await $http.put(`${apiUrl}api/audittrail/sf/object-tracking/import`, formData, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err)\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}","import angular from 'angular';\r\nimport templatesDataServiceFactory from '../Components/NetSuiteAuditTrail/MaintainTemplates/templatesDataService.factory';\r\nimport manageDataFactory from '../Components/ManageDataV2/Factories/manageData.factory';\r\nimport manageDataDataServiceFactory from '../Components/ManageDataV2/Factories/manageDataDataService.factory';\r\nimport generatedReportsDataServiceFactory from '../Components/ReportGenerator/generatedReportsDataService.factory';\r\nimport snapshotsDataServiceFactory from '../Components/AuditTrail/MaintainSnapshots/snapshotsDataService.factory';\r\nimport templateDataService from '../Components/TemplateTracking/TemplateTrackingDetails/templateDataService';\r\nimport workdayMaintainTemplatesDataServiceFactory from '../Components/workdayMaintainTemplates/workdayMaintainTemplatesDataService.factory';\r\nimport salesforceAtDataService from '../Components/salesForceAuditTrail/salesforceAtDataService.factory.js';\r\n\r\nexport default angular\r\n .module('app.auditTrail.factories', [])\r\n .service('AuditTrailEntityDataService', templateDataService)\r\n .factory('templatesDataService', templatesDataServiceFactory)\r\n .factory('manageDataFactory', manageDataFactory)\r\n .factory('manageDataDataService', manageDataDataServiceFactory)\r\n .factory('generatedReportsDataService', generatedReportsDataServiceFactory)\r\n .factory('snapshotsDataService', snapshotsDataServiceFactory)\r\n .factory('workdayMaintainTemplatesDataService', workdayMaintainTemplatesDataServiceFactory)\r\n .factory('salesforceAtDataService', salesforceAtDataService)\r\n .name;","export default function () {\r\n var service = {\r\n getActionsByProductId\r\n };\r\n\r\n return service;\r\n\r\n function getActionsByProductId(product) {\r\n var actionsArray = [\r\n {\r\n name: 'Collect',\r\n displayName: 'Collect Data Changes',\r\n buttonText: 'Collect',\r\n description: 'Moves audit trail data from the selected product to the Fastpath Assure system for audit trail reporting.',\r\n type: 'AuditTrailImport',\r\n configValue: null,\r\n canSchedule: true\r\n },\r\n {\r\n name: 'Archive',\r\n displayName: 'Archive Data Changes',\r\n buttonText: 'Archive',\r\n description: 'Archives audit trail data older than the specified date. This will remove this data from your audit trail reports but is available for restore, if needed.',\r\n type: null,\r\n configValue: 'AT_ArchiveDays',\r\n canSchedule: true\r\n },\r\n {\r\n name: 'Purge',\r\n displayName: 'Purge Data Changes',\r\n buttonText: 'Purge',\r\n description: 'Purges archived audit trail data older than the specified date. This will permanently remove the audit trail data from the Fastpath Assure system. The purge process will only delete data from the archive tables.',\r\n type: null,\r\n configValue: 'AT_PurgeDays',\r\n canSchedule: true\r\n },\r\n {\r\n name: 'Restore',\r\n displayName: 'Restore Data Changes',\r\n buttonText: 'Restore',\r\n description: 'Restores archived audit trail data between the specified dates. This will move the data back into the reporting tables and the data will be available on your Audit Trail reports.',\r\n type: null,\r\n configValue: null,\r\n canSchedule: false\r\n }\r\n ];\r\n if (product.Type === 'NS') {\r\n if (!product.version || product.version === 1) {\r\n var action = {\r\n name: 'Collect',\r\n displayName: 'Collect Snapshot',\r\n buttonText: 'Collect',\r\n description: 'The Collect Snapshot process will move selected metadata from the selected product to the Fastpath Assure system for reporting and historical comparisons.',\r\n type: 'AuditTrailImport_NetSuiteSnapshot',\r\n configValue: null,\r\n canSchedule: true\r\n };\r\n actionsArray.unshift(action);\r\n } else if (product.version === 2) {\r\n actionsArray = [\r\n {\r\n name: 'Collect',\r\n displayName: 'Import Data',\r\n buttonText: 'Import Data',\r\n description: 'Import audit trail data from NetSuite.',\r\n type: 'AuditTrailImport',\r\n configValue: null,\r\n canSchedule: true\r\n },\r\n {\r\n name: 'Collect',\r\n displayName: 'Refresh Metadata',\r\n buttonText: 'Refresh Metadata',\r\n description: 'Refreshes available record types and fields based on NetSuite system notes.',\r\n type: 'AuditTrailImport_NetSuiteMetadata',\r\n configValue: null,\r\n canSchedule: false\r\n }\r\n ];\r\n }\r\n }\r\n\r\n if (product.Type === 'WD') {\r\n actionsArray = actionsArray.concat([\r\n {\r\n name: 'Collect',\r\n displayName: 'Collect Metadata',\r\n buttonText: 'Collect Metadata',\r\n description: 'Collect Metadata from Workday.',\r\n type: 'AuditTrailImport_WorkdayMetadata',\r\n configValue: null,\r\n canSchedule: true\r\n }\r\n ]);\r\n }\r\n\r\n if (product.Type === 'SF') {\r\n actionsArray = actionsArray.concat([\r\n {\r\n name: 'Import',\r\n displayName: 'Import Metadata',\r\n buttonText: 'Import Metadata',\r\n description: 'Import Metadata from Salesforce.',\r\n type: 'AuditTrailImport',\r\n configValue: null,\r\n canSchedule: true\r\n },\r\n {\r\n name: 'Setup',\r\n displayName: 'Track Setup Data Changes',\r\n buttonText: 'Track Setup Data Changes',\r\n description: 'Enable Setup Changes Data Collection',\r\n type: null,\r\n configValue: 'SF_AT_EnableSetupTracking',\r\n canSchedule: false\r\n } \r\n ]);\r\n }\r\n\r\n return actionsArray;\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getUsers,\r\n getRecordTypes,\r\n nsDataChangesReport\r\n };\r\n\r\n return service;\r\n\r\n async function getUsers() {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/ns/places/datachanges/users`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getRecordTypes() {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/recordtypes`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function nsDataChangesReport(data, params) {\r\n try {\r\n return await $http({\r\n method: 'POST',\r\n url: `${apiUrl}api/audittrail/ns/places/datachanges`,\r\n data: data,\r\n params: params\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n allChangesReport,\r\n ticketsReport,\r\n updateChangeRecord\r\n };\r\n\r\n return service;\r\n\r\n async function allChangesReport(data, params) {\r\n try {\r\n return await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/audittrail/ns/v2/places/allchanges',\r\n data: data,\r\n params: params\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function ticketsReport(ticketProvider, data) {\r\n try {\r\n return await $http.post(apiUrl + 'api/core/tickets/' + ticketProvider + '/search/', data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateChangeRecord(record) {\r\n try {\r\n return await $http.put(apiUrl + 'api/audittrail/ns/v2/detail/' + record.ChangeId, record);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}\r\n","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getOptionSets,\r\n getOptionSetValuesByOptionSet,\r\n editOptionSetValue,\r\n addOptionSetValue\r\n };\r\n\r\n return service;\r\n\r\n async function getOptionSets() {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/ns/v2/optionsets`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getOptionSetValuesByOptionSet(optionSetId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/ns/v2/optionsets/${optionSetId}/values`)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function editOptionSetValue(optionSetId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/audittrail/ns/v2/optionsets/${optionSetId}/values`, data)\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addOptionSetValue(optionSetId, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/audittrail/ns/v2/optionsets/${optionSetId}/values`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n var service = {\r\n getUserGroups,\r\n getUsers,\r\n getUsersByUserGroupId,\r\n createUserGroup,\r\n editUserGroup,\r\n deleteUserGroup,\r\n addUserToUserGroup,\r\n removeUserGroupUser\r\n };\r\n\r\n return service;\r\n\r\n async function getUserGroups() {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/ns/v2/usergroups`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getUsers() {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/ns/v2/users`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getUsersByUserGroupId(userGroupId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/audittrail/ns/v2/usergroups/${userGroupId}/users`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function createUserGroup(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/audittrail/ns/v2/usergroups`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function editUserGroup(userGroupId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/audittrail/ns/v2/usergroups/${userGroupId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteUserGroup(userGroupId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/audittrail/ns/v2/usergroups/${userGroupId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function addUserToUserGroup(userGroupId, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/audittrail/ns/v2/usergroups/${userGroupId}/users`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function removeUserGroupUser(userGroupId, userGroupUserId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/audittrail/ns/v2/usergroups/${userGroupId}/users/${userGroupUserId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n var service = {\r\n getDocumentation,\r\n getDocumentationTypes,\r\n getDocumentationAuthorizedByOptions,\r\n createDocumentation,\r\n updateDocumentation,\r\n deleteDocumentation,\r\n getDocumentationLinkedChangesList,\r\n getDocumentationLinkedTicketsList,\r\n linkChangeTicketToDocumentation,\r\n deleteChangeTicketDocumentationLink,\r\n linkChangeToDocumentation,\r\n deleteChangeDocumentationLink\r\n };\r\n\r\n return service;\r\n\r\n function getDocumentation() {\r\n return $http.get(apiUrl + 'api/audittrail/ns/v2/documentation')\r\n .then(getDocumentationComplete)\r\n .catch(getDocumentationFailed);\r\n\r\n function getDocumentationComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function getDocumentationFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function getDocumentationTypes() {\r\n return $http.get(apiUrl + 'api/audittrail/ns/v2/optionsets/453D5A39-6F39-4CFE-9DDE-5F21180259FC/values')\r\n .then(getDocumentationTypesComplete)\r\n .catch(getDocumentationTypesFailed);\r\n\r\n function getDocumentationTypesComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function getDocumentationTypesFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function getDocumentationAuthorizedByOptions() {\r\n return $http.get(apiUrl + 'api/audittrail/ns/v2/optionsets/4ADF6D38-2716-4D60-B613-3ABED3AC662F/values')\r\n .then(getDocumentationAuthorizedByOptionsComplete)\r\n .catch(getDocumentationAuthorizedByOptionsFailed);\r\n\r\n function getDocumentationAuthorizedByOptionsComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function getDocumentationAuthorizedByOptionsFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function createDocumentation(data) {\r\n return $http.post(apiUrl + 'api/audittrail/ns/v2/documentation', data)\r\n .then(createDocumentationComplete)\r\n .catch(createDocumentationFailed);\r\n\r\n function createDocumentationComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function createDocumentationFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function updateDocumentation(data) {\r\n return $http.put(apiUrl + 'api/audittrail/ns/v2/documentation', data)\r\n .then(updateDocumentationComplete)\r\n .catch(updateDocumentationFailed);\r\n\r\n function updateDocumentationComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function updateDocumentationFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function deleteDocumentation(documentationId) {\r\n return $http.delete(apiUrl + 'api/audittrail/ns/v2/documentation/' + documentationId)\r\n .then(deleteDocumentationComplete)\r\n .catch(deleteDocumentationFailed);\r\n\r\n function deleteDocumentationComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function deleteDocumentationFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function getDocumentationLinkedChangesList(documentationId, data, params) {\r\n return $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/audittrail/ns/v2/documentation/' + documentationId + '/details/list/paged',\r\n data: data,\r\n params: params\r\n }).then(getDocumentationLinkedChangesListComplete)\r\n .catch(getDocumentationLinkedChangesListFailed);\r\n\r\n function getDocumentationLinkedChangesListComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function getDocumentationLinkedChangesListFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function getDocumentationLinkedTicketsList(documentationId, data, params) {\r\n return $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/audittrail/ns/v2/documentation/' + documentationId + '/tickets/list/paged',\r\n data: data,\r\n params: params\r\n }).then(getDocumentationLinkedTicketsListComplete)\r\n .catch(getDocumentationLinkedTicketsListFailed);\r\n\r\n function getDocumentationLinkedTicketsListComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function getDocumentationLinkedTicketsListFailed(error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function linkChangeTicketToDocumentation(documentationId, data) {\r\n return $http.post(apiUrl + 'api/audittrail/ns/v2/documentation/' + documentationId + '/tickets', data)\r\n .then(linkChangeTicketToDocumentationComplete)\r\n .catch(linkChangeTicketToDocumentationFailed);\r\n\r\n function linkChangeTicketToDocumentationComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function linkChangeTicketToDocumentationFailed(error) {\r\n errorsDataService.catch(error);\r\n throw error;\r\n }\r\n }\r\n\r\n function deleteChangeTicketDocumentationLink(documentationId, documentationTicketId) {\r\n return $http.delete(apiUrl + 'api/audittrail/ns/v2/documentation/' + documentationId + '/tickets/' + documentationTicketId)\r\n .then(deleteChangeTicketDocumentationLinkComplete)\r\n .catch(deleteChangeTicketDocumentationLinkFailed);\r\n\r\n function deleteChangeTicketDocumentationLinkComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function deleteChangeTicketDocumentationLinkFailed(error) {\r\n errorsDataService.catch(error);\r\n throw error;\r\n }\r\n }\r\n\r\n function linkChangeToDocumentation(documentationId, data) {\r\n return $http.post(apiUrl + 'api/audittrail/ns/v2/documentation/' + documentationId + '/details', data)\r\n .then(linkChangeToDocumentationComplete)\r\n .catch(linkChangeToDocumentationFailed);\r\n\r\n function linkChangeToDocumentationComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function linkChangeToDocumentationFailed(error) {\r\n errorsDataService.catch(error);\r\n throw error;\r\n }\r\n }\r\n\r\n function deleteChangeDocumentationLink(documentationId, documentationDetailId) {\r\n return $http.delete(apiUrl + 'api/audittrail/ns/v2/documentation/' + documentationId + '/details/' + documentationDetailId)\r\n .then(deleteChangeDocumentationLinkComplete)\r\n .catch(deleteChangeDocumentationLinkFailed);\r\n\r\n function deleteChangeDocumentationLinkComplete(response) {\r\n return response.data;\r\n }\r\n\r\n function deleteChangeDocumentationLinkFailed(error) {\r\n errorsDataService.catch(error);\r\n throw error;\r\n }\r\n }\r\n}","import angular from 'angular';\r\nimport netsuiteDataChangesDataServiceFactory from '../Components/DataChangesNetSuite/netsuiteDataChangesDataService.factory';\r\nimport allChangesDataServiceFactory from '../Components/NetSuiteAuditTrail/AllChanges/allChangesDataService.factory';\r\nimport optionSetsDataServiceFactory from '../Components/NetSuiteAuditTrail/MaintainOptionSets/optionSetsDataService.factory';\r\nimport userGroupsDataServiceFactory from '../Components/NetSuiteAuditTrail/MaintainUserGroups/userGroupsDataService.factory';\r\nimport documentationDataServiceFactory from '../Components/NetSuiteAuditTrail/ManageDocumentation/documentationDataService.factory';\r\n\r\n\r\nexport default angular\r\n .module('app.auditTrail.netSuite.factories', [])\r\n .factory('allChangesDataService', allChangesDataServiceFactory)\r\n .factory('optionSetsDataService', optionSetsDataServiceFactory)\r\n .factory('userGroupsDataService', userGroupsDataServiceFactory)\r\n .factory('nsAtDocumentationService', documentationDataServiceFactory)\r\n .factory('netsuiteDataChangesDataService', netsuiteDataChangesDataServiceFactory)\r\n .name;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, templatesDataService, helperService, $filter, template, isClone) {\r\n\r\n var vm = this;\r\n vm.cancel = cancel;\r\n vm.submitTemplateForm = submitTemplateForm;\r\n vm.hasExistingValueChanged = hasExistingValueChanged;\r\n vm.updateIneligibleObjectIds = updateIneligibleObjectIds;\r\n vm.isIneligibleObjectId = isIneligibleObjectId;\r\n vm.gridView = 'Objects';\r\n\r\n vm.ineligibileObjectIds = [];\r\n vm.template = angular.copy(template);\r\n vm.isClone = isClone;\r\n\r\n function activate() {\r\n if (template.Id) {\r\n vm.origValue = angular.copy(vm.template);\r\n } else {\r\n vm.template.Active = true;\r\n vm.template.Custom = true;\r\n }\r\n\r\n if (isClone) {\r\n setupCloneTemplateGrids();\r\n getTemplateData();\r\n }\r\n }\r\n activate();\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n function getTemplateData() {\r\n templatesDataService.getObjectsByTemplateId(template.Id)\r\n .then(response => {\r\n vm.objectsDataSource = response.TemplateObjects;\r\n });\r\n }\r\n\r\n function setupCloneTemplateGrids() {\r\n var objectsGridOptions = [\r\n { template: \"\", width: 55, filterable: false },\r\n { field: \"ObjectName\", title: \"Name\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n var fieldsGridOptions = [\r\n { template: \"\", width: 55, filterable: false },\r\n { field: \"FieldName\", title: \"Name\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.cloneTemplateObjectsGridOptions = helperService.setNonPageableGridOptions(objectsGridOptions, 300);\r\n vm.cloneTemplateObjectsGridOptions.noRecords = {\r\n template: \"
No Objects exist for this template
\"\r\n };\r\n\r\n vm.cloneTemplateFieldGridOptions = helperService.setNonPageableGridOptions(fieldsGridOptions, 300);\r\n vm.cloneTemplateFieldGridOptions.noRecords = {\r\n template: \"
No Business Processes exist for this ruleset
\"\r\n };\r\n\r\n templatesDataService.getObjectsByTemplateId(template.Id).then(response => {\r\n response.TemplateObjects = $filter('orderBy')(response.TemplateObjects, 'ObjectName');\r\n response.TemplateObjects.forEach(obj => {\r\n obj.isSelected = true;\r\n });\r\n\r\n vm.templateObjects = response.TemplateObjects;\r\n vm.cloneTemplateObjectsGridDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: options => {\r\n options.success(vm.templateObjects);\r\n }\r\n }\r\n });\r\n\r\n vm.templateFields = [];\r\n vm.templateObjects.forEach(object => {\r\n vm.templateFields = vm.templateFields.concat(object.TemplateFields);\r\n });\r\n vm.templateFields.forEach(field => {\r\n field.isSelected = true;\r\n });\r\n vm.templateFields = $filter('orderBy')(vm.templateFields, 'FieldName');\r\n\r\n vm.cloneTemplateFieldGridDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: options => {\r\n options.success(vm.templateFields);\r\n }\r\n }\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n function updateIneligibleObjectIds(object) {\r\n if (object.isSelected) {\r\n var index = vm.ineligibileObjectIds.indexOf(object.TemplateObjectId);\r\n if (index > -1) {\r\n vm.ineligibileObjectIds.splice(index, 1);\r\n }\r\n } else {\r\n vm.ineligibileObjectIds.push(object.TemplateObjectId);\r\n }\r\n }\r\n\r\n function isIneligibleObjectId(field) {\r\n var hasineligibleObjectId = false;\r\n\r\n hasineligibleObjectId = vm.ineligibileObjectIds.some(id => id === field.TemplateObjectId);\r\n if (hasineligibleObjectId) {\r\n field.isSelected = false;\r\n }\r\n return hasineligibleObjectId;\r\n }\r\n\r\n function submitTemplateForm(template) {\r\n vm.saving = new createSpinner();\r\n if (isClone) {\r\n cloneTemplate(template);\r\n } else {\r\n if (template.Id) {\r\n editTemplate();\r\n } else {\r\n addNewtemplate();\r\n }\r\n }\r\n }\r\n\r\n async function addNewtemplate() {\r\n\r\n let newTemplate = {\r\n 'Name': vm.template.Name,\r\n 'Active': vm.template.Active\r\n };\r\n\r\n try {\r\n await templatesDataService.createTemplate(newTemplate);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close(response);\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n\r\n async function editTemplate() {\r\n\r\n var editedTemplate = {\r\n 'Id': vm.template.Id,\r\n 'Name': vm.template.Name,\r\n 'Active': vm.template.Active\r\n };\r\n\r\n await templatesDataService.editTemplate(template.Id, editedTemplate).then(successCallback);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close();\r\n }\r\n\r\n function cloneTemplate(template) {\r\n vm.disableSubmit = true;\r\n\r\n if (vm.cloneTemplateFieldGridDataSource._data.length === 0) {\r\n vm.cloneTemplateFieldGridDataSource.read().then(_ => cloneTemplate());\r\n } else {\r\n cloneTemplate();\r\n }\r\n\r\n async function cloneTemplate() {\r\n\r\n var selectedObjects = vm.cloneTemplateObjectsGridDataSource._data.filter(object => object.isSelected);\r\n\r\n var selectedFields = vm.cloneTemplateFieldGridDataSource._data.filter(field => field.isSelected);\r\n selectedObjects.forEach(object => {\r\n object.FieldIds = selectedFields.filter(field => field.TemplateObjectId === object.TemplateObjectId).map(field => field.FieldId);\r\n });\r\n\r\n selectedObjects = selectedObjects.map(object => {\r\n var newObject = {};\r\n newObject.Id = object.ObjectId;\r\n newObject.FieldIds = object.FieldIds;\r\n return newObject;\r\n });\r\n\r\n var data = {\r\n \"Name\": template.Name,\r\n \"Active\": template.Active,\r\n \"Objects\": selectedObjects\r\n };\r\n\r\n try {\r\n await templatesDataService.cloneTemplate(template.Id, data);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.disableSubmit = false;\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n }\r\n\r\n function successCallback(response) {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function hasExistingValueChanged() {\r\n if (vm.origValue && angular.equals(vm.origValue, vm.value)) {\r\n return false;\r\n } else {\r\n // Either creating a new value or user has modified one of the fields\r\n return true;\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, templatesDataService, helperService, $filter, template, objectsDataSource) {\r\n\r\n var vm = this;\r\n vm.cancel = cancel;\r\n vm.objectsDataSource = objectsDataSource;\r\n\r\n vm.addObjectToTemplate = addObjectToTemplate;\r\n\r\n var availableGridColumns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n vm.availableObjectsGridOptions = helperService.setMainGridOptions(availableGridColumns, null);\r\n\r\n function activate() {\r\n configureObjectsGrid();\r\n }\r\n\r\n activate();\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n function configureObjectsGrid() {\r\n getAllObjects()\r\n .then(_ => {\r\n vm.objectsDataSource.forEach(function (object) {\r\n vm.availableObjects = vm.availableObjects.filter(function (el) {\r\n return el.Id !== object.ObjectId;\r\n });\r\n });\r\n vm.availableObjectsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n vm.availableObjects = $filter('orderBy')(vm.availableObjects, 'Name');\r\n options.success(vm.availableObjects);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n function getAllObjects() {\r\n return templatesDataService.getObjects()\r\n .then(response => {\r\n vm.availableObjects = response;\r\n return vm.availableObjects;\r\n });\r\n }\r\n\r\n function addObjectToTemplate(object) {\r\n var data = {\r\n TemplateId: template.Id,\r\n ObjectId: object.Id\r\n };\r\n\r\n templatesDataService.addObjectToTemplate(template.Id, data)\r\n .then(_ => {\r\n vm.availableObjects = vm.availableObjects.filter(obj => obj.Id !== object.Id);\r\n vm.availableObjectsGridDataSource.read();\r\n });\r\n }\r\n\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, templatesDataService, helperService, $filter, template, object, fieldsDataSource) {\r\n\r\n var vm = this;\r\n vm.cancel = cancel;\r\n vm.fieldsDataSource = fieldsDataSource;\r\n\r\n vm.addFieldToObject = addFieldToObject;\r\n\r\n var availableGridColumns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n vm.availableFieldsGridOptions = helperService.setMainGridOptions(availableGridColumns, null);\r\n\r\n function activate() {\r\n configureFieldsGrid();\r\n }\r\n\r\n activate();\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n function configureFieldsGrid() {\r\n getAllFields()\r\n .then(_ => {\r\n vm.fieldsDataSource.forEach(function (field) {\r\n vm.availableFields = vm.availableFields.filter(function (el) {\r\n return el.Id !== field.FieldId;\r\n });\r\n });\r\n vm.availableFieldsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n vm.availableFields = $filter('orderBy')(vm.availableFields, 'Name');\r\n options.success(vm.availableFields);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n function getAllFields() {\r\n return templatesDataService.getFieldsByObjectId(object.ObjectId)\r\n .then(response => {\r\n vm.availableFields = response;\r\n return vm.availableFields;\r\n });\r\n }\r\n\r\n function addFieldToObject(field) {\r\n const data = {\r\n TemplateObjectId: object.TemplateObjectId,\r\n FieldId: field.Id\r\n };\r\n\r\n templatesDataService.addFieldToObject(template.Id, object.TemplateObjectId, data)\r\n .then(_ => {\r\n vm.availableFields = vm.availableFields.filter(fld => fld.Id !== field.Id);\r\n vm.availableFieldsGridDataSource.read();\r\n })\r\n .catch(_ => {\r\n return;\r\n });\r\n }\r\n}","import templateModalController from \"./templateModal.controller\";\r\nimport objectModalController from \"./ObjectModal/objectModal.controller\";\r\nimport fieldModalController from \"./FieldModal/fieldModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, $uibModal, templatesDataService) {\r\n\r\n var vm = this;\r\n\r\n vm.openTemplateModal = openTemplateModal;\r\n vm.changeTemplateSelected = changeTemplateSelected;\r\n vm.changeObjectSelected = changeObjectSelected;\r\n vm.deleteTemplate = deleteTemplate;\r\n vm.openObjectModal = openObjectModal;\r\n vm.openFieldModal = openFieldModal;\r\n vm.removeObject = removeObject;\r\n vm.removeField = removeField;\r\n\r\n function activate() {\r\n getTemplates(null);\r\n }\r\n\r\n activate();\r\n\r\n function openTemplateModal(template, isClone) {\r\n\r\n let templateModal = $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/MaintainTemplates/templateModal.html',\r\n controller: templateModalController,\r\n controllerAs: 'tmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n template: () => template || {},\r\n isClone: () => isClone\r\n }\r\n });\r\n\r\n templateModal.result\r\n .then(response => {\r\n return getTemplates(response);\r\n })\r\n .catch(_ => {\r\n return;\r\n });\r\n }\r\n\r\n\r\n\r\n function openObjectModal() {\r\n let objectModal = $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/MaintainTemplates/ObjectModal/objectModal.html',\r\n controller: objectModalController,\r\n controllerAs: 'omvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n template: () => vm.selectedTemplate,\r\n objectsDataSource: () => vm.objectsDataSource\r\n }\r\n });\r\n\r\n objectModal.result\r\n .then(_ => {\r\n return getTemplates(vm.selectedTemplate.Id);\r\n })\r\n .catch(_ => {\r\n return;\r\n });\r\n }\r\n\r\n function openFieldModal() {\r\n\r\n let fieldModal = $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/MaintainTemplates/FieldModal/fieldModal.html',\r\n controller: fieldModalController,\r\n controllerAs: 'fmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n template: () => vm.selectedTemplate,\r\n object: () => vm.selectedObject,\r\n fieldsDataSource: () => vm.fieldsDataSource\r\n }\r\n });\r\n\r\n fieldModal.result\r\n .then(_ => {\r\n return changeTemplateSelected(vm.selectedObject.ObjectId, vm.selectedTemplate);\r\n })\r\n .catch(_ => {\r\n return;\r\n });\r\n }\r\n\r\n vm.templateMenuOptions = [\r\n {\r\n text: 'Edit',\r\n click: function ($itemScope, $event, modelValue) {\r\n var item = modelValue;\r\n vm.openTemplateModal(item, false);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: function ($itemScope, $event, modelValue) {\r\n var item = modelValue;\r\n vm.deleteTemplate(item);\r\n },\r\n displayed: function (modelValue) {\r\n return modelValue.template.Custom;\r\n }\r\n },\r\n {\r\n text: 'Clone',\r\n click: function ($itemScope, $event, modelValue) {\r\n var item = modelValue;\r\n vm.openTemplateModal(item, true);\r\n }\r\n }\r\n ];\r\n\r\n function getTemplates(preselect) {\r\n templatesDataService.getTemplates('NS').then(response => {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.templatesDataSource = response.data;\r\n if (preselect) {\r\n response.data.forEach(function (row, i) {\r\n if (row.Id === preselect) {\r\n vm.selectedTemplate = row;\r\n vm.changeTemplateSelected(row.ObjectId, vm.selectedTemplate);\r\n }\r\n });\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n function changeTemplateSelected(preselectObjectId, template) {\r\n vm.selectedTemplate = template;\r\n vm.changeTemplateInProgress = true;\r\n vm.objectsDataSource = null;\r\n\r\n if (vm.selectedTemplate) {\r\n templatesDataService.getObjectsByTemplateId(vm.selectedTemplate.Id).then(response => {\r\n response.TemplateObjects = $filter('orderBy')(response.TemplateObjects, 'ObjectName');\r\n vm.objectsDataSource = response.TemplateObjects;\r\n vm.changeTemplateInProgress = false;\r\n\r\n if (preselectObjectId) {\r\n vm.selectedObject = vm.objectsDataSource.filter(e => e.ObjectId === preselectObjectId)[0];\r\n }\r\n else if (vm.objectsDataSource.length === 1) {\r\n vm.selectedObject = vm.objectsDataSource[0];\r\n }\r\n else {\r\n vm.selectedObject = null;\r\n }\r\n\r\n changeObjectSelected(vm.selectedObject);\r\n });\r\n } else {\r\n vm.changeTemplateInProgress = false;\r\n }\r\n }\r\n\r\n function changeObjectSelected(object) {\r\n vm.selectedObject = object;\r\n vm.changeObjectInProgress = true;\r\n vm.fieldsDataSource = null;\r\n\r\n if (vm.selectedObject) {\r\n vm.fieldsDataSource = $filter('orderBy')(vm.selectedObject.TemplateFields, 'FieldName');\r\n vm.changeObjectInProgress = false;\r\n } else {\r\n vm.changeObjectInProgress = false;\r\n }\r\n }\r\n\r\n function deleteTemplate(template) {\r\n if (vm.selectedTemplate = template) {\r\n vm.selectedTemplate = null;\r\n }\r\n return templatesDataService.deleteTemplate(template.Id)\r\n .then(_ => {\r\n return getTemplates(null);\r\n });\r\n }\r\n\r\n function removeObject(object) {\r\n return templatesDataService.removeObjectByTemplateIdAndObjectId(vm.selectedTemplate.Id, object.TemplateObjectId)\r\n .then(_ => {\r\n return changeTemplateSelected(vm.selectedObject.ObjectId, vm.selectedTemplate);\r\n });\r\n }\r\n\r\n function removeField(field) {\r\n return templatesDataService.removeFieldByTemplateIdTemplateObjectIdAndTemplateFieldId(vm.selectedTemplate.Id, field.TemplateObjectId, field.TemplateFieldId)\r\n .then(_ => {\r\n return changeTemplateSelected(vm.selectedObject.ObjectId, vm.selectedTemplate);\r\n });\r\n }\r\n\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (dataService, netsuiteDataChangesDataService, $http, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = activate;\r\n\r\n vm.objectsAreEqual = objectsAreEqual;\r\n vm.changeAllValues = changeAllValues;\r\n vm.recordTypeChanged = recordTypeChanged;\r\n vm.submit = submit;\r\n\r\n function activate() {\r\n getProducts();\r\n getRecordTypes();\r\n }\r\n\r\n async function getProducts() {\r\n const response = await dataService.getProducts();\r\n vm.products = response.data;\r\n }\r\n\r\n async function getRecordTypes() {\r\n const response = await netsuiteDataChangesDataService.getRecordTypes();\r\n vm.recordTypes = response.data;\r\n vm.recordTypes.forEach(recordType => {\r\n recordType.value = recordType.Insert || recordType.Update || recordType.Delete;\r\n });\r\n vm.originalRecordTypes = angular.copy(vm.recordTypes);\r\n }\r\n\r\n function objectsAreEqual() {\r\n return angular.equals(vm.recordTypes, vm.originalRecordTypes);\r\n }\r\n\r\n function changeAllValues(recordType) {\r\n recordType.Insert = recordType.value;\r\n recordType.Update = recordType.value;\r\n recordType.Delete = recordType.value;\r\n }\r\n\r\n function recordTypeChanged(recordType) {\r\n recordType.value = recordType.Insert || recordType.Update || recordType.Delete;\r\n\r\n }\r\n\r\n function submit() {\r\n\r\n vm.pleaseWait = new createSpinner();\r\n\r\n vm.recordTypes.forEach(async (row, i) => {\r\n if (row.Insert !== vm.originalRecordTypes[i].Insert || row.Update !== vm.originalRecordTypes[i].Update || row.Delete !== vm.originalRecordTypes[i].Delete) {\r\n let data = {\r\n \"Id\": row.Id,\r\n \"Insert\": row.Insert,\r\n \"Update\": row.Update,\r\n \"Delete\": row.Delete\r\n };\r\n await $http.put(`${apiUrl}api/audittrail/recordtypes/${row.Id}`, data);\r\n vm.originalRecordTypes[i].Insert = row.Insert;\r\n vm.originalRecordTypes[i].Update = row.Update;\r\n vm.originalRecordTypes[i].Delete = row.Delete;\r\n }\r\n });\r\n\r\n helperService.successfulSaveButton(vm.pleaseWait);\r\n }\r\n\r\n}","import netsuiteDataChangesConfigurationController from \"./netsuiteDataChangesConfiguration.controller\";\r\n\r\n/* netsuiteDataChangesConfiguration.component.js */\r\n\r\n/**\r\n * @desc component for Data Changes Configuration in NetSuite\r\n * @example \r\n */\r\n\r\nconst netsuiteDataChangesConfiguration = {\r\n controller: netsuiteDataChangesConfigurationController,\r\n controllerAs: 'dccvm',\r\n templateUrl: '/App/Components/DataChangesConfiguration/netsuiteDataChangesConfiguration.tmpl.html'\r\n};\r\n\r\nexport default netsuiteDataChangesConfiguration;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, optionSetsDataService, item, optionSet, helperService) {\r\n\r\n var vm = this;\r\n vm.cancel = cancel;\r\n vm.submitValueForm = submitValueForm;\r\n vm.hasExistingValueChanged = hasExistingValueChanged;\r\n\r\n vm.item = item;\r\n vm.value = {};\r\n\r\n activate();\r\n\r\n function activate() {\r\n if (vm.item.Id) {\r\n vm.value = { ...vm.item };\r\n vm.origValue = { ...vm.value };\r\n } else {\r\n vm.value.Active = true;\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n function submitValueForm() {\r\n if (item.Id) {\r\n editValue(vm.value);\r\n } else {\r\n addNewValue(vm.value);\r\n }\r\n }\r\n\r\n async function addNewValue(value) {\r\n vm.updatePending = new createSpinner();\r\n const newValue = {\r\n 'OptionSetId': optionSet.Id,\r\n 'Name': value.Name,\r\n 'Active': value.Active\r\n };\r\n\r\n try {\r\n await optionSetsDataService.addOptionSetValue(optionSet.Id, newValue);\r\n await helperService.successfulSaveButton(vm.updatePending);\r\n close();\r\n } catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function editValue(value) {\r\n vm.updatePending = new createSpinner();\r\n const editedValue = {\r\n 'OptionSetValueId': item.Id,\r\n 'Name': value.Name,\r\n 'Active': value.Active\r\n };\r\n\r\n try {\r\n await optionSetsDataService.editOptionSetValue(optionSet.Id, editedValue);\r\n await helperService.successfulSaveButton(vm.updatePending);\r\n close();\r\n } catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function hasExistingValueChanged() {\r\n if (vm.origValue && JSON.stringify(vm.origValue) === JSON.stringify(vm.value)) {\r\n return false;\r\n } else {\r\n // Either creating a new value or user has modified one of the fields\r\n return true;\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, customBooleanFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport optionSetValueModalController from \"./optionSetValueModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, $uibModal, helperService, optionSetsDataService) {\r\n\r\n const vm = this;\r\n vm.openOptionSetValueModal = openOptionSetValueModal;\r\n vm.changeOptionSet = changeOptionSet;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getOptionSets();\r\n createOptionSetsGrid();\r\n }\r\n\r\n async function getOptionSets() {\r\n let response = await optionSetsDataService.getOptionSets();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.optionSetsDataSource = response.data;\r\n vm.selectedOptionSet = response.data[0];\r\n }\r\n\r\n function changeOptionSet() {\r\n vm.optionSetsGridDataSource.read();\r\n }\r\n\r\n async function openOptionSetValueModal(item) {\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/MaintainOptionSets/optionSetValueModal.html',\r\n controller: optionSetValueModalController,\r\n controllerAs: 'osvvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n item: () => item || {},\r\n optionSet: () => vm.selectedOptionSet || {}\r\n }\r\n });\r\n\r\n try {\r\n await openModal.result;\r\n vm.optionSetsGridDataSource.read()\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function createOptionSetsGrid() {\r\n var optionSetsGridColumns =\r\n [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Active\", title: \"Active\", filterable: customBooleanFilter },\r\n { field: \"Id\", title: \"Id\", hidden: true },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 }\r\n ];\r\n\r\n vm.optionSetsGridOptions = helperService.setMainGridOptions(optionSetsGridColumns, 500);\r\n vm.optionSetsGridOptions.selectable = false;\r\n\r\n vm.optionSetsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n Active: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n let response = await optionSetsDataService.getOptionSetValuesByOptionSet(vm.selectedOptionSet.Id);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n}","import maintainOptionSetsController from \"./maintainOptionSets.controller\";\r\n\r\n/* maintainOptionSets.component.js */\r\n\r\n/**\r\n * @desc component for displaying and modifying option sets\r\n * @example \r\n */\r\n\r\nconst maintainOptionSets = {\r\n controller: maintainOptionSetsController,\r\n controllerAs: 'osvm',\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/MaintainOptionSets/maintainOptionSets.tmpl.html'\r\n};\r\n\r\nexport default maintainOptionSets;","import { customDatePickerFilter, customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, SavedReportSelectorService, objectIdDataService, CustomReportServices, $filter, $http, reportsService, reportsDataService, helperService, snapshotsDataService, dataService) {\r\n\r\n const vm = this;\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if (vm.grid) {\r\n vm.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n vm.recordTypeDropdownChange = recordTypeDropdownChange;\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n vm.applySelectedFilter = applySelectedFilter;\r\n vm.deleteFilter = deleteFilter;\r\n vm.clearAllFilters = clearAllFilters;\r\n vm.onReadGrid = onReadGrid;\r\n\r\n vm.helperService = helperService;\r\n\r\n async function activate() {\r\n createSnapshotChangesGrid();\r\n getRecordTypes();\r\n recordTypeDropdownChange();\r\n await getObjectId();\r\n\r\n\r\n vm.dateCriteria = [\r\n {\r\n \"DataType\": \"DateTime\",\r\n \"FieldName\": \"Date\",\r\n \"IsNullable\": false\r\n }\r\n ];\r\n\r\n getReportMetadata().then(_ => {\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n if ($rootScope.loadedSavedReport) {\r\n runSavedReport();\r\n }\r\n });\r\n }\r\n\r\n activate();\r\n\r\n\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n async function getObjectId() {\r\n const objectId = await objectIdDataService.getObjectID();\r\n vm.ObjectId = objectId;\r\n let securityObject = helperService.getSecurityObjectDetailsFromObjectId(objectId);\r\n vm.reportName = securityObject.Name;\r\n vm.reportId = securityObject.ReportID;\r\n vm.filtersDataSource = CustomReportServices.setfiltersDataSource(vm.ObjectId);\r\n }\r\n\r\n function runSavedReport() {\r\n if (vm.gridReady && $rootScope.loadedSavedReport && vm.recordTypeDataSource && vm.recordDataSource && vm.selectedRecord && vm.filterCriteria.fields) {\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.dateQuery = reportsService.getSavedReportDateFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n // ---\r\n generateGridWithSelectedValues();\r\n } else if (vm.gridReady && !$rootScope.loadedSavedReport && vm.recordTypeDataSource && vm.recordDataSource && vm.selectedRecord && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n populateCriteriaModel();\r\n }\r\n }\r\n\r\n function createSnapshotChangesGrid() {\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = false;\r\n\r\n vm.mainGridColumns = [\r\n { field: \"Date\", title: \"Date\", template: \"{{ dataItem.Date | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"RecordId\", title: \"Record Id\", filterable: customAutoCompleteFilter },\r\n { field: \"RecordName\", title: \"Record Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", filterable: customAutoCompleteFilter },\r\n { field: \"Value\", title: \"Value\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.sortable = false;\r\n\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n fields: {\r\n Date: { type: \"date\" }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n\r\n let data = {\r\n 'RecordTypeId': vm.recordType,\r\n 'RecordId': vm.record\r\n };\r\n\r\n vm.sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n data['QueryInput'] = vm.sortsAndFilters;\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n data['QueryInput'].DateFilters = vm.filterCriteria.dateQuery;\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/audittrail/ns/snapshot/report/changes',\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(function (response) {\r\n\r\n data = response.data._embedded.reportData;\r\n\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n\r\n }).catch(response => {\r\n const timeout = 408;\r\n\r\n if (response.status !== timeout) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n setLayout();\r\n\r\n }\r\n\r\n async function getRecordTypes() {\r\n let response = await snapshotsDataService.getRecordType();\r\n response.data = $filter('filter')(response.data, { Enabled: true });\r\n response.data = $filter('orderBy')(response.data, 'DisplayName');\r\n vm.recordTypeDataSource = response.data;\r\n\r\n vm.selectedRecordType = SavedReportSelectorService.checkSavedReportForRecordType($rootScope.loadedSavedReport, response.data, vm.selectedRecordType);\r\n vm.recordTypeDropdownChange();\r\n recordTypeDropdownChange();\r\n runSavedReport();\r\n }\r\n\r\n async function recordTypeDropdownChange() {\r\n try {\r\n if (vm.selectedRecordType) {\r\n let response = await snapshotsDataService.getDistinctRecordType(vm.selectedRecordType.Id);\r\n let allRecords = { \"RecordName\": \"All Records\", \"RecordId\": 'AllObjectsInMultiSelect' };\r\n response.data.unshift(allRecords);\r\n\r\n vm.recordDataSource = response.data;\r\n vm.selectedRecord = response.data[0];\r\n\r\n vm.selectedRecord = SavedReportSelectorService.checkSavedReportForRecord($rootScope.loadedSavedReport, response.data, vm.selectedRecord);\r\n populateCriteriaModel();\r\n runSavedReport();\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function populateCriteriaModel() {\r\n // do not continue if the proper criteria are not loaded\r\n if (!vm.selectedRecordType || vm.selectedRecord === undefined) {\r\n return;\r\n }\r\n let criteria = [];\r\n\r\n vm.recordType = vm.selectedRecordType.Id;\r\n\r\n if (vm.selectedRecord.RecordId === 'AllObjectsInMultiSelect') {\r\n vm.record = null;\r\n } else {\r\n vm.record = vm.selectedRecord.RecordId;\r\n }\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"RecordTypeId\", 'RecordType', vm.selectedRecordType.DisplayName, vm.selectedRecordType.Id));\r\n criteria.push(CustomReportServices.CreateCriteria(\"RecordId\", 'Record', vm.selectedRecord.RecordName, vm.selectedRecord.RecordId));\r\n vm.reportDetailsModel = criteria;\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n }\r\n\r\n function generateGridWithSelectedValues() {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.dataSource._filter = null;\r\n vm.grid.dataSource._sort = null;\r\n }\r\n\r\n populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, vm.grid, true);\r\n }\r\n\r\n\r\n vm.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n\r\n vm.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n function applySelectedFilter(selectedFilter) {\r\n const currentOptions = vm.grid.getOptions();\r\n\r\n if (selectedFilter && selectedFilter.Filters && selectedFilter.Filters.length > 0) {\r\n currentOptions.dataSource.filter = helperService.convertFiltersForGrid(_, selectedFilter.Filters);\r\n try {\r\n vm.grid.dataSource._filter = currentOptions.dataSource.filter;\r\n vm.grid.dataSource.read();\r\n }\r\n catch (err) {\r\n vm.gridDataSource.filter({});\r\n }\r\n }\r\n }\r\n\r\n function deleteFilter(id) {\r\n CustomReportServices.deleteFilterFilterManager(vm, id);\r\n };\r\n\r\n function clearAllFilters() {\r\n vm.gridDataSource.filter({});\r\n };\r\n\r\n function onReadGrid() {\r\n vm.gridDataSource.read();\r\n }\r\n\r\n function setLayout() {\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout(vm, null);\r\n }\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n async function getReportMetadata() {\r\n let response = await reportsDataService.getReportMetadata(vm.reportId);\r\n vm.reportMetadata = response.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n return vm.reportMetadata;\r\n }\r\n}\r\n // ---\r\n"," import snapshotChangesController from \"./snapshotChanges.controller\";\r\n\r\n/* snaphsotChanges.component.js */\r\n\r\n/**\r\n * @desc component for Snapshot Changes in NetSuite\r\n * @example \r\n */\r\n\r\nconst snapshotChanges = {\r\n controller: snapshotChangesController,\r\n controllerAs: 'scvm',\r\n templateUrl: '/App/Components/SnapshotChanges/snapshotChanges.tmpl.html'\r\n};\r\n\r\nexport default snapshotChanges;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, userGroupsDataService, userGroup, helperService) {\r\n\r\n var vm = this;\r\n vm.cancel = cancel;\r\n vm.submitUserGroupForm = submitUserGroupForm;\r\n vm.hasExistingValueChanged = hasExistingValueChanged;\r\n\r\n vm.userGroup = angular.copy(userGroup);\r\n\r\n function activate() {\r\n if (userGroup.Id) {\r\n vm.origValue = { ...vm.userGroup };\r\n }\r\n }\r\n activate();\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n function submitUserGroupForm(userGroup) {\r\n if (userGroup.Id) {\r\n editUserGroup();\r\n } else {\r\n addNewUserGroup();\r\n }\r\n }\r\n\r\n async function addNewUserGroup() {\r\n vm.updatePending = new createSpinner();\r\n\r\n const newUserGroup = {\r\n 'Name': vm.userGroup.Name\r\n };\r\n\r\n try {\r\n let response = await userGroupsDataService.createUserGroup(newUserGroup);\r\n await helperService.successfulSaveButton(vm.updatePending);\r\n close(response);\r\n } catch {\r\n return;\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function editUserGroup() {\r\n vm.updatePending = new createSpinner();\r\n\r\n const editedUserGroup = {\r\n 'Id': vm.userGroup.Id,\r\n 'Name': vm.userGroup.Name\r\n };\r\n\r\n try {\r\n await userGroupsDataService.editUserGroup(userGroup.Id, editedUserGroup);\r\n await helperService.successfulSaveButton(vm.updatePending);\r\n close(vm.userGroup.Id);\r\n } catch {\r\n return;\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close(userGroupId) {\r\n $uibModalInstance.close(userGroupId);\r\n }\r\n\r\n function hasExistingValueChanged() {\r\n if (vm.origValue && angular.equals(vm.origValue, vm.userGroup)) {\r\n return false;\r\n } else {\r\n // Either creating a new value or user has modified one of the fields\r\n return true;\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, userGroupsDataService, helperService, $filter, userGroup, usersDataSource) {\r\n\r\n var vm = this;\r\n vm.cancel = cancel;\r\n vm.usersDataSource = usersDataSource;\r\n\r\n vm.addUserToUserGroup = addUserToUserGroup;\r\n\r\n var availableGridColumns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n vm.availableUsersGridOptions = helperService.setMainGridOptions(availableGridColumns, null);\r\n\r\n activate();\r\n\r\n function activate() {\r\n configureUsersGrid();\r\n }\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n async function configureUsersGrid() {\r\n await getAllUsers();\r\n vm.usersDataSource.forEach(user => {\r\n vm.availableUsers = vm.availableUsers.filter(u => u.InternalId !== user.UserGroupUserInternalId);\r\n });\r\n vm.availableUsersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: (options) => {\r\n vm.availableUsers = $filter('orderBy')(vm.availableUsers, 'Name');\r\n options.success(vm.availableUsers);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function getAllUsers() {\r\n let response = await userGroupsDataService.getUsers();\r\n response.data = response.data.filter(user => !user.Inactive);\r\n vm.availableUsers = response.data;\r\n }\r\n\r\n async function addUserToUserGroup(user) {\r\n var data = {\r\n UserGroupId: userGroup.Id,\r\n UserGroupUserInternalId: user.InternalId\r\n };\r\n\r\n await userGroupsDataService.addUserToUserGroup(userGroup.Id, data);\r\n vm.availableUsers = vm.availableUsers.filter(u => u.InternalId !== user.InternalId);\r\n vm.availableUsersGridDataSource.read();\r\n }\r\n}","import userGroupModalController from \"./userGroupModal.controller\";\r\nimport userModalController from \"./UserModal/userModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, $uibModal, helperService, userGroupsDataService, objectIdDataService) {\r\n\r\n var vm = this;\r\n\r\n vm.openUserGroupModal = openUserGroupModal;\r\n vm.changeUserGroupSelected = changeUserGroupSelected;\r\n vm.deleteUserGroup = deleteUserGroup;\r\n vm.openUserModal = openUserModal;\r\n vm.removeUserGroupUser = removeUserGroupUser;\r\n\r\n function activate() {\r\n getUserGroups(null);\r\n }\r\n\r\n activate();\r\n\r\n async function openUserGroupModal(userGroup) {\r\n\r\n let userGroupModal = $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/MaintainUserGroups/userGroupModal.html',\r\n controller: userGroupModalController,\r\n controllerAs: 'ugmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n userGroup: () => userGroup || {}\r\n }\r\n });\r\n\r\n try {\r\n let response = await userGroupModal.result;\r\n getUserGroups(response);\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openUserModal() {\r\n\r\n let userModal = $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/MaintainUserGroups/UserModal/userModal.html',\r\n controller: userModalController,\r\n controllerAs: 'umvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n userGroup: () => vm.selectedUserGroup,\r\n usersDataSource: () => vm.usersDataSource\r\n }\r\n });\r\n\r\n try {\r\n await userModal.result;\r\n changeUserGroupSelected(vm.selectedUserGroup);\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n vm.userGroupMenuOptions = [\r\n {\r\n text: 'Edit',\r\n click: function ($itemScope, $event, modelValue) {\r\n var item = modelValue;\r\n vm.openUserGroupModal(item);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: function ($itemScope, $event, modelValue) {\r\n var item = modelValue;\r\n vm.deleteUserGroup(item);\r\n }\r\n }\r\n ];\r\n\r\n async function getUserGroups(preselect) {\r\n let response = await userGroupsDataService.getUserGroups();\r\n response.data = $filter('orderBy')(response.data, 'UserGroupUserName');\r\n vm.userGroupsDataSource = response.data;\r\n if (preselect) {\r\n response.data.forEach(row => {\r\n if (row.Id === preselect) {\r\n vm.selectedUserGroup = row;\r\n vm.changeUserGroupSelected(vm.selectedUserGroup);\r\n }\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n async function changeUserGroupSelected(userGroup) {\r\n vm.selectedUserGroup = userGroup;\r\n vm.changeUserGroupInProgress = true;\r\n vm.usersDataSource = null;\r\n\r\n if (vm.selectedUserGroup) {\r\n let response = await userGroupsDataService.getUsersByUserGroupId(vm.selectedUserGroup.Id);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.usersDataSource = response.data;\r\n vm.changeUserGroupInProgress = false;\r\n } else {\r\n vm.changeUserGroupInProgress = false;\r\n }\r\n }\r\n\r\n async function deleteUserGroup(userGroup) {\r\n if (vm.selectedUserGroup === userGroup) {\r\n vm.selectedUserGroup = null;\r\n }\r\n await userGroupsDataService.deleteUserGroup(userGroup.Id);\r\n getUserGroups(null);\r\n }\r\n\r\n async function removeUserGroupUser(userGroupId, userGroupUserId) {\r\n await userGroupsDataService.removeUserGroupUser(userGroupId, userGroupUserId);\r\n changeUserGroupSelected(vm.selectedUserGroup);\r\n }\r\n\r\n}","import maintainUserGroupsController from \"./maintainUserGroups.controller\";\r\n\r\n/* maintainUserGroups.component.js */\r\n\r\n/**\r\n * @desc component for maintaining audit trail user groups\r\n * @example \r\n */\r\n\r\nconst maintainUserGroups = {\r\n controller: maintainUserGroupsController,\r\n controllerAs: 'mugvm',\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/MaintainUserGroups/maintainUserGroups.tmpl.html'\r\n};\r\n\r\nexport default maintainUserGroups;","import { standardGridPageSize, customAutoCompleteFilter, customBooleanFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, SavedReportSelectorService, objectIdDataService, reportsDataService, reportsService, CustomReportServices, $filter, $http, helperService, snapshotsDataService) {\r\n\r\n const vm = this;\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if (vm.grid) {\r\n vm.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n vm.helperService = helperService;\r\n\r\n vm.clearAllFilters = clearAllFilters;\r\n vm.openStartDate = openStartDate;\r\n vm.openEndDate = openEndDate;\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n vm.applySelectedFilter = applySelectedFilter;\r\n vm.deleteFilter = deleteFilter;\r\n vm.onReadGrid = onReadGrid;\r\n vm.recordTypeDropdownChange = recordTypeDropdownChange;\r\n\r\n async function activate() {\r\n createSnapshotComparisonGrid();\r\n getRecordTypes();\r\n recordTypeDropdownChange();\r\n await getObjectId();\r\n\r\n vm.dateCriteria = [\r\n {\r\n \"DataType\": \"DateTime\",\r\n \"FieldName\": \"Date\",\r\n \"IsNullable\": false\r\n }\r\n ];\r\n\r\n getReportMetadata().then(_ => {\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n if ($rootScope.loadedSavedReport) {\r\n runSavedReport();\r\n }\r\n });\r\n\r\n }\r\n\r\n activate();\r\n\r\n function runSavedReport() {\r\n if (vm.gridReady && $rootScope.loadedSavedReport && vm.recordTypeDataSource && vm.recordDataSource) {\r\n // --- FOR ADVANCED FILTERING ---\r\n // Convert date filters to criteria\r\n\r\n if ($rootScope.loadedSavedReport && $rootScope.loadedSavedReport.ReportDefinition.DateFilters.length > 0) {\r\n const criteriaDateFilterIndex = $rootScope.loadedSavedReport.ReportDefinition.DateFilters.findIndex(filter => filter.FieldName === 'Date');\r\n if (criteriaDateFilterIndex > -1) {\r\n loadDateFilterAsCriteria($rootScope.loadedSavedReport.ReportDefinition.DateFilters[criteriaDateFilterIndex]);\r\n $rootScope.loadedSavedReport.ReportDefinition.DateFilters.splice(criteriaDateFilterIndex, 1);\r\n }\r\n } else if ($rootScope.loadedSavedReport && $rootScope.loadedSavedReport.ReportDefinition.Filters.length > 0) {\r\n const dateRangeFilters = $rootScope.loadedSavedReport.ReportDefinition.Filters.filter(filter => filter.FieldName === 'Date');\r\n if (dateRangeFilters.length > 0) {\r\n $rootScope.loadedSavedReport.ReportDefinition.Filters = $rootScope.loadedSavedReport.ReportDefinition.Filters.filter(filter => filter.FieldName !== 'Date');\r\n dateRangeFilters.forEach(filter => {\r\n loadDateFilterAsCriteria(filter);\r\n });\r\n }\r\n }\r\n\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.dateQuery = reportsService.getSavedReportDateFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n // ---\r\n vm.generateGridWithSelectedValues();\r\n } else if (vm.gridReady && !$rootScope.loadedSavedReport && vm.recordTypeDataSource && vm.recordDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n vm.populateCriteriaModel();\r\n }\r\n };\r\n \r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n async function getObjectId() {\r\n const objectId = await objectIdDataService.getObjectID();\r\n vm.ObjectId = objectId;\r\n let securityObject = helperService.getSecurityObjectDetailsFromObjectId(objectId);\r\n vm.reportName = securityObject.Name;\r\n vm.reportId = securityObject.ReportID;\r\n vm.filtersDataSource = CustomReportServices.setfiltersDataSource(vm.ObjectId);\r\n }\r\n\r\n function createSnapshotComparisonGrid() {\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = false;\r\n\r\n vm.mainGridColumns = [\r\n { field: \"RecordId\", title: \"Record Id\", filterable: customAutoCompleteFilter },\r\n { field: \"RecordName\", title: \"Record Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", filterable: customAutoCompleteFilter },\r\n { field: \"StartValue\", title: \"Start Value\", filterable: customAutoCompleteFilter },\r\n { field: \"EndValue\", title: \"End Value\", filterable: customAutoCompleteFilter },\r\n { field: \"Diff\", title: \"Difference\", width: 140, filterable: customBooleanFilter }\r\n ]; \r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.sortable = false;\r\n\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n Diff: { type: \"boolean\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: function (options) {\r\n\r\n delete $rootScope.loadedSavedReport;\r\n\r\n let data = {\r\n 'RecordTypeId': vm.recordType,\r\n 'RecordId': vm.record,\r\n 'StartDate': vm.savedStartDate,\r\n 'EndDate': vm.savedEndDate\r\n };\r\n\r\n vm.sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n data['QueryInput'] = vm.sortsAndFilters;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/audittrail/ns/snapshot/report/comparison',\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(function (response) {\r\n\r\n let data = response.data._embedded.reportData;\r\n\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n\r\n }, function errorCallback(response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n setLayout();\r\n\r\n }\r\n\r\n async function getRecordTypes() {\r\n let response = await snapshotsDataService.getRecordType();\r\n response.data = $filter('filter')(response.data, { Enabled: true });\r\n response.data = $filter('orderBy')(response.data, 'DisplayName');\r\n vm.recordTypeDataSource = response.data;\r\n\r\n vm.selectedRecordType = SavedReportSelectorService.checkSavedReportForRecordType($rootScope.loadedSavedReport, response.data, vm.selectedRecordType);\r\n recordTypeDropdownChange();\r\n runSavedReport();\r\n } \r\n\r\n async function recordTypeDropdownChange() {\r\n try {\r\n if (vm.selectedRecordType) {\r\n let response = await snapshotsDataService.getDistinctRecordType(vm.selectedRecordType.Id);\r\n let allRecords = { \"RecordName\": \"All Records\", \"RecordId\": 'AllObjectsInMultiSelect' };\r\n response.data.unshift(allRecords);\r\n\r\n vm.recordDataSource = response.data;\r\n vm.selectedRecord = response.data[0];\r\n\r\n vm.selectedRecord = SavedReportSelectorService.checkSavedReportForRecord($rootScope.loadedSavedReport, response.data, vm.selectedRecord);\r\n populateCriteriaModel();\r\n runSavedReport();\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n //Start Date picker settings\r\n function thirtyDaysAgo() {\r\n let newDate = new Date();\r\n newDate.setDate(newDate.getDate() - 30);\r\n vm.startDate = newDate;\r\n vm.startDate = SavedReportSelectorService.checkSavedReportForDate($rootScope.loadedSavedReport, \"StartDate\", vm.startDate);\r\n }\r\n\r\n thirtyDaysAgo();\r\n\r\n vm.startDateOptions = {\r\n dateDisabled: disabled,\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n function disabled(data) {\r\n let date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && date > vm.endDate;\r\n }\r\n\r\n function openStartDate() {\r\n vm.startDatePopup.opened = true;\r\n }\r\n\r\n vm.startDatePopup = {\r\n opened: false\r\n };\r\n\r\n //End Date picker settings\r\n function today() {\r\n vm.endDate = new Date();\r\n vm.endDate = SavedReportSelectorService.checkSavedReportForDate($rootScope.loadedSavedReport, \"EndDate\", vm.endDate);\r\n\r\n }\r\n\r\n today();\r\n\r\n vm.endDateOptions = {\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n maxDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n function openEndDate() {\r\n vm.endDatePopup.opened = true;\r\n }\r\n\r\n vm.endDatePopup = {\r\n opened: false\r\n };\r\n\r\n function populateCriteriaModel() {\r\n // do not continue if the proper criteria are not loaded\r\n if (!vm.selectedRecordType || vm.selectedRecord === undefined || !vm.startDate || !vm.endDate) {\r\n return;\r\n }\r\n let criteria = [];\r\n\r\n vm.recordType = vm.selectedRecordType.Id;\r\n vm.savedStartDate = vm.startDate;\r\n vm.savedEndDate = vm.endDate;\r\n\r\n if (vm.selectedRecord.RecordId === 'AllObjectsInMultiSelect') {\r\n vm.record = null;\r\n } else {\r\n vm.record = vm.selectedRecord.RecordId;\r\n }\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"RecordTypeId\", 'RecordType', vm.selectedRecordType.DisplayName, vm.selectedRecordType.Id));\r\n criteria.push(CustomReportServices.CreateCriteria(\"RecordId\", 'Record', vm.selectedRecord.RecordName, vm.selectedRecord.RecordId));\r\n criteria.push(CustomReportServices.CreateCriteria(\"StartDate\", 'StartDate', vm.startDate, vm.startDate));\r\n criteria.push(CustomReportServices.CreateCriteria(\"EndDate\", 'EndDate', vm.endDate, vm.endDate));\r\n vm.reportDetailsModel = criteria;\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n }\r\n\r\n function generateGridWithSelectedValues() {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.dataSource._filter = null;\r\n vm.grid.dataSource._sort = null;\r\n }\r\n\r\n vm.populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, vm.grid, true);\r\n } \r\n\r\n vm.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n\r\n vm.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n function applySelectedFilter(selectedFilter) {\r\n const currentOptions = vm.grid.getOptions();\r\n\r\n if (selectedFilter && selectedFilter.Filters && selectedFilter.Filters.length > 0) {\r\n currentOptions.dataSource.filter = helperService.convertFiltersForGrid(_, selectedFilter.Filters);\r\n try {\r\n vm.grid.dataSource._filter = currentOptions.dataSource.filter;\r\n vm.grid.dataSource.read();\r\n }\r\n catch (err) {\r\n vm.gridDataSource.filter({});\r\n }\r\n }\r\n }\r\n\r\n function deleteFilter(id) {\r\n CustomReportServices.deleteFilterFilterManager(vm, id);\r\n }\r\n\r\n function clearAllFilters() {\r\n vm.gridDataSource.filter({});\r\n }\r\n\r\n function onReadGrid() {\r\n vm.gridDataSource.read();\r\n }\r\n\r\n function setLayout() {\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout(vm, null);\r\n }\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n function getReportMetadata() {\r\n return reportsDataService.getReportMetadata(vm.reportId)\r\n .then(data => {\r\n vm.reportMetadata = data.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n return vm.reportMetadata;\r\n });\r\n }\r\n // ---\r\n}","import snapshotComparisonController from \"./snapshotComparison.controller\";\r\n\r\n\r\n/* snapshotComparison.component.js */\r\n\r\n/**\r\n * @desc component for Snapshot Comparison in NetSuite\r\n * @example \r\n */\r\n\r\nconst snapshotComparison = {\r\n controller: snapshotComparisonController,\r\n controllerAs: 'scvm',\r\n templateUrl: '/App/Components/SnapshotComparison/snapshotComparison.tmpl.html'\r\n};\r\n\r\nexport default snapshotComparison;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($filter, helperService, snapshotsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.objectsAreEqual = objectsAreEqual;\r\n vm.submit = submit;\r\n\r\n async function getRecordTypes() {\r\n try {\r\n let response = await snapshotsDataService.getRecordType();\r\n response.data = $filter('orderBy')(response.data, 'DisplayName');\r\n vm.recordTypes = response.data;\r\n vm.originalRecordTypes = angular.copy(vm.recordTypes);\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n getRecordTypes();\r\n\r\n function objectsAreEqual() {\r\n if (angular.equals(vm.recordTypes, vm.originalRecordTypes)) {\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n function submit() {\r\n let data;\r\n\r\n vm.pleaseWait = new createSpinner();\r\n\r\n vm.recordTypes.forEach(async function (row, i) {\r\n\r\n if (row.Enabled !== vm.originalRecordTypes[i].Enabled) {\r\n\r\n data = {\r\n \"Id\": row.Id,\r\n \"Enabled\": row.Enabled\r\n }\r\n\r\n try {\r\n vm.originalRecordTypes[i].Enabled = row.Enabled;\r\n await snapshotsDataService.updateRecordType(data, row.Id);\r\n helperService.successfulSaveButton(vm.pleaseWait);\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n }\r\n });\r\n }\r\n}","import snapshotConfigurationController from \"./snapshotConfiguration.controller\";\r\n\r\n\r\n/* snapshotConfiguration.component.js */\r\n\r\n/**\r\n * @desc component for Snapshot Configuration in NetSuite\r\n * @example \r\n */\r\n\r\nconst snapshotConfiguration = {\r\n controller: snapshotConfigurationController,\r\n controllerAs: 'scvm',\r\n templateUrl: '/App/Components/SnapshotConfiguration/snapshotConfiguration.tmpl.html'\r\n};\r\n\r\nexport default snapshotConfiguration;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, nsAtDocumentationService, helperService, documentation) {\r\n const vm = this;\r\n vm.documentation = angular.copy(documentation);\r\n\r\n vm.submitDocumentationForm = submitDocumentationForm;\r\n vm.openDate = openDate;\r\n vm.cancel = cancel;\r\n vm.hasExistingValueChanged = hasExistingValueChanged;\r\n\r\n vm.datePopup = {\r\n opened: false\r\n };\r\n\r\n vm.dateOptions = {\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n function activate() {\r\n getTypes();\r\n getAuthorizedByOptions();\r\n\r\n if (documentation.Id) {\r\n vm.origDocumentation = angular.copy(documentation);\r\n }\r\n }\r\n\r\n activate();\r\n\r\n async function getTypes() {\r\n let response = await nsAtDocumentationService.getDocumentationTypes();\r\n response = $filter('orderBy')(response, 'Name');\r\n response = response.filter(t => t.Active);\r\n vm.typesDataSource = response;\r\n\r\n if (documentation.Id) {\r\n vm.documentation.Type = vm.typesDataSource.find(type => {\r\n return type.Name === documentation.Type;\r\n });\r\n }\r\n }\r\n\r\n async function getAuthorizedByOptions() {\r\n let response = await nsAtDocumentationService.getDocumentationAuthorizedByOptions();\r\n response = $filter('orderBy')(response, 'Name');\r\n response = response.filter(o => o.Active);\r\n vm.authorizedByOptionsDataSource = response;\r\n\r\n if (documentation.Id) {\r\n vm.documentation.AuthorizedBy = vm.authorizedByOptionsDataSource.find(auth => {\r\n return auth.Name === documentation.AuthorizedBy;\r\n });\r\n }\r\n }\r\n\r\n function submitDocumentationForm() {\r\n if (documentation.Id) {\r\n editDocumentation();\r\n } else {\r\n addNewDocumentation();\r\n }\r\n }\r\n\r\n async function addNewDocumentation() {\r\n vm.savingDocumentation = new createSpinner();\r\n const newDocumentation = {\r\n 'Date': vm.documentation.Date,\r\n 'Name': vm.documentation.Name,\r\n 'TypeId': vm.documentation.Type.Id,\r\n 'AuthorizedById': vm.documentation.AuthorizedBy ? vm.documentation.AuthorizedBy.Id : '',\r\n 'Notes': vm.documentation.Notes\r\n };\r\n\r\n try {\r\n await nsAtDocumentationService.createDocumentation(newDocumentation);\r\n await helperService.successfulSaveButton(vm.savingDocumentation);\r\n $uibModalInstance.close();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function editDocumentation() {\r\n vm.savingDocumentation = new createSpinner();\r\n const updatedDocumentation = {\r\n 'Id': vm.documentation.Id,\r\n 'Date': vm.documentation.Date,\r\n 'Name': vm.documentation.Name,\r\n 'TypeId': vm.documentation.Type.Id,\r\n 'AuthorizedById': vm.documentation.AuthorizedBy ? vm.documentation.AuthorizedBy.Id : '',\r\n 'Notes': vm.documentation.Notes\r\n };\r\n\r\n try {\r\n await nsAtDocumentationService.updateDocumentation(updatedDocumentation);\r\n await helperService.successfulSaveButton(vm.savingDocumentation);\r\n $uibModalInstance.close();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function hasExistingValueChanged() {\r\n if (vm.origDocumentation) {\r\n var currentDocumentation = angular.copy(vm.documentation);\r\n currentDocumentation.Type = vm.documentation.Type.Name;\r\n if (vm.documentation.AuthorizedBy && vm.documentation.AuthorizedBy.Name) {\r\n currentDocumentation.AuthorizedBy = vm.documentation.AuthorizedBy.Name;\r\n } else {\r\n currentDocumentation.AuthorizedBy = null;\r\n }\r\n\r\n return !angular.equals(vm.origDocumentation, currentDocumentation);\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n function openDate() {\r\n vm.datePopup.opened = true;\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize, customAutoCompleteFilterEqualToOnly, customDatePickerFilter } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, nsAtDocumentationService, $http, documentation) {\r\n\r\n const vm = this;\r\n vm.documentation = documentation;\r\n vm.cancel = cancel;\r\n vm.isLinked = isLinked;\r\n vm.linkTicketToDocumenation = linkTicketToDocumenation;\r\n vm.linkCustomTicket = linkCustomTicket;\r\n vm.unlinkTicketFromDocumentation = unlinkTicketFromDocumentation;\r\n vm.gridView = \"LinkedChangeTickets\";\r\n\r\n let linkedJiraTickets = [];\r\n let linkedServiceNowTickets = [];\r\n let linkedZendeskTickets = [];\r\n\r\n function activate() {\r\n configureGrids();\r\n }\r\n\r\n activate();\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n function configureGrids() {\r\n\r\n const statusTemplate = \"{{dataItem.Status}}\";\r\n\r\n //-----LINKED TICKETS-----\r\n\r\n const ticketTemplate = \"{{ dataItem.TicketProvider }}   {{dataItem.TicketId}}\";\r\n\r\n const linkedChangeTicketsGridColumns = [\r\n { field: \"TicketId\", title: \"Ticket\", template: ticketTemplate, filterable: customAutoCompleteFilter },\r\n { field: \"TicketSubject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"TicketDescription\", title: \"Description\", template: \"{{ dataItem.TicketDescription }}\", filterable: customAutoCompleteFilter },\r\n { field: \"TicketStatus\", title: \"Status\", filterable: customAutoCompleteFilter },\r\n { field: \"TicketRequester\", title: \"Requester\", filterable: customAutoCompleteFilter },\r\n { field: \"TicketSubmitter\", title: \"Submitter\", filterable: customAutoCompleteFilter },\r\n { template: `Delete`, \"title\": \"Delete\", width: 100 }\r\n \r\n ];\r\n\r\n vm.linkedChangeTicketsGridOptions = helperService.setMainGridOptions(linkedChangeTicketsGridColumns, 300);\r\n vm.linkedChangeTicketsGridOptions.noRecords = {\r\n template: \"
No Linked Change Tickets exist for this Documentation
\"\r\n };\r\n\r\n vm.linkedChangeTicketsGridDataSource = new kendo.data.DataSource({\r\n schema: halSchemaKendoGrid,\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async options => {\r\n let linkedTicketsData = helperService.prepareSortsAndFilters(options);\r\n const params = { 'pagesize': options.data.pageSize, 'page': options.data.page };\r\n let response = await nsAtDocumentationService.getDocumentationLinkedTicketsList(documentation.Id, linkedTicketsData, params);\r\n response._embedded.reportData.forEach(ticket => {\r\n switch (ticket.TicketProvider) {\r\n case \"Jira\":\r\n linkedJiraTickets.push(ticket);\r\n break;\r\n case \"ServiceNow\":\r\n linkedServiceNowTickets.push(ticket);\r\n break;\r\n case \"Zendesk\":\r\n linkedZendeskTickets.push(ticket);\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n options.success(response);\r\n }\r\n }\r\n });\r\n\r\n //-----END LINKED TICKETS-----\r\n\r\n //-----JIRA TICKETS----- \r\n\r\n const jiraTicketsGridColumns = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { title: ' ', template: \"Link\", width: 90 }\r\n ];\r\n\r\n vm.jiraTicketsGridOptions = helperService.setMainGridOptions(jiraTicketsGridColumns, 400);\r\n vm.jiraTicketsGridOptions.selectable = false;\r\n vm.jiraTicketsGridOptions.pageable = false;\r\n vm.jiraTicketsGridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n\r\n vm.jiraTicketsGridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n const sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n const jiraTicketsPostBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n\r\n try {\r\n let response = await $http.post(apiUrl + 'api/core/tickets/jira/search/', jiraTicketsPostBody);\r\n vm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n\r\n //-----END JIRA TICKETS-----\r\n\r\n //-----SERVICENOW TICKETS-----\r\n\r\n const serviceNowTicketsGridColumns = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { title: ' ', template: \"Link\", width: 90 }\r\n ];\r\n\r\n vm.serviceNowTicketsGridOptions = helperService.setMainGridOptions(serviceNowTicketsGridColumns, 400);\r\n vm.serviceNowTicketsGridOptions.selectable = false;\r\n vm.serviceNowTicketsGridOptions.pageable = false;\r\n vm.serviceNowTicketsGridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n\r\n vm.serviceNowTicketsGridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n const sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n const serviceNowTicketsPostBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n\r\n try {\r\n let response = await $http.post(apiUrl + 'api/core/tickets/servicenow/search/', serviceNowTicketsPostBody);\r\n vm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n\r\n //-----END SERVICENOW TICKETS-----\r\n\r\n //-----ZENDESK TICKETS-----\r\n\r\n const zendeskTicketsGridColumns = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: customAutoCompleteFilterEqualToOnly, width: 80 },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { title: ' ', template: \"Link\", width: 90 }\r\n ];\r\n\r\n vm.zendeskTicketsGridOptions = helperService.setMainGridOptions(zendeskTicketsGridColumns, 400);\r\n vm.zendeskTicketsGridOptions.selectable = false;\r\n vm.zendeskTicketsGridOptions.pageable = false;\r\n vm.zendeskTicketsGridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n\r\n vm.zendeskTicketsGridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n const sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n const zendeskTicketsPostBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n\r\n try {\r\n let response = await $http.post(apiUrl + 'api/core/tickets/zendesk/search/', zendeskTicketsPostBody);\r\n vm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function linkTicketToDocumenation(dataItem) {\r\n vm.actionInProgress = new createSpinner();\r\n\r\n const postData = {\r\n \"DocumentationId\": documentation.Id,\r\n \"TicketId\": dataItem.Id,\r\n \"Provider\": dataItem.Provider\r\n };\r\n\r\n try {\r\n await nsAtDocumentationService.linkChangeTicketToDocumentation(documentation.Id, postData);\r\n await helperService(vm.actionInProgress);\r\n vm.linkedChangeTicketsGridDataSource.read();\r\n } catch {\r\n vm.actionInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n function linkCustomTicket() {\r\n let data = {\r\n Id: vm.customTicketId,\r\n Provider: \"Custom\"\r\n };\r\n vm.customTicketId = \"\";\r\n linkTicketToDocumenation(data);\r\n }\r\n\r\n async function unlinkTicketFromDocumentation(dataItem) {\r\n vm.actionInProgress = true;\r\n\r\n try {\r\n await nsAtDocumentationService.deleteChangeTicketDocumentationLink(documentation.Id, dataItem.NsAtDocumentationTicketId);\r\n linkedJiraTickets = [];\r\n linkedServiceNowTickets = [];\r\n linkedZendeskTickets = [];\r\n vm.linkedChangeTicketsGridDataSource.read();\r\n vm.actionInProgress = false;\r\n } catch {\r\n vm.actionInProgress = false;\r\n }\r\n }\r\n\r\n function isLinked(ticket) {\r\n switch (ticket.Provider) {\r\n case \"Jira\":\r\n return linkedJiraTickets.some(t => t.TicketId === ticket.Id);\r\n break;\r\n case \"ServiceNow\":\r\n return linkedServiceNowTickets.some(t => t.TicketId === ticket.Id);\r\n break;\r\n case \"Zendesk\":\r\n return linkedZendeskTickets.some(t => t.TicketId === ticket.Id);\r\n break;\r\n }\r\n }\r\n\r\n\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { customDatePickerFilter, customAutoCompleteFilter, standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, nsAtDocumentationService, $http, $filter, reportsService, templatesDataService, userGroupsDataService, reportsDataService, SavedReportSelectorService, documentation) {\r\n\r\n const vm = this;\r\n vm.documentation = documentation;\r\n vm.helperService = helperService;\r\n vm.cancel = cancel;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n vm.deselectSelectedTemplates = deselectSelectedTemplates;\r\n vm.deselectSelectedUserGroups = deselectSelectedUserGroups;\r\n vm.linkChangesToDocumentation = linkChangesToDocumentation;\r\n vm.unlinkChangeFromDocumentation = unlinkChangeFromDocumentation;\r\n vm.changesChangeRowSelected = changesChangeRowSelected;\r\n vm.gridView = \"LinkedChanges\";\r\n vm.showChangesGrid = false;\r\n vm.changesToLink = [];\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n function activate() {\r\n configureLinkedChangesGrid();\r\n configureChangesGrid();\r\n }\r\n\r\n activate();\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n function configureLinkedChangesGrid() {\r\n //-----LINKED CHANGES-----\r\n\r\n const linkedChangesGridColumns = [\r\n { template: `Delete`, \"title\": \"Delete\", width: 100 }, \r\n { field: \"DetailDate\", title: \"Date\", template: \"{{ dataItem.DetailDate | date:'short'}}\", width: 150, filterable: customDatePickerFilter },\r\n { field: \"DetailObjectName\", title: \"Object Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DetailSubObjectName\", title: \"Sub Object Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DetailFieldName\", title: \"Field Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DetailRecordId\", title: \"Record Id\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"DetailRecordName\", title: \"Record Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"DetailUserId\", title: \"User Id\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"DetailUserName\", title: \"User Name\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"DetailRoleId\", title: \"Role Id\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DetailRoleName\", title: \"Role Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DetailContext\", title: \"Context\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DetailType\", title: \"Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"DetailOldValue\", title: \"Old Value\", width: 200, filterable: customAutoCompleteFilter },\r\n { field: \"DetailNewValue\", title: \"New Value\", width: 200, filterable: customAutoCompleteFilter }\r\n\r\n ];\r\n\r\n vm.linkedChangesGridOptions = helperService.setMainGridOptions(linkedChangesGridColumns, 400);\r\n vm.linkedChangesGridOptions.noRecords = {\r\n template: \"
No Linked Changes exist for this Documentation
\"\r\n };\r\n\r\n vm.linkedChangesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n Date: { type: \"date\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async options => {\r\n let linkedChangesData = helperService.prepareSortsAndFilters(options);\r\n const params = { 'pagesize': options.data.pageSize, 'page': options.data.page };\r\n try {\r\n let response = await nsAtDocumentationService.getDocumentationLinkedChangesList(documentation.Id, linkedChangesData, params)\r\n options.success(response);\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n //-----LINKED CHANGES-----\r\n }\r\n\r\n async function getTemplates() {\r\n vm.templateDropdownIsLoading = true;\r\n\r\n try {\r\n let response = await templatesDataService.getTemplates('NS');\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n const All = { \"Name\": \"All Templates\", \"Id\": 'AllObjectsInMultiSelect' };\r\n response.data.unshift(All);\r\n vm.templatesDataSource = response.data;\r\n vm.selectedTemplates = [All];\r\n vm.templateDropdownIsLoading = false;\r\n } catch {\r\n vm.templateDropdownIsLoading = false;\r\n }\r\n }\r\n\r\n async function getUserGroups() {\r\n vm.userGroupDropdownIsLoading = true;\r\n try {\r\n let response = await userGroupsDataService.getUserGroups();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n const AllUserGroups = { \"Name\": \"All User Groups\", \"Id\": 'AllObjectsInMultiSelect' };\r\n response.data.unshift(AllUserGroups);\r\n vm.userGroupsDataSource = response.data;\r\n vm.selectedUserGroups = [AllUserGroups];\r\n vm.userGroupDropdownIsLoading = false;\r\n } catch {\r\n vm.userGroupDropdownIsLoading = false;\r\n }\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n async function getReportMetadata() {\r\n let response = await reportsDataService.getReportMetadata(vm.reportId)\r\n\r\n vm.reportMetadata = response.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n\r\n return vm.reportMetadata;\r\n }\r\n // ---\r\n\r\n\r\n\r\n async function configureChangesGrid() {\r\n // Have to hardcode object Id for All Changes report until we find a better way to get it\r\n vm.reportId = '220923C6-5810-4ECD-8A81-F40D07917388';\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n await getReportMetadata();\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n // ---\r\n\r\n getTemplates();\r\n getUserGroups();\r\n\r\n vm.changesGridColumns = [\r\n { field: \"Date\", title: \"Date\", template: \"{{ dataItem.Date | date:'short'}}\", width: 160, filterable: customDatePickerFilter },\r\n { field: \"ObjectName\", title: \"Object\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"SubObjectName\", title: \"Sub Object\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"FieldName\", title: \"Field\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RecordId\", title: \"Record Id\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RecordName\", title: \"Record Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserId\", title: \"User Id\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role Id\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Context\", title: \"Context\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"ChangeId\", title: \"ChangeId\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectId\", title: \"ObjectId\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"FieldId\", title: \"FieldId\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"FieldApiId\", title: \"FieldApiId\", hidden: true, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.changesGridOptions = helperService.setMainGridOptions(vm.changesGridColumns, 400);\r\n vm.changesGridOptions.persistSelection = true;\r\n vm.changesGridOptions.selectable = \"multiple, row\";\r\n vm.changesGridOptions.autoBind = false;\r\n\r\n vm.changesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n id: \"ChangeId\",\r\n fields: {\r\n Date: { type: \"date\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async options => {\r\n let templates = helperService.returnNullIfAllIsFound(vm.selectedTemplates.map(function (el) { return el.Id; }));\r\n let userGroups = helperService.returnNullIfAllIsFound(vm.selectedUserGroups.map(function (el) { return el.Id; }));\r\n\r\n let data = {\r\n 'TemplateIds': templates,\r\n 'UserGroupIds': userGroups,\r\n 'DocumentationId': documentation.Id\r\n };\r\n data['QueryInput'] = helperService.prepareSortsAndFilters(options);\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n data['QueryInput'].DateFilters = vm.filterCriteria.dateQuery;\r\n }\r\n // ---\r\n\r\n try {\r\n let response = await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/audittrail/ns/v2/places/allchanges',\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n });\r\n options.success(response.data);\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n function generateGridWithSelectedValues() {\r\n vm.showChangesGrid = true;\r\n SavedReportSelectorService.queryGridWithOptions(null, vm.grid, true);\r\n }\r\n\r\n function deselectSelectedTemplates() {\r\n\r\n if (vm.selectedTemplates && vm.selectedTemplates[vm.selectedTemplates.length - 1].Id !== 'AllObjectsInMultiSelect') {\r\n vm.selectedTemplates.forEach(function (row, i) {\r\n if (row.Id === 'AllObjectsInMultiSelect') {\r\n vm.selectedTemplates.splice(i, 1);\r\n }\r\n });\r\n } else {\r\n vm.selectedTemplates = [{ \"Name\": \"All Template Types\", \"Id\": 'AllObjectsInMultiSelect' }];\r\n }\r\n }\r\n\r\n function deselectSelectedUserGroups() {\r\n\r\n if (vm.selectedUserGroups && vm.selectedUserGroups[vm.selectedUserGroups.length - 1].Id !== 'AllObjectsInMultiSelect') {\r\n vm.selectedUserGroups.forEach(function (row, i) {\r\n if (row.Id === 'AllObjectsInMultiSelect') {\r\n vm.selectedUserGroups.splice(i, 1);\r\n }\r\n });\r\n } else {\r\n vm.selectedUserGroups = [{ \"Name\": \"All User Groups\", \"Id\": 'AllObjectsInMultiSelect' }];\r\n }\r\n }\r\n\r\n async function linkChangesToDocumentation() {\r\n vm.actionInProgress = new createSpinner();\r\n\r\n try {\r\n await nsAtDocumentationService.linkChangeToDocumentation(documentation.Id, vm.changesToLink);\r\n await helperService.successfulSaveButton(vm.actionInProgress);\r\n vm.linkedChangesGridDataSource.read();\r\n vm.changesGridDataSource.read();\r\n } catch {\r\n vm.actionInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n async function unlinkChangeFromDocumentation(dataItem) {\r\n vm.actionInProgress = true;\r\n\r\n try {\r\n await nsAtDocumentationService.deleteChangeDocumentationLink(documentation.Id, dataItem.NsAtDocumentationDetailId);\r\n vm.linkedChangesGridDataSource.read();\r\n if (vm.changesGridDataSource._data.length > 0) {\r\n vm.changesGridDataSource.read();\r\n }\r\n vm.actionInProgress = false;\r\n } catch {\r\n vm.actionInProgress = false;\r\n }\r\n }\r\n\r\n function changesChangeRowSelected(kendoEvent) {\r\n vm.changesToLink = [];\r\n\r\n let grid = kendoEvent.sender;\r\n //stupid jQuery because of Kendo\r\n grid.select().each(function () {\r\n vm.changesToLink.push(grid.dataItem(this));\r\n });\r\n\r\n vm.changesToLink = vm.changesToLink.map(change => change.DetailId);\r\n }\r\n\r\n\r\n}","import { customDatePickerFilter, customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport documentationModalController from \"./documentationModal.controller\";\r\nimport swal from \"sweetalert2\";\r\nimport changeTicketsModalController from \"./ChangeTicketsModal/changeTicketsModal.controller\";\r\nimport changesModalController from \"./ChangesModal/changesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, $uibModal, helperService, nsAtDocumentationService) {\r\n const vm = this;\r\n\r\n vm.openDocumentationModal = openDocumentationModal;\r\n vm.deleteDocumentation = deleteDocumentation;\r\n vm.openChangeTicketsModal = openChangeTicketsModal;\r\n vm.openChangesModal = openChangesModal;\r\n\r\n function activate() {\r\n setupDocumentationGrid();\r\n }\r\n\r\n activate();\r\n\r\n function setupDocumentationGrid() {\r\n const columnsFromVM =\r\n [\r\n { field: \"Date\", title: \"Date\", template: \"{{ dataItem.Date | date:'shortDate'}}\", filterable: customDatePickerFilter },\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Type\", filterable: customAutoCompleteFilter },\r\n { field: \"AuthorizedBy\", title: \"Authorized By\", filterable: customAutoCompleteFilter },\r\n { field: \"Notes\", title: \"Notes\", filterable: customAutoCompleteFilter },\r\n { field: \"CreatedBy\", title: \"Created By\", filterable: customAutoCompleteFilter },\r\n { field: \"Id\", title: \"Id\", hidden: true },\r\n { template: `Changes`, \"title\": \"Changes\", width: 100 }, \r\n { template: `Change Tickets`, \"title\": \"Change Tickets\", width: 125 },\r\n { template: `Edit`, \"title\": \"Edit\", width: 100 },\r\n { template: `Delete`, \"title\": \"Delete\", width: 100 }\r\n\r\n ];\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(columnsFromVM, 500);\r\n vm.mainGridOptions.selectable = false;\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n Date: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n let response = await nsAtDocumentationService.getDocumentation();\r\n response = $filter('orderBy')(response, '-Date');\r\n options.success(response);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function openDocumentationModal(documentation) {\r\n let documentationModal = $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/ManageDocumentation/documentationModal.html',\r\n controller: documentationModalController,\r\n controllerAs: 'dmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n size: 'lg',\r\n resolve: {\r\n documentation: () => documentation || {}\r\n }\r\n });\r\n\r\n\r\n try {\r\n await documentationModal.result;\r\n vm.gridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function deleteDocumentation(documentation) {\r\n await swal(helperService.areYouSureParams('Delete Documentation', 'Are you sure you want to delete documentation ' + documentation.Name + '?', 'Delete'))\r\n try {\r\n await nsAtDocumentationService.deleteDocumentation(documentation.Id);\r\n vm.gridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function openChangeTicketsModal(documentation) {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/ManageDocumentation/ChangeTicketsModal/changeTicketsModal.html',\r\n controller: changeTicketsModalController,\r\n controllerAs: 'ctmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n size: 'lg',\r\n resolve: {\r\n documentation: () => documentation || {}\r\n }\r\n });\r\n }\r\n\r\n function openChangesModal(documentation) {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/ManageDocumentation/ChangesModal/changesModal.html',\r\n controller: changesModalController,\r\n controllerAs: 'cmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n size: 'lg',\r\n resolve: {\r\n documentation: () => documentation || {}\r\n }\r\n });\r\n }\r\n}","/* maintainUserGroups.component.js */\r\n\r\nimport manageDocumentationController from \"./manageDocumentation.controller\";\r\n\r\n/**\r\n * @desc component for managing NetSuite Audit Trail documentation\r\n * @example \r\n */\r\n\r\nconst manageDocumentation = {\r\n controller: manageDocumentationController,\r\n controllerAs: 'mdvm',\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/ManageDocumentation/manageDocumentation.tmpl.html'\r\n};\r\n\r\nexport default manageDocumentation;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilterEqualToOnly, customAutoCompleteFilter, customDatePickerFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, allChangesDataService, record, helperService) {\r\n\r\n const vm = this;\r\n vm.record = Object.assign({}, record.toJSON());\r\n vm.originalRecord = Object.assign({}, record.toJSON());\r\n\r\n vm.changeRowSelected = changeRowSelected;\r\n vm.selectedTicketProviderChanged = selectedTicketProviderChanged;\r\n vm.cancel = cancel;\r\n vm.removeTicketAssociation = removeTicketAssociation;\r\n vm.saveChangesRecord = saveChangesRecord;\r\n vm.recordValuesHaveChanged = recordValuesHaveChanged;\r\n\r\n function changeRowSelected(kendoEvent) {\r\n const grid = kendoEvent.sender;\r\n vm.record.TicketId = grid.dataItem(grid.select()).Id;\r\n }\r\n\r\n function selectedTicketProviderChanged() {\r\n if (vm.record.TicketProvider !== 'Custom') {\r\n setupTicketsGrid();\r\n } else {\r\n vm.record.TicketId = null;\r\n }\r\n }\r\n\r\n function setupTicketsGrid() {\r\n\r\n const ticketsGridColumns = [\r\n { field: \"Status\", title: \"Status\", filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter }\r\n ];\r\n\r\n vm.ticketsGridOptions = helperService.setMainGridOptions(ticketsGridColumns, 250);\r\n vm.ticketsGridOptions.pageable = false;\r\n vm.ticketsGridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n\r\n vm.ticketsGridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async function (options) {\r\n const sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n const ticketsPostBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n\r\n try {\r\n let response = await allChangesDataService.ticketsReport(vm.record.TicketProvider.toLowerCase(), ticketsPostBody);\r\n options.success(response.data.Tickets);\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n function removeTicketAssociation() {\r\n vm.record.TicketId = null;\r\n vm.record.TicketProvider = null;\r\n }\r\n\r\n function recordValuesHaveChanged(array) {\r\n return helperService.returnTrueIfValuesDiffer(array, vm.originalRecord, vm.record);\r\n }\r\n\r\n async function saveChangesRecord() {\r\n vm.saving = new createSpinner();\r\n const record = {\r\n \"ChangeId\": vm.record.ChangeId,\r\n \"IsSystemChange\": vm.record.SystemChange,\r\n \"Notes\": vm.record.Notes,\r\n \"TicketId\": vm.record.TicketProvider === 'Custom' && vm.record.CustomTicketId ? vm.record.CustomTicketId : vm.record.TicketId,\r\n \"TicketProvider\": vm.record.TicketProvider\r\n };\r\n try {\r\n await allChangesDataService.updateChangeRecord(record);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n}","import { standardGridPageSize, customAutoCompleteFilter, customDatePickerFilter, customBooleanFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../../Shared/kendo.module\";\r\nimport allChangesEditModalController from \"./allChangesEditModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, objectIdDataService, SavedReportSelectorService, templatesDataService, userGroupsDataService, CustomReportServices, $filter, $uibModal, helperService, reportsDataService, reportsService, allChangesDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.selectedTemplates = [];\r\n vm.helperService = helperService;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n vm.deselectSelectedTemplates = deselectSelectedTemplates;\r\n vm.deselectSelectedUserGroups = deselectSelectedUserGroups;\r\n vm.openEditModal = openEditModal;\r\n\r\n vm.onApplyFilter = onApplyFilter;\r\n vm.onReadGrid = onReadGrid;\r\n vm.onClearFilters = onClearFilters;\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if (vm.grid) {\r\n vm.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n async function activate() {\r\n getTemplates();\r\n getUserGroups();\r\n await getObjectId();\r\n\r\n // --- Grid initialization ---\r\n setupAllChangesGrid();\r\n\r\n setColumns();\r\n runSavedReport();\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n await getReportMetadata();\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n if ($rootScope.loadedSavedReport) {\r\n runSavedReport();\r\n }\r\n // --- \r\n }\r\n\r\n activate();\r\n\r\n async function getObjectId() {\r\n let objectId = await objectIdDataService.getObjectID();\r\n\r\n let securityObject = await helperService.getSecurityObjectDetailsFromObjectId(objectId);\r\n vm.ObjectId = objectId;\r\n vm.reportName = securityObject.Name;\r\n vm.reportId = securityObject.ReportID;\r\n\r\n vm.filtersDataSource = CustomReportServices.setfiltersDataSource(objectId);\r\n }\r\n\r\n function runSavedReport() {\r\n if (vm.gridReady && $rootScope.loadedSavedReport && vm.templatesDataSource && vm.userGroupsDataSource && vm.filterCriteria.fields) {\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.dateQuery = reportsService.getSavedReportDateFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n generateGridWithSelectedValues();\r\n } else if (vm.gridReady && !$rootScope.loadedSavedReport && vm.templatesDataSource && vm.userGroupsDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n populateCriteriaModel();\r\n }\r\n }\r\n\r\n function setupAllChangesGrid() {\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = false;\r\n vm.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n vm.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n Date: { type: \"date\" },\r\n SystemChange: { type: \"boolean\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n\r\n let data = {\r\n 'TemplateIds': vm.templates,\r\n 'UserGroupIds': vm.userGroups\r\n };\r\n data['QueryInput'] = helperService.prepareSortsAndFilters(options);\r\n\r\n const params = { 'pagesize': options.data.pageSize, 'page': options.data.page };\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n data['QueryInput'].DateFilters = vm.filterCriteria.dateQuery;\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n\r\n\r\n try {\r\n let response = await allChangesDataService.allChangesReport(data, params);\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function populateCriteriaModel() {\r\n // do not continue if the proper criteria are not loaded\r\n if (vm.selectedTemplates === undefined || vm.selectedUserGroups === undefined) {\r\n return;\r\n }\r\n\r\n vm.templates = helperService.returnNullIfAllIsFound(vm.selectedTemplates.map(function (el) { return el.Id; }));\r\n vm.userGroups = helperService.returnNullIfAllIsFound(vm.selectedUserGroups.map(function (el) { return el.Id; }));\r\n\r\n var criteria = [];\r\n\r\n vm.selectedTemplates.forEach(function (row) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"TemplateIds\", 'TemplateId', row.Name, row.Id));\r\n });\r\n\r\n vm.selectedUserGroups.forEach(function (row) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"UserGroupIds\", 'UserGroupId', row.Name, row.Id));\r\n });\r\n\r\n vm.reportDetailsModel = criteria;\r\n\r\n vm.urlString = apiUrl + 'api/audittrail/ns/v2/places/allchanges';\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n }\r\n\r\n function generateGridWithSelectedValues() {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.dataSource._filter = null;\r\n vm.grid.dataSource._sort = null;\r\n }\r\n\r\n populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, vm.grid, true);\r\n }\r\n\r\n function deselectSelectedTemplates() {\r\n\r\n if (vm.selectedTemplates && vm.selectedTemplates[vm.selectedTemplates.length - 1].Id !== 'AllObjectsInMultiSelect') {\r\n vm.selectedTemplates.forEach(function (row, i) {\r\n if (row.Id === 'AllObjectsInMultiSelect') {\r\n vm.selectedTemplates.splice(i, 1);\r\n }\r\n });\r\n } else {\r\n vm.selectedTemplates = [{ \"Name\": \"All Template Types\", \"Id\": 'AllObjectsInMultiSelect' }];\r\n }\r\n populateCriteriaModel();\r\n }\r\n\r\n function deselectSelectedUserGroups() {\r\n\r\n if (vm.selectedUserGroups && vm.selectedUserGroups[vm.selectedUserGroups.length - 1].Id !== 'AllObjectsInMultiSelect') {\r\n vm.selectedUserGroups.forEach(function (row, i) {\r\n if (row.Id === 'AllObjectsInMultiSelect') {\r\n vm.selectedUserGroups.splice(i, 1);\r\n }\r\n });\r\n } else {\r\n vm.selectedUserGroups = [{ \"Name\": \"All User Groups\", \"Id\": 'AllObjectsInMultiSelect' }];\r\n }\r\n populateCriteriaModel();\r\n }\r\n\r\n async function getTemplates() {\r\n vm.templateDropdownIsLoading = true;\r\n\r\n try {\r\n let response = await templatesDataService.getTemplates('NS');\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n\r\n const All = { \"Name\": \"All Templates\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(All);\r\n vm.templatesDataSource = response.data;\r\n vm.selectedTemplates = [All];\r\n vm.selectedTemplates = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedTemplates);\r\n runSavedReport();\r\n vm.templateDropdownIsLoading = false;\r\n } catch {\r\n vm.templateDropdownIsLoading = false;\r\n }\r\n }\r\n\r\n async function getUserGroups() {\r\n vm.userGroupDropdownIsLoading = true;\r\n\r\n try {\r\n let response = await userGroupsDataService.getUserGroups();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n\r\n const AllUserGroups = { \"Name\": \"All User Groups\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(AllUserGroups);\r\n vm.userGroupsDataSource = response.data;\r\n vm.selectedUserGroups = [AllUserGroups];\r\n vm.selectedUserGroups = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedUserGroups);\r\n runSavedReport();\r\n vm.userGroupDropdownIsLoading = false;\r\n } catch {\r\n vm.userGroupDropdownIsLoading = false;\r\n }\r\n }\r\n\r\n let ticketTemplate = `{{ dataItem.TicketProvider }}   {{dataItem.TicketId}}\r\n {{ dataItem.TicketProvider }}   {{dataItem.TicketId}}`;\r\n\r\n function setColumns() {\r\n vm.mainGridColumns = [\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"ChangeId\", title: \"Change Id\", filterable: customAutoCompleteFilter },\r\n { field: \"Date\", title: \"Date\", template: \"{{ dataItem.Date | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"ObjectName\", title: \"Object\", filterable: customAutoCompleteFilter },\r\n { field: \"SubObjectName\", title: \"Sub Object\", filterable: customAutoCompleteFilter },\r\n { field: \"FieldName\", title: \"Field\", filterable: customAutoCompleteFilter },\r\n { field: \"RecordId\", title: \"Record Id\", filterable: customAutoCompleteFilter },\r\n { field: \"RecordName\", title: \"Record Name\", filterable: customAutoCompleteFilter },\r\n { field: \"UserId\", title: \"User Id\", filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", filterable: customAutoCompleteFilter },\r\n { field: \"RoleId\", title: \"Role Id\", filterable: customAutoCompleteFilter },\r\n { field: \"RoleName\", title: \"Role Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Context\", title: \"Context\", filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Type\", filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter },\r\n { field: \"Notes\", title: \"Notes\", filterable: customAutoCompleteFilter },\r\n { field: \"SystemChange\", title: \"System Change\", filterable: customBooleanFilter }\r\n ];\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.sortable = false;\r\n\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n\r\n setLayout();\r\n }\r\n\r\n function setLayout() {\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout(vm, null);\r\n }\r\n }\r\n\r\n function onApplyFilter(selectedFilter) {\r\n const currentOptions = vm.grid.getOptions();\r\n\r\n if (selectedFilter && selectedFilter.Filters && selectedFilter.Filters.length > 0) {\r\n currentOptions.dataSource.filter = helperService.convertFiltersForGrid(_, selectedFilter.Filters);\r\n try {\r\n vm.grid.dataSource._filter = currentOptions.dataSource.filter;\r\n vm.grid.dataSource.read();\r\n }\r\n catch (err) {\r\n vm.gridDataSource.filter({});\r\n }\r\n }\r\n }\r\n\r\n function onReadGrid() {\r\n vm.gridDataSource.read();\r\n }\r\n\r\n function onClearFilters() {\r\n vm.gridDataSource.filter({});\r\n }\r\n\r\n async function openEditModal(item) {\r\n let editModal = $uibModal.open({\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/AllChanges/allChangesEditModal.tmpl.html',\r\n controller: allChangesEditModalController,\r\n controllerAs: 'acemvm',\r\n backdrop: 'static',\r\n resolve: {\r\n record: () => item\r\n }\r\n });\r\n\r\n try {\r\n await editModal.result;\r\n vm.gridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n async function getReportMetadata() {\r\n let response = await reportsDataService.getReportMetadata(vm.reportId);\r\n\r\n vm.reportMetadata = response.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n\r\n return vm.reportMetadata;\r\n }\r\n\r\n}","/* allChanges.component.js */\r\n\r\nimport allChangesController from \"./allChanges.controller\";\r\n\r\n/**\r\n * @desc component for viewing all NetSuite audit trail changes\r\n * @example \r\n */\r\n\r\nconst allChanges = {\r\n controller: allChangesController,\r\n controllerAs: 'acvm',\r\n templateUrl: '/App/Components/NetSuiteAuditTrail/AllChanges/allChanges.tmpl.html'\r\n};\r\n\r\nexport default allChanges;","import { standardGridPageSize, customAutoCompleteFilter, customDatePickerFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, SavedReportSelectorService, objectIdDataService, netsuiteDataChangesDataService, CustomReportServices, reportsDataService, reportsService, $filter, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.selectedRecordType = [];\r\n vm.selectedUsers = [];\r\n\r\n // --- FOR ADVANCED FILTERING --- \r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n vm.helperService = helperService;\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n vm.deselectSelectedRecordType = deselectSelectedRecordType;\r\n vm.userDropdownChange = userDropdownChange;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n\r\n vm.onReadGrid = onReadGrid;\r\n vm.onApplyFilter = onApplyFilter;\r\n vm.onClearFilters = onClearFilters;\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if (vm.grid) {\r\n vm.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n activate();\r\n\r\n async function activate() {\r\n setUsers();\r\n setRecordTypes();\r\n await setObjectId();\r\n\r\n //Grid initialization\r\n setupDataChangesNSGrid();\r\n setColumns();\r\n runSavedReport();\r\n\r\n await setReportMetadata();\r\n if (!$rootScope.loadedSavedReport || !checkForSavedReportDateFilters()) {\r\n setupDefaultDateFilter();\r\n vm.filterCriteria.needsUpdate = true;\r\n }\r\n\r\n if ($rootScope.loadedSavedReport) {\r\n runSavedReport();\r\n }\r\n }\r\n\r\n async function setObjectId() {\r\n vm.ObjectId = await objectIdDataService.getObjectID();\r\n\r\n let securityObject = await helperService.getSecurityObjectDetailsFromObjectId(vm.ObjectId);\r\n vm.reportName = securityObject.Name;\r\n vm.reportId = securityObject.ReportID;\r\n\r\n vm.filtersDataSource = CustomReportServices.setfiltersDataSource(vm.ObjectId);\r\n }\r\n\r\n function setupDataChangesNSGrid() {\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = false;\r\n\r\n vm.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n vm.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n Date: { type: \"date\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async (options) => {\r\n delete $rootScope.loadedSavedReport;\r\n\r\n let selectedUserIds = [];\r\n vm.selectedUsers.forEach(user => {\r\n if (user?.InternalId !== 'AllObjectsInMultiSelect') {\r\n selectedUserIds.push(user.InternalId);\r\n }\r\n });\r\n\r\n let data = {\r\n 'RecordTypes': vm.recordTypes,\r\n 'UserInternalIds': selectedUserIds\r\n };\r\n\r\n const params = { 'pagesize': options.data.pageSize, 'page': options.data.page };\r\n\r\n data['QueryInput'] = helperService.prepareSortsAndFilters(options);\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n data['QueryInput'].DateFilters = vm.filterCriteria.dateQuery;\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n\r\n try {\r\n let response = await netsuiteDataChangesDataService.nsDataChangesReport(data, params);\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n async function setUsers() {\r\n try {\r\n let response = await netsuiteDataChangesDataService.getUsers();\r\n response.data = $filter('orderBy')(response.data, 'UserName');\r\n vm.allUsersDropdownObject = { \"UserName\": \"All Users\", \"InternalId\": \"AllObjectsInMultiSelect\" };\r\n await response.data.unshift(vm.allUsersDropdownObject);\r\n vm.userDataSource = response.data;\r\n vm.selectedUsers = [vm.allUsersDropdownObject];\r\n vm.selectedUsers = SavedReportSelectorService.checkSavedReportForUsers($rootScope.loadedSavedReport, response.data, vm.selectedUsers);\r\n userDropdownChange();\r\n runSavedReport();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function userDropdownChange() {\r\n vm.selectedUsers = helperService.deselectAllObjectsIfOtherIsClicked(vm.selectedUsers, vm.allUsersDropdownObject);\r\n if (!vm.selectedUsers?.length) {\r\n vm.selectedUsers.push(vm.allUsersDropdownObject);\r\n }\r\n populateCriteriaModel();\r\n }\r\n\r\n function populateCriteriaModel() {\r\n\r\n let criteria = [];\r\n\r\n //Used in TicketModal\r\n vm.product = {\r\n ID: 'NS',\r\n Type: 'NS'\r\n };\r\n\r\n vm.recordTypes = helperService.returnNullIfAllIsFound(vm.selectedRecordType.map(el => el.Id));\r\n\r\n vm.selectedUsers.forEach(function (row) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"InternalId\", 'User', row.UserName, row.InternalId));\r\n });\r\n\r\n vm.selectedRecordType.forEach(function (row) {\r\n criteria.push(CustomReportServices.CreateCriteria(\"RecordTypeId\", 'RecordType', row.Name, row.Id));\r\n });\r\n\r\n vm.reportDetailsModel = criteria;\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n }\r\n\r\n function generateGridWithSelectedValues() {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.dataSource._filter = null;\r\n vm.grid.dataSource._sort = null;\r\n }\r\n\r\n populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, vm.grid, true);\r\n }\r\n\r\n\r\n async function runSavedReport() {\r\n if (vm.gridReady && $rootScope.loadedSavedReport && vm.recordTypesDataSource && vm.userDataSource) {\r\n await setReportMetadata();\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.dateQuery = reportsService.getSavedReportDateFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n // ---\r\n generateGridWithSelectedValues();\r\n } else if (vm.gridReady && !$rootScope.loadedSavedReport && vm.recordTypesDataSource && vm.userDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n populateCriteriaModel();\r\n }\r\n }\r\n\r\n function deselectSelectedRecordType() {\r\n\r\n if (vm.selectedRecordType && vm.selectedRecordType[vm.selectedRecordType.length - 1].Id !== 'AllObjectsInMultiSelect') {\r\n vm.selectedRecordType.forEach(function (row, i) {\r\n if (row.Id === 'AllObjectsInMultiSelect') {\r\n vm.selectedRecordType.splice(i, 1);\r\n }\r\n });\r\n } else {\r\n vm.selectedRecordType = [{ \"DisplayName\": \"All Record Types\", \"Id\": 'AllObjectsInMultiSelect' }];\r\n }\r\n populateCriteriaModel();\r\n }\r\n\r\n\r\n async function setRecordTypes() {\r\n let response = await netsuiteDataChangesDataService.getRecordTypes();\r\n\r\n response.data = $filter('orderBy')(response.data, 'DisplayName');\r\n //removes record Type if Insert, Update, Delete are all false\r\n response.data.remove(el => !el.Insert && !el.Update && !el.Delete);\r\n\r\n const all = { \"DisplayName\": \"All Record Types\", \"Id\": 'AllObjectsInMultiSelect' };\r\n\r\n response.data.unshift(all);\r\n vm.recordTypesDataSource = response.data;\r\n vm.selectedRecordType = [all];\r\n vm.selectedRecordType = SavedReportSelectorService.checkSavedReportForRecordTypeMultiSelect($rootScope.loadedSavedReport, response.data, vm.selectedRecordType);\r\n deselectSelectedRecordType();\r\n runSavedReport();\r\n }\r\n\r\n function onApplyFilter(selectedFilter) {\r\n const currentOptions = vm.grid.getOptions();\r\n\r\n if (selectedFilter && selectedFilter.Filters && selectedFilter.Filters.length > 0) {\r\n currentOptions.dataSource.filter = helperService.convertFiltersForGrid(_, selectedFilter.Filters);\r\n try {\r\n vm.grid.dataSource._filter = currentOptions.dataSource.filter;\r\n vm.grid.dataSource.read();\r\n }\r\n catch (err) {\r\n vm.gridDataSource.filter({});\r\n }\r\n }\r\n }\r\n\r\n function setColumns() {\r\n const rowSettingsTemplate = ``;\r\n\r\n const ticketTemplate = \"{{ dataItem.TicketProvider }}   {{dataItem.TicketId}}\";\r\n\r\n vm.mainGridColumns = [\r\n { title: \"\", template: rowSettingsTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 22, width: 22 },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: customAutoCompleteFilter },\r\n { field: \"Id\", title: \"Change Id\", filterable: customAutoCompleteFilter },\r\n { field: \"Date\", title: \"Date\", template: \"{{ dataItem.Date | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"RecordLink\", title: \"Record Link\", template: \"View\", filterable: customAutoCompleteFilter },\r\n { field: \"User\", title: \"User\", filterable: customAutoCompleteFilter },\r\n { field: \"UserRoleId\", title: \"User Role Id\", filterable: customAutoCompleteFilter },\r\n { field: \"UserRoleName\", title: \"User Role Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Event\", title: \"Event\", filterable: customAutoCompleteFilter },\r\n { field: \"RecordType\", title: \"Record Type\", filterable: customAutoCompleteFilter },\r\n { field: \"RecordName\", title: \"Record Name\", filterable: customAutoCompleteFilter },\r\n { field: \"DetailsLink\", title: \"Details Link\", template: \"View\", filterable: customAutoCompleteFilter },\r\n { field: \"Context\", title: \"Context\", filterable: customAutoCompleteFilter },\r\n { field: \"Company\", title: \"Subsidiary\", filterable: customAutoCompleteFilter },\r\n { field: \"RecordId\", title: \"Record Id\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.sortable = false;\r\n\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n\r\n setLayout();\r\n }\r\n\r\n function onReadGrid() {\r\n vm.gridDataSource.read();\r\n }\r\n\r\n function onClearFilters() {\r\n vm.gridDataSource.filter({});\r\n }\r\n\r\n function setLayout() {\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout(vm, null);\r\n }\r\n }\r\n\r\n function setupDefaultDateFilter() {\r\n vm.filterCriteria.query = vm.filterCriteria.query || [];\r\n const today = new Date(),\r\n thirtyDaysPrior = new Date().setDate(today.getDate() - 30),\r\n startDate = new Date(thirtyDaysPrior).toISOString(),\r\n endDate = today.toISOString(),\r\n defaultDateFilter = [\r\n {\r\n \"FieldName\": \"Date\",\r\n \"Operator\": \"GreaterThanOrEqual\",\r\n \"Value\": startDate\r\n },\r\n {\r\n \"FieldName\": \"Date\",\r\n \"Operator\": \"LessThanOrEqual\",\r\n \"Value\": endDate\r\n }\r\n ];\r\n\r\n vm.filterCriteria.query.push(...defaultDateFilter);\r\n }\r\n\r\n function checkForSavedReportDateFilters() {\r\n if ($rootScope.loadedSavedReport) {\r\n return $rootScope.loadedSavedReport.ReportDefinition.Filters.some(filter => filter.FieldName === 'Date') || $rootScope.loadedSavedReport.ReportDefinition.DateFilters;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n async function setReportMetadata() {\r\n let response = await reportsDataService.getReportMetadata(vm.reportId);\r\n\r\n vm.reportMetadata = response.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n }\r\n // ---\r\n\r\n}","/* netsuiteDataChanges.component.js */\r\n\r\nimport netsuiteDataChangesController from \"./netsuiteDataChanges.controller\";\r\n\r\n/**\r\n * @desc component to display data changes for NetSuite\r\n * @example \r\n */\r\n\r\nconst netsuiteDataChanges = {\r\n controller: netsuiteDataChangesController,\r\n controllerAs: 'nsdcvm',\r\n templateUrl: '/App/Components/DataChangesNetSuite/netsuiteDataChanges.tmpl.html'\r\n};\r\n\r\nexport default netsuiteDataChanges;","import angular from 'angular';\r\nimport auditTrailNetSuiteFactoriesModule from './auditTrailNetSuite.factories.module';\r\nimport maintainTemplatesController from '../Components/NetSuiteAuditTrail/MaintainTemplates/maintainTemplates.controller';\r\nimport netsuiteDataChangesConfiguration from '../Components/DataChangesConfiguration/netsuiteDataChangesConfiguration.component';\r\nimport maintainOptionSets from '../Components/NetSuiteAuditTrail/MaintainOptionSets/maintainOptionSets.component';\r\nimport snapshotChanges from '../Components/SnapshotChanges/snapshotChanges.component';\r\nimport maintainUserGroups from '../Components/NetSuiteAuditTrail/MaintainUserGroups/maintainUserGroups.component';\r\nimport snapshotComparison from '../Components/SnapshotComparison/snapshotComparison.component';\r\nimport snapshotConfiguration from '../Components/SnapshotConfiguration/snapshotConfiguration.component';\r\nimport manageDocumentation from '../Components/NetSuiteAuditTrail/ManageDocumentation/manageDocumentation.component';\r\nimport allChanges from '../Components/NetSuiteAuditTrail/AllChanges/allChanges.component';\r\nimport netsuiteDataChanges from '../Components/DataChangesNetSuite/netsuiteDataChanges.component';\r\n\r\nexport default angular\r\n .module('app.auditTrail.netSuite', [auditTrailNetSuiteFactoriesModule])\r\n .controller(\"maintainTemplatesController\", maintainTemplatesController)\r\n .component(\"snapshotConfiguration\", snapshotConfiguration)\r\n .component(\"netsuiteDataChangesConfiguration\", netsuiteDataChangesConfiguration)\r\n .component(\"maintainOptionSets\", maintainOptionSets)\r\n .component('snapshotChanges', snapshotChanges)\r\n .component('maintainUserGroups', maintainUserGroups)\r\n .component('snapshotComparison', snapshotComparison)\r\n .component('manageDocumentation', manageDocumentation)\r\n .component('allChanges', allChanges)\r\n .component('netsuiteDataChanges', netsuiteDataChanges)\r\n .name;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (helperService, manageDataDataService) {\r\n\r\n var vm = this;\r\n\r\n vm.executeAction = executeAction;\r\n vm.openStartDate = openStartDate;\r\n vm.openEndDate = openEndDate;\r\n\r\n vm.newDate = new Date();\r\n\r\n // Date picker settings\r\n vm.archiveStartDatePopup = {\r\n opened: false\r\n };\r\n vm.purgeStartDatePopup = {\r\n opened: false\r\n };\r\n vm.restoreStartDatePopup = {\r\n opened: false\r\n };\r\n\r\n vm.singleDateOptions = {\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1,\r\n maxDate: vm.newDate\r\n };\r\n\r\n vm.startDateOptions = {\r\n dateDisabled: disabled,\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n vm.endDateOptions = {\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n maxDate: vm.newDate,\r\n startingDay: 1\r\n };\r\n\r\n vm.startDatePopup = {\r\n opened: false\r\n };\r\n\r\n vm.endDatePopup = {\r\n opened: false\r\n };\r\n\r\n\r\n function activate() {\r\n helperService.getConfigurationValue('DefaultMitigationsOverwriteCurrent').then(data => {\r\n vm.DefaultMitigationsOverwriteCurrent = data;\r\n });\r\n\r\n ninetyDaysAgo();\r\n thirtyDaysAgo();\r\n today();\r\n }\r\n\r\n activate();\r\n\r\n function ninetyDaysAgo() {\r\n var ninetyDaysAgo = new Date();\r\n ninetyDaysAgo.setDate(ninetyDaysAgo.getDate() - 90);\r\n vm.archiveSingleDate = ninetyDaysAgo;\r\n vm.purgeSingleDate = ninetyDaysAgo;\r\n }\r\n\r\n function thirtyDaysAgo() {\r\n var thirtyDaysAgo = new Date();\r\n thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);\r\n vm.restoreStartDate = thirtyDaysAgo;\r\n }\r\n\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && date > vm.restoreEndDate;\r\n }\r\n\r\n function openStartDate() {\r\n vm.startDatePopup.opened = true;\r\n }\r\n\r\n //End Date picker settings\r\n function today() {\r\n vm.restoreEndDate = vm.newDate;\r\n }\r\n\r\n function openEndDate() {\r\n vm.endDatePopup.opened = true;\r\n }\r\n\r\n function executeAction() {\r\n\r\n vm.dataChangesProcessIsRunning = new createSpinner();\r\n\r\n let data = {};\r\n data.ProductId = vm.product.ID;\r\n\r\n switch (vm.action.name) {\r\n case 'Collect':\r\n data.ImportType = vm.action.type;\r\n break;\r\n case 'Archive':\r\n data.Date = vm.archiveSingleDate.toISOString();\r\n break;\r\n case 'Purge':\r\n data.Date = vm.purgeSingleDate.toISOString();\r\n break;\r\n case 'Restore':\r\n data.StartDate = vm.restoreStartDate.toISOString();\r\n data.EndDate = vm.restoreEndDate.toISOString();\r\n break;\r\n }\r\n\r\n manageDataDataService.dataActionCall(vm.action.name.toLowerCase(), data)\r\n .then(dataActionCallComplete)\r\n .catch(dataActionCallFailed);\r\n\r\n function dataActionCallComplete() {\r\n vm.dataChangesProcessIsRunning.loadingValue = false;\r\n }\r\n\r\n function dataActionCallFailed() {\r\n vm.dataChangesProcessIsRunning.loadingValue = false;\r\n }\r\n }\r\n}\r\n","import manageDataActionController from \"./manageDataAction.controller\";\r\n\r\n/* manageDataAction.component.js */\r\n\r\n/**\r\n * @desc component for each action within manage data feature\r\n * @example \r\n */\r\n\r\nconst manageDataAction = {\r\n bindings: {\r\n product: '<',\r\n action: '<'\r\n },\r\n controller: manageDataActionController,\r\n controllerAs: 'mdavm',\r\n templateUrl: '/App/Components/ManageDataV2/Action/manageDataAction.tmpl.html'\r\n};\r\n\r\nexport default manageDataAction;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function manageDataConfigurationController(manageDataDataService, helperService) {\r\n var vm = this;\r\n\r\n vm.updateConfigValue = updateConfigValue;\r\n vm.configValueChanged = configValueChanged;\r\n \r\n async function updateConfigValue() {\r\n vm.updateInProgress = new createSpinner();\r\n\r\n let data = {\r\n \"Configurations\": [],\r\n \"ProductId\": vm.product.ID\r\n };\r\n\r\n data.Configurations.push({\r\n \"Name\": vm.action.configValue,\r\n \"Value\": vm.product.configuration[vm.action.configValue]\r\n });\r\n\r\n await manageDataDataService.setProductConfiguration(vm.product.ID, data);\r\n helperService.successfulSaveButton(vm.updateInProgress);\r\n }\r\n\r\n function configValueChanged() {\r\n var configValue = vm.action.configValue;\r\n var changedConfigurations = vm.product.changedConfigurations;\r\n\r\n if (vm.product.configuration[configValue] !== vm.product.oldConfig[configValue]) {\r\n // we have a new value so let's check if this config value is in our array\r\n if (!changedConfigurations.includes(configValue)) {\r\n // ok let's track this change\r\n changedConfigurations.push(configValue);\r\n }\r\n } else {\r\n // the value was changed back to the original value so we need to remove it from the array\r\n var index = changedConfigurations.indexOf(configValue);\r\n changedConfigurations.splice(index, 1);\r\n }\r\n }\r\n}\r\n","import manageDataConfigurationController from \"./manageDataConfiguration.controller\";\r\n\r\n/* manageDataConfiguration.component.js */\r\n\r\n/**\r\n * @desc component for each configuration within manage data feature\r\n * @example \r\n */\r\n\r\nconst manageDataConfiguration = {\r\n bindings: {\r\n product: '=',\r\n action: '<'\r\n },\r\n controller: manageDataConfigurationController,\r\n controllerAs: 'mdcvm',\r\n templateUrl: '/App/Components/ManageDataV2/Configuration/manageDataConfiguration.tmpl.html'\r\n};\r\n\r\nexport default manageDataConfiguration;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($http, $rootScope, helperService) {\r\n\r\n var vm = this;\r\n vm.$onInit = activate;\r\n vm.schedule = {};\r\n\r\n function activate() {\r\n\r\n //Only allow 'Daily' schedule frequency for Workday Collect Data Changes\r\n if (vm.action.displayName === 'Collect Data Changes' && vm.product.ID === 'WD') {\r\n vm.frequencies = ['Daily'];\r\n } else {\r\n vm.frequencies = ['Daily', 'Weekly', 'Monthly'];\r\n }\r\n\r\n vm.daysInWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n vm.daysInMonth = helperService.getDayOfMonthDropdownOptions();\r\n vm.schedule.startTimeForScheduleImport = new Date();\r\n\r\n vm.hasExistingValueChanged = hasExistingValueChanged;\r\n vm.scheduleImportStatusChanged = scheduleImportStatusChanged;\r\n vm.updateScheduleImport = updateScheduleImport;\r\n\r\n setupLinks();\r\n }\r\n\r\n function setupLinks() {\r\n var productId = vm.product.ID;\r\n var action = vm.action.name.toLowerCase();\r\n\r\n if (vm.action.type) {\r\n vm.getScheduleUrl = apiUrl + 'api/audittrail/auditdata/' + action + '/schedule/' + productId + '/' + vm.action.type;\r\n } else {\r\n vm.getScheduleUrl = apiUrl + 'api/audittrail/auditdata/' + action + '/schedule/' + productId;\r\n }\r\n vm.putScheduleUrl = apiUrl + 'api/audittrail/auditdata/' + action + '/schedule';\r\n\r\n if (vm.action.name === 'Collect') {\r\n vm.deleteScheduleUrl = apiUrl + 'api/audittrail/auditdata/' + action + '/schedule/' + productId + '/' + vm.action.type;\r\n } else {\r\n vm.deleteScheduleUrl = apiUrl + 'api/audittrail/auditdata/' + action + '/schedule/' + productId;\r\n }\r\n\r\n getImportSchedule();\r\n }\r\n\r\n function getImportSchedule() {\r\n $http.get(vm.getScheduleUrl).then(response => {\r\n vm.importSchedule = response.data;\r\n vm.schedule.selectedFreqForScheduleImport = response.data.Frequency;\r\n vm.schedule.selectedDayOfWeekForScheduleImport = response.data.DayOfWeek;\r\n vm.schedule.selectedDayOfMonthForScheduleImport = { Name: response.data.DayOfMonth, Value: response.data.DayOfMonth };\r\n vm.schedule.startTimeForScheduleImport = new Date(response.data.StartTime);\r\n vm.originalSchedule = angular.copy(vm.schedule);\r\n vm.ScheduleImportIsOn = true;\r\n }).catch(_ => {\r\n vm.importSchedule = null;\r\n vm.ScheduleImportIsOn = false;\r\n });\r\n }\r\n\r\n function scheduleImportStatusChanged() {\r\n if (!vm.ScheduleImportIsOn && vm.importSchedule) {\r\n updateScheduleImport(false);\r\n }\r\n }\r\n\r\n function updateScheduleImport(isOn) {\r\n updateSchedule(isOn, vm.schedule.selectedFreqForScheduleImport, vm.schedule.selectedDayOfWeekForScheduleImport, vm.schedule.selectedDayOfMonthForScheduleImport, vm.schedule.startTimeForScheduleImport, vm.putScheduleUrl, vm.deleteScheduleUrl, vm.importSchedule);\r\n }\r\n\r\n function updateSchedule(scheduleIsOn, frequency, dayOfWeek, dayOfMonth, startTime, scheduleUrl, disableUrl, downloadedSchedule) {\r\n\r\n vm.updateInProgress = new createSpinner();\r\n\r\n if (scheduleIsOn) {\r\n\r\n var dayOfMonthRequest;\r\n var dayOfWeekRequest;\r\n\r\n if (frequency === 'Daily') {\r\n dayOfMonthRequest = [];\r\n dayOfWeekRequest = [];\r\n } if (frequency === 'Weekly') {\r\n dayOfMonthRequest = [];\r\n dayOfWeekRequest = [dayOfWeek];\r\n } if (frequency === 'Monthly') {\r\n dayOfMonthRequest = [dayOfMonth.Value];\r\n dayOfWeekRequest = [];\r\n }\r\n\r\n let putData = {\r\n \"Schedule\": {\r\n \"DayOfMonth\": dayOfMonthRequest[0],\r\n \"DayOfWeek\": dayOfWeekRequest[0],\r\n \"Frequency\": frequency,\r\n \"StartTime\": startTime.toUTCString(),\r\n \"TimeZone\": $rootScope.applicationTimeZone\r\n },\r\n \"ProductId\": vm.product.ID\r\n };\r\n\r\n if (vm.action.name === \"Collect\") {\r\n putData.ScheduleType = vm.action.type;\r\n }\r\n\r\n $http.put(scheduleUrl, putData).then(function (response) {\r\n getImportSchedule();\r\n helperService.successfulSaveButton(vm.updateInProgress);\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.updateInProgress.loadingValue = false;\r\n });\r\n } else if (scheduleIsOn === false) {\r\n if (downloadedSchedule) {\r\n $http.delete(disableUrl, {}).then(function (response) {\r\n vm.schedule = null;\r\n vm.originalSchedule = null;\r\n getImportSchedule();\r\n vm.updateInProgress.loadingValue = false;\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.updateInProgress.loadingValue = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n function hasExistingValueChanged() {\r\n if (vm.originalSchedule && angular.equals(vm.originalSchedule, vm.schedule)) {\r\n return false;\r\n } else {\r\n // Either creating a new value or user has modified one of the fields\r\n return true;\r\n }\r\n }\r\n\r\n\r\n}\r\n","import manageDataScheduleController from \"./manageDataSchedule.controller\";\r\n\r\n/* manageDataSchedule.component.js */\r\n\r\n/**\r\n * @desc component for manage data to schedule any actions for a given product\r\n * @example \r\n */\r\n\r\nconst manageDataSchedule = {\r\n bindings: {\r\n product: '<',\r\n action: '<'\r\n },\r\n controller: manageDataScheduleController,\r\n controllerAs: 'savm',\r\n templateUrl: '/App/Components/ManageDataV2/Schedule/manageDataSchedule.tmpl.html'\r\n};\r\n\r\nexport default manageDataSchedule;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (helperService, manageDataFactory, manageDataDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = activate;\r\n\r\n vm.updateConfigValues = updateConfigValues;\r\n vm.isProductConfigUnChanged = isProductConfigUnChanged;\r\n\r\n function activate() {\r\n vm.helperService = helperService;\r\n\r\n getProductConfigurations();\r\n }\r\n\r\n async function getProductConfigurations() {\r\n let response = await manageDataDataService.getConfigurationByProductId(vm.product.ID);\r\n vm.product.configuration = {};\r\n\r\n response.data.forEach(function (productConfig) {\r\n vm.product.configuration[productConfig.Name] = productConfig.Value;\r\n });\r\n\r\n vm.product.changedConfigurations = [];\r\n vm.product.oldConfig = angular.copy(vm.product.configuration);\r\n\r\n if (vm.product.Type === 'NS') {\r\n let response = await manageDataDataService.getNetSuiteAuditTrailVersion();\r\n vm.product.version = response.data;\r\n getProductActions(vm.product);\r\n } else {\r\n getProductActions(vm.product);\r\n }\r\n }\r\n\r\n function getProductActions(product) {\r\n vm.productActions = manageDataFactory.getActionsByProductId(product);\r\n\r\n if (vm.product.Type === 'ORFC') vm.productActions = vm.productActions.filter(a => a.name === 'Collect');\r\n if (vm.product.Type === 'AX7') vm.productActions = vm.productActions.filter(a => a.name !== 'Restore');\r\n\r\n vm.configurationNeeded = vm.productActions.some(action => action.configValue);\r\n }\r\n\r\n async function updateConfigValues() {\r\n vm.updateInProgress = new createSpinner();\r\n let eligibleValues = vm.product.changedConfigurations;\r\n let data = {\r\n 'Configurations': [],\r\n 'ProductId': vm.product.ID\r\n };\r\n\r\n eligibleValues.forEach(value => {\r\n data.Configurations.push({\r\n 'Name': value,\r\n 'Value': vm.product.configuration[value]\r\n });\r\n });\r\n await manageDataDataService.setProductConfiguration(vm.product.ID, data);\r\n helperService.successfulSaveButton(vm.updateInProgress);\r\n // update oldconfig so button gets disabled after saving\r\n vm.product.oldConfig = { ...vm.product.configuration };\r\n }\r\n\r\n function isProductConfigUnChanged() {\r\n if (vm.product.oldConfig && vm.product.configuration) {\r\n return angular.equals(vm.product.oldConfig, vm.product.configuration);\r\n }\r\n }\r\n}","import manageDataProductController from \"./manageDataProduct.controller\";\r\n\r\n/* manageDataProduct.component.js */\r\n\r\n/**\r\n * @desc component for each product to handle any manage data functions\r\n * @example \r\n */\r\n\r\nconst manageDataProduct = {\r\n bindings: {\r\n product: '<'\r\n },\r\n controller: manageDataProductController,\r\n controllerAs: 'mdpvm',\r\n templateUrl: '/App/Components/ManageDataV2/Product/manageDataProduct.tmpl.html'\r\n};\r\n\r\nexport default manageDataProduct;","export default /*@ngInject*/ function (templatesDataService) {\r\n\r\n const vm = this;\r\n vm.updateTemplate = updateTemplate;\r\n\r\n vm.$onInit = getTemplates;\r\n\r\n async function getTemplates() {\r\n let response = await templatesDataService.getTemplates('ORFC');\r\n vm.templatesDataSource = response.data;\r\n }\r\n\r\n async function updateTemplate(template) {\r\n const data = {\r\n ProductId: template.Id,\r\n Enabled: template.Enabled\r\n };\r\n try {\r\n await templatesDataService.updateTemplate(data);\r\n } catch (err) {\r\n if (template.Enabled) {\r\n template.Enabled = false;\r\n } else {\r\n template.Enabled = true;\r\n }\r\n }\r\n }\r\n}","import maintainTemplatesController from \"./maintainTemplates.controller\";\r\n\r\n/* maintainTemplates.component.js */\r\n\r\n/**\r\n * @desc component for maintaining audit trail templates\r\n * @example \r\n */\r\n\r\nconst maintainTemplates = {\r\n controller: maintainTemplatesController,\r\n controllerAs: 'mtvm',\r\n templateUrl: '/App/Components/AuditTrail/MaintainTemplates/maintainTemplates.tmpl.html'\r\n};\r\n\r\nexport default maintainTemplates;","import allSupportedProducts from \"../../Shared/GlobalVariables/ProductLookUp\";\r\n\r\nexport default /*@ngInject*/ function ($scope, objectIdDataService, $http, helperService) {\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n $scope.helperService = helperService;\r\n\r\n var vm = $scope.vm = {};\r\n var parentVm = $scope.parentVm = {};\r\n\r\n parentVm.radioSelected = '';\r\n\r\n $scope.helperService.getConfigurationValue('AT_ArchiveDays').then(function (data) {\r\n parentVm.origAT_ArchiveDays = data;\r\n parentVm.AT_ArchiveDays = data;\r\n });\r\n\r\n $scope.helperService.getConfigurationValue('AT_PurgeDays').then(function (data) {\r\n parentVm.origAT_PurgeDays = data;\r\n parentVm.AT_PurgeDays = data;\r\n });\r\n\r\n $http.get(apiUrl + 'api/core/configuration').then(function (response) {\r\n parentVm.configurationValues = {};\r\n response.data.forEach(function (product) {\r\n parentVm.configurationValues[product.Name] = product.Value;\r\n });\r\n });\r\n\r\n parentVm.checkImportFocus = function (product) {\r\n if (parentVm.radioSelected === null || parentVm.radioSelected === \"\") {\r\n return false;\r\n } else {\r\n if (parentVm.radioSelected.has(product)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n };\r\n\r\n parentVm.ProductImportTiles = {};\r\n\r\n allSupportedProducts.forEach(function (product) {\r\n parentVm.ProductImportTiles[product.ID] = 'hide';\r\n });\r\n\r\n function determineProductVisability() {\r\n parentVm.availableProducts.forEach(function (availableProduct) {\r\n parentVm.ProductImportTiles[availableProduct.ID] = 'show';\r\n });\r\n }\r\n\r\n parentVm.ActionTiles = {};\r\n\r\n $http.get(apiUrl + '/api/core/modules/' + 3000 + '/products').then(function (response) {\r\n\r\n parentVm.availableProducts = response.data;\r\n determineProductVisability();\r\n\r\n response.data = response.data.filter(function (el) { return el.Type === 'NS' || el.Type === 'SAP' || el.Type === 'GP' || el.Type === 'NAV' || el.Type === 'AX' || el.Type === \"AX5\" || el.Type === \"AX7\" || el.Type === \"SL\" || el.IsCustom; });\r\n\r\n parentVm.ActionTiles['CollectDataChanges'] = 'show';\r\n parentVm.ActionTiles['ArchiveDataChanges'] = 'show';\r\n parentVm.ActionTiles['RestoreDataChanges'] = 'show';\r\n parentVm.ActionTiles['PurgeDataChanges'] = 'show';\r\n\r\n response.data.forEach(function (data) {\r\n if (data.ID === 'NS') {\r\n parentVm.ActionTiles['CollectSnapshot'] = 'show';\r\n } else if (data.ID === 'AX7') {\r\n parentVm.ActionTiles['CollectDataChanges'] = 'show';\r\n parentVm.ActionTiles['ArchiveDataChanges'] = 'hide';\r\n parentVm.ActionTiles['RestoreDataChanges'] = 'hide';\r\n parentVm.ActionTiles['PurgeDataChanges'] = 'hide';\r\n }\r\n });\r\n\r\n parentVm.availableProducts = {};\r\n response.data.forEach(function (product) {\r\n parentVm.availableProducts[product.ID] = 'show';\r\n });\r\n\r\n });\r\n\r\n var newDate = $scope.newDate = new Date();\r\n\r\n //Single Date picker settings\r\n $scope.singleDateOptions = {\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1,\r\n maxDate: newDate\r\n };\r\n\r\n $scope.ninetyDaysAgo = function () {\r\n var ninetyDaysAgo = new Date();\r\n ninetyDaysAgo.setDate(ninetyDaysAgo.getDate() - 90);\r\n vm.singleDate = ninetyDaysAgo;\r\n };\r\n\r\n $scope.ninetyDaysAgo();\r\n\r\n //Start Date picker settings\r\n $scope.thirtyDaysAgo = function () {\r\n var thirtyDaysAgo = new Date();\r\n thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);\r\n vm.restoreStartDate = thirtyDaysAgo;\r\n };\r\n\r\n $scope.thirtyDaysAgo();\r\n\r\n $scope.startDateOptions = {\r\n dateDisabled: disabled,\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && date > vm.restoreEndDate;\r\n }\r\n\r\n $scope.openStartDate = function () {\r\n $scope.startDatePopup.opened = true;\r\n };\r\n\r\n $scope.startDatePopup = {\r\n opened: false\r\n };\r\n\r\n //End Date picker settings\r\n $scope.today = function () {\r\n vm.restoreEndDate = newDate;\r\n };\r\n $scope.today();\r\n\r\n $scope.endDateOptions = {\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n maxDate: newDate,\r\n startingDay: 1\r\n };\r\n\r\n $scope.openEndDate = function () {\r\n $scope.endDatePopup.opened = true;\r\n };\r\n\r\n $scope.endDatePopup = {\r\n opened: false\r\n };\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $http, helperService) {\r\n\r\n var manageDataVm = $scope.manageDataVm = {};\r\n\r\n manageDataVm.archiveData = function () {\r\n manageDataVm.dataProcessIsRunning = new createSpinner();\r\n $http.put(apiUrl + 'api/audittrail/auditdata/archive', { Date: $scope.vm.singleDate, RecordTypes: [] }).then(function (response) {\r\n //helperService.showConfirmationMessage(\"Attention\", \"This process has been initiated.\");\r\n manageDataVm.dataProcessIsRunning.loadingValue = false;\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n manageDataVm.dataProcessIsRunning.loadingValue = false;\r\n });\r\n };\r\n\r\n $scope.helperService.getConfigurationValue('DefaultMitigationsOverwriteCurrent').then(function (data) {\r\n vm.DefaultMitigationsOverwriteCurrent = data;\r\n });\r\n}\r\n","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $http, helperService) {\r\n\r\n var manageDataVm = $scope.manageDataVm = {};\r\n\r\n manageDataVm.collectAuditTrailDataApiCall = function () {\r\n\r\n var selectedProduct = $scope.parentVm.radioSelected;\r\n var product = null;\r\n\r\n if (selectedProduct === 'AX5_CollectDataChanges') {\r\n product = 'ax5';\r\n } else if (selectedProduct === 'NS_CollectDataChanges') {\r\n product = 'ns';\r\n } else if (selectedProduct === 'SAP_CollectDataChanges') {\r\n product = 'sap';\r\n } else if (selectedProduct === 'GP_CollectDataChanges') {\r\n product = 'gp';\r\n } else if (selectedProduct === 'NAV_CollectDataChanges') {\r\n product = 'nav';\r\n } else if (selectedProduct === 'AX_CollectDataChanges') {\r\n product = 'ax';\r\n } else if (selectedProduct === 'AX7_CollectDataChanges') {\r\n product = 'ax7';\r\n } else if (selectedProduct === 'SL_CollectDataChanges') {\r\n product = 'sl';\r\n }\r\n\r\n manageDataVm.dataProcessIsRunning = new createSpinner();\r\n var url = apiUrl + 'api/audittrail/' + product + '/auditdata/import';\r\n if (product === 'sap') {\r\n url = apiUrl + 'api/audittrail/sap/SAP/auditdata/import';\r\n } else if (product === 'ax7') {\r\n url = apiUrl + 'api/audittrail/ax7/auditdata/move';\r\n }\r\n $http.put(url, {}).then(function (response) {\r\n //helperService.showConfirmationMessage(\"Attention\", \"This process has been initiated.\");\r\n manageDataVm.dataProcessIsRunning.loadingValue = false;\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n manageDataVm.dataProcessIsRunning.loadingValue = false;\r\n });\r\n };\r\n}\r\n","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $http, helperService) {\r\n\r\n var manageDataVm = $scope.manageDataVm = {};\r\n\r\n manageDataVm.collectSnapshot = function () {\r\n manageDataVm.dataProcessIsRunning = new createSpinner();\r\n $http.put(apiUrl + 'api/audittrail/ns/snapshot/import', {}).then(function (response) {\r\n //helperService.showConfirmationMessage(\"Attention\", \"This process has been initiated.\");\r\n manageDataVm.dataProcessIsRunning.loadingValue = false;\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n manageDataVm.dataProcessIsRunning.loadingValue = false;\r\n });\r\n };\r\n\r\n}\r\n","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $http, helperService) {\r\n\r\n var manageDataVm = $scope.manageDataVm = {};\r\n\r\n manageDataVm.purgeData = function () {\r\n manageDataVm.dataProcessIsRunning = new createSpinner();\r\n $http.put(apiUrl + 'api/audittrail/auditdata/purge', { Date: $scope.vm.singleDate.toUTCString() }).then(function (response) {\r\n //helperService.showConfirmationMessage(\"Attention\", \"This process has been initiated.\");\r\n manageDataVm.dataProcessIsRunning.loadingValue = false;\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n manageDataVm.dataProcessIsRunning.loadingValue = false;\r\n });\r\n };\r\n}\r\n","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $http, helperService) {\r\n\r\n var manageDataVm = $scope.manageDataVm = {};\r\n\r\n manageDataVm.restoreData = function () {\r\n manageDataVm.dataProcessIsRunning = new createSpinner();\r\n $http.put(apiUrl + 'api/audittrail/auditdata/restore', { StartDate: $scope.vm.restoreStartDate.toUTCString(), EndDate: $scope.vm.restoreEndDate.toUTCString(), RecordTypes: [] }).then(function (response) {\r\n manageDataVm.dataProcessIsRunning.loadingValue = false;\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n manageDataVm.dataProcessIsRunning.loadingValue = false;\r\n });\r\n };\r\n}\r\n","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $http, helperService) {\r\n\r\n $scope.init = function (productRoute, actionRoute) {\r\n if (productRoute) {\r\n $scope.productRoute = productRoute;\r\n\r\n if (productRoute === 'sap') {\r\n productRoute = 'sap/sap';\r\n }\r\n\r\n $scope.getScheduleUrl = apiUrl + 'api/audittrail/' + productRoute + '/' + actionRoute + '/schedule';\r\n $scope.putScheduleUrl = apiUrl + 'api/audittrail/' + productRoute + '/' + actionRoute + '/schedule';\r\n $scope.deleteScheduleUrl = apiUrl + 'api/audittrail/' + productRoute + '/' + actionRoute + '/schedule/disable';\r\n } else {\r\n $scope.getScheduleUrl = apiUrl + 'api/audittrail/auditdata/' + actionRoute + '/schedule';\r\n $scope.putScheduleUrl = apiUrl + 'api/audittrail/auditdata/' + actionRoute + '/schedule';\r\n $scope.deleteScheduleUrl = apiUrl + 'api/audittrail/auditdata/' + actionRoute + '/schedule/disable';\r\n }\r\n\r\n vm.getImportSchedule();\r\n };\r\n\r\n var vm = $scope.vm = {};\r\n\r\n vm.frequencies = ['Daily', 'Weekly', 'Monthly'];\r\n\r\n vm.daysInWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n\r\n vm.daysInMonth = helperService.getDayOfMonthDropdownOptions();\r\n\r\n vm.startTimeForScheduleImport = new Date();\r\n\r\n vm.getImportSchedule = function () {\r\n $http.get($scope.getScheduleUrl).then(function (response) {\r\n vm.importSchedule = response.data;\r\n vm.selectedFreqForScheduleImport = response.data.Frequency;\r\n vm.selectedDayOfWeekForScheduleImport = response.data.DayOfWeek;\r\n vm.selectedDayOfMonthForScheduleImport = { Value: response.data.DayOfMonth };\r\n vm.startTimeForScheduleImport = new Date(response.data.StartTime);\r\n vm.ScheduleImportIsOn = true;\r\n }, function () {\r\n vm.importSchedule = null;\r\n vm.ScheduleImportIsOn = false;\r\n });\r\n };\r\n\r\n vm.scheduleImportStatusChanged = function () {\r\n if (!vm.ScheduleImportIsOn && vm.importSchedule) {\r\n vm.updateScheduleImport(false);\r\n }\r\n };\r\n\r\n vm.updateScheduleImport = function (isOn) {\r\n vm.updateSchedule(isOn, vm.selectedFreqForScheduleImport, vm.selectedDayOfWeekForScheduleImport, vm.selectedDayOfMonthForScheduleImport, vm.startTimeForScheduleImport, $scope.putScheduleUrl, $scope.deleteScheduleUrl, vm.importSchedule);\r\n };\r\n\r\n vm.updateSchedule = function (scheduleIsOn, frequency, dayOfWeek, dayOfMonth, startTime, scheduleUrl, disableUrl, downloadedSchedule) {\r\n\r\n\r\n vm.updateInProgress = new createSpinner();\r\n\r\n if (scheduleIsOn) {\r\n\r\n var dayOfMonthRequest;\r\n var dayOfWeekRequest;\r\n\r\n if (frequency === 'Daily') {\r\n dayOfMonthRequest = [];\r\n dayOfWeekRequest = [];\r\n } if (frequency === 'Weekly') {\r\n dayOfMonthRequest = [];\r\n dayOfWeekRequest = [dayOfWeek];\r\n } if (frequency === 'Monthly') {\r\n dayOfMonthRequest = [dayOfMonth.Value];\r\n dayOfWeekRequest = [];\r\n }\r\n\r\n var putData = {\r\n \"Schedule\": {\r\n \"DayOfMonth\": dayOfMonthRequest[0],\r\n \"DayOfWeek\": dayOfWeekRequest[0],\r\n \"Frequency\": frequency,\r\n \"StartTime\": startTime.toUTCString(),\r\n \"TimeZone\": $rootScope.applicationTimeZone\r\n },\r\n \"ProductId\": $scope.productRoute\r\n };\r\n\r\n $http.put(scheduleUrl, putData).then(function (response) {\r\n vm.getImportSchedule();\r\n helperService.successfulSaveButton(vm.updateInProgress);\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.updateInProgress.loadingValue = false;\r\n });\r\n } if (!scheduleIsOn) {\r\n if (downloadedSchedule) {\r\n $http.put(disableUrl, {}).then(function (response) {\r\n vm.getImportSchedule();\r\n vm.updateInProgress.loadingValue = false;\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.updateInProgress.loadingValue = false;\r\n });\r\n }\r\n }\r\n };\r\n\r\n}\r\n","import { standardGridPageSize, customDatePickerNotNullableFilter, customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, $scope, SavedReportSelectorService, dataService, objectIdDataService, CustomReportServices, $filter, $http, helperService, reportsDataService, reportsService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = onInit;\r\n\r\n vm.runSavedReport = runSavedReport;\r\n vm.productDropdownChange = productDropdownChange;\r\n vm.thirtyDaysAgo = thirtyDaysAgo;\r\n vm.openStartDate = openStartDate;\r\n vm.today = today;\r\n vm.openEndDate = openEndDate;\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n vm.setColumns = setColumns;\r\n vm.setLayout = setLayout;\r\n vm.onApplyFilter = onApplyFilter;\r\n vm.onReadGrid = onReadGrid;\r\n vm.onClearFilters = onClearFilters;\r\n vm.setDates = setDates;\r\n vm.getDateFilters = getDateFilters;\r\n vm.getPeriodId = getPeriodId;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n vm.filterCriteria.dateQuery = [];\r\n // ---\r\n\r\n async function onInit() {\r\n vm.RelativeDateTypeDataSource = CustomReportServices.getRelativeDateTypes();\r\n vm.PeriodTypeDataSource = CustomReportServices.getPeriodTypes();\r\n vm.RelativeDateType = 2;\r\n vm.PeriodType = 0;\r\n\r\n vm.dateCriteria = [\r\n {\r\n \"DataType\": \"DateTime\",\r\n \"FieldName\": \"Date\",\r\n \"IsNullable\": false\r\n }\r\n ];\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = false;\r\n\r\n vm.startDateOptions = {\r\n dateDisabled: disabled,\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n vm.startDatePopup = {\r\n opened: false\r\n };\r\n\r\n vm.endDateOptions = {\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n maxDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n vm.endDatePopup = {\r\n opened: false\r\n };\r\n\r\n await getObjectId();\r\n await getProducts();\r\n thirtyDaysAgo();\r\n setDates();\r\n today();\r\n }\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if (vm.grid) {\r\n vm.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n async function getObjectId() {\r\n const objectId = await objectIdDataService.getObjectID();\r\n // Needed for report toolbar controller functions\r\n vm.ObjectId = objectId;\r\n vm.reportName = helperService.getSecurityObjectDetailsFromObjectId(vm.ObjectId).Name;\r\n vm.filtersDataSource = CustomReportServices.setfiltersDataSource(vm.ObjectId);\r\n }\r\n\r\n async function getProducts() {\r\n const response = await dataService.getProducts();\r\n response.data = response.data.filter(product => product.Type === \"ORFC\");\r\n vm.productsDataSource = response.data;\r\n vm.selectedProduct = response.data[0];\r\n vm.selectedProduct = SavedReportSelectorService.checkSavedReportForSingleProduct($rootScope.loadedSavedReport, response.data, vm.selectedProduct);\r\n vm.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType(vm.ObjectId, vm.selectedProduct.Type).ReportID;\r\n productDropdownChange();\r\n }\r\n\r\n async function runSavedReport() {\r\n if (vm.gridReady && $rootScope.loadedSavedReport && vm.productsDataSource && vm.filterCriteria.fields) {\r\n vm.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType(vm.ObjectId, vm.selectedProduct.Type).ReportID;\r\n await getReportMetadata();\r\n\r\n const dateFieldName = 'Date';\r\n // --- FOR ADVANCED FILTERING ---\r\n // Convert date filters to criteria\r\n if ($rootScope.loadedSavedReport && $rootScope.loadedSavedReport.ReportDefinition.DateFilters.length > 0) {\r\n const criteriaDateFilterIndex = $rootScope.loadedSavedReport.ReportDefinition.DateFilters.findIndex(filter => filter.FieldName === dateFieldName);\r\n if (criteriaDateFilterIndex > -1) {\r\n loadDateFilterAsCriteria($rootScope.loadedSavedReport.ReportDefinition.DateFilters[criteriaDateFilterIndex]);\r\n $rootScope.loadedSavedReport.ReportDefinition.DateFilters.splice(criteriaDateFilterIndex, 1);\r\n }\r\n } else if ($rootScope.loadedSavedReport && $rootScope.loadedSavedReport.ReportDefinition.Filters.length > 0) {\r\n const dateRangeFilters = $rootScope.loadedSavedReport.ReportDefinition.Filters.filter(filter => filter.FieldName === dateFieldName);\r\n if (dateRangeFilters.length > 0) {\r\n $rootScope.loadedSavedReport.ReportDefinition.Filters = $rootScope.loadedSavedReport.ReportDefinition.Filters.filter(filter => filter.FieldName !== dateFieldName);\r\n dateRangeFilters.forEach(filter => {\r\n loadDateFilterAsCriteria(filter);\r\n });\r\n }\r\n }\r\n\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.dateQuery = reportsService.getSavedReportDateFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n // ---\r\n generateGridWithSelectedValues();\r\n } else if (vm.gridReady && !$rootScope.loadedSavedReport && vm.productsDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n populateCriteriaModel();\r\n }\r\n }\r\n\r\n function loadDateFilterAsCriteria(DateFilter) {\r\n if (DateFilter.Operator === 'GreaterThanOrEqual' || DateFilter.Operator === 'LessThanOrEqual') {\r\n if (!$rootScope.loadedSavedReport.ReportDefinition.Criteria[0]) {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria = [{\r\n \"CriteriaType\": \"Date\",\r\n \"CriteriaValue\": DateFilter.FieldName,\r\n Filters: []\r\n }];\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria[0].Filters.push(DateFilter);\r\n } else {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria[0].Filters.push(DateFilter);\r\n }\r\n } else {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria = [{\r\n \"CriteriaType\": \"Date\",\r\n \"CriteriaValue\": DateFilter.FieldName,\r\n Filters: []\r\n }];\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria[0].DateFilter = DateFilter;\r\n }\r\n }\r\n\r\n function setupFilters() {\r\n if (!vm.sortsAndFilters) {\r\n vm.sortsAndFilters = {};\r\n }\r\n if (!vm.sortsAndFilters.Filters) {\r\n vm.sortsAndFilters.Filters = [];\r\n }\r\n if (!vm.sortsAndFilters.DateFilter) {\r\n vm.sortsAndFilters.DateFilters = [];\r\n }\r\n\r\n const dateFilters = getDateFilters();\r\n\r\n if (dateFilters) {\r\n vm.sortsAndFilters.Criteria = dateFilters.Criteria;\r\n vm.sortsAndFilters.Filters = vm.sortsAndFilters.Filters.concat(dateFilters.Filters);\r\n vm.sortsAndFilters.Filters = getUniqueObjects(vm.sortsAndFilters.Filters);\r\n if (dateFilters.RelativeFilter && !dateFilters.Criteria) {\r\n vm.sortsAndFilters.DateFilters.push(dateFilters.RelativeFilter);\r\n } else {\r\n vm.sortsAndFilters.DateFilters = [];\r\n }\r\n }\r\n }\r\n\r\n async function productDropdownChange() {\r\n setColumns();\r\n vm.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType(vm.ObjectId, vm.selectedProduct.Type).ReportID;\r\n await getReportMetadata();\r\n populateCriteriaModel();\r\n if ($rootScope.loadedSavedReport) {\r\n runSavedReport();\r\n loadSavedReportCriteria();\r\n }\r\n }\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n ModifiedDate: { type: \"date\" },\r\n ChangeDate: { type: \"date\" },\r\n TimeStamp: { type: \"date\" },\r\n ModifiedOn: { type: \"date\" },\r\n Date: { type: \"date\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: options => {\r\n delete $rootScope.loadedSavedReport;\r\n\r\n const data = {};\r\n\r\n vm.sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n setupFilters();\r\n\r\n data['QueryInput'] = vm.sortsAndFilters;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n data['QueryInput'].DateFilters = data['QueryInput'].DateFilters.concat(vm.filterCriteria.dateQuery);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n\r\n $http({\r\n method: 'POST',\r\n url: vm.urlString,\r\n data: data,\r\n params: { 'pagesize': options.data.pageSize, 'page': options.data.page }\r\n }).then(function (response) {\r\n vm.enableGrid = true;\r\n vm.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType(vm.ObjectId, vm.selectedProduct.Type).ReportID;\r\n options.success(response.data);\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n function loadSavedReportCriteria() {\r\n if ($rootScope.loadedSavedReport && $rootScope.loadedSavedReport.ReportDefinition.Criteria) {\r\n $rootScope.loadedSavedReport.ReportDefinition.Criteria.forEach(function (criteria) {\r\n if (criteria.DateFilter) {\r\n switch (criteria.DateFilter.DateType) {\r\n case 'Previous':\r\n vm.RelativeDateType = 0;\r\n vm.PeriodType = getPeriodId(criteria.DateFilter.Period);\r\n break;\r\n\r\n case 'ToDate':\r\n vm.RelativeDateType = 1;\r\n vm.PeriodType = getPeriodId(criteria.DateFilter.Period);\r\n break;\r\n\r\n case 'LastNumberOf':\r\n vm.RelativeDateType = 2;\r\n vm.PeriodType = getPeriodId(criteria.DateFilter.Period);\r\n vm.LastNumberOf = criteria.DateFilter.Value;\r\n break;\r\n\r\n }\r\n }\r\n if (criteria.Filters.length > 0) {\r\n criteria.Filters.forEach(function (filter) {\r\n switch (filter.Operator) {\r\n case 'GreaterThanOrEqual':\r\n vm.RelativeDateType = 4;\r\n vm.startDate = new Date(filter.Value);\r\n break;\r\n\r\n case 'LessThanOrEqual':\r\n vm.RelativeDateType = 4;\r\n vm.endDate = new Date(filter.Value);\r\n break;\r\n }\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n if ($rootScope.loadedSavedReport && $rootScope.loadedSavedReport.ReportDefinition.DateFilters.length > 0) {\r\n const dateFilter = $rootScope.loadedSavedReport.ReportDefinition.DateFilters[0];\r\n switch (dateFilter.DateType) {\r\n case 'Previous':\r\n vm.RelativeDateType = 0;\r\n vm.PeriodType = getPeriodId(dateFilter.Period);\r\n break;\r\n\r\n case 'ToDate':\r\n vm.RelativeDateType = 1;\r\n vm.PeriodType = getPeriodId(dateFilter.Period);\r\n break;\r\n\r\n case 'LastNumberOf':\r\n vm.RelativeDateType = 2;\r\n vm.PeriodType = getPeriodId(dateFilter.Period);\r\n vm.LastNumberOf = dateFilter.Value;\r\n break;\r\n\r\n }\r\n }\r\n }\r\n\r\n //Start Date picker settings\r\n function thirtyDaysAgo() {\r\n const newDate = new Date();\r\n newDate.setDate(newDate.getDate() - 30);\r\n vm.startDate = newDate;\r\n vm.startDate = SavedReportSelectorService.checkSavedReportForDate($rootScope.loadedSavedReport, \"StartDate\", vm.startDate);\r\n }\r\n\r\n function disabled(data) {\r\n const date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && date > vm.endDate;\r\n }\r\n\r\n function openStartDate() {\r\n vm.startDatePopup.opened = true;\r\n }\r\n\r\n //End Date picker settings\r\n function today() {\r\n vm.endDate = new Date();\r\n vm.endDate = SavedReportSelectorService.checkSavedReportForDate($rootScope.loadedSavedReport, \"EndDate\", vm.endDate);\r\n }\r\n\r\n function openEndDate() {\r\n vm.endDatePopup.opened = true;\r\n }\r\n\r\n function populateCriteriaModel() {\r\n // do not continue if the proper criteria are not loaded\r\n if (!vm.selectedProduct) {\r\n return;\r\n }\r\n const criteria = [];\r\n\r\n vm.product = vm.selectedProduct.ID;\r\n vm.productType = vm.selectedProduct.Type;\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"ProductId\", 'Product', vm.selectedProduct.Name, vm.selectedProduct.ID));\r\n\r\n setupFilters();\r\n\r\n vm.urlString = apiUrl + 'api/audittrail/' + vm.productType + '/datachanges';\r\n\r\n vm.reportDetailsModel = criteria;\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n }\r\n\r\n function generateGridWithSelectedValues() {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.dataSource._filter = null;\r\n vm.grid.dataSource._sort = null;\r\n }\r\n\r\n if (vm.startDate <= vm.endDate) {\r\n populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, vm.grid, true);\r\n } else {\r\n helperService.showErrorMessage(\"Start Date must be before or equal to End Date\");\r\n }\r\n }\r\n\r\n function setColumns() {\r\n if (vm.selectedProduct) {\r\n\r\n const rowSettingsTemplate = ``;\r\n\r\n const ticketTemplate = `\r\n \r\n {{ dataItem.TicketProvider }}  \r\n {{dataItem.TicketId}}\r\n \r\n \r\n {{ dataItem.TicketProvider }}  \r\n {{dataItem.TicketId}}\r\n `;\r\n\r\n vm.mainGridColumns = [\r\n { title: \"\", template: rowSettingsTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 22, width: 22 },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"Date\", title: \"Date\", template: \"{{ dataItem.Date | date:'short'}}\", filterable: customDatePickerNotNullableFilter },\r\n { field: \"Product\", title: \"Product\", filterable: customAutoCompleteFilter },\r\n { field: \"BusinessObject\", title: \"Business Object\", filterable: customAutoCompleteFilter },\r\n { field: \"Report\", title: \"Report\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"EventType\", title: \"Event Type\", filterable: customAutoCompleteFilter },\r\n { field: \"Attribute\", title: \"Attribute\", filterable: customAutoCompleteFilter },\r\n { field: \"OldValue\", title: \"Old Value\", filterable: customAutoCompleteFilter },\r\n { field: \"NewValue\", title: \"New Value\", filterable: customAutoCompleteFilter },\r\n { field: \"UserId\", title: \"User ID\", filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Impersonator\", title: \"Impersonator\", filterable: customAutoCompleteFilter },\r\n { field: \"DataSource\", title: \"Data Source\", filterable: customAutoCompleteFilter }\r\n ];\r\n }\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.sortable = false;\r\n\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n\r\n\r\n\r\n setLayout();\r\n }\r\n\r\n function setLayout() {\r\n\r\n let productId;\r\n if (vm.selectedProduct) {\r\n productId = vm.selectedProduct.ID;\r\n }\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout(vm, productId);\r\n }\r\n }\r\n\r\n function onApplyFilter(selectedFilter) {\r\n const currentOptions = vm.grid.getOptions();\r\n\r\n if (selectedFilter && selectedFilter.Filters && selectedFilter.Filters.length > 0) {\r\n currentOptions.dataSource.filter = helperService.convertFiltersForGrid(_, selectedFilter.Filters);\r\n try {\r\n vm.grid.dataSource._filter = currentOptions.dataSource.filter;\r\n vm.grid.dataSource.read();\r\n }\r\n catch (err) {\r\n vm.gridDataSource.filter({});\r\n }\r\n }\r\n }\r\n\r\n function onReadGrid() {\r\n vm.gridDataSource.read();\r\n }\r\n\r\n function onClearFilters() {\r\n vm.gridDataSource.filter({});\r\n }\r\n\r\n //Date picker settings\r\n function setDates() {\r\n const newDate = new Date();\r\n newDate.setDate(newDate.getDate() - $rootScope.UserPreferences.DefaultDaysForAuditTrailReports);\r\n vm.LastNumberOf = $rootScope.UserPreferences.DefaultDaysForAuditTrailReports;\r\n\r\n vm.startDate = newDate;\r\n vm.endDate = new Date();\r\n }\r\n\r\n function getDateFilters() {\r\n let dateCriteria = vm.dateCriteria[0];\r\n dateCriteria.FieldName = \"Date\";\r\n\r\n if (dateCriteria) {\r\n let dateFilters = {\r\n Criteria: null,\r\n Filters: [],\r\n RelativeFilter: null\r\n };\r\n\r\n let startDate = helperService.setDateToBeginningOfDay(vm.startDate);\r\n let endDate = helperService.setDateToEndOfDay(vm.endDate);\r\n\r\n if (vm.RelativeDateType === 4) {\r\n let startDateRow = {\r\n \"FieldName\": dateCriteria.FieldName,\r\n \"Operator\": 'GreaterThanOrEqual',\r\n \"Value\": startDate\r\n };\r\n let endDateRow = {\r\n \"FieldName\": dateCriteria.FieldName,\r\n \"Operator\": 'LessThanOrEqual',\r\n \"Value\": endDate\r\n };\r\n\r\n dateFilters.Filters.push(startDateRow);\r\n dateFilters.Filters.push(endDateRow);\r\n\r\n }\r\n if (vm.RelativeDateType !== 4) {\r\n let relativeDate = {\r\n \"DateType\": vm.RelativeDateType,\r\n \"FieldName\": dateCriteria.FieldName,\r\n \"Period\": vm.PeriodType,\r\n \"Value\": vm.RelativeDateType === 2 ? vm.LastNumberOf : null\r\n };\r\n\r\n dateFilters.RelativeFilter = relativeDate;\r\n }\r\n\r\n return dateFilters;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function getUniqueObjects(arr) {\r\n const seen = new Set();\r\n return arr.filter(obj => {\r\n const strObj = JSON.stringify(obj);\r\n if (seen.has(strObj)) {\r\n return false;\r\n }\r\n seen.add(strObj);\r\n return true;\r\n });\r\n }\r\n\r\n function getPeriodId(name) {\r\n if (name) {\r\n return vm.PeriodTypeDataSource.find(function (type) {\r\n return type.Name === name;\r\n }).Id;\r\n }\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n function getReportMetadata() {\r\n return reportsDataService.getDataChangesReportMetadata(vm.selectedProduct.Type.toLowerCase())\r\n .then(data => {\r\n vm.reportMetadata = data.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n return vm.reportMetadata;\r\n });\r\n }\r\n // ---\r\n\r\n}","import oracleCloudDataChangesController from \"./oracleCloudDataChanges.controller\";\r\n\r\n/* oracleCloudDataChanges.component.js */\r\n\r\n/**\r\n * @desc component for the Oracle Cloud Data Changes page\r\n * @example \r\n */\r\n\r\nconst oracleCloudDataChanges = {\r\n controller: oracleCloudDataChangesController,\r\n controllerAs: 'ocdcvm',\r\n templateUrl: '/App/Components/DataChangesOracleCloud/oracleCloudDataChanges.html'\r\n};\r\n\r\nexport default oracleCloudDataChanges;","export default /*@ngInject*/ function (snapshotsDataService) {\r\n\r\n const vm = this;\r\n vm.updateSnapshot = updateSnapshot;\r\n\r\n vm.$onInit = getSnapshots;\r\n\r\n async function getSnapshots() {\r\n const response = await snapshotsDataService.getSnapshots('ORFC');\r\n vm.snapshotsDataSource = response.data;\r\n }\r\n\r\n async function updateSnapshot(snapshot) {\r\n\r\n const { Id, Enabled } = snapshot;\r\n const data = { Id, Enabled };\r\n\r\n try {\r\n await snapshotsDataService.updateSnapshot(data);\r\n } catch (err) {\r\n if (snapshot.Enabled) {\r\n snapshot.Enabled = false;\r\n } else {\r\n snapshot.Enabled = true;\r\n }\r\n }\r\n }\r\n}","import maintainSnapshotsController from \"./maintainSnapshots.controller\";\r\n\r\n/* maintainSnapshots.component.js */\r\n\r\n/**\r\n * @desc component for maintaining audit trail snapshots\r\n * @example \r\n */\r\n\r\nconst maintainSnapshots = {\r\n controller: maintainSnapshotsController,\r\n controllerAs: 'msvm',\r\n templateUrl: '/App/Components/AuditTrail/MaintainSnapshots/maintainSnapshots.tmpl.html'\r\n};\r\n\r\nexport default maintainSnapshots;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($http, $filter, $uibModalInstance, helperService, generatedReportsDataService, authenticationService, usersDataService, dataService) {\r\n\r\n const vm = this;\r\n\r\n vm.productChanged = productChanged;\r\n vm.createGeneratedReport = createGeneratedReport;\r\n vm.deselectSelectedTemplateType = deselectSelectedTemplateType;\r\n vm.dismiss = dismiss;\r\n vm.roles = [];\r\n vm.selectedRoles = [];\r\n vm.selectedCompanies = [];\r\n vm.generatedReport = {};\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getProducts();\r\n await getRoles();\r\n\r\n if (vm.generatedReport.Product.ID !== 'AX7') {\r\n loadTemplates();\r\n }\r\n }\r\n\r\n async function getRoles() {\r\n vm.rolesDropdownLoading = true;\r\n\r\n let { userId } = await authenticationService.getUser(),\r\n { data: coreRoles } = await dataService.getRoles(),\r\n { data: userRoles } = await usersDataService.getRolesByUserId(userId);\r\n\r\n vm.roles = coreRoles;\r\n vm.selectedRoles = coreRoles.filter(coreRole => userRoles.find(userRole => userRole.ID === coreRole.ID) && coreRole.Name !== \"Administrators\");\r\n\r\n vm.rolesDropdownLoading = false;\r\n }\r\n\r\n async function getProducts() {\r\n let response = await $http.get(`${apiUrl}api/core/modules/3000/products`);\r\n\r\n response.data = response.data.filter(el => el.Type === 'GP' || el.Type === 'NAV' || el.Type === 'AX' || el.Type === \"AX5\" || el.Type === \"SL\" || el.Type === 'AX7' || el.IsCustom);\r\n vm.productsDataSource = response.data;\r\n vm.generatedReport.Product = response.data[0];\r\n }\r\n\r\n function productChanged() {\r\n if (vm.generatedReport.Product.ID !== 'AX7') {\r\n vm.showTablesControl = true;\r\n loadTemplates();\r\n } else {\r\n vm.showTablesControl = false;\r\n }\r\n }\r\n\r\n async function loadTemplates() {\r\n vm.templateDropdownIsLoading = true;\r\n vm.showTablesControl = true;\r\n let atUrl = 'audittrail';\r\n if (vm.generatedReport.Product.IsCustom) {\r\n atUrl = 'audittrail/universal';\r\n }\r\n const product = vm.generatedReport.Product.ID.toLowerCase();\r\n try {\r\n let url = `${apiUrl}api/${atUrl}/${product}/tables`;\r\n if (!vm.generatedReport.Product.IsCustom && vm.trackedTables === '1') {\r\n url += '?trackedTables=true';\r\n }\r\n\r\n let response = await $http.get(url);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n const All = { \"Name\": \"All Tables\", \"Id\": 'AllObjectsInMultiSelect' };\r\n response.data.unshift(All);\r\n vm.templateTypesDataSource = response.data;\r\n vm.generatedReport.selectedTemplateType = [All];\r\n vm.templateDropdownIsLoading = false;\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function createGeneratedReport() {\r\n vm.loading = new createSpinner();\r\n let tableList = new Array;\r\n\r\n if (vm.generatedReport.Product.ID === 'AX7') {\r\n let data = {\r\n Name: vm.generatedReport.Name,\r\n ViewName: vm.generatedReport.ViewName,\r\n Description: vm.generatedReport.Description\r\n }\r\n try {\r\n await generatedReportsDataService.createAx7GeneratedReport(data);\r\n await helperService.successfulSaveButton(vm.loading);\r\n close();\r\n } catch {\r\n vm.disableSubmit = false;\r\n vm.loading.loadingValue = false;\r\n }\r\n } else {\r\n if (vm.generatedReport.selectedTemplateType[vm.generatedReport.selectedTemplateType.length - 1].Id !== 'AllObjectsInMultiSelect') {\r\n vm.generatedReport.selectedTemplateType.forEach(template => {\r\n tableList.push(template.Id);\r\n });\r\n }\r\n const postData = {\r\n ProductId: vm.generatedReport.Product.ID,\r\n Name: vm.generatedReport.Name,\r\n Description: vm.generatedReport.Description,\r\n Tables: tableList,\r\n RoleIds: vm.selectedRoles.map(role => role.ID),\r\n AllTrackedTables: vm.trackedTables === '1' ? true: false\r\n };\r\n try {\r\n await generatedReportsDataService.createGeneratedReport(postData);\r\n await helperService.successfulSaveButton(vm.loading);\r\n close();\r\n } catch {\r\n vm.disableSubmit = false;\r\n vm.loading.loadingValue = false;\r\n }\r\n }\r\n }\r\n\r\n function deselectSelectedTemplateType() {\r\n if (vm.generatedReport.selectedTemplateType !== null && vm.generatedReport.selectedTemplateType[vm.generatedReport.selectedTemplateType.length - 1].Id !== 'AllObjectsInMultiSelect') {\r\n vm.generatedReport.selectedTemplateType.forEach((row, i) => {\r\n if (row.Id === 'AllObjectsInMultiSelect') {\r\n vm.generatedReport.selectedTemplateType.splice(i, 1);\r\n }\r\n });\r\n } else {\r\n vm.generatedReport.selectedTemplateType = [{ \"Name\": \"All Tables\", \"Id\": 'AllObjectsInMultiSelect' }];\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}\r\n","import swal from \"sweetalert2\";\r\nimport generatedReportModalController from \"./generatedReportModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, $rootScope, $filter, helperService, generatedReportsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.openNewReportModal = openNewReportModal;\r\n\r\n activate();\r\n\r\n function activate() {\r\n getGeneratedReports();\r\n }\r\n\r\n vm.getGeneratedReports = getGeneratedReports;\r\n vm.deleteReport = deleteReport;\r\n\r\n async function getGeneratedReports() {\r\n vm.loadingGeneratedReports = true;\r\n try {\r\n const res = await generatedReportsDataService.getGeneratedReports();\r\n res.data = $filter('orderBy')(res.data, 'Name');\r\n vm.generatedReports = res.data;\r\n vm.loadingGeneratedReports = false;\r\n } catch {\r\n vm.loadingGeneratedReports = false;\r\n }\r\n }\r\n\r\n async function deleteReport(report) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Report', `Are you sure you want to delete ${report.Name}?`, 'Delete'));\r\n await generatedReportsDataService.deleteReport(report.ReportId);\r\n getGeneratedReports();\r\n $rootScope.$broadcast('navigation-or-security-change');\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openNewReportModal() {\r\n let newReportModal = $uibModal.open({\r\n templateUrl: '/App/Components/ReportGenerator/generatedReportModal.html',\r\n controller: generatedReportModalController,\r\n controllerAs: 'grmvm',\r\n backdrop: 'static'\r\n });\r\n\r\n try {\r\n await newReportModal.result;\r\n getGeneratedReports();\r\n $rootScope.$broadcast('navigation-or-security-change');\r\n } catch {\r\n return;\r\n }\r\n }\r\n}","import generatedReportsController from \"./generatedReports.controller\";\r\n\r\n/* reportGenerator.component.js */\r\n/**\r\n * @desc component for displaying and creating generated reports\r\n * @example \r\n */\r\nconst reportGenerator = {\r\n controller: generatedReportsController,\r\n controllerAs: 'grvm',\r\n templateUrl: '/App/Components/ReportGenerator/generatedReports.html'\r\n};\r\nexport default reportGenerator;","import { standardGridPageSize, customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, SavedReportSelectorService, objectIdDataService, CustomReportServices, $filter, reportsDataService, reportsService, helperService, snapshotsDataService, dataService) {\r\n\r\n const vm = this;\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if (vm.grid) {\r\n vm.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n vm.helperService = helperService;\r\n\r\n vm.runSavedReport = runSavedReport;\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n vm.recordTypeSelectedChanged = recordTypeSelectedChanged;\r\n vm.getRecordType = getRecordType;\r\n vm.onReadGrid = onReadGrid;\r\n vm.onClearFilters = onClearFilters;\r\n vm.onApplyFilter = onApplyFilter;\r\n vm.deleteFilter = deleteFilter;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n vm.open1 = open1;\r\n\r\n async function activate() {\r\n createCurrentSnapshotGrid();\r\n getRecordType();\r\n recordTypeSelectedChanged();\r\n await getObjectId();\r\n today();\r\n\r\n vm.dateCriteria = [\r\n {\r\n \"DataType\": \"DateTime\",\r\n \"FieldName\": \"Date\",\r\n \"IsNullable\": false\r\n }\r\n ];\r\n\r\n vm.dateOptions = {\r\n showWeeks: 'false',\r\n formatYear: 'yy',\r\n maxDate: new Date(),\r\n minDate: new Date(2000, 5, 22),\r\n startingDay: 1\r\n };\r\n\r\n vm.popup1 = {\r\n opened: false\r\n };\r\n\r\n getReportMetadata().then(_ => {\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n if ($rootScope.loadedSavedReport) {\r\n runSavedReport();\r\n }\r\n });\r\n }\r\n\r\n activate();\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n async function getObjectId() {\r\n let objectId = await objectIdDataService.getObjectID();\r\n let securityObject = helperService.getSecurityObjectDetailsFromObjectId(objectId);\r\n vm.ObjectId = objectId;\r\n vm.reportName = securityObject.Name;\r\n vm.reportId = securityObject.ReportID;\r\n vm.filtersDataSource = CustomReportServices.setfiltersDataSource(vm.ObjectId);\r\n }\r\n async function runSavedReport() {\r\n\r\n if (vm.gridReady && $rootScope.loadedSavedReport && vm.recordTypeDataSource && vm.recordDataSource && vm.filterCriteria.fields) {\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n // ---\r\n generateGridWithSelectedValues();\r\n } else if (vm.gridReady && !$rootScope.loadedSavedReport && vm.recordTypeDataSource && vm.recordDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n populateCriteriaModel();\r\n }\r\n }\r\n\r\n function createCurrentSnapshotGrid() {\r\n\r\n vm.mainGridColumns = [\r\n { field: \"RecordId\", title: \"Record Id\", filterable: customAutoCompleteFilter },\r\n { field: \"RecordName\", title: \"Record Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", filterable: customAutoCompleteFilter },\r\n { field: \"Value\", title: \"Value\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = false;\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.sortable = false;\r\n\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: halSchemaKendoGrid,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n let data = { 'Date': vm.savedDate, 'RecordTypeId': vm.recordType, 'RecordId': vm.record };\r\n vm.sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n data['QueryInput'] = vm.sortsAndFilters;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data['QueryInput'].Filters = data['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n\r\n let params = { 'pagesize': options.data.pageSize, 'page': options.data.page };\r\n\r\n try {\r\n let response = await snapshotsDataService.updateReportCurrentByDate(data, params);\r\n data = response.data._embedded.reportData;\r\n options.success(response.data);\r\n vm.enableGrid = true; \r\n } catch {\r\n return;\r\n }\r\n\r\n }\r\n }\r\n });\r\n\r\n setLayout(); \r\n\r\n }\r\n\r\n\r\n async function getRecordType() {\r\n let response = await snapshotsDataService.getRecordType();\r\n response.data = $filter('filter')(response.data, { Enabled: true });\r\n response.data = $filter('orderBy')(response.data, 'DisplayName');\r\n vm.recordTypeDataSource = response.data;\r\n\r\n vm.selectedRecordType = SavedReportSelectorService.checkSavedReportForRecordType($rootScope.loadedSavedReport, response.data, vm.selectedRecordType);\r\n recordTypeSelectedChanged();\r\n runSavedReport();\r\n }\r\n\r\n async function recordTypeSelectedChanged() {\r\n try {\r\n if (vm.selectedRecordType) {\r\n let response = await snapshotsDataService.getDistinctRecordType(vm.selectedRecordType.Id);\r\n let allRecords = { \"RecordName\": \"All Records\", \"RecordId\": 'AllObjectsInMultiSelect' };\r\n response.data.unshift(allRecords);\r\n\r\n vm.recordDataSource = response.data;\r\n vm.selectedRecord = response.data[0];\r\n\r\n vm.selectedRecord = SavedReportSelectorService.checkSavedReportForRecord($rootScope.loadedSavedReport, response.data, vm.selectedRecord);\r\n populateCriteriaModel();\r\n runSavedReport();\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n\r\n\r\n //Date picker settings\r\n function today() {\r\n vm.dateSelected = new Date();\r\n vm.dateSelected = SavedReportSelectorService.checkSavedReportForDate($rootScope.loadedSavedReport, \"Date\", vm.dateSelected);\r\n }\r\n\r\n function open1() {\r\n vm.popup1.opened = true;\r\n }\r\n\r\n function populateCriteriaModel() {\r\n // do not continue if the proper criteria are not loaded\r\n if (!vm.dateSelected || vm.selectedRecordType === undefined || vm.selectedRecord === undefined) {\r\n return;\r\n }\r\n\r\n let criteria = [];\r\n\r\n vm.savedDate = vm.dateSelected;\r\n vm.recordType = vm.selectedRecordType.Id;\r\n if (vm.selectedRecord.RecordId === 'AllObjectsInMultiSelect') {\r\n vm.record = null;\r\n } else {\r\n vm.record = vm.selectedRecord.RecordId;\r\n }\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"Date\", 'Date', vm.savedDate, vm.savedDate));\r\n criteria.push(CustomReportServices.CreateCriteria(\"RecordTypeId\", 'RecordType', vm.selectedRecordType.DisplayName, vm.selectedRecordType.Id));\r\n criteria.push(CustomReportServices.CreateCriteria(\"RecordId\", 'Record', vm.selectedRecord.RecordName, vm.selectedRecord.RecordId));\r\n\r\n vm.reportDetailsModel = criteria;\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n }\r\n\r\n function onApplyFilter(selectedFilter) {\r\n const currentOptions = vm.grid.getOptions();\r\n\r\n if (selectedFilter && selectedFilter.Filters && selectedFilter.Filters.length > 0) {\r\n currentOptions.dataSource.filter = helperService.convertFiltersForGrid(_, selectedFilter.Filters);\r\n try {\r\n vm.grid.dataSource._filter = currentOptions.dataSource.filter;\r\n vm.grid.dataSource.read();\r\n }\r\n catch (err) {\r\n vm.gridDataSource.filter({});\r\n }\r\n }\r\n }\r\n\r\n function onReadGrid() {\r\n vm.gridDataSource.read();\r\n }\r\n\r\n function onClearFilters() {\r\n vm.gridDataSource.filter({});\r\n }\r\n\r\n\r\n function generateGridWithSelectedValues() {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.dataSource._filter = null;\r\n vm.grid.dataSource._sort = null;\r\n }\r\n\r\n populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, vm.grid, true);\r\n }\r\n\r\n function deleteFilter(id) {\r\n CustomReportServices.deleteFilterFilterManager(vm, id);\r\n }\r\n function setLayout() {\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout(vm, null);\r\n }\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n async function getReportMetadata() {\r\n let response = await reportsDataService.getReportMetadata(vm.reportId);\r\n vm.reportMetadata = response.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = await reportsService.getFields(vm.reportMetadata.Columns);\r\n return vm.reportMetadata;\r\n }\r\n // ---\r\n}","import currentSnapshotController from \"./currentSnapshot.controller\";\r\n\r\n\r\n/* currentSnapshot.component.js */\r\n\r\n/**\r\n * @desc component for Current Snapshot in NetSuite\r\n * @example \r\n */\r\n\r\nconst currentSnapshot = {\r\n controller: currentSnapshotController,\r\n controllerAs: 'csvm',\r\n templateUrl: '/App/Components/CurrentSnapshot/currentSnapshot.tmpl.html'\r\n};\r\n\r\nexport default currentSnapshot;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport swal from \"sweetalert2\";\r\n\r\nexport default /*@ngInject*/ function (AuditTrailEntityDataService, $filter, $location, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.haveTemplatesChanged = haveTemplatesChanged;\r\n vm.viewDetails = viewDetails;\r\n vm.enableTrackingTemplates = enableTrackingTemplates;\r\n \r\n vm.helperService = helperService;\r\n\r\n vm.updatePending = false;\r\n\r\n vm.mainGridColumns = [\r\n { field: \"IsEnabled\", title: \"Track\", template: \"\", width: 55, filterable: false },\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"IsCustom\", template: \"CustomOut of Box\", \"title\": \"Template Type\", filterable: false, width: 100 },\r\n { template: \"\", \"title\": \"Details\", width: 100 }\r\n ];\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = true;\r\n vm.mainGridOptions.dataSource = vm.gridDataSource;\r\n vm.mainGridOptions.selectable = false;\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async function (options) {\r\n try {\r\n let response = await AuditTrailEntityDataService.getAllTemplates();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n vm.origTemplates = vm.gridDataSource._data.slice();\r\n vm.origTemplates = vm.origTemplates.filter(template => template.IsEnabled === true);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n function viewDetails(dataItem) {\r\n $location.path('/ChangeTracking/Setup/TrackingTemplateDetails').search({ TemplateId: dataItem.Id });\r\n };\r\n\r\n //Function for Apply button to check if Any of the Templates Track toggle was changed\r\n function haveTemplatesChanged() {\r\n if (vm.origTemplates) {\r\n const newTemplates = vm.gridDataSource._data.filter(template => template.IsEnabled === true);\r\n\r\n return JSON.stringify(vm.origTemplates) === JSON.stringify(newTemplates);\r\n }\r\n }\r\n\r\n async function enableTrackingTemplates() {\r\n try {\r\n await swal(helperService.areYouSureParams('Apply templates to ' + helperService.productNameLookUp('AX7'), 'Are you sure you want to proceed? This will apply the selected templates in to ' + helperService.productNameLookUp('AX7') + '.', 'Apply'));\r\n vm.updatePending = true;\r\n let rows = vm.gridDataSource.data();\r\n //Get all the enabled templates then add them to a list with just their Ids\r\n let selectedTemplateList = rows.filter(function (template) { return template.IsEnabled === true; });\r\n let selectedTemplateIds = [];\r\n\r\n selectedTemplateList.forEach(function (template) {\r\n selectedTemplateIds.push(template.Id);\r\n });\r\n\r\n let postData = {\r\n \"TemplateIds\": selectedTemplateIds,\r\n \"ProductId\": \"AX7\"\r\n };\r\n\r\n //Pass list of Ids to apply template API call\r\n await AuditTrailEntityDataService.applyTemplates(postData);\r\n vm.updatePending = false;\r\n } catch (error) {\r\n vm.updatePending = false;\r\n }\r\n }\r\n\r\n}","import applyTrackingTemplatesController from \"./applyTrackingTemplates.controller\";\r\n\r\n/* applyTrackingTemplates.component.js */\r\n\r\n/**\r\n * @desc component for managing which Audit Trail templates are currently active and applied\r\n * @example \r\n */\r\n\r\nconst applyTrackingTemplates = {\r\n controller: applyTrackingTemplatesController,\r\n controllerAs: 'attvm',\r\n templateUrl: '/App/Components/ApplyTrackingTemplates/applyTrackingTemplates.tmpl.html'\r\n};\r\n\r\nexport default applyTrackingTemplates;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $http, helperService, AuditTrailEntityDataService, isClone, selectedTemplateToClone, selectedTemplate, templateGridDataSource, changeRowSelected, authenticationService) {\r\n\r\n const vm = this;\r\n\r\n vm.template = {};\r\n vm.template.name = '';\r\n vm.selectedTemplateToClone = selectedTemplateToClone;\r\n vm.selectedTemplate = selectedTemplate;\r\n vm.gridDataSource = templateGridDataSource;\r\n vm.isClone = isClone;\r\n vm.cancel = cancel;\r\n vm.addTemplate = addTemplate;\r\n\r\n\r\n\r\n //Create or Clone a Template\r\n function addTemplate(e, templateName, selectedProduct) {\r\n vm.pleaseWait = new createSpinner();\r\n\r\n if (!isClone) {\r\n let input = { Name: templateName, ProductId: 'AX7', IsCustom: true };\r\n\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/audittrail/template',\r\n data: input\r\n\r\n }).then(async function successCallback(response) {\r\n const currentUser = authenticationService.getUser();\r\n input.Id = response.data;\r\n input.BaseTemplate = 0;\r\n input.CreatedBy = currentUser.fullName;\r\n let date = new Date();\r\n input.CreatedDate = date.toISOString();\r\n\r\n vm.selectedTemplate = input;\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n cancel(response.data);\r\n\r\n }, function errorCallback(response) {\r\n vm.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n } else {\r\n let input = vm.selectedTemplateToClone;\r\n\r\n if (input) {\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/audittrail/template/' + input.Id + '/clone',\r\n data: {\r\n \"TemplateId\": input.Id,\r\n \"Name\": vm.template.name\r\n }\r\n }).then(function successCallback(response) {\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/audittrail/template/' + response.data\r\n }).then(function (response) {\r\n\r\n AuditTrailEntityDataService.mapTemplateHeader(response.data).done(async function (mapTemplateResponse) {\r\n if (mapTemplateResponse) {\r\n vm.selectedTemplate = response.data;\r\n vm.gridDataSource.insert(0, response.data);\r\n changeRowSelected(response.data);\r\n\r\n }\r\n vm.gridDataSource.read();\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n cancel();\r\n });\r\n\r\n }, async function (response) {\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n cancel();\r\n });\r\n\r\n }, function errorCallback(response) {\r\n vm.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function cancel(value) {\r\n $uibModalInstance.close(value);\r\n }\r\n}\r\n\r\n","import { standardGridPageSize, customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, helperService, AuditTrailEntityDataService, selectedTemplate) {\r\n\r\n const vm = this;\r\n vm.numberOfTablesValid = false;\r\n vm.addingTable = false;\r\n vm.selectedTemplate = selectedTemplate;\r\n\r\n vm.validateNumberOfTables = validateNumberOfTables;\r\n vm.addTable = addTable;\r\n vm.cancel = cancel;\r\n\r\n function validateNumberOfTables() {\r\n vm.numberOfTablesValid = false;\r\n\r\n if (vm.selectedTablesDataSource.data().length > 0) {\r\n vm.numberOfTablesValid = true;\r\n }\r\n }\r\n\r\n //Save Template\r\n function addTable(table) {\r\n let newTable = null;\r\n let promises = [];\r\n vm.addingTable = true;\r\n\r\n if (!vm.selectedTemplate.TrackedTableList) {\r\n vm.selectedTemplate.TrackedTableList = [];\r\n }\r\n\r\n AuditTrailEntityDataService.getAXFieldsByTableId(table.Id).then(function (response) {\r\n table.TrackedFields = response.data;\r\n\r\n //Remove just added table from available list\r\n vm.availableTablesDataSource.data().forEach(function (row, i) {\r\n if (row) {\r\n if (row.Id === table.Id) {\r\n vm.availableTablesDataSource.data().splice(i, 1);\r\n }\r\n }\r\n });\r\n\r\n newTable = AuditTrailEntityDataService.convertToTrackedTable(table);\r\n vm.selectedTemplate.TrackedTableList.push(newTable);\r\n vm.addingTable = false;\r\n }, function errorCallback(response) {\r\n vm.addingTable = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n vm.availableTablesGridColumns = [\r\n { field: \"Label\", title: \"Label\", filterable: customAutoCompleteFilter },\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20, filterable: { multi: true } }\r\n ];\r\n\r\n vm.availableTablesDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async function (options) {\r\n try {\r\n let response = await AuditTrailEntityDataService.getAllAXTables();\r\n let allTables = response.data;\r\n\r\n if (vm.selectedTemplate.TrackedTableList.length > 0) {\r\n allTables.forEach(function (table) {\r\n if (vm.selectedTemplate.TrackedTableList.some(function (allTable) { return allTable.Id === table.Id; })) {\r\n let index = allTables.findIndex(newTable => newTable.Id === table.Id);\r\n allTables.splice(index, 1);\r\n }\r\n });\r\n }\r\n allTables = $filter('orderBy')(response.data, 'Name');\r\n options.success(allTables);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n\r\n });\r\n\r\n\r\n vm.availableTablesGridOptions = helperService.setMainGridOptions(null, 300);\r\n vm.availableTablesGridOptions.columns = vm.availableTablesGridColumns;\r\n vm.availableTablesGridOptions.selectable = false;\r\n\r\n vm.selectedTablesGridColumns = [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: \"Remove\", \"title\": \"Remove\", width: 100 }];\r\n\r\n vm.selectedTablesGridOptions = helperService.setMainGridOptions(null, 300);\r\n vm.selectedTablesGridOptions.columns = vm.selectedTablesGridColumns;\r\n vm.selectedTablesGridOptions.autoBind = true;\r\n vm.selectedTablesGridOptions.selectable = false;\r\n\r\n vm.selectedTablesDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize\r\n });\r\n\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, helperService, errorsDataService, AuditTrailEntityDataService, dataService) {\r\n\r\n const vm = this;\r\n vm.cancel = cancel;\r\n vm.importTemplates = importTemplates;\r\n\r\n vm.importType = 0;\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n function close() { $uibModalInstance.close(); }\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.productsDataSource = await getProducts();\r\n vm.selectedProduct = vm.productsDataSource[0];\r\n }\r\n\r\n async function getProducts() {\r\n let response = await dataService.getProducts();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n return response.data;\r\n }\r\n\r\n async function importTemplates(file) {\r\n vm.pendingImport = new createSpinner;\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n fd.append(\"ImportType\", vm.importType);\r\n\r\n try {\r\n await AuditTrailEntityDataService.importTemplates(fd);\r\n await helperService.successfulSaveButton(vm.pendingImport);\r\n close();\r\n } catch (error) {\r\n errorsDataService.catch(error);\r\n vm.pendingImport.loadingValue = false;\r\n vm.disableButton = false;\r\n }\r\n }\r\n\r\n}","import { standardGridPageSize, customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport swal from \"sweetalert2\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport addTemplateModalController from \"./addTemplateModal.controller\";\r\nimport newAddTemplateTableModalController from \"./newAddTemplateTableModal.controller\"\r\nimport importTemplatesModalController from \"./importTemplatesModal/importTemplatesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, $http, objectIdDataService, AuditTrailEntityDataService, $filter, helperService, FileSaver) {\r\n\r\n const vm = this;\r\n\r\n vm.selectedTemplate = null;\r\n vm.selectedProduct = null;\r\n vm.stopTemplateDetailsSpinner = false;\r\n\r\n vm.atTableActionChanged = atTableActionChanged;\r\n vm.deleteItem = deleteItem;\r\n vm.cloneItem = cloneItem;\r\n vm.changeRowSelected = changeRowSelected;\r\n vm.removeSelectedTable = removeSelectedTable;\r\n vm.atFieldActionChanged = atFieldActionChanged;\r\n vm.checkAll = checkAll;\r\n vm.resetTemplate = resetTemplate;\r\n vm.openAddTemplateModal = openAddTemplateModal;\r\n vm.openAddTableModal = openAddTableModal;\r\n vm.submit = submit;\r\n vm.openImportModal = openImportModal;\r\n vm.exportTemplates = exportTemplates;\r\n\r\n\r\n //Save button is disabled by default\r\n vm.changeDetected = false;\r\n\r\n $scope.$on('ImportAuditTrailTemplates', function (event, data) {\r\n // refresh the Templates grid when import completes\r\n vm.gridDataSource.read();\r\n });\r\n\r\n vm.mainGridColumns = [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"IsCustom\", template: \"CustomOut of Box\", \"title\": \"Template Type\", filterable: false, width: 100 },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90 },\r\n { template: `Clone`, \"title\": \"Clone\", width: 90 }];\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = true;\r\n vm.mainGridOptions.dataSource = vm.gridDataSource;\r\n\r\n vm.mainGridOptions.dataBound = function (e) {\r\n if (vm.selectedTemplate) {\r\n let data = e.sender._data;\r\n data.forEach(function (dataItem) {\r\n if (vm.selectedTemplate.Id === dataItem.Id) {\r\n $('[data-uid=' + dataItem.uid + ']').addClass('k-state-selected');\r\n }\r\n });\r\n }\r\n };\r\n\r\n function atActionChanged(obj) {\r\n $(obj).toggleClass(\"atactive\");\r\n }\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n AuditTrailEntityDataService.getAllTemplates().then(function (response) {\r\n vm.mapTemplateResults = null;\r\n\r\n AuditTrailEntityDataService.mapTemplateHeaders(response.data).done(function (mapTemplateResponse) {\r\n if (mapTemplateResponse) {\r\n mapTemplateResponse = $filter('orderBy')(mapTemplateResponse, 'Name');\r\n\r\n options.success(mapTemplateResponse);\r\n }\r\n });\r\n\r\n }, function errorCallback(response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n async function deleteItem(id) {\r\n kendo.ui.progress(vm.grid.element, true);\r\n try {\r\n await AuditTrailEntityDataService.deleteTemplate(id);\r\n kendo.ui.progress(vm.grid.element, false);\r\n vm.gridDataSource.read();\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n }\r\n vm.selectedTemplate = null;\r\n }\r\n\r\n function cloneItem(dataItem) {\r\n vm.selectedTemplateToClone = dataItem;\r\n openAddTemplateModal(true);\r\n }\r\n\r\n vm.originalTemplateTrackedTables = null;\r\n\r\n async function changeRowSelected(dataItem) {\r\n vm.templateDetailsLoading = true;\r\n\r\n try {\r\n let response = await AuditTrailEntityDataService.mapTemplate(dataItem, true);\r\n vm.selectedTemplate = await response;\r\n\r\n if (vm.selectedTemplate.IsCustom) {\r\n //If it's a custom template copy it to the 'original' placeholder and reset the hasTemplateChanged function\r\n vm.originalTemplateTrackedTables = angular.copy(vm.selectedTemplate.TrackedTableList);\r\n hasTemplatedChanged();\r\n } else {\r\n vm.originalTemplateTrackedTables = null;\r\n }\r\n vm.templateDetailsLoading = false;\r\n } catch {\r\n vm.templateDetailsLoading = false;\r\n }\r\n }\r\n function atTableActionChanged(event, object, type) {\r\n return atActionChanged(event, object, null, type);\r\n }\r\n\r\n function removeSelectedTable(table) {\r\n vm.selectedTemplate.TrackedTableList.forEach(function (row, i) {\r\n if (row.Id === table.Id) {\r\n vm.selectedTemplate.TrackedTableList.splice(i, 1);\r\n }\r\n });\r\n\r\n hasTemplatedChanged();\r\n }\r\n\r\n //Changing a field needs acccess to the containing table to modify the action list\r\n function atFieldActionChanged(event, object, table, type) {\r\n return atActionChanged(event, object, table, type);\r\n }\r\n\r\n function atActionChanged(event, object, table, type) {\r\n if (vm.selectedTemplate.IsCustom === true) {\r\n if (object.Type === 'Table') {\r\n\r\n //All\r\n if (type === 1 && !object.TrackAll) {\r\n object.TrackAll = true;\r\n object.TrackInsert = true;\r\n object.TrackUpdate = true;\r\n object.TrackDelete = true;\r\n }\r\n else if (type === 1 && object.TrackAll === true) {\r\n object.TrackAll = false;\r\n object.TrackInsert = false;\r\n object.TrackUpdate = false;\r\n object.TrackDelete = false;\r\n }\r\n\r\n //Insert\r\n if (type === 2) {\r\n object.TrackInsert = !object.TrackInsert;\r\n }\r\n\r\n //Update\r\n if (type === 3) {\r\n object.TrackUpdate = !object.TrackUpdate;\r\n }\r\n\r\n //Delete\r\n if (type === 4) {\r\n object.TrackDelete = !object.TrackDelete;\r\n }\r\n\r\n if (object.TrackInsert && object.TrackUpdate && object.TrackDelete) {\r\n object.TrackAll = true;\r\n }\r\n else {\r\n object.TrackAll = false;\r\n }\r\n\r\n object.TrackedFields.forEach(function (field) {\r\n\r\n //All\r\n if (type === 1 && !object.TrackAll) {\r\n field.TrackAll = false;\r\n field.TrackInsert = false;\r\n field.TrackUpdate = false;\r\n field.TrackDelete = false;\r\n }\r\n else if (type === 1 && object.TrackAll === true) {\r\n field.TrackAll = true;\r\n field.TrackInsert = true;\r\n field.TrackUpdate = true;\r\n field.TrackDelete = true;\r\n }\r\n\r\n //Insert\r\n if (type === 2) {\r\n field.TrackInsert = object.TrackInsert;\r\n }\r\n\r\n //Update\r\n if (type === 3) {\r\n field.TrackUpdate = object.TrackUpdate;\r\n }\r\n\r\n //Delete\r\n if (type === 4) {\r\n field.TrackDelete = object.TrackDelete;\r\n }\r\n\r\n if (object.TrackInsert && object.TrackUpdate && object.TrackDelete) {\r\n field.TrackAll = true;\r\n }\r\n else {\r\n field.TrackAll = false;\r\n }\r\n\r\n\r\n });\r\n }\r\n\r\n if (object.Type === 'Field') {\r\n //All\r\n if (type === 1 && !object.TrackAll) {\r\n object.TrackAll = true;\r\n object.TrackInsert = true;\r\n object.TrackUpdate = true;\r\n object.TrackDelete = true;\r\n }\r\n else if (type === 1 && object.TrackAll === true) {\r\n object.TrackAll = false;\r\n object.TrackInsert = false;\r\n object.TrackUpdate = false;\r\n object.TrackDelete = false;\r\n }\r\n\r\n //Insert\r\n if (type === 2) {\r\n object.TrackInsert = !object.TrackInsert;\r\n\r\n if (object.TrackInsert === false) {\r\n }\r\n }\r\n\r\n //Update\r\n if (type === 3) {\r\n object.TrackUpdate = !object.TrackUpdate;\r\n\r\n if (object.TrackUpdate === false) {\r\n }\r\n }\r\n\r\n //Delete\r\n if (type === 4) {\r\n object.TrackDelete = !object.TrackDelete;\r\n\r\n if (object.TrackDelete === false) {\r\n }\r\n }\r\n\r\n if (object.TrackInsert && object.TrackUpdate && object.TrackDelete) {\r\n object.TrackAll = true;\r\n }\r\n else {\r\n object.TrackAll = false;\r\n }\r\n\r\n if (table) {\r\n if (table.TrackedFields.every(checkInsert) === true) {\r\n table.TrackInsert = true;\r\n }\r\n else {\r\n table.TrackInsert = false;\r\n }\r\n\r\n if (table.TrackedFields.every(checkUpdate) === true) {\r\n table.TrackUpdate = true;\r\n } else {\r\n table.TrackUpdate = false;\r\n }\r\n\r\n if (table.TrackedFields.every(checkDelete) === true) {\r\n table.TrackDelete = true;\r\n } else {\r\n table.TrackDelete = false;\r\n }\r\n\r\n if (table.TrackInsert === true && table.TrackUpdate === true && table.TrackDelete === true) {\r\n table.TrackAll = true;\r\n } else {\r\n table.TrackAll = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n hasTemplatedChanged();\r\n }\r\n }\r\n\r\n //Check if the tracked fields list match, if they don't enable the save'\r\n function hasTemplatedChanged() {\r\n let isTheSame = true;\r\n let originalTable = null;\r\n let existingTable = null;\r\n\r\n //Check the template to see if any tables have tracked field changes. If a new table has been added it must have at least one tracked field to enable the Save button\r\n for (let i = 0; i < vm.selectedTemplate.TrackedTableList.length; i++) {\r\n if (vm.originalTemplateTrackedTables) {\r\n originalTable = vm.originalTemplateTrackedTables.find(function (orgTable) {\r\n return orgTable.Id === vm.selectedTemplate.TrackedTableList[i].Id;\r\n });\r\n }\r\n if (originalTable) {\r\n isTheSame = angular.equals(originalTable.TrackedFields, vm.selectedTemplate.TrackedTableList[i].TrackedFields);\r\n if (isTheSame === false) {\r\n break;\r\n }\r\n }\r\n else {\r\n let trackedField = false;\r\n for (let j = 0; j < vm.selectedTemplate.TrackedTableList[i].TrackedFields.length; j++) {\r\n if (vm.selectedTemplate.TrackedTableList[i].TrackedFields[j].TrackInsert === true || vm.selectedTemplate.TrackedTableList[i].TrackedFields[j].TrackUpdate === true || vm.selectedTemplate.TrackedTableList[i].TrackedFields[j].TrackDelete === true) {\r\n trackedField = true;\r\n break;\r\n }\r\n }\r\n\r\n if (trackedField === true) {\r\n isTheSame = false;\r\n }\r\n }\r\n }\r\n\r\n //Check if any original tables were deleted from the template\r\n if (vm.originalTemplateTrackedTables) {\r\n for (let i = 0; i < vm.originalTemplateTrackedTables.length; i++) {\r\n existingTable = vm.selectedTemplate.TrackedTableList.find(function (table) {\r\n return table.Id === vm.originalTemplateTrackedTables[i].Id;\r\n });\r\n\r\n if (existingTable === null || existingTable === undefined) {\r\n isTheSame = false;\r\n }\r\n }\r\n }\r\n\r\n vm.changeDetected = !isTheSame;\r\n };\r\n\r\n function checkAll(field) {\r\n return field.TrackInsert === true && field.TrackUpdate === true && field.TrackDelete === true;\r\n }\r\n\r\n function checkInsert(field) {\r\n return field.TrackInsert === true;\r\n }\r\n\r\n function checkUpdate(field) {\r\n return field.TrackUpdate === true;\r\n }\r\n\r\n function checkDelete(field) {\r\n return field.TrackDelete === true;\r\n }\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n vm.ObjectId = objectId;\r\n\r\n let securityObject = helperService.getSecurityObjectDetailsFromObjectId(vm.ObjectId);\r\n vm.pageInfo = securityObject;\r\n vm.pageDescription = securityObject.HelpLink;\r\n vm.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n function resetTemplate() {\r\n swal(helperService.areYouSureParams('Reset Template: ' + vm.selectedTemplate.Name, 'Are you sure you want to proceed? This will reset this template to the original settings provided by Fastpath. This cannot be undone.', 'Reset')).then(function () {\r\n ResetTemplate();\r\n }, function (dismiss) {\r\n return;\r\n });\r\n }\r\n\r\n function ResetTemplate() {\r\n if (vm.selectedTemplate) {\r\n AuditTrailEntityDataService.revertTemplate(vm.selectedTemplate.Id).then(function (response) {\r\n\r\n AuditTrailEntityDataService.mapTemplate(vm.selectedTemplate, true).done(function (response) {\r\n vm.selectedTemplate = response;\r\n });\r\n\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n }\r\n\r\n async function openAddTemplateModal(isClone) {\r\n let addTemplateModal = $uibModal.open({\r\n templateUrl: '/App/Components/TemplateTracking/addTemplateModal.tmpl.html',\r\n controller: addTemplateModalController,\r\n controllerAs: 'atmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n isClone: () => isClone,\r\n selectedTemplateToClone: () => vm.selectedTemplateToClone,\r\n selectedTemplate: () => vm.selectedTemplate,\r\n templateGridDataSource: () => vm.gridDataSource,\r\n changeRowSelected: () => vm.changeRowSelected\r\n }\r\n });\r\n\r\n try {\r\n let newTemplateId = await addTemplateModal.result, response = await $http.get(`${apiUrl}api/audittrail/template/${newTemplateId}`), mappedNewTemplate = await AuditTrailEntityDataService.mapTemplateHeader(response.data), grid = $(\"#maintainTemplatesGrid\").data(\"kendoGrid\");\r\n vm.gridDataSource.insert(0, mappedNewTemplate);\r\n changeRowSelected(response.data);\r\n grid.select(\"tr:eq(0)\");\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function openAddTableModal() {\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/TemplateTracking/newAddTemplateTableModal.tmpl.html',\r\n controller: newAddTemplateTableModalController,\r\n controllerAs: 'nattmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n selectedTemplate: () => vm.selectedTemplate\r\n }\r\n });\r\n }\r\n\r\n function submit() {\r\n if (vm.changeDetected) {\r\n let convertedTables = AuditTrailEntityDataService.convertFromTrackedTable(vm.selectedTemplate.Id, vm.selectedTemplate.TrackedTableList);\r\n\r\n //remove all the fields that aren't being tracked\r\n convertedTables.forEach(function (table) {\r\n table.Fields.forEach(function (field, i) {\r\n if (field.TrackInsert === false && field.TrackUpdate === false && field.TrackDelete === false) {\r\n table.Fields.splice(i, 1);\r\n }\r\n });\r\n });\r\n\r\n let allTablesHaveFieldsToTrack = true;\r\n\r\n for (let i = 0; i < convertedTables.length; i++) {\r\n let numberOfValidFields = 0;\r\n\r\n convertedTables[i].Fields.forEach(function (field, i) {\r\n if (field.TrackInsert === true || field.TrackUpdate === true || field.TrackDelete === true) {\r\n numberOfValidFields += 1;\r\n }\r\n });\r\n\r\n if (numberOfValidFields === 0) {\r\n //This table will not be saved because it has no fields to track\r\n allTablesHaveFieldsToTrack = false;\r\n helperService.showErrorMessage(\"One or more of the tables are not tracking anything\");\r\n break;\r\n }\r\n }\r\n\r\n if (allTablesHaveFieldsToTrack === true) {\r\n vm.pleaseWait = new createSpinner();\r\n\r\n AuditTrailEntityDataService.updateTemplateTables(vm.selectedTemplate.Id, convertedTables).then(function (response) {\r\n helperService.successfulSaveButton(vm.pleaseWait);\r\n }, function errorCallback(response) {\r\n vm.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n }\r\n\r\n vm.changeDetected = false;\r\n vm.gridDataSource.read();\r\n }\r\n\r\n function openImportModal() {\r\n let importModal = $uibModal.open({\r\n templateUrl: '/App/Components/TemplateTracking/importTemplatesModal/importTemplatesModal.html',\r\n controller: importTemplatesModalController,\r\n controllerAs: 'itmvm',\r\n backdrop: 'static'\r\n });\r\n\r\n importModal.result\r\n .then(_ => { return; })\r\n .catch(_ => { return; });\r\n }\r\n\r\n function exportTemplates() {\r\n vm.exportUpdatePending = new createSpinner();\r\n\r\n AuditTrailEntityDataService.exportTemplates()\r\n .then(response => {\r\n helperService.successfulSaveButton(vm.exportUpdatePending)\r\n .then(_ => {\r\n const selectedTenant = JSON.parse(localStorage.getItem(\"selectedTenant\"));\r\n FileSaver.saveAs(response.data, `D365FSC Audit Trail Template Export - ${selectedTenant.Name}.xlsx`);\r\n vm.exportUpdatePending.loadingValue = false;\r\n });\r\n }).catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n vm.exportUpdatePending.loadingValue = false;\r\n });\r\n }\r\n}\r\n\r\n","import maintainTemplateController from \"./maintainTemplate.controller\";\r\n\r\n/* mantainTemplate.component.js */\r\n\r\n/**\r\n * @desc component for Maintain Tracking Templates\r\n * @example \r\n */\r\n\r\nconst maintainTemplate = {\r\n controller: maintainTemplateController,\r\n controllerAs: 'mtvm',\r\n templateUrl: '/App/Components/TemplateTracking/maintainTemplate.tmpl.html'\r\n};\r\n\r\nexport default maintainTemplate;","export default /*@ngInject*/ function ($http) {\r\n\r\n const vm = this,\r\n availableProducts = [\"NS\", \"SAP\", \"GP\", \"NAV\", \"AX\", \"AX5\", \"AX7\", \"SL\", \"ORFC\", \"D365Bc\", \"WD\", \"SF\"];\r\n\r\n activate();\r\n\r\n async function activate() {\r\n let { data: products } = await $http.get(apiUrl + '/api/core/modules/' + 3000 + '/products');\r\n\r\n vm.productsDataSource = products.filter(product => product.IsCustom || availableProducts.find(availableProduct => product.Type === availableProduct));\r\n }\r\n}","import manageDataController from \"./manageData.controller\";\r\n\r\n/* manageData.component.js */\r\n\r\n/**\r\n * @desc component for managing audit trail data\r\n * @example \r\n */\r\n\r\nconst manageData = {\r\n controller: manageDataController,\r\n controllerAs: 'mdvm',\r\n templateUrl: '/App/Components/ManageDataV2/manageData.html'\r\n};\r\n\r\nexport default manageData;","export default /*@ngInject*/ function ($scope, AuditTrailEntityDataService, $location, helperService) {\r\n $scope.pageParams = $location.search();\r\n const vm = this;\r\n\r\n vm.stopTemplateDetailsSpinner = false;\r\n\r\n function activate() {\r\n getTemplate();\r\n }\r\n\r\n activate();\r\n\r\n async function getTemplate() {\r\n try {\r\n let response = await AuditTrailEntityDataService.getTemplate($scope.pageParams.TemplateId);\r\n response = await AuditTrailEntityDataService.mapTemplate(response.data, false);\r\n vm.stopTemplateDetailsSpinner = true;\r\n vm.selectedEntity = response;\r\n $scope.$evalAsync();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n\r\n }\r\n}","import templateDetailsController from \"./templateDetails.controller\";\r\n\r\n\r\n/* templateDetails.component.js */\r\n\r\n/**\r\n * @desc component for Template Tracking Details\r\n * @example \r\n */\r\n\r\nconst templateDetails = {\r\n controller: templateDetailsController,\r\n controllerAs: 'tdvm',\r\n templateUrl: '/App/Components/TemplateTracking/TemplateTrackingDetails/templateDetails.tmpl.html'\r\n};\r\n\r\nexport default templateDetails;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function (helperService, workdayMaintainTemplatesDataService, $filter, $uibModalInstance, template, isClone) {\r\n\r\n const vm = this;\r\n\r\n vm.template = { ...template };\r\n vm.isClone = isClone;\r\n\r\n vm.updateSelectedClassIds = updateSelectedClassIds;\r\n vm.saveTemplate = saveTemplate;\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n function activate() {\r\n vm.modalTitle = template?.Id && !isClone ? 'Edit' : template?.Id && isClone ? 'Clone' : 'Create';\r\n\r\n if (isClone) {\r\n setupCloneTemplateGrid();\r\n }\r\n\r\n if (!template?.Id || isClone) {\r\n vm.template.IsEnabled = true;\r\n }\r\n }\r\n\r\n async function setupCloneTemplateGrid() {\r\n let classesGridOptions = [\r\n { template: \"\", width: 55, filterable: false },\r\n { field: \"ClassName\", title: \"Class Name\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.cloneTemplateClassesGridOptions = helperService.setNonPageableGridOptions(classesGridOptions, 300);\r\n vm.cloneTemplateClassesGridOptions.noRecords = {\r\n template: \"
No Classes exist for this template
\"\r\n };\r\n\r\n let { data } = await workdayMaintainTemplatesDataService.getSelectedClasses(vm.template.Id);\r\n\r\n vm.templateClasses = $filter('orderBy')(data, 'ClassName');\r\n\r\n vm.templateClasses = vm.templateClasses?.map(templateClass => {\r\n templateClass.isSelected = true;\r\n\r\n return templateClass;\r\n });\r\n\r\n vm.cloneTemplateClassesGridDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: options => {\r\n options.success(vm.templateClasses);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function updateSelectedClassIds(selectedClass) {\r\n vm.templateClasses = vm.templateClasses.map(existingClass => {\r\n if (existingClass.ClassId === selectedClass.ClassId) {\r\n existingClass.isSelected = selectedClass.isSelected;\r\n }\r\n\r\n return existingClass;\r\n });\r\n }\r\n\r\n function saveTemplate() {\r\n vm.pleaseWait = new createSpinner();\r\n switch (vm.modalTitle) {\r\n case 'Create':\r\n createTemplate();\r\n break;\r\n case 'Edit':\r\n editTemplate();\r\n break;\r\n case 'Clone':\r\n cloneTemplate();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n async function createTemplate() {\r\n try {\r\n const postData = {\r\n Name: vm.template.Name,\r\n IsEnabled: vm.template.IsEnabled,\r\n ProductId: 'WD'\r\n }, { data } = await workdayMaintainTemplatesDataService.createTemplate(postData);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n close(data);\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n }\r\n\r\n async function editTemplate() {\r\n try {\r\n const putData = {\r\n Id: vm.template.Id,\r\n Name: vm.template.Name,\r\n IsEnabled: vm.template.IsEnabled\r\n }\r\n await workdayMaintainTemplatesDataService.updateTemplate(putData);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n close();\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n }\r\n\r\n async function cloneTemplate() {\r\n try {\r\n let selectedTemplateClasses = vm.templateClasses.filter(selectedClass => selectedClass.isSelected);\r\n const selectedClassIds = selectedTemplateClasses.map(selectedTemplateClass => selectedTemplateClass.ClassId),\r\n postData = {\r\n \"Name\": vm.template.Name,\r\n \"Active\": vm.template.IsEnabled,\r\n \"ClonedTemplateId\": vm.template.Id,\r\n \"ClassIds\": selectedClassIds\r\n }, { data } = await workdayMaintainTemplatesDataService.cloneTemplate(postData);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n close(data);\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n }\r\n\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n function close(id) { $uibModalInstance.close(id); }\r\n}","import swal from \"sweetalert2\";\r\nimport addEditTemplatesModalController from \"./addEditTemplatesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($filter, helperService, workdayMaintainTemplatesDataService, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.openAddEditTemplateModal = openAddEditTemplateModal;\r\n vm.selectedTemplateChanged = selectedTemplateChanged;\r\n\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await setTemplates();\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Clone',\r\n click: item => {\r\n openAddEditTemplateModal(item.template, true);\r\n }\r\n },\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n openAddEditTemplateModal(item.template, false);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n deleteTemplate(item.template);\r\n },\r\n displayed: item => {\r\n return item.template.IsCustom;\r\n }\r\n }\r\n ];\r\n }\r\n\r\n async function setTemplates(newTemplateId, template, isClone) {\r\n vm.templatesLoading = true;\r\n const { data } = await workdayMaintainTemplatesDataService.getTemplates();\r\n vm.templates = $filter('orderBy')(data, 'Name');\r\n if (newTemplateId && (!template?.Id || isClone)) {\r\n vm.templates.sort((a, b) => a.Id === newTemplateId ? -1 : b.Id === newTemplateId ? 1 : 0);\r\n }\r\n vm.templatesLoading = false;\r\n }\r\n\r\n async function openAddEditTemplateModal(template, isClone) {\r\n let templateModal = $uibModal.open({\r\n templateUrl: '/App/Components/workdayMaintainTemplates/templatesList/addEditTemplatesModal.tmpl.html',\r\n controller: addEditTemplatesModalController,\r\n controllerAs: 'tmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n template: () => template,\r\n isClone: () => isClone\r\n }\r\n });\r\n\r\n try {\r\n let newTemplateId = await templateModal.result;\r\n await setTemplates(newTemplateId, template, isClone);\r\n if (newTemplateId) {\r\n selectedTemplateChanged(vm.templates.find(template => template.Id === newTemplateId));\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function selectedTemplateChanged(template) {\r\n vm.selectedTemplate = template;\r\n vm.onSelectedTemplateChanged({ template });\r\n }\r\n\r\n async function deleteTemplate(template) {\r\n await swal(helperService.areYouSureParamsWithHTML('Delete Template', `
Are you sure you want to delete template ${template.Name}?
`, 'Delete'));\r\n await workdayMaintainTemplatesDataService.deleteTemplate(template.Id);\r\n selectedTemplateChanged(null);\r\n setTemplates();\r\n }\r\n}","/* templatesList.component.js */\r\n\r\nimport templatesListController from \"./templatesList.controller\";\r\n\r\n/**\r\n * @desc component for displaying, creating and editing Templates List\r\n * @example \r\n */\r\n\r\nconst templatesList = {\r\n controller: templatesListController,\r\n controllerAs: 'tlvm',\r\n templateUrl: '/App/Components/workdayMaintainTemplates/templatesList/templatesList.tmpl.html',\r\n bindings: {\r\n onSelectedTemplateChanged: '&'\r\n }\r\n};\r\n\r\nexport default templatesList;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, helperService, existingClasses, workdayMaintainTemplatesDataService, manageDataDataService, selectedTemplate) {\r\n\r\n const vm = this;\r\n\r\n vm.cancel = cancel;\r\n vm.addClassToSelectedTemplate = addClassToSelectedTemplate;\r\n vm.collectMetadata = collectMetadata;\r\n vm.selectedTemplate = selectedTemplate;\r\n\r\n activate();\r\n\r\n $scope.$on('CollectDataChanges', (event, args) => vm.classesGridDataSource.read());\r\n\r\n function activate() {\r\n vm.metadataCollectionRequired = false;\r\n createObjectsGrid();\r\n }\r\n\r\n\r\n function createObjectsGrid() {\r\n const classesGridColumns = [\r\n { field: \"Class\", title: \"Class\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessObject\", title: \"Business Object\", width: 120, filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n vm.classesGridOptions = helperService.setMainGridOptions(classesGridColumns, null);\r\n vm.classesGridOptions.selectable = false;\r\n\r\n vm.classesGridDataSource = new kendo.data.DataSource({\r\n schema: {\r\n data: \"_embedded.reportData\",\r\n total: \"TotalItems\"\r\n },\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n noRecords: {\r\n template: \"
No items to display
\"\r\n },\r\n transport: {\r\n read: async options => {\r\n let sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n if (sortsAndFilters.Filters.length) {\r\n if (sortsAndFilters.Filters[0].FieldName === 'Class') {\r\n sortsAndFilters.Filters[0].FieldName = 'Name';\r\n } else {\r\n sortsAndFilters.Filters[0].FieldName = 'BusinessObjectName';\r\n }\r\n }\r\n\r\n if (sortsAndFilters.Sorts.length) {\r\n if (sortsAndFilters.Sorts[0].FieldName === 'Class') {\r\n sortsAndFilters.Sorts[0].FieldName = 'Name'\r\n } else {\r\n sortsAndFilters.Sorts[0].FieldName = 'BusinessObjectName'\r\n }\r\n }\r\n\r\n const postData = sortsAndFilters,\r\n params = { 'pagesize': options.data.pageSize, 'page': options.data.page },\r\n { data } = await workdayMaintainTemplatesDataService.getAllClasses(postData, params);\r\n\r\n if (!data.TotalItems && !sortsAndFilters.Filters.length) {\r\n vm.metadataCollectionRequired = true;\r\n } else {\r\n vm.metadataCollectionRequired = false;\r\n vm.collectMetadataPending = false;\r\n\r\n data._embedded.reportData = data._embedded.reportData.filter(dataItem => !existingClasses.find(existingClass => dataItem.Id === existingClass.ClassId));\r\n\r\n // If all classes on page are selected, load the next page\r\n if (!data._embedded.reportData.length && data.TotalItems && !sortsAndFilters.Filters.length) {\r\n vm.classesGridDataSource.page(data.PageNumber + 1);\r\n }\r\n }\r\n\r\n options.success(data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function addClassToSelectedTemplate(item) {\r\n vm.addingClass = true;\r\n\r\n const data = {\r\n TemplateId: vm.selectedTemplate.Id,\r\n ClassId: item.Id\r\n };\r\n\r\n try {\r\n await workdayMaintainTemplatesDataService.addClassToTemplate(data);\r\n existingClasses.push({ ClassName: item.Class, ClassId: item.Id });\r\n vm.classesGridDataSource.read();\r\n vm.addingClass = false;\r\n } catch {\r\n vm.addingClass = false;\r\n }\r\n\r\n }\r\n\r\n async function collectMetadata() { \r\n const data = {\r\n ImportType: \"AuditTrailImport_WorkdayMetadata\",\r\n ProductId: \"WD\"\r\n };\r\n\r\n try {\r\n vm.collectMetadataPending = true;\r\n await manageDataDataService.dataActionCall('collect', data);\r\n } catch {\r\n vm.collectMetadataPending = false;\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n}","import addClassesModalController from \"./addClassesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($filter, workdayMaintainTemplatesDataService, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.deleteClass = deleteClass;\r\n\r\n vm.$onChanges = activate;\r\n\r\n vm.openAddClassesModal = openAddClassesModal;\r\n\r\n async function activate() {\r\n await setClasses();\r\n }\r\n\r\n async function setClasses() {\r\n vm.classesLoading = true;\r\n const { data } = await workdayMaintainTemplatesDataService.getSelectedClasses(vm.selectedTemplate.Id);\r\n vm.classes = $filter('orderBy')(data, 'ClassName')\r\n vm.classesLoading = false;\r\n }\r\n\r\n async function deleteClass(templateClassId) {\r\n vm.deleting = true;\r\n await workdayMaintainTemplatesDataService.deleteClass(templateClassId);\r\n setClasses();\r\n vm.deleting = false;\r\n }\r\n\r\n async function openAddClassesModal() {\r\n let classModal = $uibModal.open({\r\n templateUrl: '/App/Components/workdayMaintainTemplates/classesList/addClassesModal.tmpl.html',\r\n controller: addClassesModalController,\r\n controllerAs: 'acmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n selectedTemplate: () => vm.selectedTemplate,\r\n existingClasses: () => vm.classes\r\n }\r\n });\r\n\r\n try {\r\n await classModal.result;\r\n setClasses();\r\n } catch {\r\n return;\r\n }\r\n }\r\n}","/* classesList.component.js */\r\n\r\nimport classesListController from \"./classesList.controller\";\r\n\r\n/**\r\n * @desc component for displaying and creating Classes assigned to Workday Templates\r\n * @example \r\n */\r\n\r\nconst classesList = {\r\n controller: classesListController,\r\n controllerAs: 'clvm',\r\n templateUrl: '/App/Components/workdayMaintainTemplates/classesList/classesList.tmpl.html',\r\n bindings: {\r\n selectedTemplate: '<'\r\n }\r\n};\r\n\r\nexport default classesList;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, salesforceAtDataService, helperService) {\r\n const vm = this;\r\n vm.cancel = cancel;\r\n vm.importObjects = importObjects;\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n async function importObjects(file) {\r\n vm.pendingImport = new createSpinner();\r\n\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n\r\n try {\r\n await salesforceAtDataService.importObjectData(fd);\r\n await helperService.successfulSaveButton(vm.pendingImport);\r\n cancel();\r\n } catch {\r\n vm.pendingImport.loadingValue = false;\r\n vm.disableButton = false;\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, customYesNoBooleanFilter, standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\nimport importObjectModalController from \"./importObjectModal.controller.js\";\r\n\r\nexport default /*@ngInject*/ function ( $filter, helperService, $uibModal, salesforceAtDataService, FileSaver, $scope) {\r\n const vm = this;\r\n vm.importMetadata = importMetadata;\r\n vm.saveObjectChange = saveObjectChange;\r\n vm.exportData = exportData;\r\n vm.importData = importData;\r\n vm.$onInit = activate;\r\n\r\n $scope.$on('ImportAuditTrailTrackingObjects', (event, args) => vm.mainGridDataSource.read());\r\n \r\n\r\n function activate() {\r\n setupObjectTrackingGrid();\r\n }\r\n\r\n function setupObjectTrackingGrid() {\r\n const trackingTemplate = ``;\r\n\r\n const mainGridColumns = [\r\n { field: \"Enabled\", title: \"Track\", width: 50, filterable: customYesNoBooleanFilter, template: trackingTemplate },\r\n { field: \"Name\", title: \"Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Label\", title: \"Label\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectType\", title: \"Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", width: 250, filterable: customAutoCompleteFilter },\r\n ];\r\n vm.mainGridOptions = helperService.setMainGridOptions(mainGridColumns, 600);\r\n vm.mainGridOptions.selectable = false;\r\n\r\n vm.mainGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n Enabled: { type: \"boolean\" },\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async function (options) {\r\n try {\r\n let { data } = await salesforceAtDataService.getObjectsToTrack();\r\n data = $filter('orderBy')(data, 'Name'); \r\n vm.totalObjects = data;\r\n options.success(data);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function importMetadata() {\r\n vm.importMetadataPending = true;\r\n await salesforceAtDataService.importObjectTrackingMetadata();\r\n vm.mainGridDataSource.read();\r\n vm.importMetadataPending = false;\r\n }\r\n\r\n async function saveObjectChange(dataItem) {\r\n await salesforceAtDataService.saveObjectDataChanges(dataItem);\r\n helperService.setConfigurationValue('SF_AT_LastTrackingFieldUpdateDate', new Date());\r\n }\r\n\r\n function exportData() {\r\n vm.exportPending = true;\r\n\r\n salesforceAtDataService.exportObjectData()\r\n .then(response => {\r\n FileSaver.saveAs(response.data, 'ObjectTrackingData.xlsx');\r\n vm.exportPending = false;\r\n }).catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n vm.exportPending = false;\r\n });\r\n }\r\n\r\n async function importData() {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/salesForceAuditTrail/maintainObjectTracking/maintainObjectTrackingGrid/importObjectModal.html',\r\n controller: importObjectModalController,\r\n controllerAs: 'iomvm',\r\n backdrop: 'static',\r\n });\r\n }\r\n}","/* maintainObjectTrackingGrid.component.js */\r\n\r\nimport maintainObjectTrackingGridController from \"./maintainObjectTrackingGrid.controller\";\r\n\r\n/**\r\n * @desc component to enable/disable tracking of objects\r\n * @example \r\n */\r\n\r\nconst maintainObjectTrackingGrid = {\r\n controller: maintainObjectTrackingGridController,\r\n controllerAs: 'motgvm',\r\n templateUrl: '/App/Components/salesForceAuditTrail/maintainObjectTracking/maintainObjectTrackingGrid/maintainObjectTrackingGrid.tmpl.html'\r\n};\r\n\r\nexport default maintainObjectTrackingGrid; ","import { customAutoCompleteFilter, customDatePickerFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\n\r\nexport default /*@ngInject*/ function (helperService, objectIdDataService, CustomReportServices, reportsDataService, $filter, reportsService, dataService, $rootScope) {\r\n const vm = this;\r\n const supportedProducts = [\"SF\"];\r\n const isDateRangeFilter = 4;\r\n const dateTypeLast = 2;\r\n const dateTypes = [\"Previous\", \"ToDate\", \"LastNumberOf\"];\r\n const periodNames = ['Day', 'Week', 'Month', 'Quarter', 'Year'];\r\n\r\n vm.relativeDateType = 2;\r\n vm.periodType = 0;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n vm.clearCriteriaModel = clearCriteriaModel;\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n vm.setFilterValues = setFilterValues;\r\n vm.onApplyFilter = onApplyFilter;\r\n vm.onClearFilters = onClearFilters;\r\n vm.onReadGrid = onReadGrid;\r\n vm.reportDetailsModel = [];\r\n vm.openStartDate = openStartDate;\r\n vm.openEndDate = openEndDate;\r\n vm.startDatePopupOpened = false;\r\n vm.endDatePopupOpened = false;\r\n vm.enableGrid = false;\r\n\r\n\r\n\r\n const rowSettingsTemplate = ``;\r\n\r\n var ticketTemplate = `{{ dataItem.TicketProvider }}   {{dataItem.TicketId}}\r\n {{ dataItem.TicketProvider }}   {{dataItem.TicketId}}`;\r\n\r\n vm.mainGridColumns = [{ title: \"\", template: rowSettingsTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 22, width: 22 },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false }];\r\n\r\n vm.dateCriteria = [\r\n {\r\n \"DataType\": \"DateTime\",\r\n \"FieldName\": \"Date\",\r\n \"IsNullable\": false\r\n }\r\n ];\r\n\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n vm.filterCriteria.dateQuery = [];\r\n // ---\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getObjectId()\r\n getProducts();\r\n vm.enableSetupTracking = helperService.getConfigurationValue('SF_AT_EnableSetupTracking');\r\n vm.relativeDateTypeDataSource = CustomReportServices.getRelativeDateTypes();\r\n vm.periodTypeDataSource = CustomReportServices.getPeriodTypes();\r\n setupDatePickers();\r\n setDates();\r\n await setReportMetadata();\r\n vm.mainGridOptions = helperService.setMainGridOptions(vm.mainGridColumns, 600);\r\n if ($rootScope.loadedSavedReport) {\r\n vm.loadedSavedReport = $rootScope.loadedSavedReport;\r\n loadSavedReport();\r\n }\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n populateCriteriaModel();\r\n }\r\n\r\n async function getObjectId() {\r\n let objectId = await objectIdDataService.getObjectID();\r\n // Needed for report toolbar controller functions\r\n vm.ObjectId = objectId;\r\n }\r\n\r\n function loadSavedReport() {\r\n vm.filterInfo = vm.loadedSavedReport.ReportDefinition;\r\n if (vm.filterInfo.DateFilters.length) {\r\n vm.relativeDateType = dateTypes.indexOf(vm.filterInfo.DateFilters[0].DateType);\r\n vm.periodType = periodNames.indexOf(vm.filterInfo.DateFilters[0].Period);\r\n vm.lastNumberOf = vm.filterInfo.DateFilters[0].Value ?? null;\r\n\r\n } else {\r\n vm.relativeDateType = isDateRangeFilter; // 4\r\n const startDateObject = vm.filterInfo.Filters.find(filter => filter.Operator === \"GreaterThanOrEqual\");\r\n vm.startDate = new Date(startDateObject.Value).getTime();\r\n const endDateObject = vm.filterInfo.Filters.find(filter => filter.Operator === \"LessThanOrEqual\");\r\n vm.endDate = new Date(endDateObject.Value).getTime();\r\n\r\n }\r\n\r\n vm.filterCriteria.query = vm.filterInfo.Filters.filter(filter => filter.FieldName !== \"CreatedDate\");\r\n vm.filterCriteria.dateQuery = reportsService.getSavedReportDateFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n\r\n generateGridWithSelectedValues();\r\n }\r\n\r\n function loadDateFilterAsCriteria(DateFilter) {\r\n if (DateFilter.Operator === 'GreaterThanOrEqual' || DateFilter.Operator === 'LessThanOrEqual') {\r\n if (!vm.loadedSavedReport.ReportDefinition.Criteria[0]) {\r\n vm.loadedSavedReport.ReportDefinition.Criteria = [{\r\n \"CriteriaType\": \"Date\",\r\n \"CriteriaValue\": DateFilter.FieldName,\r\n Filters: []\r\n }];\r\n vm.loadedSavedReport.ReportDefinition.Criteria[0].Filters.push(DateFilter);\r\n } else {\r\n vm.loadedSavedReport.ReportDefinition.Criteria[0].Filters.push(DateFilter);\r\n }\r\n } else {\r\n vm.filterInfo.Criteria = [{\r\n \"CriteriaType\": \"Date\",\r\n \"CriteriaValue\": DateFilter.FieldName,\r\n Filters: []\r\n }];\r\n vm.filterInfo.DateFilters = [DateFilter];\r\n }\r\n }\r\n\r\n async function getProducts() {\r\n let { data: products } = await dataService.getProducts();\r\n const productDataSource = products.filter(product => supportedProducts.find(supportedProduct => supportedProduct === product.Type));\r\n vm.selectedProduct = productDataSource.find(product => product.Type === \"SF\");\r\n }\r\n\r\n function setFilterValues() {\r\n vm.loadedSavedReport = null;\r\n vm.dateFilter = [];\r\n if (vm.startDate <= vm.endDate) {\r\n\r\n if (vm.relativeDateType !== isDateRangeFilter) {\r\n vm.periodName = periodNames.find((type, index) => index === vm.periodType);\r\n vm.dateType = dateTypes.find((type, index) => index === vm.relativeDateType);\r\n\r\n vm.dateFilter = [\r\n {\r\n \"DateType\": vm.dateType,\r\n \"FieldName\": vm.fieldName,\r\n \"Period\": vm.periodName,\r\n \"Value\": vm.relativeDateType === dateTypeLast ? vm.lastNumberOf : null\r\n }\r\n ]\r\n }\r\n\r\n if (vm.relativeDateType === isDateRangeFilter) {\r\n vm.startDateRow = {\r\n \"FieldName\": vm.fieldName,\r\n \"Operator\": 'GreaterThanOrEqual',\r\n \"Value\": helperService.setDateToBeginningOfDay(vm.startDate)\r\n };\r\n\r\n vm.endDateRow = {\r\n \"FieldName\": vm.fieldName,\r\n \"Operator\": 'LessThanOrEqual',\r\n \"Value\": helperService.setDateToEndOfDay(vm.endDate)\r\n };\r\n }\r\n generateGridWithSelectedValues();\r\n\r\n } else {\r\n helperService.showErrorMessage(\"Start Date must be before or equal to End Date\");\r\n }\r\n }\r\n\r\n function generateGridWithSelectedValues() {\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async options => {\r\n let filterData = {};\r\n if (!vm.loadedSavedReport) {\r\n vm.sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n setupFilters();\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n vm.sortsAndFilters.Filters = vm.sortsAndFilters.Filters.concat(vm.filterCriteria.query);\r\n vm.sortsAndFilters.DateFilters = vm.sortsAndFilters.DateFilters.concat(vm.filterCriteria.dateQuery);\r\n }\r\n // ---\r\n\r\n if (vm.relativeDateType === isDateRangeFilter) {\r\n vm.sortsAndFilters.Filters = vm.sortsAndFilters.Filters.concat(vm.startDateRow);\r\n vm.sortsAndFilters.Filters = vm.sortsAndFilters.Filters.concat(vm.endDateRow);\r\n } else {\r\n vm.sortsAndFilters.DateFilters = vm.sortsAndFilters.DateFilters.concat(vm.dateFilter);\r\n }\r\n \r\n filterData = {\r\n \"QueryInput\": {\r\n \"DateFilters\": vm.sortsAndFilters.DateFilters,\r\n \"Filters\": vm.sortsAndFilters.Filters,\r\n \"Sorts\": vm.sortsAndFilters.Sorts\r\n }\r\n };\r\n vm.sortsAndFilters = filterData.QueryInput;\r\n } else {\r\n filterData = {\r\n \"QueryInput\": {\r\n \"DateFilters\": vm.filterInfo.DateFilters,\r\n \"Filters\": vm.filterInfo.Filters,\r\n \"Sorts\": vm.filterInfo.Sortings\r\n }\r\n }\r\n }\r\n const { data } = await reportsDataService.getSetupData(filterData, { 'pagesize': options.data.pageSize, 'page': options.data.page });\r\n options.success(data);\r\n vm.enableGrid = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n function clearCriteriaModel() {\r\n var newDate = new Date();\r\n vm.startDate = newDate.setDate(newDate.getDate() - 30);\r\n vm.endDate = new Date();\r\n vm.lastNumberOf = \"\";\r\n }\r\n\r\n async function setReportMetadata() {\r\n const { data: reportMetadata } = await reportsDataService.getSetupMetadata();\r\n vm.reportMetadata = reportMetadata._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n setupColumns(vm.reportMetadata.Columns);\r\n vm.fieldName = vm.reportMetadata.Columns.find(c => c.DataType === \"DateTime\").FieldName;\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout(vm, null);\r\n }\r\n }\r\n\r\n function setupColumns(columns) {\r\n let columnDef = {};\r\n columns.forEach(column => {\r\n columnDef = {\r\n field: column.FieldName, title: column.DisplayName, filterable: customAutoCompleteFilter\r\n }\r\n if (column.DataType === \"DateTime\") {\r\n columnDef.filterable = customDatePickerFilter;\r\n columnDef.template = `{{dataItem.${column.FieldName} | date: 'short'}}`\r\n }\r\n vm.mainGridColumns.push(columnDef);\r\n });\r\n }\r\n\r\n function setupDatePickers() {\r\n\r\n var newDate = new Date();\r\n vm.startDate = newDate.setDate(newDate.getDate() - 30);\r\n\r\n vm.startDateOptions = {\r\n dateDisabled: disabled,\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n vm.endDate = new Date();\r\n vm.endDateOptions = {\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n maxDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n }\r\n\r\n function setDates() {\r\n let newDate = new Date();\r\n newDate.setDate(newDate.getDate() - $rootScope.UserPreferences.DefaultDaysForAuditTrailReports);\r\n vm.lastNumberOf = $rootScope.UserPreferences.DefaultDaysForAuditTrailReports;\r\n\r\n vm.startDate = newDate;\r\n vm.endDate = new Date();\r\n }\r\n\r\n function openStartDate() {\r\n vm.startDatePopupOpened = true;\r\n }\r\n\r\n function openEndDate() {\r\n vm.endDatePopupOpened = true;\r\n }\r\n\r\n function disabled(data) {\r\n return data.mode === 'day' && data.date > vm.endDate;\r\n }\r\n\r\n function onApplyFilter(selectedFilter) {\r\n const currentOptions = vm.grid.getOptions();\r\n\r\n if (selectedFilter?.Filters?.length) {\r\n currentOptions.dataSource.filter = helperService.convertFiltersForGrid(\"\", selectedFilter.Filters);\r\n try {\r\n vm.grid.dataSource._filter = currentOptions.dataSource.filter;\r\n vm.grid.dataSource.read();\r\n }\r\n catch (err) {\r\n vm.gridDataSource.filter({});\r\n }\r\n }\r\n }\r\n\r\n function onClearFilters() {\r\n vm.gridDataSource.filter({});\r\n onReadGrid();\r\n }\r\n\r\n function onReadGrid() {\r\n vm.gridDataSource.read();\r\n }\r\n\r\n function populateCriteriaModel() {\r\n var criteria = [];\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"ProductId\", 'Product', vm.selectedProduct.Name, vm.selectedProduct.ID));\r\n\r\n setupFilters();\r\n\r\n vm.reportDetailsModel = criteria;\r\n\r\n var dateCriteria = vm.dateCriteria[0];\r\n dateCriteria.FieldName = \"CreatedDate\";\r\n\r\n if (dateCriteria) {\r\n var dateTimeFieldName = dateCriteria.FieldName,\r\n criteria = { CriteriaType: 'Date', CriteriaValue: dateTimeFieldName, Filters: [], DateFilter: null },\r\n filterObject = {\r\n Criteria: {},\r\n Filters: [],\r\n RelativeFilter: null\r\n },\r\n relativeDate = {\r\n \"DateType\": vm.dateType,\r\n \"FieldName\": dateTimeFieldName,\r\n \"Period\": vm.periodName,\r\n \"Value\": vm.relativeDateType === dateTypeLast ? vm.lastNumberOf : null\r\n },\r\n startDate = helperService.setDateToBeginningOfDay(vm.startDate),\r\n endDate = helperService.setDateToEndOfDay(vm.endDate);\r\n\r\n let endDateRow, startDateRow;\r\n\r\n if (vm.relativeDateType === isDateRangeFilter) {\r\n startDateRow = {\r\n \"FieldName\": dateTimeFieldName,\r\n \"Operator\": 'GreaterThanOrEqual',\r\n \"Value\": startDate\r\n };\r\n endDateRow = {\r\n \"FieldName\": dateTimeFieldName,\r\n \"Operator\": 'LessThanOrEqual',\r\n \"Value\": endDate\r\n };\r\n\r\n criteria.Filters.push(startDateRow);\r\n criteria.Filters.push(endDateRow);\r\n\r\n filterObject.Criteria = criteria;\r\n\r\n }\r\n if (vm.relativeDateType !== isDateRangeFilter) {\r\n filterObject.RelativeFilter = relativeDate;\r\n criteria.DateFilter = relativeDate;\r\n filterObject.Criteria = criteria;\r\n }\r\n }\r\n\r\n if (filterObject?.Filters?.length) {\r\n vm.sortsAndFilters.Filters = vm.sortsAndFilters.Filters.concat(filterObject.Filters);\r\n }\r\n if (filterObject.RelativeFilter) {\r\n vm.sortsAndFilters.DateFilters.push(filterObject.RelativeFilter);\r\n }\r\n vm.reportDetailsModel.DateFilters = vm.sortsAndFilters.DateFilters;\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n }\r\n\r\n function setupFilters() {\r\n if (!vm.sortsAndFilters) {\r\n vm.sortsAndFilters = {};\r\n }\r\n if (!vm.sortsAndFilters.Filters) {\r\n vm.sortsAndFilters.Filters = [];\r\n }\r\n if (!vm.sortsAndFilters.DateFilter) {\r\n vm.sortsAndFilters.DateFilters = [];\r\n }\r\n }\r\n}","import setupChangesController from \"./setupChanges.controller\";\r\n\r\n/* setupChanges.component.js */\r\n\r\n\r\n/**\r\n * @desc component for setup changes report\r\n * @example \r\n */\r\n\r\nconst setupChanges = {\r\n controller: setupChangesController,\r\n controllerAs: 'scvm',\r\n templateUrl: '/App/Components/setupChanges/setupChanges.tmpl.html'\r\n}\r\n\r\nexport default setupChanges;","import angular from 'angular';\r\nimport DataChangesViewModel from '../Components/DataChanges/DataChangesViewModel';\r\nimport auditTrailFactoriesModule from './auditTrail.factories.module';\r\nimport auditTrailNetSuiteModule from './auditTrailNetSuite.module';\r\nimport manageDataAction from '../Components/ManageDataV2/Action/manageDataAction.component';\r\nimport manageDataConfiguration from '../Components/ManageDataV2/Configuration/manageDataConfiguration.component';\r\nimport manageDataSchedule from '../Components/ManageDataV2/Schedule/manageDataSchedule.component';\r\nimport manageDataProduct from '../Components/ManageDataV2/Product/manageDataProduct.component';\r\nimport maintainTemplates from '../Components/AuditTrail/MaintainTemplates/maintainTemplates.component';\r\nimport templatesList from '../Components/AuditTrail/MaintainTemplates/templatesList.component';\r\nimport ManageDataViewModel from '../Components/ManageData/ManageDataViewModel';\r\nimport ArchiveDataChangesController from '../Components/ManageData/ArchiveDataChanges/ArchiveDataChangesController';\r\nimport CollectDataChangesController from '../Components/ManageData/CollectDataChanges/CollectDataChangesController';\r\nimport CollectSnapshotController from '../Components/ManageData/CollectSnapshot/CollectSnapshotController';\r\nimport PurgeDataChangesController from '../Components/ManageData/PurgeDataChanges/PurgeDataChangesController';\r\nimport RestoreDataChangesController from '../Components/ManageData/RestoreDataChanges/RestoreDataChangesController';\r\nimport GenericManageDataScheduleController from '../Components/ManageData/GenericManageDataScheduleController';\r\nimport oracleCloudDataChanges from '../Components/DataChangesOracleCloud/oracleCloudDataChanges.component';\r\nimport maintainSnapshots from '../Components/AuditTrail/MaintainSnapshots/maintainSnapshots.component';\r\nimport snapshotsList from '../Components/AuditTrail/MaintainSnapshots/SnapshotsList/snapshotsList.component';\r\nimport reportGenerator from '../Components/ReportGenerator/reportGenerator.component';\r\nimport currentSnapshot from '../Components/CurrentSnapshot/currentSnapshot.component';\r\nimport applyTrackingTemplates from '../Components/ApplyTrackingTemplates/applyTrackingTemplates.component';\r\nimport maintainTemplate from '../Components/TemplateTracking/maintainTemplate.component';\r\nimport manageData from '../Components/ManageDataV2/manageData.component';\r\nimport templateDetails from '../Components/TemplateTracking/TemplateTrackingDetails/templateDetails.component';\r\nimport workdayMaintainTemplates from '../Components/workdayMaintainTemplates/workdayMaintainTemplates.component';\r\nimport workdayTemplatesList from '../Components/workdayMaintainTemplates/templatesList/templatesList.component';\r\nimport classesList from '../Components/workdayMaintainTemplates/classesList/classesList.component';\r\nimport maintainObjectTracking from '../Components/salesForceAuditTrail/maintainObjectTracking/maintainObjectTracking.component';\r\nimport maintainObjectTrackingGrid from '../Components/salesForceAuditTrail/maintainObjectTracking/maintainObjectTrackingGrid/maintainObjectTrackingGrid.component';\r\nimport maintainObjectTrackingGridController from '../Components/salesForceAuditTrail/maintainObjectTracking/maintainObjectTrackingGrid/maintainObjectTrackingGrid.controller';\r\nimport setupChanges from '../Components/setupChanges/setupChanges.component';\r\n\r\n\r\n\r\nexport default angular\r\n .module('app.auditTrail', [auditTrailFactoriesModule, auditTrailNetSuiteModule])\r\n .controller(\"dataChangesViewModel\", DataChangesViewModel)\r\n .component('templateDetails', templateDetails)\r\n .component(\"maintainTemplate\", maintainTemplate)\r\n .component('manageDataAction', manageDataAction)\r\n .component('manageDataConfiguration', manageDataConfiguration)\r\n .component('manageDataSchedule', manageDataSchedule)\r\n .component('manageData', manageData)\r\n .component('manageDataProduct', manageDataProduct)\r\n .component('maintainTemplates', maintainTemplates)\r\n .component('templatesList', templatesList)\r\n .controller(\"manageDataViewModel\", ManageDataViewModel)\r\n .controller(\"ArchiveDataChangesController\", ArchiveDataChangesController)\r\n .controller(\"CollectDataChangesController\", CollectDataChangesController)\r\n .controller(\"CollectSnapshotController\", CollectSnapshotController)\r\n .controller(\"PurgeDataChangesController\", PurgeDataChangesController)\r\n .controller(\"RestoreDataChangesController\", RestoreDataChangesController)\r\n .controller(\"GenericManageDataScheduleController\", GenericManageDataScheduleController)\r\n .component(\"reportGenerator\", reportGenerator)\r\n .component('oracleCloudDataChanges', oracleCloudDataChanges)\r\n .component('maintainSnapshots', maintainSnapshots)\r\n .component('snapshotsList', snapshotsList)\r\n .component('currentSnapshot', currentSnapshot)\r\n .component('applyTrackingTemplates', applyTrackingTemplates)\r\n .component('workdayMaintainTemplates', workdayMaintainTemplates)\r\n .component('workdayTemplatesList', workdayTemplatesList)\r\n .component('workdayClassesList', classesList)\r\n .component('maintainObjectTracking', maintainObjectTracking)\r\n .component('maintainObjectTrackingGrid', maintainObjectTrackingGrid)\r\n .controller('maintainObjectTrackingGridController', maintainObjectTrackingGridController)\r\n .component('setupChanges', setupChanges)\r\n .name;","import templatesListController from \"./templatesList.controller\";\r\n\r\n/* templatesList.component.js */\r\n\r\n/**\r\n * @desc component for viewing a list of audit trail templates\r\n * @example \r\n */\r\n\r\nconst templatesList = {\r\n bindings: {\r\n items: '<',\r\n onUpdate: '&'\r\n\r\n },\r\n controller: templatesListController,\r\n controllerAs: 'tlvm',\r\n templateUrl: '/App/Components/AuditTrail/MaintainTemplates/templatesList.tmpl.html'\r\n};\r\n\r\nexport default templatesList;","export default function () {\r\n\r\n const vm = this;\r\n vm.templateChanged = templateChanged;\r\n\r\n function templateChanged(template) {\r\n vm.onUpdate({ template });\r\n }\r\n}","import snapshotsListController from \"./snapshotsList.controller\";\r\n\r\n/* snapshotsList.component.js */\r\n\r\n/**\r\n * @desc component for viewing a list of audit trail snapshots\r\n * @example \r\n */\r\n\r\nconst snapshotsList = {\r\n bindings: {\r\n items: '<',\r\n onUpdate: '&'\r\n\r\n },\r\n controller: snapshotsListController,\r\n controllerAs: 'slvm',\r\n templateUrl: '/App/Components/AuditTrail/MaintainSnapshots/SnapshotsList/snapshotsList.tmpl.html'\r\n};\r\n\r\nexport default snapshotsList;","export default function () {\r\n\r\n const vm = this;\r\n vm.snapshotChanged = snapshotChanged;\r\n\r\n function snapshotChanged(snapshot) {\r\n vm.onUpdate({ snapshot });\r\n }\r\n}","/* workdayMaintainTemplates.component.js */\r\n\r\n/**\r\n * @desc component for displaying and maintaining Workday Templates\r\n * @example \r\n */\r\n\r\nconst workdayMaintainTemplates = {\r\n controller: workdayMaintainTemplatesController,\r\n controllerAs: 'wmtvm',\r\n template: `
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
`\r\n};\r\n\r\n/*@ngInject*/ function workdayMaintainTemplatesController() {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedTemplate = changeSelectedTemplate;\r\n\r\n function changeSelectedTemplate(template) {\r\n vm.selectedTemplate = template;\r\n }\r\n}\r\n\r\nexport default workdayMaintainTemplates;","/* maintainObjectTracking.component.js */\r\n\r\nconst maintainObjectTracking = {\r\n template: `
\r\n \r\n \r\n
`\r\n};\r\n\r\nexport default maintainObjectTracking;","export default /*@ngInject*/ function ($http, $filter, errorsDataService, $uibModalInstance, item) {\r\n\r\n const vm = this;\r\n\r\n vm.cancel = cancel;\r\n\r\n function activate() {\r\n getAffectedObjects();\r\n }\r\n\r\n activate();\r\n\r\n function getAffectedObjects() {\r\n vm.loadingAffectedObjects = true;\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/affectedobjects/systemName/' + item.SystemName + '/securityLayerType/' + item.securityLayerType).then(response => {\r\n vm.loadingAffectedObjects = false;\r\n if (response.data.length === 0) {\r\n vm.noAffectedObjects = true;\r\n } else {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n response.data = $filter('orderBy')(response.data, 'Type');\r\n vm.affectedObjects = response.data;\r\n }\r\n }).catch(response => {\r\n vm.loadingAffectedObjects = false;\r\n errorsDataService.catch(response);\r\n });\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, helperService, taskRecordingDataService, $uibModalInstance, $http, productType) {\r\n\r\n $scope.modalvm = {};\r\n $scope.modalvm.fileUploaded = null;\r\n $scope.modalvm.file = null;\r\n $scope.showUploadSection = false;\r\n\r\n function activate() {\r\n if (productType) getTaskRecordings(); // if adding a new privilege\r\n }\r\n\r\n activate();\r\n\r\n function getTaskRecordings() {\r\n $scope.modalvm.loadingTaskRecordings = true;\r\n taskRecordingDataService.getTaskRecordings(productType)\r\n .then(response => {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $scope.modalvm.taskRecordings = response.data;\r\n $scope.modalvm.loadingTaskRecordings = false;\r\n })\r\n .catch(error => {\r\n $scope.modalvm.loadingTaskRecordings = false;\r\n return;\r\n });\r\n }\r\n\r\n function submitExistingTaskRecording() {\r\n $scope.pleaseWait = new createSpinner();\r\n\r\n let taskRecordingId = $scope.modalvm.selectedTaskRecording.Id;\r\n\r\n let postData = {\r\n SimulationId: $scope.vm.selectedSimulation.Id,\r\n Name: $scope.modalvm.name,\r\n Description: $scope.modalvm.desc || '',\r\n TaskRecordingId: taskRecordingId\r\n };\r\n\r\n $http.post(apiUrl + `api/securitydesigner/ax7/simulation/${taskRecordingId}/importedtaskrecording/privilege`, postData)\r\n .then(response => {\r\n $scope.killModal = true;\r\n helperService.successfulSaveButton($scope.pleaseWait)\r\n .then(result => {\r\n $uibModalInstance.close();\r\n $scope.vm.simulationSelected();\r\n });\r\n })\r\n .catch(error => {\r\n $scope.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(error.data);\r\n });\r\n }\r\n\r\n $scope.create = function () {\r\n $scope.pleaseWait = new createSpinner();\r\n\r\n var desc = $scope.modalvm.desc;\r\n if (!desc) {\r\n desc = \"\";\r\n }\r\n\r\n var postData = {\r\n \"SimulationId\": $scope.vm.selectedSimulation.Id,\r\n \"Name\": $scope.modalvm.name,\r\n \"Description\": desc,\r\n \"Type\": $scope.securityLayerType\r\n };\r\n\r\n $http.post(apiUrl + 'api/securitydesigner/ax7/simulation/securitylayer', postData).then(function successCallback(response) {\r\n\r\n $scope.killModal = true;\r\n helperService.successfulSaveButton($scope.pleaseWait).then(function (result) {\r\n $uibModalInstance.close();\r\n $scope.vm.simulationSelected();\r\n });\r\n\r\n }, function errorCallback(response) {\r\n $scope.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $scope.cancelUpload = function (flow) {\r\n flow.cancel();\r\n $scope.modalvm.fileUploaded = null;\r\n };\r\n\r\n $scope.uploadedFile = null;\r\n\r\n $scope.fileAdded = function (file, event, flow) {\r\n\r\n var fileType = file[0].file.type;\r\n\r\n if (fileType === \"text/xml\") {\r\n $scope.modalvm.file = file[0].file;\r\n $scope.modalvm.fileUploaded = true;\r\n } else {\r\n $scope.taskRecorderResponse = null;\r\n $scope.modalvm.fileUploaded = null;\r\n helperService.showErrorMessage('XML files only');\r\n }\r\n };\r\n\r\n $scope.uploadTaskRecording = function () {\r\n $scope.pleaseWait = new createSpinner();\r\n\r\n var desc = $scope.modalvm.desc;\r\n if (!desc) {\r\n desc = \"\";\r\n }\r\n\r\n var fd = new FormData();\r\n fd.append(\"SimulationId\", $scope.vm.selectedSimulation.Id);\r\n fd.append(\"TaskRecording\", $scope.modalvm.file);\r\n fd.append(\"Name\", $scope.modalvm.name);\r\n fd.append(\"Description\", desc);\r\n\r\n $http.post(apiUrl + 'api/securitydesigner/ax7/simulation/' + $scope.vm.selectedSimulation.Id + '/taskrecording/privilege', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n }).then(function successCallback(response) {\r\n $scope.killModal = true;\r\n helperService.successfulSaveButton($scope.pleaseWait).then(function (result) {\r\n $uibModalInstance.close();\r\n $scope.vm.simulationSelected();\r\n });\r\n\r\n }, function errorCallback(response) {\r\n $scope.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $scope.submitPrivilege = function () {\r\n if ($scope.modalvm.showUploadSection) $scope.uploadTaskRecording();\r\n else if ($scope.modalvm.showInputSection) submitExistingTaskRecording();\r\n else $scope.create();\r\n };\r\n\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}","import swal from \"sweetalert2\";\r\nimport axSecurityDesignerAffectedObjectsModalController from \"../axSecurityDesignerAffectedObjectsModal.controller\";\r\nimport NewAXSecurityLayerSecurityDesignerController from \"../NewAXSecurityLayerSecurityDesignerController\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, $filter, objectIdDataService, AXSecurityDesignerService, $http, helperService) {\r\n\r\n $scope.helperService = helperService;\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n var vm = $scope.vm = {};\r\n vm.disableFilter = true;\r\n $scope.currentPage = 1;\r\n $scope.itemsPerPage = 4;\r\n\r\n $scope.searchChanged = function () {\r\n var filteredResults = $filter('filterResults')(vm.securityDesignerDutiesTree, vm.searchBox, ['Name', 'SystemName']);\r\n if (!vm.disableFilter) {\r\n filteredResults = $filter('filter')(filteredResults, { IsModified: true });\r\n }\r\n $scope.filteredCount = filteredResults.length;\r\n };\r\n\r\n vm.deleteDuty = function (duty) {\r\n if (duty.IsCustom) {\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/securitylayer/duties').then(function (response) {\r\n var securityLayer = response.data.filter(e => e.Name.toLowerCase() === duty.Name.toLowerCase())[0];\r\n $http.delete(apiUrl + 'api/securitydesigner/ax7/simulation/securitylayer/' + securityLayer.Id).then(function (response) {\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n } else {\r\n var message = \"Are you sure you want to remove this duty?\";\r\n swal(helperService.areYouSureParams('Remove Duty', message, 'Remove Duty')).then(function () {\r\n var postBody = {\r\n \"SimulationId\": vm.selectedSimulation.Id,\r\n \"SystemName\": duty.SystemName,\r\n \"Type\": \"Duty\"\r\n };\r\n\r\n $http.post(apiUrl + 'api/securitydesigner/ax7/simulation/securitylayer/removals', postBody).then(function (response) {\r\n duty.Action = \"Remove\";\r\n duty.IsModified = true;\r\n $scope.determineModifiedArrays();\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }, function (dismiss) {\r\n return;\r\n });\r\n }\r\n };\r\n\r\n vm.openCloneDutyModal = function (duty) {\r\n $scope.selectedSecurityObject = duty;\r\n $scope.securityObjectType = 'Duties';\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/CloneSecurityModal.html',\r\n controller: cloneDutyModal,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n };\r\n\r\n vm.openAffectedObjectsModal = function (selectedDuty) {\r\n\r\n selectedDuty.securityLayerType = 2;\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/axSecurityDesignerAffectedObjectsModal.html',\r\n controller: axSecurityDesignerAffectedObjectsModalController,\r\n controllerAs: 'vm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n item: () => selectedDuty\r\n }\r\n });\r\n };\r\n\r\n vm.undoChangesToDuty = function (duty) {\r\n swal(helperService.areYouSureParams('Undo Changes', 'Are you sure you want to undo this change?', 'Undo')).then(function () {\r\n\r\n var putBody = {\r\n \"SimulationId\": vm.selectedSimulation.Id,\r\n \"ObjectId\": duty.SystemName,\r\n \"ObjectType\": \"Duty\"\r\n };\r\n\r\n $http.put(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/revert', putBody).then(function (response) {\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n }, function (dismiss) {\r\n return;\r\n });\r\n };\r\n\r\n vm.undoRemoveDuty = function (duty) {\r\n swal(helperService.areYouSureParams('Add Duty Back', 'Are you sure you want to add this duty back?', 'Add Duty')).then(function () {\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/securitylayer/removals').then(function (response) {\r\n var securityLayer = response.data.filter(e => e.SystemName.toLowerCase() === duty.SystemName.toLowerCase())[0];\r\n $http.delete(apiUrl + 'api/securitydesigner/ax7/simulation/securitylayer/removals/' + securityLayer.Id).then(function (response) {\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n }, function (dismiss) {\r\n return;\r\n });\r\n };\r\n\r\n $scope.openAXNewSecurityLayerSecurityDesignerModal = function () {\r\n $scope.securityLayerType = 'Duty';\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/NewAXSecurityLayerSecurityDesigner.html',\r\n controller: NewAXSecurityLayerSecurityDesignerController,\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n productType: () => $scope.productType || false\r\n }\r\n });\r\n };\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/simulation').then(function (response) {\r\n response.data.remove(function (n) { return n['Status'] === 'Deployed'; });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.securityModels = response.data;\r\n\r\n var securityModelInLocalStorage = localStorage.getItem(\"LastSelectedAX7SecurityModel\");\r\n var selected = vm.securityModels.find(e => e.Id.toString() === securityModelInLocalStorage);\r\n\r\n if (securityModelInLocalStorage && selected) {\r\n vm.selectedSimulation = selected;\r\n } else {\r\n vm.selectedSimulation = response.data[0];\r\n }\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n $scope.determineModifiedArrays = function () {\r\n vm.securityDesignerDutiesTree.forEach(function (row) {\r\n var privilegesModifiedResultOfRemove = row.Privileges.filter(e => e.IsModified === true && e.Action === 'Remove').length;\r\n\r\n row.PrivilegesModified = row.Privileges.filter(e => e.IsModified === true).length;\r\n\r\n row.GrantedPrivileges = row.Privileges.filter(e => e.Action === \"Grant\").length;\r\n\r\n\r\n if (privilegesModifiedResultOfRemove === row.PrivilegesModified) {\r\n row.ModifiedResultOfAllRemoves = true;\r\n } else {\r\n row.ModifiedResultOfAllRemoves = false;\r\n }\r\n\r\n if (row.PrivilegesModified > 0 || row.IsCustom || row.Action === \"Remove\") {\r\n row.IsModified = true;\r\n } else {\r\n row.IsModified = false;\r\n }\r\n });\r\n vm.numberModified = vm.securityDesignerDutiesTree.filter(e => e.IsModified === true).length;\r\n };\r\n\r\n vm.simulationSelected = function () {\r\n vm.disableFilter = true;\r\n vm.searchBox = '';\r\n if (vm.selectedSimulation) {\r\n\r\n if (vm.selectedSimulation.Status === \"Analyzing\" || vm.selectedSimulation.Status === \"Locked\") {\r\n $scope.pageIsReadOnly = true;\r\n } else {\r\n $scope.pageIsReadOnly = false;\r\n }\r\n\r\n localStorage.setItem(\"LastSelectedAX7SecurityModel\", vm.selectedSimulation.Id);\r\n vm.dutiesLoading = true;\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/dutyaccess').then(function (response) {\r\n vm.dutiesLoading = false;\r\n AXSecurityDesignerService.populateSystemNameIfCustom(response.data);\r\n vm.securityDesignerDutiesTree = response.data;\r\n $scope.determineModifiedArrays();\r\n\r\n $scope.filteredCount = response.data.length;\r\n\r\n }, function errorCallback(response) {\r\n vm.dutiesLoading = false;\r\n });\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/privileges').then(function (response) {\r\n response.data.forEach(function (row) { row.SystemName = row.SystemName || row.Name; });\r\n vm.securityDesignerPrivileges = response.data;\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n }\r\n };\r\n\r\n vm.openPrivilegesModal = function (duty) {\r\n $scope.objectOpenInModal = duty;\r\n var currentPrivileges = duty.Privileges;\r\n\r\n var columns = [\r\n { title: \"Active\", field: \"SelectedCheckbox\", template: ``, width: 55, filterable: false },\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"System Name\", field: \"SystemName\", template: \"{{dataItem.SystemName}}\", filterable: customAutoCompleteFilter },\r\n { title: \"Description\", field: \"Description\", filterable: customAutoCompleteFilter },\r\n { title: \"License\", field: \"License\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n if (!duty.IsCustom) {\r\n columns.push({ title: \" \", field: \"IsModified\", template: ``, width: 50, filterable: false });\r\n }\r\n\r\n vm.manageSecurityLayerGridOptions = helperService.setMainGridOptions(columns, null);\r\n vm.manageSecurityLayerGridOptions.selectable = false;\r\n\r\n vm.manageSecurityLayerGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n sort: { field: \"Name\", dir: \"asc\" },\r\n transport: {\r\n read: function (options) {\r\n vm.selectedSecurityDesignerPrivileges = vm.securityDesignerPrivileges.slice();\r\n\r\n vm.selectedSecurityDesignerPrivileges.forEach(function (row) {\r\n row.SelectedCheckbox = false;\r\n row.IsModified = false;\r\n });\r\n\r\n vm.selectedSecurityDesignerPrivileges.forEach(function (row) {\r\n\r\n for (var i = 0; i < currentPrivileges.length; i++) {\r\n if (row.SystemName === currentPrivileges[i].SystemName) {\r\n row.IsModified = currentPrivileges[i].IsModified;\r\n row.Action = currentPrivileges[i].Action;\r\n if (currentPrivileges[i].Action === \"Grant\") {\r\n row.SelectedCheckbox = true;\r\n }\r\n break;\r\n }\r\n }\r\n });\r\n\r\n vm.selectedSecurityDesignerPrivileges = $filter('orderBy')(vm.selectedSecurityDesignerPrivileges, 'Name');\r\n options.success(vm.selectedSecurityDesignerPrivileges);\r\n }\r\n }\r\n });\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/Roles/ManageRoleAXSecurityDesigner.html',\r\n controller: AddAXPrivilegesToDutySecurityDesigner,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n}\r\n\r\nfunction AddAXPrivilegesToDutySecurityDesigner($scope, $uibModalInstance, AXSecurityDesignerService) {\r\n\r\n $scope.modalvm = {};\r\n\r\n $scope.selectedTableFilter = \"All\";\r\n $scope.modalHeader = \"Privileges\";\r\n\r\n $scope.modalvm.selectPrivilege = function (dataItem) {\r\n var parentItem = $scope.vm.securityDesignerDutiesTree.filter(e => e.SystemName.toLowerCase() === $scope.objectOpenInModal.SystemName.toLowerCase())[0];\r\n\r\n AXSecurityDesignerService.SetInitialModifiedValueElseChangeModified(dataItem);\r\n\r\n parentItem.Privileges.remove(function (n) { return n['SystemName'] === dataItem.SystemName; });\r\n var childItem = { \"IsCustom\": dataItem.IsCustom, \"IsModified\": dataItem.IsModified, \"SystemName\": dataItem.SystemName, \"Name\": dataItem.Name };\r\n\r\n if (dataItem.SelectedCheckbox === true) {\r\n childItem.Action = \"Grant\";\r\n parentItem.Privileges.push(childItem);\r\n AXSecurityDesignerService.AssignChildToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 3, ParentItem: parentItem, ParentType: 2, Action: \"Grant\" });\r\n } else {\r\n childItem.Action = \"Revoke\";\r\n parentItem.Privileges.push(childItem);\r\n AXSecurityDesignerService.AssignChildToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 3, ParentItem: parentItem, ParentType: 2, Action: \"Revoke\" });\r\n }\r\n\r\n $scope.determineModifiedArrays();\r\n };\r\n\r\n $scope.changeFilter = function () {\r\n AXSecurityDesignerService.changeFilter($scope.selectedTableFilter, $scope.vm.manageSecurityLayerGrid.dataSource, \"SelectedCheckbox\");\r\n };\r\n\r\n $scope.deleteModificationToItem = function (dataItem) {\r\n dataItem.SelectedCheckbox = !dataItem.SelectedCheckbox;\r\n $scope.modalvm.selectPrivilege(dataItem);\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n\r\nfunction cloneDutyModal($scope, helperService, $uibModalInstance, $http) {\r\n\r\n $scope.modalvm = {};\r\n $scope.modalvm.securityObjectType = $scope.securityObjectType;\r\n\r\n $scope.clone = function (name, description) {\r\n var obj = $scope.selectedSecurityObject;\r\n\r\n if (obj.pleaseWait === null) {\r\n obj.pleaseWait = {};\r\n }\r\n obj.pleaseWait = new createSpinner();\r\n $scope.pleaseWait = new createSpinner();\r\n\r\n if (description === null) {\r\n description = \"\";\r\n }\r\n\r\n var postData = {\r\n \"SimulationId\": $scope.vm.selectedSimulation.Id,\r\n \"SystemName\": obj.SystemName,\r\n \"Name\": name,\r\n \"Description\": description,\r\n \"Type\": \"Duty\"\r\n };\r\n\r\n $http.post(apiUrl + 'api/securitydesigner/ax7/simulation/' + $scope.vm.selectedSimulation.Id + '/clone', postData).then(function (response) {\r\n $scope.vm.simulationSelected();\r\n $uibModalInstance.close();\r\n }, function errorCallback(response) {\r\n obj.pleaseWait.loadingValue = false;\r\n $scope.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n\r\n\r\n\r\n","import swal from \"sweetalert2\";\r\nimport axSecurityDesignerAffectedObjectsModalController from \"../axSecurityDesignerAffectedObjectsModal.controller\";\r\nimport NewAXSecurityLayerSecurityDesignerController from \"../NewAXSecurityLayerSecurityDesignerController\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, $filter, objectIdDataService, AXSecurityDesignerService, $http, helperService) {\r\n\r\n const vm = $scope.vm = {};\r\n vm.disableFilter = true;\r\n $scope.currentPage = 1;\r\n $scope.itemsPerPage = 4;\r\n\r\n vm.openTableFieldsModal = openTableFieldsModal;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n const res = await objectIdDataService.getObjectID();\r\n const securityObject = helperService.getSecurityObjectDetailsFromObjectId(res);\r\n $scope.ObjectId = res;\r\n $scope.productType = securityObject.ProductType;\r\n }\r\n\r\n $scope.searchChanged = function () {\r\n var filteredResults = $filter('filterResults')(vm.securityDesignerPrivilegesTree, vm.searchBox, ['Name', 'SystemName']);\r\n if (!vm.disableFilter) {\r\n filteredResults = $filter('filter')(filteredResults, { IsModified: true });\r\n }\r\n $scope.filteredCount = filteredResults.length;\r\n };\r\n\r\n vm.deletePrivilege = function (privilege) {\r\n if (privilege.IsCustom) {\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/securitylayer/privileges').then(function (response) {\r\n var securityLayer = response.data.filter(e => e.Name.toLowerCase() === privilege.Name.toLowerCase())[0];\r\n $http.delete(apiUrl + 'api/securitydesigner/ax7/simulation/securitylayer/' + securityLayer.Id).then(function (response) {\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n } else {\r\n var message = \"Are you sure you want to remove this privilege?\";\r\n\r\n swal(helperService.areYouSureParams('Remove Privilege', message, 'Remove Privilege')).then(function () {\r\n var postBody = {\r\n \"SimulationId\": vm.selectedSimulation.Id,\r\n \"SystemName\": privilege.SystemName,\r\n \"Type\": \"Privilege\"\r\n };\r\n\r\n $http.post(apiUrl + 'api/securitydesigner/ax7/simulation/securitylayer/removals', postBody).then(function (response) {\r\n privilege.Action = \"Remove\";\r\n privilege.IsModified = true;\r\n $scope.determineModifiedArrays();\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }, function (dismiss) {\r\n return;\r\n });\r\n }\r\n };\r\n\r\n vm.openClonePrivilegeModal = function (privilege) {\r\n $scope.selectedSecurityObject = privilege;\r\n $scope.securityObjectType = 'Privilege';\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/CloneSecurityModal.html',\r\n controller: clonePrivilegeModal,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n };\r\n\r\n vm.openAffectedObjectsModal = function (selectedPrivilege) {\r\n\r\n selectedPrivilege.securityLayerType = 3;\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/axSecurityDesignerAffectedObjectsModal.html',\r\n controller: axSecurityDesignerAffectedObjectsModalController,\r\n controllerAs: 'vm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n item: () => selectedPrivilege\r\n }\r\n });\r\n };\r\n\r\n vm.undoChangesToPrivilege = function (privilege) {\r\n swal(helperService.areYouSureParams('Undo Changes', 'Are you sure you want to undo this change?', 'Undo')).then(function () {\r\n\r\n var putBody = {\r\n \"SimulationId\": vm.selectedSimulation.Id,\r\n \"ObjectId\": privilege.SystemName,\r\n \"ObjectType\": \"Privilege\"\r\n };\r\n\r\n $http.put(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/revert', putBody).then(function (response) {\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n }, function (dismiss) {\r\n return;\r\n });\r\n };\r\n\r\n vm.undoRemovePrivilege = function (privilege) {\r\n swal(helperService.areYouSureParams('Add Privilege Back', 'Are you sure you want to add this privilege back?', 'Add Privilege')).then(function () {\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/securitylayer/removals').then(function (response) {\r\n var securityLayer = response.data.filter(e => e.SystemName.toLowerCase() === privilege.SystemName.toLowerCase())[0];\r\n $http.delete(apiUrl + 'api/securitydesigner/ax7/simulation/securitylayer/removals/' + securityLayer.Id).then(function (response) {\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n }, function (dismiss) {\r\n return;\r\n });\r\n };\r\n\r\n $scope.openAXNewSecurityLayerSecurityDesignerModal = function () {\r\n $scope.securityLayerType = 'Privilege';\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/NewAXSecurityLayerSecurityDesigner.html',\r\n controller: NewAXSecurityLayerSecurityDesignerController,\r\n backdrop: 'static',\r\n resolve: {\r\n productType: () => $scope.productType\r\n },\r\n scope: $scope\r\n });\r\n };\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/simulation').then(function (response) {\r\n response.data.remove(function (n) { return n['Status'] === 'Deployed'; });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.securityModels = response.data;\r\n\r\n var securityModelInLocalStorage = localStorage.getItem(\"LastSelectedAX7SecurityModel\");\r\n var selected = vm.securityModels.find(e => e.Id.toString() === securityModelInLocalStorage);\r\n\r\n if (securityModelInLocalStorage && selected) {\r\n vm.selectedSimulation = selected;\r\n } else {\r\n vm.selectedSimulation = response.data[0];\r\n }\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n $scope.determineModifiedArrays = function () {\r\n vm.securityDesignerPrivilegesTree.forEach(function (row) {\r\n\r\n row.MenuItemsModified = row.MenuItems.filter(e => e.IsModified === true).length;\r\n row.TablesModified = row.Tables.filter(e => e.IsModified === true).length;\r\n row.DataEntitiesModified = row.DataEntities.filter(e => e.IsModified === true).length;\r\n row.ServiceOperationsModified = row.ServiceOperations.filter(e => e.IsModified === true).length;\r\n\r\n row.GrantedMenuItems = row.MenuItems.filter(e => e.Read !== \"Unset\" || e.Create !== \"Unset\" || e.Update !== \"Unset\" || e.Delete !== \"Unset\").length;\r\n row.GrantedTables = row.Tables.filter(e => e.Read !== \"Unset\" || e.Create !== \"Unset\" || e.Update !== \"Unset\" || e.Delete !== \"Unset\").length;\r\n row.GrantedDataEntities = row.DataEntities.filter(e => e.Read !== \"Unset\" || e.Create !== \"Unset\" || e.Update !== \"Unset\" || e.Delete !== \"Unset\").length;\r\n row.GrantedServiceOperations = row.ServiceOperations.filter(e => e.Invoke !== \"Unset\").length;\r\n\r\n if (row.MenuItemsModified > 0 || row.TablesModified > 0 || row.DataEntitiesModified > 0 || row.ServiceOperationsModified > 0 || row.IsCustom || row.Action === \"Remove\") {\r\n row.IsModified = true;\r\n } else {\r\n row.IsModified = false;\r\n }\r\n });\r\n vm.numberModified = vm.securityDesignerPrivilegesTree.filter(e => e.IsModified === true).length;\r\n };\r\n\r\n vm.simulationSelected = function () {\r\n vm.disableFilter = true;\r\n vm.searchBox = '';\r\n if (vm.selectedSimulation) {\r\n\r\n if (vm.selectedSimulation.Status === \"Analyzing\" || vm.selectedSimulation.Status === \"Locked\") {\r\n $scope.pageIsReadOnly = true;\r\n } else {\r\n $scope.pageIsReadOnly = false;\r\n }\r\n\r\n localStorage.setItem(\"LastSelectedAX7SecurityModel\", vm.selectedSimulation.Id);\r\n vm.privilegesLoading = true;\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/privilegeaccess').then(function (response) {\r\n vm.privilegesLoading = false;\r\n AXSecurityDesignerService.populateSystemNameIfCustom(response.data);\r\n vm.securityDesignerPrivilegesTree = $filter('orderBy')(response.data, 'Name');\r\n\r\n $scope.determineModifiedArrays();\r\n\r\n $scope.filteredCount = response.data.length;\r\n\r\n }, function errorCallback(response) {\r\n vm.privilegesLoading = false;\r\n });\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/menuitems').then(function (response) {\r\n vm.securityDesignerMenuItems = response.data;\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/tables').then(function (response) {\r\n vm.securityDesignerTables = response.data;\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/dataentities').then(function (response) {\r\n vm.securityDesignerDataEntities = response.data;\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/serviceoperations').then(function (response) {\r\n vm.securityDesignerServiceOperations = response.data;\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n }\r\n };\r\n\r\n vm.openMenuItemsModal = function (item) {\r\n $scope.objectOpenInModal = item;\r\n var currentItems = item.MenuItems;\r\n const menuItems = true;\r\n\r\n var columns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter, width: 160 },\r\n { title: \"Label\", field: \"Label\", filterable: customAutoCompleteFilter, width: 160 },\r\n { title: \"Type\", field: \"Type\", filterable: customAutoCompleteFilter, width: 110 },\r\n { title: \"View License\", field: \"ViewLicense\", filterable: customAutoCompleteFilter, width: 110 },\r\n { title: \"Maintain License\", field: \"MaintainLicense\", filterable: customAutoCompleteFilter, width: 110 },\r\n { title: \"Read\", field: \"Read\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"Update\", field: \"Update\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"Create\", field: \"Create\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"Delete\", field: \"Delete\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"ContainsAssigningValue\", field: \"ContainsAssigningValue\", hidden: true }\r\n ];\r\n\r\n if (!item.IsCustom) {\r\n columns.push({ title: \" \", field: \"IsModified\", template: \"\", width: 50, filterable: false });\r\n }\r\n\r\n vm.manageSecurityLayerGridOptions = helperService.setMainGridOptions(columns, null);\r\n vm.manageSecurityLayerGridOptions.selectable = false;\r\n\r\n vm.manageSecurityLayerGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n sort: { field: \"Name\", dir: \"asc\" },\r\n transport: {\r\n read: function (options) {\r\n vm.selectedSecurityDesignerMenuItems = vm.securityDesignerMenuItems.slice();\r\n AXSecurityDesignerService.setDataSourceDefaultsAndMapProperties(vm.selectedSecurityDesignerMenuItems, currentItems, menuItems);\r\n\r\n vm.selectedSecurityDesignerMenuItems.forEach(function (row) {\r\n if (row.Create !== 'Unset' || row.Delete !== 'Unset' || row.Read !== 'Unset' || row.Update !== 'Unset') {\r\n row.ContainsAssigningValue = true;\r\n } else {\r\n row.ContainsAssigningValue = false;\r\n }\r\n });\r\n\r\n vm.selectedSecurityDesignerMenuItems = $filter('orderBy')(vm.selectedSecurityDesignerMenuItems, 'Name');\r\n options.success(vm.selectedSecurityDesignerMenuItems);\r\n }\r\n }\r\n });\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/Roles/ManageRoleAXSecurityDesigner.html',\r\n controller: AddAXMenuItemsToPrivilegeSecurityDesigner,\r\n backdrop: 'static',\r\n size: 'xl',\r\n scope: $scope\r\n });\r\n };\r\n\r\n vm.openTablesModal = function (item) {\r\n $scope.objectOpenInModal = item;\r\n\r\n AXSecurityDesignerService.createTablesModalDataSource(item, vm);\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/Roles/ManageRoleAXSecurityDesigner.html',\r\n controller: AddAXTablesToPrivilegeSecurityDesigner,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n async function openTableFieldsModal(privilege) {\r\n $uibModal.open({\r\n component: 'tableFieldsModal',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n tables: () => vm.securityDesignerTables,\r\n simulationId: () => vm.selectedSimulation.Id,\r\n privilege: () => privilege\r\n }\r\n });\r\n }\r\n\r\n vm.openDataEntitiesModal = function (item) {\r\n $scope.objectOpenInModal = item;\r\n var currentItems = item.DataEntities;\r\n\r\n var columns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter, width: 200 },\r\n { title: \"Label\", field: \"Label\", filterable: customAutoCompleteFilter, width: 200 },\r\n { title: \"Read\", field: \"Read\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"Update\", field: \"Update\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"Create\", field: \"Create\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"Delete\", field: \"Delete\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"ContainsAssigningValue\", field: \"ContainsAssigningValue\", hidden: true }\r\n ];\r\n\r\n if (!item.IsCustom) {\r\n columns.push({ title: \" \", field: \"IsModified\", template: \"\", width: 50, filterable: false });\r\n }\r\n\r\n vm.manageSecurityLayerGridOptions = helperService.setMainGridOptions(columns, null);\r\n vm.manageSecurityLayerGridOptions.selectable = false;\r\n\r\n vm.manageSecurityLayerGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n sort: { field: \"Name\", dir: \"asc\" },\r\n transport: {\r\n read: function (options) {\r\n vm.selectedSecurityDesignerDataEntities = vm.securityDesignerDataEntities.slice();\r\n AXSecurityDesignerService.setDataSourceDefaultsAndMapProperties(vm.selectedSecurityDesignerDataEntities, currentItems);\r\n\r\n vm.selectedSecurityDesignerDataEntities.forEach(function (row) {\r\n if (row.Create !== 'Unset' || row.Delete !== 'Unset' || row.Read !== 'Unset' || row.Update !== 'Unset') {\r\n row.ContainsAssigningValue = true;\r\n } else {\r\n row.ContainsAssigningValue = false;\r\n }\r\n });\r\n\r\n vm.selectedSecurityDesignerDataEntities = $filter('orderBy')(vm.selectedSecurityDesignerDataEntities, 'Name');\r\n options.success(vm.selectedSecurityDesignerDataEntities);\r\n }\r\n }\r\n });\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/Roles/ManageRoleAXSecurityDesigner.html',\r\n controller: AddAXDataEntitiesToPrivilegeSecurityDesigner,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n vm.openServiceOperationsModal = function (item) {\r\n $scope.objectOpenInModal = item;\r\n var currentItems = item.ServiceOperations;\r\n\r\n var columns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"Invoke\", field: \"Invoke\", template: ``, filterable: customAutoCompleteFilter, width: 250 },\r\n { title: \"ContainsAssigningValue\", field: \"ContainsAssigningValue\", hidden: true }\r\n ];\r\n\r\n if (!item.IsCustom) {\r\n columns.push({ title: \" \", field: \"IsModified\", template: \"\", width: 50, filterable: false });\r\n }\r\n\r\n vm.manageSecurityLayerGridOptions = helperService.setMainGridOptions(columns, null);\r\n vm.manageSecurityLayerGridOptions.selectable = false;\r\n\r\n vm.manageSecurityLayerGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n sort: { field: \"Name\", dir: \"asc\" },\r\n transport: {\r\n read: function (options) {\r\n vm.selectedSecurityDesignerServiceOperations = vm.securityDesignerServiceOperations.slice();\r\n AXSecurityDesignerService.setDataSourceDefaultsAndMapProperties(vm.selectedSecurityDesignerServiceOperations, currentItems);\r\n\r\n vm.selectedSecurityDesignerServiceOperations.forEach(function (row) {\r\n if (row.Invoke !== 'Unset') {\r\n row.ContainsAssigningValue = true;\r\n } else {\r\n row.ContainsAssigningValue = false;\r\n }\r\n });\r\n\r\n vm.selectedSecurityDesignerServiceOperations = $filter('orderBy')(vm.selectedSecurityDesignerServiceOperations, 'Name');\r\n options.success(vm.selectedSecurityDesignerServiceOperations);\r\n }\r\n }\r\n });\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/Roles/ManageRoleAXSecurityDesigner.html',\r\n controller: AddAXServiceOperationsToPrivilegeSecurityDesigner,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n}\r\n\r\nfunction AddAXMenuItemsToPrivilegeSecurityDesigner($scope, $uibModalInstance, AXSecurityDesignerService) {\r\n\r\n $scope.selectedTableFilter = \"All\";\r\n $scope.modalHeader = \"Menu Items\";\r\n $scope.tableActions = [\"Grant\", \"Deny\", \"Unset\"];\r\n\r\n $scope.changeFilter = function () {\r\n AXSecurityDesignerService.changeFilter($scope.selectedTableFilter, $scope.vm.manageSecurityLayerGrid.dataSource, \"ContainsAssigningValue\");\r\n };\r\n\r\n $scope.actionDropdownChange = async function (action, dataItem) {\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, true);\r\n dataItem.IsModified = true;\r\n\r\n var parentItem = $scope.vm.securityDesignerPrivilegesTree.filter(e => e.SystemName.toLowerCase() === $scope.objectOpenInModal.SystemName.toLowerCase())[0];\r\n\r\n var childItem = {\r\n \"Create\": dataItem.Create,\r\n \"Delete\": dataItem.Delete,\r\n \"Invoke\": dataItem.Invoke,\r\n \"IsModified\": true,\r\n \"OldCreate\": dataItem.OldCreate,\r\n \"OldDelete\": dataItem.OldDelete,\r\n \"OldInvoke\": dataItem.OldInvoke,\r\n \"OldRead\": dataItem.OldRead,\r\n \"OldUpdate\": dataItem.OldUpdate,\r\n \"Read\": dataItem.Read,\r\n \"SystemName\": dataItem.Name,\r\n \"Update\": dataItem.Update,\r\n \"Type\": dataItem.Type\r\n };\r\n\r\n var parentItemMenuItem = parentItem.MenuItems.filter(e => e.SystemName.toLowerCase() === dataItem.Name.toLowerCase())[0];\r\n parentItem.MenuItems.remove(parentItemMenuItem);\r\n\r\n if (dataItem.Create !== 'Unset' || dataItem.Delete !== 'Unset' || dataItem.Read !== 'Unset' || dataItem.Update !== 'Unset') {\r\n dataItem.ContainsAssigningValue = true;\r\n } else {\r\n dataItem.ContainsAssigningValue = false;\r\n }\r\n\r\n parentItem.MenuItems.push(childItem);\r\n\r\n var childTypeId;\r\n if (childItem.Type === \"Action\") {\r\n childTypeId = 3;\r\n } else if (childItem.Type === \"Display\") {\r\n childTypeId = 1;\r\n } else if (childItem.Type === \"Output\") {\r\n childTypeId = 2;\r\n }\r\n\r\n let { data } = await AXSecurityDesignerService.AssignChildObjectToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: childTypeId, ParentItem: parentItem, ParentType: 3 });\r\n // use the returned object to update the permissions dropdowns\r\n childItem.Create = data[0].Create;\r\n childItem.Update = data[0].Update;\r\n childItem.Read = data[0].Read;\r\n childItem.Delete = data[0].Delete\r\n $scope.vm.manageSecurityLayerGridDataSource.read();\r\n $scope.determineModifiedArrays();\r\n\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, false);\r\n };\r\n\r\n $scope.deleteModificationToObject = function (dataItem) {\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, true);\r\n AXSecurityDesignerService.DeleteModificationToObject(dataItem, $scope.vm.selectedSimulation, $scope.objectOpenInModal, \"MenuItems\").then(function () {\r\n $scope.determineModifiedArrays();\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, false);\r\n });\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n\r\nfunction AddAXTablesToPrivilegeSecurityDesigner($scope, $uibModalInstance, AXSecurityDesignerService) {\r\n\r\n $scope.modalvm = {};\r\n\r\n $scope.selectedTableFilter = \"All\";\r\n $scope.modalHeader = \"Tables\";\r\n $scope.tableActions = [\"Grant\", \"Deny\", \"Unset\"];\r\n\r\n $scope.changeFilter = function () {\r\n AXSecurityDesignerService.changeFilter($scope.selectedTableFilter, $scope.vm.manageSecurityLayerGrid.dataSource, \"ContainsAssigningValue\");\r\n };\r\n\r\n $scope.actionDropdownChange = async function (action, dataItem) {\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, true);\r\n dataItem.IsModified = true;\r\n\r\n var parentItem = $scope.vm.securityDesignerPrivilegesTree.filter(e => e.SystemName.toLowerCase() === $scope.objectOpenInModal.SystemName.toLowerCase())[0];\r\n\r\n var childItem = {\r\n \"Create\": dataItem.Create,\r\n \"Delete\": dataItem.Delete,\r\n \"Invoke\": dataItem.Invoke,\r\n \"IsModified\": true,\r\n \"OldCreate\": dataItem.OldCreate,\r\n \"OldDelete\": dataItem.OldDelete,\r\n \"OldInvoke\": dataItem.OldInvoke,\r\n \"OldRead\": dataItem.OldRead,\r\n \"OldUpdate\": dataItem.OldUpdate,\r\n \"Read\": dataItem.Read,\r\n \"SystemName\": dataItem.Name,\r\n \"Update\": dataItem.Update,\r\n \"Type\": dataItem.Type\r\n };\r\n\r\n var parentItemTable = parentItem.Tables.filter(e => e.SystemName.toLowerCase() === dataItem.Name.toLowerCase())[0];\r\n\r\n parentItem.Tables.remove(parentItemTable);\r\n\r\n if (dataItem.Create !== 'Unset' || dataItem.Delete !== 'Unset' || dataItem.Read !== 'Unset' || dataItem.Update !== 'Unset') {\r\n dataItem.ContainsAssigningValue = true;\r\n } else {\r\n dataItem.ContainsAssigningValue = false;\r\n }\r\n\r\n parentItem.Tables.push(childItem);\r\n\r\n let { data } = await AXSecurityDesignerService.AssignChildObjectToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 44, ParentItem: parentItem, ParentType: 3 });\r\n // use the returned object to update the permissions dropdowns\r\n childItem.Create = data[0].Create;\r\n childItem.Update = data[0].Update;\r\n childItem.Read = data[0].Read;\r\n childItem.Delete = data[0].Delete\r\n $scope.vm.manageSecurityLayerGridDataSource.read();\r\n $scope.determineModifiedArrays();\r\n\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, false);\r\n };\r\n\r\n $scope.deleteModificationToObject = function (dataItem) {\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, true);\r\n AXSecurityDesignerService.DeleteModificationToObject(dataItem, $scope.vm.selectedSimulation, $scope.objectOpenInModal, \"Tables\").then(function () {\r\n $scope.determineModifiedArrays();\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, false);\r\n });\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n\r\nfunction AddAXDataEntitiesToPrivilegeSecurityDesigner($scope, $uibModalInstance, AXSecurityDesignerService) {\r\n\r\n $scope.selectedTableFilter = \"All\";\r\n $scope.modalHeader = \"Data Entities\";\r\n $scope.tableActions = [\"Grant\", \"Deny\", \"Unset\"];\r\n\r\n $scope.changeFilter = function () {\r\n AXSecurityDesignerService.changeFilter($scope.selectedTableFilter, $scope.vm.manageSecurityLayerGrid.dataSource, \"ContainsAssigningValue\");\r\n };\r\n\r\n $scope.actionDropdownChange = async function (action, dataItem) {\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, true);\r\n dataItem.IsModified = true;\r\n\r\n var parentItem = $scope.vm.securityDesignerPrivilegesTree.filter(e => e.SystemName.toLowerCase() === $scope.objectOpenInModal.SystemName.toLowerCase())[0];\r\n\r\n var childItem = {\r\n \"Create\": dataItem.Create,\r\n \"Delete\": dataItem.Delete,\r\n \"Invoke\": dataItem.Invoke,\r\n \"IsModified\": true,\r\n \"OldCreate\": dataItem.OldCreate,\r\n \"OldDelete\": dataItem.OldDelete,\r\n \"OldInvoke\": dataItem.OldInvoke,\r\n \"OldRead\": dataItem.OldRead,\r\n \"OldUpdate\": dataItem.OldUpdate,\r\n \"Read\": dataItem.Read,\r\n \"SystemName\": dataItem.Name,\r\n \"Update\": dataItem.Update,\r\n \"Type\": dataItem.Type\r\n };\r\n\r\n var parentItemDataEntity = parentItem.DataEntities.filter(e => e.SystemName.toLowerCase() === dataItem.Name.toLowerCase())[0];\r\n parentItem.DataEntities.remove(parentItemDataEntity);\r\n\r\n if (dataItem.Create !== 'Unset' || dataItem.Delete !== 'Unset' || dataItem.Read !== 'Unset' || dataItem.Update !== 'Unset') {\r\n dataItem.ContainsAssigningValue = true;\r\n } else {\r\n dataItem.ContainsAssigningValue = false;\r\n }\r\n\r\n parentItem.DataEntities.push(childItem);\r\n\r\n let { data } = await AXSecurityDesignerService.AssignChildObjectToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 67, ParentItem: parentItem, ParentType: 3 });\r\n // use the returned object to update the permissions dropdowns\r\n childItem.Create = data[0].Create;\r\n childItem.Update = data[0].Update;\r\n childItem.Read = data[0].Read;\r\n childItem.Delete = data[0].Delete\r\n $scope.vm.manageSecurityLayerGridDataSource.read();\r\n $scope.determineModifiedArrays();\r\n\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, false);\r\n };\r\n\r\n $scope.deleteModificationToObject = function (dataItem) {\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, true);\r\n AXSecurityDesignerService.DeleteModificationToObject(dataItem, $scope.vm.selectedSimulation, $scope.objectOpenInModal, \"DataEntities\").then(function () {\r\n $scope.determineModifiedArrays();\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, false);\r\n });\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n\r\nfunction AddAXServiceOperationsToPrivilegeSecurityDesigner($scope, $uibModalInstance, AXSecurityDesignerService) {\r\n\r\n $scope.selectedTableFilter = \"All\";\r\n $scope.modalHeader = \"Service Operations\";\r\n $scope.tableActions = [\"Grant\", \"Deny\", \"Unset\"];\r\n\r\n $scope.changeFilter = function () {\r\n AXSecurityDesignerService.changeFilter($scope.selectedTableFilter, $scope.vm.manageSecurityLayerGrid.dataSource, \"ContainsAssigningValue\");\r\n };\r\n\r\n $scope.actionDropdownChange = function (action, dataItem) {\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, true);\r\n dataItem.IsModified = true;\r\n\r\n var parentItem = $scope.vm.securityDesignerPrivilegesTree.filter(e => e.SystemName.toLowerCase() === $scope.objectOpenInModal.SystemName.toLowerCase())[0];\r\n\r\n var childItem = {\r\n \"Create\": dataItem.Create,\r\n \"Delete\": dataItem.Delete,\r\n \"Invoke\": dataItem.Invoke,\r\n \"IsModified\": true,\r\n \"OldCreate\": dataItem.OldCreate,\r\n \"OldDelete\": dataItem.OldDelete,\r\n \"OldInvoke\": dataItem.OldInvoke,\r\n \"OldRead\": dataItem.OldRead,\r\n \"OldUpdate\": dataItem.OldUpdate,\r\n \"Read\": dataItem.Read,\r\n \"SystemName\": dataItem.Name,\r\n \"Update\": dataItem.Update,\r\n \"Type\": dataItem.Type\r\n };\r\n\r\n var parentItemServiceOperation = parentItem.ServiceOperations.filter(e => e.SystemName.toLowerCase() === dataItem.Name.toLowerCase())[0];\r\n parentItem.ServiceOperations.remove(parentItemServiceOperation);\r\n\r\n if (dataItem.Invoke !== 'Unset') {\r\n dataItem.ContainsAssigningValue = true;\r\n } else {\r\n dataItem.ContainsAssigningValue = false;\r\n }\r\n\r\n parentItem.ServiceOperations.push(childItem);\r\n\r\n AXSecurityDesignerService.AssignChildObjectToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 76, ParentItem: parentItem, ParentType: 3 });\r\n $scope.determineModifiedArrays();\r\n\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, false);\r\n };\r\n\r\n $scope.deleteModificationToObject = function (dataItem) {\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, true);\r\n AXSecurityDesignerService.DeleteModificationToObject(dataItem, $scope.vm.selectedSimulation, $scope.objectOpenInModal, \"ServiceOperations\").then(function () {\r\n $scope.determineModifiedArrays();\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, false);\r\n });\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n\r\nfunction clonePrivilegeModal($scope, helperService, $uibModalInstance, $http) {\r\n\r\n $scope.modalvm = {};\r\n $scope.modalvm.securityObjectType = $scope.securityObjectType;\r\n\r\n $scope.clone = function (name, description) {\r\n var obj = $scope.selectedSecurityObject;\r\n\r\n if (!obj.pleaseWait) {\r\n obj.pleaseWait = {};\r\n }\r\n obj.pleaseWait = new createSpinner();\r\n $scope.pleaseWait = new createSpinner();\r\n\r\n if (!description) {\r\n description = \"\";\r\n }\r\n\r\n var postData = {\r\n \"SimulationId\": $scope.vm.selectedSimulation.Id,\r\n \"SystemName\": obj.SystemName,\r\n \"Name\": name,\r\n \"Description\": description,\r\n \"Type\": \"Privilege\"\r\n };\r\n\r\n $http.post(apiUrl + 'api/securitydesigner/ax7/simulation/' + $scope.vm.selectedSimulation.Id + '/clone', postData).then(function (response) {\r\n $scope.vm.simulationSelected();\r\n $uibModalInstance.close();\r\n }, function errorCallback(response) {\r\n obj.pleaseWait.loadingValue = false;\r\n $scope.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n","import swal from \"sweetalert2\";\r\nimport axSecurityDesignerAffectedObjectsModalController from \"../axSecurityDesignerAffectedObjectsModal.controller\";\r\nimport NewAXSecurityLayerSecurityDesignerController from \"../NewAXSecurityLayerSecurityDesignerController\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, $filter, AXSecurityDesignerService, objectIdDataService, $http, helperService) {\r\n\r\n $scope.helperService = helperService;\r\n\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n var vm = $scope.vm = {};\r\n vm.disableFilter = true;\r\n $scope.currentPage = 1;\r\n $scope.itemsPerPage = 4;\r\n\r\n $scope.searchChanged = function () {\r\n var filteredResults = $filter('filterResults')(vm.securityDesignerRolesTree, vm.searchBox, ['Name', 'SystemName']);\r\n if (!vm.disableFilter) {\r\n filteredResults = $filter('filter')(filteredResults, { IsModified: true });\r\n }\r\n $scope.filteredCount = filteredResults.length;\r\n };\r\n\r\n vm.deleteRole = function (role) {\r\n\r\n if (role.IsCustom) {\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/securitylayer/roles').then(function (response) {\r\n var securityLayer = response.data.filter(e => e.Name.toLowerCase() === role.Name.toLowerCase())[0];\r\n $http.delete(apiUrl + 'api/securitydesigner/ax7/simulation/securitylayer/' + securityLayer.Id).then(function (response) {\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n } else {\r\n\r\n var message = \"Are you sure you want to remove this role?\";\r\n\r\n swal(helperService.areYouSureParams('Remove Role', message, 'Remove Role')).then(function () {\r\n var postBody = {\r\n \"SimulationId\": vm.selectedSimulation.Id,\r\n \"SystemName\": role.SystemName,\r\n \"Type\": \"Role\"\r\n };\r\n\r\n $http.post(apiUrl + 'api/securitydesigner/ax7/simulation/securitylayer/removals', postBody).then(function (response) {\r\n role.Action = \"Remove\";\r\n role.IsModified = true;\r\n $scope.determineModifiedArrays();\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }, function (dismiss) {\r\n return;\r\n });\r\n }\r\n };\r\n\r\n vm.openAffectedObjectsModal = function (selectedRole) {\r\n\r\n selectedRole.securityLayerType = 1;\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/axSecurityDesignerAffectedObjectsModal.html',\r\n controller: axSecurityDesignerAffectedObjectsModalController,\r\n controllerAs: 'vm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n item: () => selectedRole\r\n }\r\n });\r\n };\r\n\r\n vm.openCloneRoleModal = function (privilege) {\r\n $scope.selectedSecurityObject = privilege;\r\n $scope.securityObjectType = 'Role';\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/CloneSecurityModal.html',\r\n controller: cloneRoleModal,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n };\r\n\r\n\r\n $scope.openAXNewSecurityLayerSecurityDesignerModal = function () {\r\n $scope.securityLayerType = 'Role';\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/NewAXSecurityLayerSecurityDesigner.html',\r\n controller: NewAXSecurityLayerSecurityDesignerController,\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n productType: () => $scope.productType || false\r\n }\r\n });\r\n };\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/simulation').then(function (response) {\r\n response.data.remove(function (n) { return n['Status'] === 'Deployed'; });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.securityModels = response.data;\r\n\r\n var securityModelInLocalStorage = localStorage.getItem(\"LastSelectedAX7SecurityModel\");\r\n var selected = vm.securityModels.find(e => e.Id.toString() === securityModelInLocalStorage);\r\n if (securityModelInLocalStorage && selected) {\r\n vm.selectedSimulation = selected;\r\n } else {\r\n vm.selectedSimulation = response.data[0];\r\n }\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n $scope.determineModifiedArrays = function () {\r\n vm.securityDesignerRolesTree.forEach(function (row) {\r\n var dutiesModifiedResultOfRemove = row.Duties.filter(e => e.IsModified === true && e.Action === 'Remove').length;\r\n var privilegesModifiedResultOfRemove = row.Privileges.filter(e => e.IsModified === true && e.Action === 'Remove').length;\r\n var subRolesModifiedResultOfRemove = row.SubRoles.filter(e => e.IsModified === true && e.Action === 'Remove').length;\r\n\r\n row.DutiesModified = row.Duties.filter(e => e.IsModified === true).length;\r\n row.PrivilegesModified = row.Privileges.filter(e => e.IsModified === true).length;\r\n row.SubRolesModified = row.SubRoles.filter(e => e.IsModified === true).length;\r\n row.TablesModified = row.Tables.filter(e => e.IsModified === true).length;\r\n\r\n row.GrantedDuties = row.Duties.filter(e => e.Action === \"Grant\").length;\r\n row.GrantedPrivileges = row.Privileges.filter(e => e.Action === \"Grant\").length;\r\n row.GrantedSubRoles = row.SubRoles.filter(e => e.Action === \"Grant\").length;\r\n row.GrantedTables = row.Tables.filter(e => e.Read !== \"Unset\" || e.Create !== \"Unset\" || e.Update !== \"Unset\" || e.Delete !== \"Unset\").length;\r\n\r\n if (dutiesModifiedResultOfRemove === row.DutiesModified && privilegesModifiedResultOfRemove === row.PrivilegesModified && subRolesModifiedResultOfRemove === row.SubRolesModified) {\r\n row.ModifiedResultOfAllRemoves = true;\r\n } else {\r\n row.ModifiedResultOfAllRemoves = false;\r\n }\r\n\r\n if (row.DutiesModified > 0 || row.PrivilegesModified > 0 || row.SubRolesModified > 0 || row.TablesModified > 0 || row.IsCustom || row.Action === \"Remove\") {\r\n row.IsModified = true;\r\n } else {\r\n row.IsModified = false;\r\n }\r\n });\r\n vm.numberModified = vm.securityDesignerRolesTree.filter(e => e.IsModified === true).length;\r\n };\r\n\r\n vm.simulationSelected = function () {\r\n vm.disableFilter = true;\r\n vm.searchBox = '';\r\n if (vm.selectedSimulation) {\r\n\r\n if (vm.selectedSimulation.Status === \"Analyzing\" || vm.selectedSimulation.Status === \"Locked\") {\r\n $scope.pageIsReadOnly = true;\r\n } else {\r\n $scope.pageIsReadOnly = false;\r\n }\r\n\r\n localStorage.setItem(\"LastSelectedAX7SecurityModel\", vm.selectedSimulation.Id);\r\n vm.rolesLoading = true;\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/roleaccess').then(function (response) {\r\n vm.rolesLoading = false;\r\n AXSecurityDesignerService.populateSystemNameIfCustom(response.data);\r\n vm.securityDesignerRolesTree = response.data;\r\n $scope.determineModifiedArrays();\r\n\r\n $scope.filteredCount = response.data.length;\r\n\r\n }, function errorCallback(response) {\r\n vm.rolesLoading = false;\r\n });\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/roles').then(function (response) {\r\n response.data.forEach(function (row) { row.SystemName = row.SystemName || row.Name; });\r\n vm.securityDesignerRoles = response.data;\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/duties').then(function (response) {\r\n response.data.forEach(function (row) { row.SystemName = row.SystemName || row.Name; });\r\n vm.securityDesignerDuties = response.data;\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/privileges').then(function (response) {\r\n response.data.forEach(function (row) { row.SystemName = row.SystemName || row.Name; });\r\n vm.securityDesignerPrivileges = response.data;\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/tables').then(function (response) {\r\n vm.securityDesignerTables = response.data;\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n }\r\n };\r\n\r\n vm.undoChangesToRole = function (role) {\r\n swal(helperService.areYouSureParams('Undo Changes', 'Are you sure you want to undo this change?', 'Undo')).then(function () {\r\n\r\n var putBody = {\r\n \"SimulationId\": vm.selectedSimulation.Id,\r\n \"ObjectId\": role.SystemName,\r\n \"ObjectType\": \"Role\"\r\n };\r\n\r\n $http.put(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/revert', putBody).then(function (response) {\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n }, function (dismiss) {\r\n return;\r\n });\r\n };\r\n\r\n vm.undoRemoveRole = function (role) {\r\n swal(helperService.areYouSureParams('Add Role Back', 'Are you sure you want to add this role back?', 'Add Role')).then(function () {\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + vm.selectedSimulation.Id + '/securitylayer/removals').then(function (response) {\r\n var securityLayer = response.data.filter(e => e.SystemName.toLowerCase() === role.SystemName.toLowerCase())[0];\r\n $http.delete(apiUrl + 'api/securitydesigner/ax7/simulation/securitylayer/removals/' + securityLayer.Id).then(function (response) {\r\n vm.simulationSelected();\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n }, function errorCallback(response) {\r\n return;\r\n });\r\n\r\n }, function (dismiss) {\r\n return;\r\n });\r\n };\r\n\r\n vm.openPrivilegesModal = function (item) {\r\n $scope.objectOpenInModal = item;\r\n var currentPrivileges = item.Privileges;\r\n\r\n var columns = [\r\n { title: \"Active\", field: \"SelectedCheckbox\", template: ``, width: 55, filterable: false },\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"System Name\", field: \"SystemName\", template: \"{{dataItem.SystemName}}\", filterable: customAutoCompleteFilter },\r\n { title: \"Description\", field: \"Description\", filterable: customAutoCompleteFilter },\r\n { title: \"License\", field: \"License\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n if (!item.IsCustom) {\r\n columns.push({ title: \" \", field: \"IsModified\", template: ``, width: 50, filterable: false });\r\n }\r\n\r\n vm.manageSecurityLayerGridOptions = helperService.setMainGridOptions(columns, null);\r\n vm.manageSecurityLayerGridOptions.selectable = false;\r\n\r\n vm.manageSecurityLayerGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n sort: { field: \"Name\", dir: \"asc\" },\r\n transport: {\r\n read: function (options) {\r\n vm.selectedSecurityDesignerPrivileges = vm.securityDesignerPrivileges.slice();\r\n\r\n vm.selectedSecurityDesignerPrivileges.forEach(function (row) {\r\n row.SelectedCheckbox = false;\r\n row.IsModified = false;\r\n });\r\n\r\n vm.selectedSecurityDesignerPrivileges.forEach(function (row) {\r\n\r\n for (var i = 0; i < currentPrivileges.length; i++) {\r\n if (row.SystemName === currentPrivileges[i].SystemName) {\r\n row.IsModified = currentPrivileges[i].IsModified;\r\n row.Action = currentPrivileges[i].Action;\r\n if (currentPrivileges[i].Action === \"Grant\") {\r\n row.SelectedCheckbox = true;\r\n }\r\n break;\r\n }\r\n }\r\n });\r\n\r\n vm.selectedSecurityDesignerPrivileges = $filter('orderBy')(vm.selectedSecurityDesignerPrivileges, 'Name');\r\n options.success(vm.selectedSecurityDesignerPrivileges);\r\n }\r\n }\r\n });\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/Roles/ManageRoleAXSecurityDesigner.html',\r\n controller: AddAXPrivilegesToRoleSecurityDesigner,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n vm.openDutiesModal = function (item) {\r\n $scope.objectOpenInModal = item;\r\n var currentDuties = item.Duties;\r\n\r\n var columns = [\r\n { title: \"Active\", field: \"SelectedCheckbox\", template: ``, width: 55, filterable: false },\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"System Name\", field: \"SystemName\", template: \"{{dataItem.SystemName}}\", filterable: customAutoCompleteFilter },\r\n { title: \"Description\", field: \"Description\", filterable: customAutoCompleteFilter },\r\n { title: \"License\", field: \"License\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n if (!item.IsCustom) {\r\n columns.push({ title: \" \", field: \"IsModified\", template: ``, width: 50, filterable: false });\r\n }\r\n\r\n vm.manageSecurityLayerGridOptions = helperService.setMainGridOptions(columns, null);\r\n vm.manageSecurityLayerGridOptions.selectable = false;\r\n\r\n vm.manageSecurityLayerGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n sort: { field: \"Name\", dir: \"asc\" },\r\n transport: {\r\n read: function (options) {\r\n vm.selectedSecurityDesignerDuties = vm.securityDesignerDuties.slice();\r\n\r\n vm.selectedSecurityDesignerDuties.forEach(function (row) {\r\n row.SelectedCheckbox = false;\r\n row.IsModified = false;\r\n });\r\n\r\n vm.selectedSecurityDesignerDuties.forEach(function (row) {\r\n\r\n for (var i = 0; i < currentDuties.length; i++) {\r\n if (row.SystemName === currentDuties[i].SystemName) {\r\n row.IsModified = currentDuties[i].IsModified;\r\n row.Action = currentDuties[i].Action;\r\n if (currentDuties[i].Action === \"Grant\") {\r\n row.SelectedCheckbox = true;\r\n }\r\n break;\r\n }\r\n }\r\n });\r\n\r\n vm.selectedSecurityDesignerDuties = $filter('orderBy')(vm.selectedSecurityDesignerDuties, 'Name');\r\n options.success(vm.selectedSecurityDesignerDuties);\r\n }\r\n }\r\n });\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/Roles/ManageRoleAXSecurityDesigner.html',\r\n controller: AddAXDutiesToRoleSecurityDesigner,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n vm.openTablesModal = function (item) {\r\n $scope.objectOpenInModal = item;\r\n\r\n AXSecurityDesignerService.createTablesModalDataSource(item, vm);\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/Roles/ManageRoleAXSecurityDesigner.html',\r\n controller: AddAXTablesToRoleSecurityDesigner,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n vm.openSubRolesModal = function (item) {\r\n $scope.objectOpenInModal = item;\r\n var currentSubRoles = item.SubRoles;\r\n\r\n var columns = [\r\n { title: \"Active\", field: \"SelectedCheckbox\", template: ``, width: 55, filterable: false },\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"System Name\", field: \"SystemName\", template: \"{{dataItem.SystemName}}\", filterable: customAutoCompleteFilter },\r\n { title: \"Description\", field: \"Description\", filterable: customAutoCompleteFilter },\r\n { title: \"License\", field: \"License\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n if (!item.IsCustom) {\r\n columns.push({ title: \" \", field: \"IsModified\", template: ``, width: 50, filterable: false });\r\n }\r\n\r\n vm.manageSecurityLayerGridOptions = helperService.setMainGridOptions(columns, null);\r\n vm.manageSecurityLayerGridOptions.selectable = false;\r\n\r\n vm.manageSecurityLayerGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n sort: { field: \"Name\", dir: \"asc\" },\r\n transport: {\r\n read: function (options) {\r\n vm.selectedSecurityDesignerRoles = vm.securityDesignerRoles.slice();\r\n vm.selectedSecurityDesignerRoles.forEach(function (row, i) {\r\n row.SelectedCheckbox = false;\r\n row.IsModified = false;\r\n if (item.Name === row.Name) {\r\n vm.selectedSecurityDesignerRoles.remove(row);\r\n }\r\n });\r\n\r\n vm.selectedSecurityDesignerRoles.forEach(function (row) {\r\n\r\n for (var i = 0; i < currentSubRoles.length; i++) {\r\n if (row.SystemName === currentSubRoles[i].SystemName) {\r\n row.IsModified = currentSubRoles[i].IsModified;\r\n row.Action = currentSubRoles[i].Action;\r\n if (currentSubRoles[i].Action === \"Grant\") {\r\n row.SelectedCheckbox = true;\r\n }\r\n break;\r\n }\r\n }\r\n });\r\n\r\n vm.selectedSecurityDesignerRoles = $filter('orderBy')(vm.selectedSecurityDesignerRoles, 'Name');\r\n options.success(vm.selectedSecurityDesignerRoles);\r\n }\r\n }\r\n });\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/Roles/ManageRoleAXSecurityDesigner.html',\r\n controller: AddAXSubRolesToRoleSecurityDesigner,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n}\r\n\r\nfunction AddAXDutiesToRoleSecurityDesigner($scope, $uibModalInstance, AXSecurityDesignerService) {\r\n\r\n $scope.modalvm = {};\r\n\r\n $scope.selectedTableFilter = \"All\";\r\n $scope.modalHeader = \"Duties\";\r\n\r\n $scope.modalvm.selectDuty = function (dataItem) {\r\n var parentItem = $scope.vm.securityDesignerRolesTree.filter(e => e.SystemName.toLowerCase() === $scope.objectOpenInModal.SystemName.toLowerCase())[0];\r\n\r\n AXSecurityDesignerService.SetInitialModifiedValueElseChangeModified(dataItem);\r\n\r\n parentItem.Duties.remove(function (n) { return n['SystemName'] === dataItem.SystemName; });\r\n var childItem = { \"IsCustom\": dataItem.IsCustom, \"IsModified\": dataItem.IsModified, \"SystemName\": dataItem.SystemName, \"Name\": dataItem.Name };\r\n\r\n if (dataItem.SelectedCheckbox === true) {\r\n childItem.Action = \"Grant\";\r\n parentItem.Duties.push(childItem);\r\n AXSecurityDesignerService.AssignChildToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 2, ParentItem: parentItem, ParentType: 1, Action: \"Grant\" });\r\n } else {\r\n childItem.Action = \"Revoke\";\r\n parentItem.Duties.push(childItem);\r\n AXSecurityDesignerService.AssignChildToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 2, ParentItem: parentItem, ParentType: 1, Action: \"Revoke\" });\r\n }\r\n\r\n $scope.determineModifiedArrays();\r\n };\r\n\r\n $scope.changeFilter = function () {\r\n AXSecurityDesignerService.changeFilter($scope.selectedTableFilter, $scope.vm.manageSecurityLayerGrid.dataSource, \"SelectedCheckbox\");\r\n };\r\n\r\n $scope.deleteModificationToItem = function (dataItem) {\r\n dataItem.SelectedCheckbox = !dataItem.SelectedCheckbox;\r\n $scope.modalvm.selectDuty(dataItem);\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n\r\nfunction AddAXPrivilegesToRoleSecurityDesigner($scope, $uibModalInstance, AXSecurityDesignerService, $http, $route) {\r\n\r\n $scope.modalvm = {};\r\n\r\n $scope.selectedTableFilter = \"All\";\r\n $scope.modalHeader = \"Privileges\";\r\n\r\n $scope.modalvm.selectPrivilege = function (dataItem) {\r\n var parentItem = $scope.vm.securityDesignerRolesTree.filter(e => e.SystemName.toLowerCase() === $scope.objectOpenInModal.SystemName.toLowerCase())[0];\r\n\r\n AXSecurityDesignerService.SetInitialModifiedValueElseChangeModified(dataItem);\r\n\r\n parentItem.Privileges.remove(function (n) { return n['SystemName'] === dataItem.SystemName; });\r\n var childItem = { \"IsCustom\": dataItem.IsCustom, \"IsModified\": dataItem.IsModified, \"SystemName\": dataItem.SystemName, \"Name\": dataItem.Name };\r\n\r\n if (dataItem.SelectedCheckbox === true) {\r\n childItem.Action = \"Grant\";\r\n parentItem.Privileges.push(childItem);\r\n AXSecurityDesignerService.AssignChildToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 3, ParentItem: parentItem, ParentType: 1, Action: \"Grant\" });\r\n } else {\r\n childItem.Action = \"Revoke\";\r\n parentItem.Privileges.push(childItem);\r\n AXSecurityDesignerService.AssignChildToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 3, ParentItem: parentItem, ParentType: 1, Action: \"Revoke\" });\r\n }\r\n\r\n $scope.determineModifiedArrays();\r\n };\r\n\r\n $scope.changeFilter = function () {\r\n AXSecurityDesignerService.changeFilter($scope.selectedTableFilter, $scope.vm.manageSecurityLayerGrid.dataSource, \"SelectedCheckbox\");\r\n };\r\n\r\n $scope.deleteModificationToItem = function (dataItem) {\r\n dataItem.SelectedCheckbox = !dataItem.SelectedCheckbox;\r\n $scope.modalvm.selectPrivilege(dataItem);\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n\r\nfunction AddAXTablesToRoleSecurityDesigner($scope, $uibModalInstance, AXSecurityDesignerService) {\r\n\r\n $scope.modalvm = {};\r\n\r\n $scope.selectedTableFilter = \"All\";\r\n $scope.modalHeader = \"Tables\";\r\n $scope.tableActions = [\"Grant\", \"Deny\", \"Unset\"];\r\n\r\n $scope.changeFilter = function () {\r\n AXSecurityDesignerService.changeFilter($scope.selectedTableFilter, $scope.vm.manageSecurityLayerGrid.dataSource, \"ContainsAssigningValue\");\r\n };\r\n\r\n $scope.actionDropdownChange = async function (action, dataItem) {\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, true);\r\n dataItem.IsModified = true;\r\n\r\n var parentItem = $scope.vm.securityDesignerRolesTree.filter(e => e.SystemName.toLowerCase() === $scope.objectOpenInModal.SystemName.toLowerCase())[0];\r\n\r\n var childItem = {\r\n \"Create\": dataItem.Create,\r\n \"Delete\": dataItem.Delete,\r\n \"Invoke\": dataItem.Invoke,\r\n \"IsModified\": true,\r\n \"OldCreate\": dataItem.OldCreate,\r\n \"OldDelete\": dataItem.OldDelete,\r\n \"OldInvoke\": dataItem.OldInvoke,\r\n \"OldRead\": dataItem.OldRead,\r\n \"OldUpdate\": dataItem.OldUpdate,\r\n \"Read\": dataItem.Read,\r\n \"SystemName\": dataItem.Name,\r\n \"Update\": dataItem.Update,\r\n \"Type\": 44\r\n };\r\n\r\n var parentItemTable = parentItem.Tables.filter(e => e.SystemName.toLowerCase() === dataItem.Name.toLowerCase())[0];\r\n parentItem.Tables.remove(parentItemTable);\r\n\r\n if (dataItem.Create !== 'Unset' || dataItem.Delete !== 'Unset' || dataItem.Read !== 'Unset' || dataItem.Update !== 'Unset') {\r\n dataItem.ContainsAssigningValue = true;\r\n } else {\r\n dataItem.ContainsAssigningValue = false;\r\n }\r\n\r\n parentItem.Tables.push(childItem);\r\n\r\n let { data } = await AXSecurityDesignerService.AssignChildObjectToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 44, ParentItem: parentItem, ParentType: 1 });\r\n // use the returned object to update the permissions dropdowns\r\n childItem.Create = data[0].Create;\r\n childItem.Update = data[0].Update;\r\n childItem.Read = data[0].Read;\r\n childItem.Delete = data[0].Delete\r\n $scope.vm.manageSecurityLayerGridDataSource.read();\r\n $scope.determineModifiedArrays();\r\n\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, false);\r\n };\r\n\r\n $scope.deleteModificationToObject = function (dataItem) {\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, true);\r\n AXSecurityDesignerService.DeleteModificationToObject(dataItem, $scope.vm.selectedSimulation, $scope.objectOpenInModal, \"Tables\").then(function () {\r\n $scope.determineModifiedArrays();\r\n kendo.ui.progress($scope.vm.manageSecurityLayerGrid.element, false);\r\n });\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n\r\nfunction AddAXSubRolesToRoleSecurityDesigner($scope, $uibModalInstance, AXSecurityDesignerService) {\r\n\r\n $scope.modalvm = {};\r\n\r\n $scope.selectedTableFilter = \"All\";\r\n $scope.modalHeader = \"Sub-Roles\";\r\n\r\n $scope.modalvm.selectSubRole = function (dataItem) {\r\n var parentItem = $scope.vm.securityDesignerRolesTree.filter(e => e.SystemName.toLowerCase() === $scope.objectOpenInModal.SystemName.toLowerCase())[0];\r\n\r\n AXSecurityDesignerService.SetInitialModifiedValueElseChangeModified(dataItem);\r\n\r\n parentItem.SubRoles.remove(function (n) { return n['SystemName'] === dataItem.SystemName; });\r\n var childItem = { \"IsCustom\": dataItem.IsCustom, \"IsModified\": dataItem.IsModified, \"SystemName\": dataItem.SystemName, \"Name\": dataItem.Name };\r\n\r\n if (dataItem.SelectedCheckbox === true) {\r\n childItem.Action = \"Grant\";\r\n parentItem.SubRoles.push(childItem);\r\n AXSecurityDesignerService.AssignChildToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 1, ParentItem: parentItem, ParentType: 1, Action: \"Grant\" });\r\n } else {\r\n childItem.Action = \"Revoke\";\r\n parentItem.SubRoles.push(childItem);\r\n AXSecurityDesignerService.AssignChildToParent({ SimulationId: $scope.vm.selectedSimulation.Id, ChildItem: childItem, ChildType: 1, ParentItem: parentItem, ParentType: 1, Action: \"Revoke\" });\r\n }\r\n\r\n $scope.determineModifiedArrays();\r\n };\r\n\r\n $scope.changeFilter = function () {\r\n AXSecurityDesignerService.changeFilter($scope.selectedTableFilter, $scope.vm.manageSecurityLayerGrid.dataSource, \"SelectedCheckbox\");\r\n };\r\n\r\n $scope.deleteModificationToItem = function (dataItem) {\r\n dataItem.SelectedCheckbox = !dataItem.SelectedCheckbox;\r\n $scope.modalvm.selectSubRole(dataItem);\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n\r\nfunction cloneRoleModal($scope, helperService, $uibModalInstance, $http) {\r\n\r\n $scope.modalvm = {};\r\n $scope.modalvm.securityObjectType = $scope.securityObjectType;\r\n\r\n $scope.clone = function (name, description) {\r\n var obj = $scope.selectedSecurityObject;\r\n\r\n if (obj.pleaseWait === null) {\r\n obj.pleaseWait = {};\r\n }\r\n obj.pleaseWait = new createSpinner();\r\n $scope.pleaseWait = new createSpinner();\r\n\r\n if (description === null) {\r\n description = \"\";\r\n }\r\n\r\n var postData = {\r\n \"SimulationId\": $scope.vm.selectedSimulation.Id,\r\n \"SystemName\": obj.SystemName,\r\n \"Name\": name,\r\n \"Description\": description,\r\n \"Type\": \"Role\"\r\n };\r\n\r\n $http.post(apiUrl + 'api/securitydesigner/ax7/simulation/' + $scope.vm.selectedSimulation.Id + '/clone', postData).then(function (response) {\r\n $scope.vm.simulationSelected();\r\n $uibModalInstance.close();\r\n }, function errorCallback(response) {\r\n obj.pleaseWait.loadingValue = false;\r\n $scope.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, helperService, $uibModalInstance, $http) {\r\n\r\n $scope.modalvm = {};\r\n\r\n $scope.createSimulation = function () {\r\n $scope.pleaseWait = new createSpinner();\r\n var postData = {\r\n \"Name\": $scope.simulation.name,\r\n \"ProductId\": \"AX7\"\r\n };\r\n\r\n $http.post(apiUrl + 'api/securitydesigner/simulation', postData).then(async function successCallback(response) {\r\n\r\n $scope.killModal = true;\r\n await helperService.successfulSaveButton($scope.pleaseWait).then(function (result) {\r\n $uibModalInstance.close();\r\n });\r\n\r\n }, function errorCallback(response) {\r\n $scope.pleaseWait.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}","import { standardGridPageSize, customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $http, helperService, AXSecurityDesignerService, errorsDataService, $uibModalInstance, sim) {\r\n\r\n var vm = $scope.vm = {};\r\n\r\n vm.sim = sim;\r\n vm.cancel = cancel;\r\n vm.exportSimulationChanges = exportSimulationChanges;\r\n vm.setGridOptions = setGridOptions;\r\n\r\n function activate() {\r\n getSimulationChanges();\r\n }\r\n\r\n activate();\r\n\r\n function getSimulationChanges() {\r\n vm.loadingChanges = true;\r\n $http.get(apiUrl + 'api/securitydesigner/simulation/' + sim.Id + '/changes').then(response => {\r\n vm.loadingChanges = false;\r\n sim.modifications = response.data;\r\n }).catch(response => {\r\n vm.loadingChanges = false;\r\n errorsDataService.catch(response);\r\n });\r\n }\r\n\r\n function setGridOptions(columns) {\r\n return helperService.setMainGridOptions(columns, 250);\r\n }\r\n\r\n vm.newSecurityLayersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: options => {\r\n options.success(sim.modifications.CreatedSecurityLayers);\r\n }\r\n }\r\n });\r\n\r\n vm.parentToChildGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: options => {\r\n options.success(sim.modifications.ParentToChild);\r\n }\r\n }\r\n });\r\n\r\n vm.parentToObjectGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: options => {\r\n options.success(sim.modifications.ParentToObject);\r\n }\r\n }\r\n });\r\n\r\n vm.removedSecurityLayersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: options => {\r\n options.success(sim.modifications.RemovedSecurityLayers);\r\n }\r\n }\r\n });\r\n\r\n vm.newSecurityLayersDataGridColumns = [\r\n { field: \"Name\", title: \"Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Security Layer Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ModifiedBy\", title: \"Modified By\", width: 120, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.parentToChildDataGridColumns = [\r\n { field: \"ParentObjectName\", title: \"Parent Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ParentObjectId\", title: \"Parent Object Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ParentObjectType\", title: \"Parent Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ChildObjectName\", title: \"Child Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ChildObjectId\", title: \"Child Object Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ChildObjectType\", title: \"Child Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Action\", title: \"Action\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ModifiedBy\", title: \"Modified By\", width: 120, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.parentToObjectDataGridColumns = [\r\n { field: \"ParentObjectName\", title: \"Parent Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ParentObjectId\", title: \"Parent Object Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ParentObjectType\", title: \"Parent Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ChildObjectName\", title: \"Child Object Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ChildObjectId\", title: \"Child Object Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ChildObjectType\", title: \"Child Object Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Read\", title: \"Read\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Update\", title: \"Update\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Create\", title: \"Create\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Delete\", title: \"Delete\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Invoke\", title: \"Invoke\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ModifiedBy\", title: \"Modified By\", width: 120, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.removedSecurityLayersDataGridColumns = [\r\n { field: \"Name\", title: \"Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"SystemName\", title: \"System Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Security Layer Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"ModifiedBy\", title: \"Modified By\", width: 120, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n function exportSimulationChanges() {\r\n vm.pleaseWait = new createSpinner();\r\n AXSecurityDesignerService.exportSimulationChanges(sim).then(response => {\r\n helperService.successfulSaveButton(vm.pleaseWait);\r\n }).catch(response => {\r\n vm.pleaseWait.loadingValue = false;\r\n errorsDataService.catch(response);\r\n });\r\n }\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n}","import swal from \"sweetalert2\";\r\nimport NewAXSecurityModelModalController from \"./NewAXSecurityModelModal.controller\";\r\nimport PartialAXSecurityDesignerChangesModalController from \"../PartialAXSecurityDesignerChangesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, AXSecurityDesignerService, $filter, $location, helperService, errorsDataService) {\r\n\r\n $scope.itemsPerPage = 4;\r\n $scope.currentPage = 1;\r\n\r\n const vm = this;\r\n\r\n vm.filterSecurityModels = filterSecurityModels;\r\n vm.publishSimulation = publishSimulation;\r\n vm.deleteSimulation = deleteSimulation;\r\n vm.viewDetails = viewDetails;\r\n vm.createRiskAnalysis = createRiskAnalysis;\r\n vm.preselectSimulationNavigateToPage = preselectSimulationNavigateToPage;\r\n vm.changePublic = changePublic;\r\n vm.openAXNewSecurityModelModal = openAXNewSecurityModelModal;\r\n vm.openAXSecurityDesignerChanges = openAXSecurityDesignerChanges;\r\n vm.checkForSimulationModifications = checkForSimulationModifications;\r\n vm.sortSecurityModels = sortSecurityModels;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getSimulations();\r\n await filterSecurityModels();\r\n await sortSecurityModels(vm.sortMethod);\r\n await checkForSimulationModifications();\r\n }\r\n\r\n $scope.$on('RiskAnalysis', () => activate());\r\n $scope.$on('PublishSecurityDesignerChanges', () => activate());\r\n\r\n function filterSecurityModels(num) {\r\n\r\n vm.activeModels = [];\r\n vm.deployedModels = [];\r\n\r\n vm.activeModels = vm.securityModels.filter(m => m.Status !== 'Deployed');\r\n vm.deployedModels = vm.securityModels.filter(m => m.Status === 'Deployed');\r\n\r\n if (num === 0) vm.filteredModels = vm.activeModels;\r\n else if (num === 1) vm.filteredModels = vm.deployedModels;\r\n\r\n else if (!num) {\r\n if (vm.activeModels.length > 0) {\r\n vm.toggle = 0;\r\n vm.filteredModels = vm.activeModels;\r\n } else {\r\n vm.toggle = 1;\r\n vm.filteredModels = vm.deployedModels;\r\n }\r\n }\r\n vm.filteredCount = vm.filteredModels.length;\r\n }\r\n\r\n async function publishSimulation(sim) {\r\n\r\n let postBody = { \"SimulationId\": sim.Id };\r\n\r\n try {\r\n await swal(helperService.areYouSureParams('Publish Security Model', 'Are you sure you want to publish this security model to your Dynamics 365 environment?', 'Publish'));\r\n sim.pleaseWait = true;\r\n AXSecurityDesignerService.publishSimulation(sim.Id, postBody);\r\n } catch(_) {\r\n return;\r\n }\r\n }\r\n\r\n function sortSecurityModels(num) {\r\n if (num === 1) {\r\n vm.filteredModels = $filter('orderBy')(vm.filteredModels, 'Name');\r\n } else if (num === 2) {\r\n vm.filteredModels = $filter('orderBy')(vm.filteredModels, '-Name');\r\n } else if (num === 3) {\r\n vm.filteredModels = $filter('orderBy')(vm.filteredModels, 'DateLastModified');\r\n } else if (num === 4) {\r\n vm.filteredModels = $filter('orderBy')(vm.filteredModels, '-DateLastModified');\r\n } else if (!num) {\r\n vm.filteredModels = $filter('orderBy')(vm.filteredModels, 'Name');\r\n }\r\n }\r\n\r\n function viewDetails(dataItem) {\r\n $location.path('/SecurityDesigner/Dynamics365forFinanceandSupplyChainSimulationDetails').search({\r\n SimulationId: dataItem.Id\r\n });\r\n }\r\n\r\n function createRiskAnalysis(dataItem) {\r\n\r\n dataItem.Status = \"Analyzing\";\r\n let postBody = { SimulationId: dataItem.Id };\r\n\r\n AXSecurityDesignerService.createRiskAnalysis(dataItem.Id, postBody);\r\n }\r\n\r\n async function getSimulations() {\r\n try {\r\n let response = await AXSecurityDesignerService.getSimulations();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.securityModels = response.data;\r\n vm.securityModels = vm.securityModels.map(model => { model.toggleInfo = false; return model; });\r\n filterSecurityModels(vm.toggle);\r\n } catch(err) {\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n async function checkForSimulationModifications() {\r\n for (const sim of vm.securityModels) {\r\n try{\r\n let response = await AXSecurityDesignerService.viewChanges(sim);\r\n //check for new roles, duties, or privileges created\r\n if (response.data.CreatedSecurityLayers.length > 0) {\r\n response.data.CreatedSecurityLayers.forEach(creation => {\r\n\r\n if (creation.Type === 'Role' && sim.Status !== 'Deployed') {\r\n sim.modifiedRoles = true;\r\n } else if (creation.Type === 'Duty' && sim.Status !== 'Deployed') {\r\n sim.modifiedDuties = true;\r\n } else if (creation.Type === 'Privilege' && sim.Status !== 'Deployed') {\r\n sim.modifiedPrivileges = true;\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n //check for toggling changes made\r\n if (response.data.ParentToChild.length > 0) {\r\n response.data.ParentToChild.forEach(change => {\r\n\r\n if (change.ParentObjectType === 'Role' && sim.Status !== 'Deployed') {\r\n sim.modifiedRoles = true;\r\n } else if (change.ParentObjectType === 'Duty' && sim.Status !== 'Deployed') {\r\n sim.modifiedDuties = true;\r\n } else if (change.ParentObjectType === 'Privilege' && sim.Status !== 'Deployed') {\r\n sim.modifiedPrivileges = true;\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n //check for dropdown modifying changes made\r\n if (response.data.ParentToObject.length > 0) {\r\n response.data.ParentToObject.forEach(change => {\r\n\r\n if (change.ParentObjectType === 'Role' && sim.Status !== 'Deployed') {\r\n sim.modifiedRoles = true;\r\n } else if (change.ParentObjectType === 'Duty' && sim.Status !== 'Deployed') {\r\n sim.modifiedDuties = true;\r\n } else if (change.ParentObjectType === 'Privilege' && sim.Status !== 'Deployed') {\r\n sim.modifiedPrivileges = true;\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n //check for any removed security layers\r\n if (response.data.RemovedSecurityLayers.length > 0) {\r\n response.data.RemovedSecurityLayers.forEach(removal => {\r\n\r\n if (removal.Type === 'Role' && sim.Status !== 'Deployed') {\r\n sim.modifiedRoles = true;\r\n } else if (removal.Type === 'Duty' && sim.Status !== 'Deployed') {\r\n sim.modifiedDuties = true;\r\n } else if (removal.Type === 'Privilege' && sim.Status !== 'Deployed') {\r\n sim.modifiedPrivileges = true;\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n } catch(_) {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n function preselectSimulationNavigateToPage(simulation, page) {\r\n localStorage.setItem(\"LastSelectedAX7SecurityModel\", simulation.Id);\r\n $location.path('/SecurityDesigner/Place/Dynamics365forFinanceandSupplyChain' + page);\r\n }\r\n\r\n async function changePublic(simulation, boolValue) {\r\n\r\n simulation.IsPublic = boolValue;\r\n\r\n let putBody = {\r\n \"Id\": simulation.Id,\r\n \"Name\": simulation.Name,\r\n \"IsPublic\": boolValue\r\n };\r\n\r\n try {\r\n await AXSecurityDesignerService.changePublic(simulation.Id, putBody);\r\n } catch(_) {\r\n simulation.IsPublic = !boolValue;\r\n }\r\n }\r\n\r\n async function deleteSimulation(simulation) { \r\n try {\r\n await swal(helperService.areYouSureParams('Delete Security Model', 'Are you sure you want to delete the ' + simulation.Name + ' security model?', 'Delete'));\r\n simulation.pleaseWait = true;\r\n await AXSecurityDesignerService.deleteSimulation(simulation.Id);\r\n simulation.pleaseWait = false;\r\n activate();\r\n } catch {\r\n simulation.pleaseWait = false;\r\n }\r\n }\r\n\r\n function openAXNewSecurityModelModal() {\r\n let modal = $uibModal.open({\r\n templateUrl: 'App/Components/AXSecurityDesigner/SecurityModels/NewAXSecurityModelModal.html',\r\n controller: NewAXSecurityModelModalController,\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n modal.result\r\n .then(_ => { activate(); });\r\n }\r\n\r\n function openAXSecurityDesignerChanges(simulationModel) {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/PartialAXSecurityDesignerChanges.html',\r\n controller: PartialAXSecurityDesignerChangesModalController,\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n sim: () => simulationModel\r\n },\r\n size: 'lg'\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, AXSecurityDesignerService, errorsDataService, $http, $location, helperService) {\r\n\r\n var vm = $scope.vm = {};\r\n var sim = $scope.sim = {};\r\n\r\n $scope.helperService = helperService;\r\n $scope.isCollapsed = true;\r\n $scope.pageParams = $location.search();\r\n $scope.selectedDetailView = null;\r\n\r\n vm.exportSimulationAnalysis = exportSimulationAnalysis;\r\n\r\n var statusColumn = { title: \"Status\", field: \"Status\", width: 125, filterable: customAutoCompleteFilter, template: '{{dataItem.Status}}' };\r\n\r\n $scope.changeSelectedView = function (view) {\r\n $scope.selectedDetailView = view;\r\n };\r\n\r\n function getRoleLicenses() {\r\n\r\n $scope.roleLicenses_dataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + $scope.pageParams.SimulationId + '/analysis/roleLicenses').then(function (response) {\r\n options.success(response.data);\r\n }, function errorCallback(response) {\r\n options.error();\r\n });\r\n\r\n }\r\n }\r\n });\r\n\r\n var columns = [\r\n { title: \"Role ID\", field: \"RoleId\", filterable: customAutoCompleteFilter },\r\n { title: \"Role Name\", field: \"RoleName\", filterable: customAutoCompleteFilter },\r\n { title: \"Current License\", field: \"CurrentLicense\", filterable: customAutoCompleteFilter },\r\n { title: \"New License\", field: \"SimulationLicense\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n $scope.roleLicenses_gridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.roleLicenses_gridOptions.selectable = false;\r\n\r\n }\r\n\r\n function getUserLicenses() {\r\n\r\n $scope.userLicenses_dataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + $scope.pageParams.SimulationId + '/analysis/userLicenses').then(function (response) {\r\n options.success(response.data);\r\n }, function errorCallback(response) {\r\n options.error();\r\n });\r\n\r\n }\r\n }\r\n });\r\n\r\n var columns = [\r\n { title: \"User ID\", field: \"UserId\", filterable: customAutoCompleteFilter },\r\n { title: \"User Name\", field: \"UserName\", filterable: customAutoCompleteFilter },\r\n { title: \"Current License\", field: \"CurrentLicense\", filterable: customAutoCompleteFilter },\r\n { title: \"New License\", field: \"SimulationLicense\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n $scope.userLicenses_gridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.userLicenses_gridOptions.selectable = false;\r\n\r\n }\r\n\r\n function getRoleRisks() {\r\n\r\n $scope.roleRisks_dataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + $scope.pageParams.SimulationId + '/analysis/rolerisks').then(function (response) {\r\n options.success(response.data);\r\n }, function errorCallback(response) {\r\n options.error();\r\n });\r\n\r\n }\r\n }\r\n });\r\n\r\n var columns = [\r\n { title: \"Role Name\", field: \"RoleName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk ID\", field: \"RiskId\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Name\", field: \"RiskName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Type\", field: \"RiskType\", filterable: customAutoCompleteFilter }\r\n ];\r\n columns.push(statusColumn);\r\n\r\n $scope.roleRisks_gridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.roleRisks_gridOptions.selectable = false;\r\n\r\n }\r\n\r\n function getRoleBusinessProcess() {\r\n\r\n $scope.roleBusinessProcess_dataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + $scope.pageParams.SimulationId + '/analysis/rolebpaccess').then(function (response) {\r\n options.success(response.data);\r\n }, function errorCallback(response) {\r\n options.error();\r\n });\r\n\r\n }\r\n }\r\n });\r\n\r\n var columns = [\r\n { title: \"Role Name\", field: \"RoleName\", filterable: customAutoCompleteFilter },\r\n { title: \"Object Name\", field: \"BusinessProcessName\", filterable: customAutoCompleteFilter }\r\n ];\r\n columns.push(statusColumn);\r\n\r\n $scope.roleBusinessProcess_gridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.roleBusinessProcess_gridOptions.selectable = false;\r\n\r\n }\r\n\r\n function getUserRisks() {\r\n\r\n $scope.userRisks_dataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + $scope.pageParams.SimulationId + '/analysis/userrisks').then(function (response) {\r\n options.success(response.data);\r\n }, function errorCallback(response) {\r\n options.error();\r\n });\r\n\r\n }\r\n }\r\n });\r\n\r\n var columns = [\r\n { title: \"User Name\", field: \"UserName\", filterable: customAutoCompleteFilter },\r\n { title: \"Company Name\", field: \"CompanyName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk ID\", field: \"RiskId\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Name\", field: \"RiskName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Type\", field: \"RiskType\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n columns.push(statusColumn);\r\n\r\n $scope.userRisks_gridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.userRisks_gridOptions.selectable = false;\r\n\r\n }\r\n\r\n function getUserBusinssProcess() {\r\n\r\n $scope.userBusinessProcess_dataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + $scope.pageParams.SimulationId + '/analysis/userbpaccess').then(function (response) {\r\n options.success(response.data);\r\n }, function errorCallback(response) {\r\n options.error();\r\n });\r\n\r\n }\r\n }\r\n });\r\n\r\n var columns = [\r\n { title: \"User Name\", field: \"UserName\", filterable: customAutoCompleteFilter },\r\n { title: \"Company Name\", field: \"CompanyName\", filterable: customAutoCompleteFilter },\r\n { title: \"Object Name\", field: \"BusinessProcessName\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n columns.push(statusColumn);\r\n\r\n $scope.userBusinessProcess_gridOptions = helperService.setMainGridOptions(columns, null);\r\n $scope.userBusinessProcess_gridOptions.selectable = false;\r\n\r\n }\r\n\r\n vm.statisticsLoading = true;\r\n\r\n function getStatistics() {\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + $scope.pageParams.SimulationId + '/analysis/statistics').then(function (response) {\r\n vm.statisticsLoading = false;\r\n vm.selectedSimulationStatistics = response.data;\r\n }, function errorCallback(response) {\r\n vm.statisticsLoading = false;\r\n });\r\n\r\n }\r\n\r\n vm.loadingChanges = true;\r\n if ($scope.pageParams.SimulationId) {\r\n $http.get(apiUrl + 'api/securitydesigner/simulation/' + $scope.pageParams.SimulationId).then(function (response) {\r\n vm.selectedSimulation = response.data;\r\n if (vm.selectedSimulation.ProductId === 'AX7') {\r\n vm.selectedSimulation.ProductName = 'Dynamics 365 for Finance and Supply Chain';\r\n }\r\n vm.selectedSimulation.toggleInfo = false;\r\n\r\n getStatistics();\r\n\r\n getRoleLicenses();\r\n getUserLicenses();\r\n\r\n getRoleRisks();\r\n getRoleBusinessProcess();\r\n\r\n getUserRisks();\r\n getUserBusinssProcess();\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/simulation/' + $scope.pageParams.SimulationId + '/changes').then(function (response) {\r\n\r\n AXSecurityDesignerService.changeActionVerbiage(response.data);\r\n\r\n sim.SimulationChanges = response.data;\r\n vm.loadingChanges = false;\r\n }, function errorCallback(response) {\r\n vm.loadingChanges = false;\r\n });\r\n\r\n }, function errorCallback(response) {\r\n vm.loadingChanges = false;\r\n });\r\n }\r\n\r\n $scope.determineLabelClass = function (ActionName) {\r\n return AXSecurityDesignerService.determineLabelClass(ActionName);\r\n };\r\n\r\n function exportSimulationAnalysis() {\r\n vm.pleaseWait = new createSpinner();\r\n AXSecurityDesignerService.exportSimulationAnalysis(vm.selectedSimulation).then(response => {\r\n helperService.successfulSaveButton(vm.pleaseWait);\r\n }).catch(response => {\r\n vm.pleaseWait.loadingValue = false;\r\n errorsDataService.catch(response);\r\n });\r\n }\r\n\r\n}\r\n","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, taskRecordingDataService, productType) {\r\n\r\n var vm = this;\r\n vm.productType = productType;\r\n\r\n vm.cancel = cancel;\r\n vm.importRecording = importRecording;\r\n vm.filterName = filterName;\r\n\r\n async function importRecording(files) {\r\n\r\n\r\n var fd = new FormData();\r\n\r\n if (files.length === 1) {\r\n fd.append(\"Name\", vm.updatedFileName);\r\n fd.append(\"TaskRecordings\", files[0].file);\r\n } else if (files.length > 1) {\r\n files.forEach(f => {\r\n // Name is taken care of on the back-end\r\n fd.append(\"Name\", \" \");\r\n fd.append(\"TaskRecordings\", f.file);\r\n });\r\n }\r\n\r\n vm.disableSubmit = true;\r\n vm.pleaseWait = new createSpinner();\r\n\r\n try {\r\n let response = await taskRecordingDataService.importTaskRecording(productType, fd);\r\n vm.killModal = true;\r\n vm.pleaseWait.loadingValue = false;\r\n let newTaskRecordingId = response.data;\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n $uibModalInstance.close(newTaskRecordingId);\r\n } catch {\r\n vm.disableSubmit = false;\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n\r\n }\r\n\r\n function filterName(files) {\r\n // Split the file name at the . and take the first chunk\r\n vm.updatedFileName = files[0].file.name.split('.')[0];\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModalInstance, helperService, taskRecordingDataService, productType, taskRecording) {\r\n\r\n const vm = this;\r\n\r\n vm.cancel = cancel;\r\n vm.exportMenuItems = exportMenuItems;\r\n\r\n function activate() {\r\n getMenuItems();\r\n }\r\n\r\n activate();\r\n\r\n function getMenuItems() {\r\n taskRecordingDataService.getMenuItems(productType, taskRecording.Id).then(response => {\r\n vm.menuItemsList = response.data;\r\n vm.menuItemsList = $filter('orderBy')(vm.menuItemsList, 'ObjectLabel');\r\n });\r\n }\r\n\r\n function exportMenuItems() {\r\n vm.exportInProgress = new createSpinner();\r\n taskRecordingDataService.exportMenuItems(productType, taskRecording.Id)\r\n .then(response => {\r\n helperService.successfulSaveButton(vm.exportInProgress);\r\n vm.exportInProgress.loadingValue = false;\r\n }).catch(response => {\r\n vm.exportInProgress.loadingValue = false;\r\n });\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, taskRecordingDataService, productType, taskRecording) {\r\n\r\n const vm = this;\r\n\r\n vm.oldName = taskRecording.Name;\r\n vm.name = taskRecording.Name;\r\n vm.cancel = cancel;\r\n vm.renameTaskRecording = renameTaskRecording;\r\n\r\n async function renameTaskRecording() {\r\n\r\n vm.pleaseWait = new createSpinner();\r\n\r\n let data = {\r\n \"Id\": taskRecording.Id,\r\n \"Name\": vm.name\r\n };\r\n\r\n try {\r\n await taskRecordingDataService.renameTaskRecording(productType, taskRecording.Id, data);\r\n vm.killModal = true;\r\n vm.pleaseWait.loadingValue = false;\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.disableSubmit = false;\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n\r\n }\r\n\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($route, $filter, $uibModalInstance, helperService, errorsDataService, taskRecordingDataService, AXSecurityDesignerService, dataObject, missingItemsArray) {\r\n\r\n const vm = this;\r\n\r\n vm.missingItemsArray = missingItemsArray;\r\n vm.showExistingSecurityModelView = showExistingSecurityModelView;\r\n vm.showNewSecurityModelView = showNewSecurityModelView;\r\n vm.addMissingMenuItemsToExistingSecurityModel = addMissingMenuItemsToExistingSecurityModel;\r\n vm.addMissingMenuItemsToNewSecurityModel = addMissingMenuItemsToNewSecurityModel;\r\n vm.cancel = cancel;\r\n\r\n function activate() {\r\n getSimulations();\r\n }\r\n\r\n activate();\r\n\r\n function getSimulations() {\r\n vm.gettingSimulations = true;\r\n AXSecurityDesignerService.getSimulations().then(response => {\r\n vm.gettingSimulations = false;\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.availableSimulations = response.data;\r\n }).catch(response => {\r\n errorsDataService.catch(response);\r\n });\r\n }\r\n\r\n function showExistingSecurityModelView() {\r\n\r\n vm.editSecurityModel = true;\r\n vm.createSecurityModel = false;\r\n\r\n vm.newSecurityModelIconFaded = true;\r\n vm.existingSecurityModelIconFaded = false;\r\n }\r\n\r\n function showNewSecurityModelView() {\r\n\r\n vm.editSecurityModel = false;\r\n vm.createSecurityModel = true;\r\n\r\n vm.newSecurityModelIconFaded = false;\r\n vm.existingSecurityModelIconFaded = true;\r\n }\r\n\r\n function addMissingMenuItemsToExistingSecurityModel() {\r\n\r\n vm.editingSecurityModel = new createSpinner();\r\n\r\n let data = {\r\n SimulationId: vm.selectedSimulation.Id,\r\n TaskRecordingId: dataObject.TaskRecordingId,\r\n SecurityLayerName: dataObject.SecurityLayerName,\r\n LayerType: dataObject.LayerType,\r\n ObjectsToAdd: dataObject.ObjectsToAdd\r\n };\r\n\r\n taskRecordingDataService.addMissingMenuItems(vm.selectedSimulation.ProductId, data.SimulationId, data).then(async response => {\r\n vm.killModal = true;\r\n vm.editingSecurityModel.loadingValue = false;\r\n await helperService.successfulSaveButton(vm.editingSecurityModel).then(result => {\r\n $uibModalInstance.close();\r\n $route.reload();\r\n });\r\n }).catch(response => {\r\n vm.disableSubmit = false;\r\n vm.editingSecurityModel.loadingValue = false;\r\n });\r\n }\r\n\r\n function addMissingMenuItemsToNewSecurityModel() {\r\n\r\n vm.addingSecurityModel = new createSpinner();\r\n\r\n let newSecurityModelFormData = {\r\n \"Name\": vm.newSecurityModelName,\r\n \"ProductId\": \"AX7\"\r\n };\r\n\r\n taskRecordingDataService.createNewSecurityModel(newSecurityModelFormData).then(response => {\r\n\r\n vm.newSecurityModelId = response.data;\r\n\r\n vm.completeObject = {\r\n SimulationId: vm.newSecurityModelId,\r\n TaskRecordingId: dataObject.TaskRecordingId,\r\n SecurityLayerName: dataObject.SecurityLayerName,\r\n LayerType: dataObject.LayerType,\r\n ObjectsToAdd: dataObject.ObjectsToAdd\r\n };\r\n\r\n }).then(_ => {\r\n taskRecordingDataService.addMissingMenuItems(newSecurityModelFormData.ProductId, vm.newSecurityModelId, vm.completeObject).then(async response => {\r\n vm.killModal = true;\r\n vm.addingSecurityModel.loadingValue = false;\r\n await helperService.successfulSaveButton(vm.addingSecurityModel).then(result => {\r\n $uibModalInstance.close();\r\n $route.reload();\r\n });\r\n });\r\n }).catch(response => {\r\n errorsDataService.catch(response);\r\n vm.disableSubmit = false;\r\n vm.addingSecurityModel.loadingValue = false;\r\n });\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n}","import swal from \"sweetalert2\";\r\nimport importTaskRecordingModalController from \"./importTaskRecordingModal.controller\";\r\nimport viewMenuItemsModalController from \"./viewMenuItemsModal.controller\";\r\nimport renameTaskRecordingModalController from \"./renameTaskRecordingModal.controller\";\r\nimport addMissingMenuItemsModalController from \"./addMissingMenuItemsModal.controller\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $route, objectIdDataService, $uibModal, helperService, taskRecordingDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.openImportTaskRecordingModal = openImportTaskRecordingModal;\r\n vm.getSelectedTaskRecordingOverview = getSelectedTaskRecordingOverview;\r\n vm.selectedSecurityTypeDropdownChange = selectedSecurityTypeDropdownChange;\r\n vm.getSelectedSecurityLayerTypeItemDetails = getSelectedSecurityLayerTypeItemDetails;\r\n vm.addMissingMenuItems = addMissingMenuItems;\r\n vm.openAddMissingMenuItemsModal = openAddMissingMenuItemsModal;\r\n vm.accessTypeForAddingFirst = accessTypeForAddingFirst;\r\n vm.selectAllTaskRecordings = selectAllTaskRecordings;\r\n vm.selectTaskRecording = selectTaskRecording;\r\n vm.deleteSelectedTaskRecordings = deleteSelectedTaskRecordings;\r\n\r\n vm.selectedTaskRecordings = [];\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'View Menu Items',\r\n click: item => {\r\n openViewMenuItemsModal(item.taskRecording);\r\n }\r\n },\r\n {\r\n text: 'Change Name',\r\n click: item => {\r\n openRenameTaskRecordingModal(item.taskRecording);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n deleteTaskRecording(item.taskRecording);\r\n }\r\n }\r\n ];\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.productType = await getProductType();\r\n getTaskRecordings();\r\n }\r\n\r\n async function getProductType() {\r\n let objectId = await objectIdDataService.getObjectID();\r\n return helperService.getSecurityObjectDetailsFromObjectId(objectId).ProductType;\r\n }\r\n\r\n async function getTaskRecordings(newTaskRecordingId) {\r\n let response = await taskRecordingDataService.getTaskRecordings(vm.productType);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n if (newTaskRecordingId) {\r\n let newTaskRecording = response.data.find(tr => tr.Id === newTaskRecordingId);\r\n response.data = response.data.filter(i => i.Id !== newTaskRecording.Id);\r\n response.data.unshift(newTaskRecording);\r\n vm.taskRecordingsDataSource = response.data;\r\n vm.selectedTaskRecording = newTaskRecording;\r\n getSelectedTaskRecordingOverview(newTaskRecording);\r\n } else {\r\n vm.taskRecordingsDataSource = response.data;\r\n }\r\n }\r\n\r\n async function getSelectedTaskRecordingOverview(taskRecording) {\r\n vm.selectedSecurityType = null;\r\n vm.securityLayerItem = null;\r\n vm.selectedTaskRecording = taskRecording;\r\n\r\n if (taskRecording) {\r\n vm.taskRecordingInProgress = true;\r\n\r\n getMenuItems();\r\n\r\n try {\r\n let response = await taskRecordingDataService.getSelectedTaskRecordingOverview(vm.productType, taskRecording.Id);\r\n vm.selectedSecurityObjects = response.data;\r\n vm.selectedSecurityObjects = $filter('orderBy')(vm.selectedSecurityObjects, ['-Count', 'SecurityLayerLabel']);\r\n vm.selectedSecurityObjectsCopy = [...vm.selectedSecurityObjects];\r\n vm.taskRecordingInProgress = false;\r\n vm.availableSecurityTypes = [...new Set(vm.selectedSecurityObjects.map(item => item.SecurityLayerType))];\r\n } catch {\r\n vm.taskRecordingInProgress = false;\r\n }\r\n }\r\n }\r\n\r\n async function getMenuItems() {\r\n let response = await taskRecordingDataService.getMenuItems(vm.productType, vm.selectedTaskRecording.Id);\r\n vm.menuItemsList = response.data;\r\n vm.menuItemsList = $filter('orderBy')(vm.menuItemsList, 'ObjectLabel');\r\n }\r\n\r\n function selectedSecurityTypeDropdownChange() {\r\n vm.securityLayerItem = null;\r\n vm.selectedSecurityObjects = [];\r\n if (vm.selectedSecurityType) {\r\n vm.selectedSecurityObjects = vm.selectedSecurityObjectsCopy.filter(item => item.SecurityLayerType === vm.selectedSecurityType);\r\n } else {\r\n vm.selectedSecurityObjects = vm.selectedSecurityObjectsCopy;\r\n }\r\n }\r\n\r\n async function getSelectedSecurityLayerTypeItemDetails(securityLayerItem) {\r\n vm.securityLayerItemDetailsLoading = true;\r\n vm.securityLayerItem = securityLayerItem;\r\n let response = await taskRecordingDataService.getSelectedSecurityLayerTypeItemDetails(vm.productType, securityLayerItem.TaskRecordingId, securityLayerItem.SecurityLayerName, vm.selectedSecurityType);\r\n vm.securityLayerItemObjects = response.data;\r\n vm.securityLayerItemObjects = $filter('orderBy')(vm.securityLayerItemObjects, 'SecurityObjectLabel');\r\n vm.securityLayerItemObjects.forEach(object => {\r\n if (object.AccessType === 'None') {\r\n let matchingMenuItem = vm.menuItemsList.find(menuItem => getAccessTypeForAdding(menuItem, object));\r\n object.AccessTypeForAdding = matchingMenuItem.AccessType;\r\n }\r\n });\r\n vm.objectsToAdd = vm.securityLayerItemObjects.filter(object => object.AccessTypeForAdding);\r\n vm.securityLayerItemDetailsLoading = false;\r\n }\r\n\r\n function getAccessTypeForAdding(menuItem, object) {\r\n return menuItem.ObjectName.toLowerCase() === object.SecurityObjectName.toLowerCase() && menuItem.ObjectType.toLowerCase() === object.SecurityObjectType.toLowerCase();\r\n }\r\n\r\n function accessTypeForAddingFirst(arr) {\r\n return !arr.AccessTypeForAdding;\r\n }\r\n\r\n async function deleteTaskRecording(taskRecording) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Task Recording', `Are you sure you want to delete the ${taskRecording.Name} task recording?`, 'Delete'));\r\n await taskRecordingDataService.deleteTaskRecording(vm.productType, taskRecording.Id);\r\n if (taskRecording.Id === vm.selectedTaskRecording.Id) {\r\n vm.selectedTaskRecording = null;\r\n vm.selectedSecurityType = null;\r\n vm.securityLayerItem = null;\r\n }\r\n getTaskRecordings();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function addMissingMenuItems() {\r\n vm.missingMenuItems = vm.objectsToAdd.map(object => {\r\n return {\r\n AccessType: object.AccessTypeForAdding,\r\n SecurityObjectId: object.SecurityObjectName,\r\n SecurityObjectType: object.SecurityObjectType.replace(/\\s+/g, '') // Removes spaces from string.\r\n }\r\n });\r\n\r\n const data = {\r\n TaskRecordingId: vm.selectedTaskRecording.Id,\r\n SecurityLayerName: vm.securityLayerItem.SecurityLayerName,\r\n LayerType: vm.securityLayerItem.SecurityLayerType,\r\n ObjectsToAdd: vm.missingMenuItems\r\n };\r\n\r\n vm.partialDataObject = data;\r\n\r\n }\r\n\r\n async function openImportTaskRecordingModal() {\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/taskRecordingManager/importTaskRecordingModal.html',\r\n controller: importTaskRecordingModalController,\r\n controllerAs: 'itrmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n productType: () => vm.productType\r\n }\r\n });\r\n\r\n try {\r\n let newTaskRecordingId = await openModal.result;\r\n getTaskRecordings(newTaskRecordingId);\r\n } catch {\r\n openModal.close();\r\n }\r\n }\r\n\r\n function openViewMenuItemsModal(item) {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/taskRecordingManager/viewMenuItemsModal.html',\r\n controller: viewMenuItemsModalController,\r\n controllerAs: 'vmivm',\r\n backdrop: 'static',\r\n resolve: {\r\n taskRecording: () => item,\r\n productType: () => vm.productType\r\n }\r\n });\r\n }\r\n\r\n async function openRenameTaskRecordingModal(item) {\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/taskRecordingManager/renameTaskRecordingModal.html',\r\n controller: renameTaskRecordingModalController,\r\n controllerAs: 'rtrmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n taskRecording: () => item,\r\n productType: () => vm.productType\r\n }\r\n });\r\n\r\n try {\r\n await openModal.result;\r\n getTaskRecordings();\r\n } catch {\r\n openModal.close();\r\n }\r\n }\r\n\r\n async function openAddMissingMenuItemsModal() {\r\n addMissingMenuItems();\r\n\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/taskRecordingManager/addMissingMenuItemsModal.html',\r\n controller: addMissingMenuItemsModalController,\r\n controllerAs: 'ammivm',\r\n backdrop: 'static',\r\n resolve: {\r\n dataObject: () => vm.partialDataObject,\r\n missingItemsArray: () => vm.objectsToAdd\r\n }\r\n });\r\n\r\n try {\r\n await openModal.result;\r\n $route.reload();\r\n } catch {\r\n openModal.close();\r\n }\r\n }\r\n\r\n function selectTaskRecording(recording) {\r\n // either remove or add the recording to the list of selected recordings\r\n if (recording.Selected) {\r\n vm.selectedTaskRecordings.push(recording);\r\n } else {\r\n vm.selectedTaskRecordings = vm.selectedTaskRecordings.filter(item => item.Id !== recording.Id);\r\n }\r\n vm.allRecordingsSelected = vm.selectedTaskRecordings.length === vm.taskRecordingsDataSource.length;\r\n }\r\n\r\n function selectAllTaskRecordings() {\r\n vm.taskRecordingsDataSource.forEach(taskRecording => {\r\n taskRecording.Selected = vm.allRecordingsSelected;\r\n });\r\n vm.selectedTaskRecordings = vm.allRecordingsSelected ? [...vm.taskRecordingsDataSource] : [];\r\n }\r\n\r\n async function deleteSelectedTaskRecordings() {\r\n vm.bulkDeletePending = new createSpinner();\r\n let selectedTaskRecordingIds, postBody;\r\n selectedTaskRecordingIds = vm.selectedTaskRecordings.map(taskRecording => taskRecording.Id);\r\n postBody = { \"TaskRecordingIds\": selectedTaskRecordingIds };\r\n try {\r\n await taskRecordingDataService.bulkDeleteTaskRecordings(vm.productType, postBody);\r\n vm.bulkDeletePending.loadingValue = false;\r\n await getTaskRecordings();\r\n vm.allRecordingsSelected = false;\r\n vm.selectAllTaskRecordings();\r\n vm.selectRecordingsMode = false;\r\n vm.selectedTaskRecording = null;\r\n vm.selectedSecurityType = null;\r\n } catch {\r\n vm.bulkDeletePending.loadingValue = false;\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($http, $q, $filter, helperService, errorsDataService) {\r\n\r\n const factory = {\r\n populateSystemNameIfCustom,\r\n changeFilter,\r\n SetInitialModifiedValueElseChangeModified,\r\n determineLabelClass,\r\n DeleteModificationToObject,\r\n AssignChildToParent,\r\n AssignChildObjectToParent,\r\n setDataSourceDefaultsAndMapProperties,\r\n formRemoveSecurityLayerSentance,\r\n createTablesModalDataSource,\r\n changeActionVerbiage,\r\n getSimulations,\r\n viewChanges,\r\n exportSimulationChanges,\r\n exportSimulationAnalysis,\r\n createRiskAnalysis,\r\n publishSimulation,\r\n deleteSimulation,\r\n changePublic\r\n };\r\n\r\n return factory;\r\n\r\n function populateSystemNameIfCustom(data) {\r\n data.forEach(function (row) {\r\n if (row.IsCustom === true) {\r\n row.SystemName = row.Name;\r\n }\r\n });\r\n }\r\n\r\n function changeFilter(selectedFilter, dataSource, filterField) {\r\n if (selectedFilter === \"Changed\") {\r\n var selectedFilter = { field: filterField, operator: \"equalto\", value: true };\r\n dataSource.filter(selectedFilter);\r\n } else if (selectedFilter === \"Modified\") {\r\n var selectedFilter = { field: \"IsModified\", operator: \"equalto\", value: true };\r\n dataSource.filter(selectedFilter);\r\n } else {\r\n dataSource.filter({});\r\n }\r\n }\r\n\r\n function SetInitialModifiedValueElseChangeModified(dataItem) {\r\n if (typeof dataItem.InitialModifiedValue === 'undefined') {\r\n dataItem.InitialModifiedValue = dataItem.IsModified;\r\n dataItem.IsModified = !dataItem.IsModified;\r\n } else {\r\n dataItem.IsModified = !dataItem.IsModified;\r\n }\r\n }\r\n\r\n function determineLabelClass(ActionName) {\r\n if (ActionName === 'Modify') {\r\n return 'label-modify';\r\n } else if (ActionName === 'Add') {\r\n return 'label-add';\r\n } else if (ActionName === 'Remove' || ActionName === 'Delete') {\r\n return 'label-remove';\r\n }\r\n }\r\n\r\n function DeleteModificationToObject(dataItem, selectedSimulation, objectOpenInModal, securityLayerType) {\r\n\r\n var deferred = $q.defer();\r\n\r\n $http.get(apiUrl + 'api/securitydesigner/ax7/simulation/' + selectedSimulation.Id + '/securityobjectassociations').then(function (response) {\r\n var modification = response.data.filter(e => e.ChildObjectId.toLowerCase() === dataItem.Name.toLowerCase() && e.ParentObjectId.toLowerCase() === objectOpenInModal.SystemName.toLowerCase())[0];\r\n\r\n if (modification) {\r\n $http.delete(apiUrl + 'api/securitydesigner/ax7/simulation/securityobjectassociations/' + modification.Id).then(function (response) {\r\n var selectedSecurityLayer = objectOpenInModal[securityLayerType].filter(e => e.SystemName.toLowerCase() === dataItem.Name.toLowerCase())[0];\r\n\r\n selectedSecurityLayer.Create = dataItem.Create = selectedSecurityLayer.OldCreate || 'Unset';\r\n selectedSecurityLayer.Delete = dataItem.Delete = selectedSecurityLayer.OldDelete || 'Unset';\r\n selectedSecurityLayer.Invoke = dataItem.Invoke = selectedSecurityLayer.OldInvoke || 'Unset';\r\n selectedSecurityLayer.Read = dataItem.Read = selectedSecurityLayer.OldRead || 'Unset';\r\n selectedSecurityLayer.Update = dataItem.Update = selectedSecurityLayer.OldUpdate || 'Unset';\r\n selectedSecurityLayer.IsModified = dataItem.IsModified = false;\r\n\r\n if (securityLayerType === \"Tables\" || securityLayerType === \"MenuItems\" || securityLayerType === \"DataEntities\") {\r\n if (selectedSecurityLayer.OldCreate === 'Unset' && selectedSecurityLayer.OldDelete === 'Unset' && selectedSecurityLayer.OldInvoke === 'Unset' && selectedSecurityLayer.OldRead === 'Unset' && selectedSecurityLayer.OldUpdate === 'Unset') {\r\n objectOpenInModal[securityLayerType].remove(selectedSecurityLayer);\r\n } else if (selectedSecurityLayer.OldCreate || selectedSecurityLayer.OldDelete || selectedSecurityLayer.OldInvoke || selectedSecurityLayer.OldRead || selectedSecurityLayer.OldUpdate) {\r\n //Do nothing\r\n } else {\r\n objectOpenInModal[securityLayerType].remove(selectedSecurityLayer);\r\n }\r\n\r\n if (dataItem.Create !== 'Unset' || dataItem.Delete !== 'Unset' || dataItem.Read !== 'Unset' || dataItem.Update !== 'Unset') {\r\n dataItem.ContainsAssigningValue = true;\r\n } else {\r\n dataItem.ContainsAssigningValue = false;\r\n }\r\n } else if (securityLayerType === \"ServiceOperations\") {\r\n if (selectedSecurityLayer.OldInvoke === 'Unset') {\r\n objectOpenInModal[securityLayerType].remove(selectedSecurityLayer);\r\n } else if (selectedSecurityLayer.OldInvoke) {\r\n //Do nothing\r\n } else {\r\n objectOpenInModal[securityLayerType].remove(selectedSecurityLayer);\r\n }\r\n\r\n if (dataItem.Invoke !== 'Unset') {\r\n dataItem.ContainsAssigningValue = true;\r\n } else {\r\n dataItem.ContainsAssigningValue = false;\r\n }\r\n }\r\n\r\n deferred.resolve();\r\n\r\n }, function errorCallback(response) {\r\n deferred.reject();\r\n });\r\n }\r\n }, function errorCallback(response) {\r\n deferred.reject();\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n function AssignChildToParent({ SimulationId, ChildItem, ChildType, ParentItem, ParentType, Action }) {\r\n\r\n var postData = {\r\n \"SimulationId\": SimulationId,\r\n \"ParentChildAssociation\": [\r\n {\r\n \"ParentObjectId\": ParentItem.SystemName || ParentItem.Name,\r\n \"ParentObjectType\": ParentType,\r\n \"ParentIsCustom\": ParentItem.IsCustom,\r\n\r\n \"ChildObjectId\": ChildItem.SystemName || ChildItem.Name,\r\n \"ChildObjectType\": ChildType,\r\n \"ChildIsCustom\": ChildItem.IsCustom,\r\n\r\n \"Action\": Action\r\n }\r\n ]\r\n };\r\n\r\n $http.post(apiUrl + 'api/securitydesigner/ax7/simulation/' + SimulationId + '/securitylayerassociations', postData).then(function successCallback(response) {\r\n return;\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n async function AssignChildObjectToParent({ SimulationId, ChildItem, ChildType, ParentItem, ParentType }) {\r\n\r\n var postData = {\r\n \"SimulationId\": SimulationId,\r\n \"ParentObjectAssociation\": [\r\n {\r\n \"ParentObjectId\": ParentItem.SystemName,\r\n \"ParentObjectType\": ParentType,\r\n \"ParentIsCustom\": ParentItem.IsCustom,\r\n\r\n \"ChildObjectId\": ChildItem.SystemName,\r\n \"ChildObjectType\": ChildType,\r\n\r\n \"OldRead\": ChildItem.OldRead,\r\n \"OldUpdate\": ChildItem.OldUpdate,\r\n \"OldCreate\": ChildItem.OldCreate,\r\n \"OldDelete\": ChildItem.OldDelete,\r\n \"OldInvoke\": ChildItem.OldInvoke,\r\n\r\n \"Read\": ChildItem.Read,\r\n \"Update\": ChildItem.Update,\r\n \"Create\": ChildItem.Create,\r\n \"Delete\": ChildItem.Delete,\r\n \"Invoke\": ChildItem.Invoke\r\n }\r\n ]\r\n };\r\n\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/ax7/simulation/${SimulationId}/securityobjectassociations`, postData)\r\n } catch ({ data: error }) {\r\n helperService.showErrorMessage(error);\r\n }\r\n }\r\n\r\n function setDataSourceDefaultsAndMapProperties(array, currentItems, menuItems) {\r\n array.forEach(function (row) {\r\n row.Create = 'Unset';\r\n row.Delete = 'Unset';\r\n row.Read = 'Unset';\r\n row.Update = 'Unset';\r\n row.Invoke = 'Unset';\r\n row.IsModified = false;\r\n });\r\n\r\n array.forEach(function (row) {\r\n\r\n for (var i = 0; i < currentItems.length; i++) {\r\n if (menuItems) {\r\n if (row.Name.toLowerCase() === currentItems[i].SystemName.toLowerCase() && row.Type === currentItems[i].Type) {\r\n row.Create = currentItems[i].Create;\r\n row.Delete = currentItems[i].Delete;\r\n row.Invoke = currentItems[i].Invoke;\r\n row.IsModified = currentItems[i].IsModified;\r\n row.OldCreate = currentItems[i].OldCreate;\r\n row.OldDelete = currentItems[i].OldDelete;\r\n row.OldInvoke = currentItems[i].OldInvoke;\r\n row.OldRead = currentItems[i].OldRead;\r\n row.OldUpdate = currentItems[i].OldUpdate;\r\n row.Read = currentItems[i].Read;\r\n row.SystemName = currentItems[i].SystemName;\r\n row.Update = currentItems[i].Update;\r\n row.Type = currentItems[i].Type;\r\n break;\r\n }\r\n } else {\r\n if (row.Name.toLowerCase() === currentItems[i].SystemName.toLowerCase()) {\r\n row.Create = currentItems[i].Create;\r\n row.Delete = currentItems[i].Delete;\r\n row.Invoke = currentItems[i].Invoke;\r\n row.IsModified = currentItems[i].IsModified;\r\n row.OldCreate = currentItems[i].OldCreate;\r\n row.OldDelete = currentItems[i].OldDelete;\r\n row.OldInvoke = currentItems[i].OldInvoke;\r\n row.OldRead = currentItems[i].OldRead;\r\n row.OldUpdate = currentItems[i].OldUpdate;\r\n row.Read = currentItems[i].Read;\r\n row.SystemName = currentItems[i].SystemName;\r\n row.Update = currentItems[i].Update;\r\n row.Type = currentItems[i].Type;\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function formRemoveSecurityLayerSentance(data, securityLayerType) {\r\n if (securityLayerType === 1) {\r\n var message = 'Are you sure you want to remove this role?';\r\n\r\n if (data.Roles.length > 0) {\r\n message = 'This role is a sub-role of the following roles: ';\r\n data.Roles.forEach(function (row) {\r\n message = message + row + ', ';\r\n });\r\n message = message.slice(0, -2);\r\n message = message + '. Are you sure you want to remove this role?';\r\n }\r\n } else if (securityLayerType === 2) {\r\n var message = 'Are you sure you want to remove this duty?';\r\n\r\n if (data.Roles.length > 0) {\r\n message = 'This duty belongs to the following roles: ';\r\n data.Roles.forEach(function (row) {\r\n message = message + row + ', ';\r\n });\r\n message = message.slice(0, -2);\r\n message = message + '. Are you sure you want to remove this duty?';\r\n }\r\n } else if (securityLayerType === 3) {\r\n var message = 'Are you sure you want to remove this privilege?';\r\n var dutiesMessage = '';\r\n var rolesMessage = '';\r\n\r\n if (data.Duties.length > 0) {\r\n dutiesMessage = 'This privilege belongs to the following duties: ';\r\n data.Duties.forEach(function (row) {\r\n dutiesMessage = dutiesMessage + row + ', ';\r\n });\r\n dutiesMessage = dutiesMessage.slice(0, -2);\r\n dutiesMessage = dutiesMessage + '. ';\r\n }\r\n\r\n if (data.Roles.length > 0) {\r\n rolesMessage = 'This privilege belongs to the following roles: ';\r\n data.Roles.forEach(function (row) {\r\n rolesMessage = rolesMessage + row + ', ';\r\n });\r\n rolesMessage = rolesMessage.slice(0, -2);\r\n rolesMessage = rolesMessage + '. ';\r\n }\r\n\r\n message = rolesMessage + dutiesMessage + 'Are you sure you want to remove this privilege?';\r\n\r\n }\r\n return message;\r\n }\r\n\r\n function createTablesModalDataSource(item, vm) {\r\n var currentItems = item.Tables;\r\n\r\n\r\n var columns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter, width: 200 },\r\n { title: \"Label\", field: \"Label\", filterable: customAutoCompleteFilter, width: 200 },\r\n { title: \"Read\", field: \"Read\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"Update\", field: \"Update\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"Create\", field: \"Create\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"Delete\", field: \"Delete\", template: ``, filterable: customAutoCompleteFilter },\r\n { title: \"ContainsAssigningValue\", field: \"ContainsAssigningValue\", hidden: true }\r\n ];\r\n\r\n if (!item.IsCustom) {\r\n columns.push({ title: \" \", field: \"IsModified\", template: \"\", width: 50, filterable: false });\r\n }\r\n\r\n vm.manageSecurityLayerGridOptions = helperService.setMainGridOptions(columns, null);\r\n vm.manageSecurityLayerGridOptions.selectable = false;\r\n\r\n vm.manageSecurityLayerGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n sort: { field: \"Name\", dir: \"asc\" },\r\n transport: {\r\n read: function (options) {\r\n vm.selectedSecurityDesignerTables = vm.securityDesignerTables.slice();\r\n setDataSourceDefaultsAndMapProperties(vm.selectedSecurityDesignerTables, currentItems);\r\n\r\n vm.selectedSecurityDesignerTables.forEach(function (row) {\r\n if (row.Create !== 'Unset' || row.Delete !== 'Unset' || row.Read !== 'Unset' || row.Update !== 'Unset') {\r\n row.ContainsAssigningValue = true;\r\n } else {\r\n row.ContainsAssigningValue = false;\r\n }\r\n });\r\n\r\n vm.selectedSecurityDesignerTables = $filter('orderBy')(vm.selectedSecurityDesignerTables, 'Name');\r\n options.success(vm.selectedSecurityDesignerTables);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function changeActionVerbiage(data) {\r\n function changeActionVerbiage(array) {\r\n array.forEach(function (row) {\r\n if (row.Action === \"Grant\") {\r\n row.Action = \"Add\";\r\n }\r\n if (row.Action === \"Revoke\") {\r\n row.Action = \"Remove\";\r\n }\r\n });\r\n }\r\n\r\n function manipulateSecurityLayers(array) {\r\n array.forEach(function (row) {\r\n if (row.Action === \"Grant\" && !row.IsCustom) {\r\n row.Action = \"Modify\";\r\n }\r\n if (row.Action === \"Grant\") {\r\n row.Action = \"Add\";\r\n }\r\n if (row.Action === \"Remove\") {\r\n row.Action = \"Delete\";\r\n }\r\n if (row.Duties) {\r\n changeActionVerbiage(row.Duties);\r\n }\r\n if (row.Privileges) {\r\n changeActionVerbiage(row.Privileges);\r\n }\r\n if (row.SubRoles) {\r\n changeActionVerbiage(row.SubRoles);\r\n }\r\n });\r\n }\r\n\r\n manipulateSecurityLayers(data.ParentToChild);\r\n manipulateSecurityLayers(data.ParentToChild);\r\n manipulateSecurityLayers(data.ParentToChild);\r\n }\r\n\r\n function getSimulations() {\r\n return $http.get(apiUrl + 'api/securitydesigner/simulation').then(response => {\r\n return response;\r\n }).catch(response => {\r\n errorsDataService.catch(response);\r\n });\r\n }\r\n\r\n function viewChanges(sim) {\r\n return $http.get(apiUrl + 'api/securitydesigner/simulation/' + sim.Id + '/changes').then(response => {\r\n return response;\r\n }).catch(response => {\r\n errorsDataService.catch(response);\r\n });\r\n }\r\n\r\n function exportSimulationChanges(sim) {\r\n\r\n let data = {\r\n \"SimulationId\": sim.Id\r\n };\r\n\r\n return $http.post(apiUrl + 'api/securitydesigner/simulation/' + sim.Id + '/changes/export', data).then(response => {\r\n return response;\r\n }).catch(response => {\r\n errorsDataService.catch(response);\r\n });\r\n }\r\n\r\n function exportSimulationAnalysis(sim) {\r\n\r\n let data = {\r\n \"SimulationId\": sim.Id\r\n };\r\n\r\n return $http.post(apiUrl + 'api/securitydesigner/simulation/' + sim.Id + '/analysis/export', data).then(response => {\r\n return response;\r\n }).catch(response => {\r\n errorsDataService.catch(response);\r\n });\r\n }\r\n\r\n async function createRiskAnalysis(Id, formData) {\r\n try {\r\n return await $http.post(apiUrl + `api/securitydesigner/simulation/${Id}/analyze`, formData);\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n async function publishSimulation(Id, formData) {\r\n try {\r\n return await $http.post(apiUrl + `api/securitydesigner/simulation/${Id}/publish`, formData);\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n async function deleteSimulation(Id) {\r\n try {\r\n return await $http.delete(apiUrl + `api/securitydesigner/simulation/${Id}`);\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n async function changePublic(Id, formData) {\r\n try {\r\n return await $http.put(apiUrl + `api/securitydesigner/simulation/${Id}`, formData);\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n throw err;\r\n }\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getTaskRecordings,\r\n getSelectedTaskRecordingOverview,\r\n importTaskRecording,\r\n deleteTaskRecording,\r\n bulkDeleteTaskRecordings,\r\n getMenuItems,\r\n renameTaskRecording,\r\n getSelectedSecurityLayerTypeItemDetails,\r\n addMissingMenuItems,\r\n createNewSecurityModel,\r\n exportMenuItems\r\n };\r\n\r\n return service;\r\n\r\n async function getTaskRecordings(productType) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/${productType}/taskrecording/`);\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function getSelectedTaskRecordingOverview(productType, Id) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/${productType}/taskrecording/${Id}/securitylayer/overview`);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function getSelectedSecurityLayerTypeItemDetails(productType, Id, securityLayerName, securityLayerType) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/${productType}/taskrecording/${Id}/securitylayer/${securityLayerName}/securitylayertype/${securityLayerType}/details`)\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function getMenuItems(productType, Id) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/${productType}/taskrecording/${Id}/details`)\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function importTaskRecording(productType, formData) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/${productType}/taskrecording`, formData, { transformRequest: angular.identity, headers: { 'Content-Type': undefined } });\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function exportMenuItems(productType, Id) {\r\n let postData = {};\r\n postData.taskRecordingId = Id;\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/${productType}/taskrecording/${Id}/menuitems/export`, postData)\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function renameTaskRecording(productType, Id, formData) {\r\n try {\r\n return await $http.put(`${apiUrl}api/securitydesigner/${productType}/taskrecording/${Id}`, formData)\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function deleteTaskRecording(productType, Id) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/securitydesigner/${productType}/taskrecording/${Id}`)\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function bulkDeleteTaskRecordings(productType, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/${productType}/taskrecording/bulkdelete`, data)\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function addMissingMenuItems(productType, Id, formData) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/${productType}/simulation/${Id}/addmissingobjects`, formData)\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function createNewSecurityModel(formData) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/simulation`, formData)\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function($http, errorsDataService) {\r\n\r\n const service = {\r\n getTables,\r\n getFields,\r\n getFieldAccess,\r\n updateFieldAccess,\r\n deleteModification\r\n };\r\n\r\n return service;\r\n\r\n async function getTables() {\r\n try {\r\n const res = await $http.get(`${apiUrl}api/securitydesigner/ax7/tables`);\r\n return res;\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getFields(tableName) {\r\n try {\r\n const res = await $http.get(`${apiUrl}api/securitydesigner/ax7/table/${tableName}/fields`);\r\n return res;\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getFieldAccess(simulationId, privilegeName, tableName) {\r\n try {\r\n const res = await $http.get(`${apiUrl}api/securitydesigner/ax7/simulation/${simulationId}/privilegeaccess/${privilegeName}/table/${tableName}/fieldaccess`);\r\n return res;\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateFieldAccess(simulationId, body) {\r\n try {\r\n await $http.post(`${apiUrl}api/securitydesigner/ax7/simulation/${simulationId}/securityobjectassociations`, body);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function deleteModification(simulationId, field) {\r\n try {\r\n const relationships = await $http.get(`${apiUrl}api/securitydesigner/ax7/simulation/${simulationId}/securityobjectassociations`);\r\n const modification = relationships.data.find(item => item.ChildObjectId.toLowerCase() === field.Id.toLowerCase());\r\n $http.delete(`${apiUrl}api/securitydesigner/ax7/simulation/securityobjectassociations/${modification.Id}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getSecurityMigrations,\r\n getSecurityMigrationDetails,\r\n exportMigration,\r\n addSecurityMigration,\r\n updateSecurityMigration,\r\n updateSecurityMigrationDetails,\r\n updateSecurityMigrationDetailEnabled,\r\n deleteSecurityMigration\r\n };\r\n\r\n return service;\r\n\r\n // GET Requests\r\n\r\n async function getSecurityMigrations() {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/ax7/securitymigration`);\r\n }\r\n catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSecurityMigrationDetails(migrationId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/ax7/securitymigration/header/${migrationId}/details`);\r\n }\r\n catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function exportMigration(migrationId, exportType) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/ax7/securitymigration/${migrationId}/type/${exportType}/export`, { responseType: \"blob\" });\r\n }\r\n catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n\r\n // POST Requests\r\n\r\n async function addSecurityMigration(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/ax7/securitymigration`, data, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // PUT Requests\r\n\r\n async function updateSecurityMigration(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/securitydesigner/ax7/securitymigration/${data.Id}`, data);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateSecurityMigrationDetails(headerId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/securitydesigner/ax7/securitymigration/header/${headerId}/detail/${data.Id}`, data);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateSecurityMigrationDetailEnabled(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/securitydesigner/ax7/securitymigration/header/${data.HeaderId}/details`, data);\r\n }\r\n catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // DELETE Requests\r\n\r\n async function deleteSecurityMigration(migrationId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/securitydesigner/ax7/securitymigration/${migrationId}`);\r\n } catch(err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getSimulations,\r\n getRoles,\r\n getSimulation,\r\n getSimulationItemsByType,\r\n getSimulationChanges,\r\n getSimulationAuthObjects,\r\n getIntegrationSettings,\r\n createSimulation,\r\n analyzeSimulation,\r\n publishSimulation,\r\n updateSimulation,\r\n updateIntegrationSettings,\r\n deleteSimulation\r\n };\r\n\r\n return factory;\r\n\r\n async function getSimulations() {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/simulation`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRoles() {\r\n try {\r\n return await $http.get(`${apiUrl}api/assure/sap/roles`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSimulation(simulationId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/simulation/${simulationId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSimulationItemsByType(simulationId, type) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/${type}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSimulationChanges(simulationId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/changes`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getIntegrationSettings(productId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/connections/${productId}/integration`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSimulationAuthObjects(simulationId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/authorizationobjects`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function createSimulation(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/simulation`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function analyzeSimulation(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/simulation/${data.SimulationId}/analyze`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function publishSimulation(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/simulation/${data.SimulationId}/publish`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function updateSimulation(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/securitydesigner/simulation/${data.Id}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateIntegrationSettings(productId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/securitydesigner/sap/connections/${productId}/integration`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteSimulation(simulationId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/securitydesigner/simulation/${simulationId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(error) {\r\n errorsDataService.catch(error);\r\n }\r\n\r\n function sendError(error) {\r\n throw error;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getSimulationCompositeRoles,\r\n getCompositeRoleRoles,\r\n addCompositeRoleToSimulation,\r\n addRoleToCompositeRole,\r\n updateCompositeRole,\r\n copyCompositeRoleToSimulation,\r\n editCompositeRoleToSimulation,\r\n deleteCompositeRole,\r\n removeRoleFromCompositeRole\r\n };\r\n\r\n return factory;\r\n\r\n async function getSimulationCompositeRoles(simulationId, params) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/compositeroles`, {\r\n params: params\r\n });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getCompositeRoleRoles(simulationId, compositeRoleId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/compositeroles/${compositeRoleId}/roles`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function addCompositeRoleToSimulation(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/compositeroles`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addRoleToCompositeRole(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/compositeroles/${data.CompositeRoleId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateCompositeRole(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/compositeroles/${data.CompositeRoleId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function copyCompositeRoleToSimulation(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/compositeroles/copy`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function editCompositeRoleToSimulation(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/compositeroles/edit`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteCompositeRole(simulationId, compositeRoleId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/compositeroles/${compositeRoleId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeRoleFromCompositeRole(simulationId, compositeRoleId, roleId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/compositeroles/${compositeRoleId}/roles/${roleId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(error) {\r\n errorsDataService.catch(error);\r\n }\r\n\r\n function sendError(error) {\r\n throw error;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getSimulationRoles,\r\n getRoleItemsByType,\r\n getRoleAuthObjects,\r\n getAuthObjectFields,\r\n getFieldValues,\r\n getRoleOrgLevels,\r\n getFieldValueOptions,\r\n addRoleToSimulation,\r\n copyRoleToSimulation,\r\n editRoleToSimulation,\r\n addItemToSimulationRoleByType,\r\n addAuthObjectToSimulationRole,\r\n addFieldValue,\r\n grantRoleFullAuthorization,\r\n updateSimulationRole,\r\n removeRoleFromSimulation,\r\n removeItemFromRole,\r\n deleteFieldValue\r\n };\r\n\r\n return factory;\r\n\r\n async function getSimulationRoles(simulationId, params) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles`, {\r\n params: params\r\n });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRoleItemsByType(simulationId, roleId, type) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/${type}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRoleAuthObjects(simulationId, roleId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/authorizationobjects`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAuthObjectFields(simulationId, roleId, authObjectId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/authorizationobjects/${authObjectId}/fields`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getFieldValues(simulationId, roleId, objectId, fieldId) {\r\n let url;\r\n // if we have authorization object id we need to call the GET route for auth object field values - otherwise we are calling route for org level field values\r\n if (fieldId) {\r\n url = `${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/authorizationobjects/${objectId}/fields/${fieldId}/values`;\r\n } else {\r\n url = `${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/organizationlevel/${objectId}/values`;\r\n }\r\n\r\n try {\r\n return await $http.get(url);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRoleOrgLevels(simulationId, roleId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/organizationlevels`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getFieldValueOptions(simulationId, roleId, objectId, fieldId) {\r\n let url;\r\n // if we have authorization object id we need to call the GET route for auth object field values - otherwise we are calling route for org level field values\r\n if (fieldId) {\r\n url = `${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/authorizationobjects/${objectId}/fields/${fieldId}/valueoptions`;\r\n } else {\r\n url = `${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/organizationlevels/${objectId}/valueoptions`;\r\n }\r\n\r\n try {\r\n return await $http.get(url);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function addRoleToSimulation(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/roles`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function copyRoleToSimulation(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/roles/copy`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function editRoleToSimulation(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/roles/edit`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addItemToSimulationRoleByType(data, type) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/roles/${data.RoleId}/${type}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addAuthObjectToSimulationRole(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/roles/${data.RoleId}/authorizationobjects`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addFieldValue(data) {\r\n let url;\r\n // if we have authorization object id we need to call the POST route for adding field value to auth object field - otherwise we are calling route for org level\r\n if (data.AuthorizationObjectId) {\r\n url = `${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/roles/${data.RoleId}/authorizationobjects/${data.AuthorizationObjectId}/fields/${data.FieldId}/values`;\r\n } else {\r\n url = `${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/roles/${data.RoleId}/organizationlevel/fields/${data.FieldId}/values`;\r\n }\r\n\r\n try {\r\n return await $http.post(url, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function grantRoleFullAuthorization(simulationId, roleId) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/grantfullauthorization`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateSimulationRole(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/securitydesigner/sap/simulations/${data.SimulationId}/roles/${data.RoleId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeRoleFromSimulation(simulationId, roleId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeItemFromRole(simulationId, roleId, itemId, type) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/${type}/${itemId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteFieldValue(simulationId, roleId, objectId, fieldId, fieldValueId) {\r\n let url;\r\n // if we have authorization object id we need to call the GET route for auth object field values - otherwise we are calling route for org level field values\r\n if (fieldId) {\r\n url = `${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/authorizationobjects/${objectId}/fields/${fieldId}/values/${fieldValueId}`;\r\n } else {\r\n url = `${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/roles/${roleId}/organizationlevels/${objectId}/values/${fieldValueId}`;\r\n }\r\n\r\n try {\r\n return await $http.delete(url);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function showError(error) {\r\n errorsDataService.catch(error);\r\n }\r\n\r\n function sendError(error) {\r\n throw error;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getSimulationAnalysisStats,\r\n getRiskAnalysisReportStatistics,\r\n exportRiskAnalysisReportDetails,\r\n analyzeSimulation\r\n };\r\n\r\n return factory;\r\n\r\n async function getSimulationAnalysisStats(simulationId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/analysis/statistics`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getRiskAnalysisReportStatistics(simulationId, type) {\r\n try {\r\n return await $http.get(`${apiUrl}api/securitydesigner/sap/simulations/${simulationId}/analysis/${type}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function exportRiskAnalysisReportDetails(simulationId, type) {\r\n try {\r\n const res = await $http.get(`${apiUrl}api/securityDesigner/sap/simulations/${simulationId}/analysis/${type}/export`, { responseType: 'blob' });\r\n return res;\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function analyzeSimulation(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/securitydesigner/simulation/${data.SimulationId}/analyze`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function showError(error) {\r\n errorsDataService.catch(error);\r\n }\r\n\r\n function sendError(error) {\r\n throw error;\r\n }\r\n\r\n}","import angular from 'angular';\r\nimport AXSecurityDesignerService from '../Components/AXSecurityDesigner/AXSecurityDesignerService';\r\nimport taskRecordingDataServiceFactory from '../APICalls/taskRecordingDataService.factory';\r\nimport AXSecurityDesignerPrivilegesDataServiceFactory from '../Components/AXSecurityDesigner/Privileges/AXSecurityDesignerPrivilegesDataService.factory';\r\nimport securityMigrationDataServiceFactory from '../Components/AXSecurityDesigner/SecurityMigration/securityMigrationDataService.factory';\r\nimport sapSdSimulationDataServiceFactory from '../Components/SAPSecurityDesigner/sapSdSimulationDataService.factory';\r\nimport sapSdSimCompositeRoleDataServiceFactory from '../Components/SAPSecurityDesigner/simulationCompositeRolesList/sapSdSimCompositeRoleDataService.factory';\r\nimport sapSdSimRoleDataServiceFactory from '../Components/SAPSecurityDesigner/simulationRolesList/sapSdSimRoleDataService.factory';\r\nimport sapSdSimRiskAnalysisDataServiceFactory from '../Components/SAPSecurityDesigner/simulationRiskAnalysis/sapSdSimRiskAnalysisDataService.factory';\r\n\r\nexport default angular\r\n .module('app.securityDesigner.factories', [])\r\n .factory('AXSecurityDesignerService', AXSecurityDesignerService)\r\n .factory('AXSecurityDesignerPrivilegesDataService', AXSecurityDesignerPrivilegesDataServiceFactory)\r\n .factory('taskRecordingDataService', taskRecordingDataServiceFactory)\r\n .factory('securityMigrationDataService', securityMigrationDataServiceFactory)\r\n .factory('sapSdSimulationDataService', sapSdSimulationDataServiceFactory)\r\n .factory('sapSdSimCompositeRoleDataService', sapSdSimCompositeRoleDataServiceFactory)\r\n .factory('sapSdSimRoleDataService', sapSdSimRoleDataServiceFactory)\r\n .factory('sapSdSimAnalysisDataService', sapSdSimRiskAnalysisDataServiceFactory)\r\n .name;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, securityMigrationDataService, helperService, migration) {\r\n const vm = this;\r\n\r\n vm.migration = { ...migration };\r\n vm.saveMigration = saveMigration;\r\n vm.cancel = cancel;\r\n\r\n async function saveMigration() {\r\n vm.migrationSavePending = new createSpinner();\r\n try {\r\n if (vm.migration.Id) {\r\n const data = {\r\n Id: vm.migration.Id,\r\n Name: vm.migration.Name\r\n };\r\n await securityMigrationDataService.updateSecurityMigration(data);\r\n await helperService.successfulSaveButton(vm.migrationSavePending);\r\n } else {\r\n let fd = new FormData();\r\n const fileObject = vm.file.flow.files[0];\r\n const fileName = fileObject.name;\r\n const file = fileObject.file;\r\n fd.append('SecurityFile', file);\r\n fd.append('Name', vm.migration.Name);\r\n await securityMigrationDataService.addSecurityMigration(fd);\r\n await helperService.successfulSaveButton(vm.migrationSavePending);\r\n }\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.migrationSavePending.loadingValue = false;\r\n return;\r\n }\r\n\r\n\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport migrationModalController from \"./migrationModal.controller\";\r\nimport createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (securityMigrationDataService, helperService, $uibModal, FileSaver) {\r\n const vm = this;\r\n\r\n vm.selectMigration = selectMigration;\r\n vm.openMigrationModal = openMigrationModal;\r\n\r\n vm.$onInit = activate;\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n openMigrationModal(item.securityMigration);\r\n }\r\n },\r\n {\r\n text: 'Export to Code',\r\n click: item => {\r\n exportMigration(item.securityMigration, 0);\r\n }\r\n },\r\n {\r\n text: 'Export to UI',\r\n click: item => {\r\n exportMigration(item.securityMigration, 1);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n deleteMigration(item.securityMigration);\r\n }\r\n }\r\n ];\r\n\r\n function activate() {\r\n getMigrations();\r\n }\r\n\r\n async function getMigrations() {\r\n let response = await securityMigrationDataService.getSecurityMigrations();\r\n vm.securityMigrationsDataSource = response.data;\r\n if (vm.selectedMigration) {\r\n selectMigration(vm.selectedMigration);\r\n }\r\n }\r\n\r\n function selectMigration(selectedMigration) {\r\n vm.selectedMigration = selectedMigration;\r\n vm.selectedMigrationChanged({ selectedMigration });\r\n }\r\n\r\n async function deleteMigration(migration) {\r\n try {\r\n await swal(helperService.areYouSureParams(\r\n `Delete Migration`,\r\n `Are you sure you want to delete the ${migration.Name} Security Migration?`,\r\n `Yes`,\r\n `No`\r\n ));\r\n await securityMigrationDataService.deleteSecurityMigration(migration.Id);\r\n getMigrations();\r\n if (vm.selectedMigration.Id === migration.Id) {\r\n vm.selectMigration(null);\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openMigrationModal(migration) {\r\n const migrationModal = $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/SecurityMigration/MigrationsList/migrationModal.html',\r\n controller: migrationModalController,\r\n controllerAs: 'mmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n migration: () => migration || null\r\n }\r\n });\r\n\r\n try {\r\n await migrationModal.result;\r\n await getMigrations();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function exportMigration(migration, exportType) {\r\n migration.exportUpdatePending = new createSpinner();\r\n try {\r\n let response = await securityMigrationDataService.exportMigration(migration.Id, exportType);\r\n FileSaver.saveAs(response.data, exportType === 1 ? `${helperService.removeSpaces(migration.Name)}.xml` : `${helperService.removeSpaces(migration.Name)}.zip`);\r\n migration.exportUpdatePending.loadingValue = false;\r\n } catch {\r\n migration.exportUpdatePending.loadingValue = false;\r\n }\r\n }\r\n}","import migrationsListController from \"./migrationsList.controller\";\r\n\r\n/* axSecurityDesignerMigrationsList.component.js */\r\n\r\n/**\r\n * @desc component for viewing review assignments\r\n * @example \r\n */\r\n\r\nconst axSecurityDesignerMigrationsList = {\r\n bindings: {\r\n selectedMigrationChanged: '&'\r\n\r\n },\r\n controller: migrationsListController,\r\n controllerAs: 'mlvm',\r\n templateUrl: '/App/Components/AXSecurityDesigner/SecurityMigration/MigrationsList/migrationsList.html'\r\n};\r\n\r\nexport default axSecurityDesignerMigrationsList;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, securityMigrationDataService, helperService, migrationDetail, migrationHeaderId) {\r\n const vm = this;\r\n\r\n vm.migrationDetail = { ...migrationDetail };\r\n vm.saveMigrationDetail = saveMigrationDetail;\r\n vm.cancel = cancel;\r\n\r\n async function saveMigrationDetail() {\r\n vm.migrationDetailsSavePending = new createSpinner();\r\n const data = {\r\n Id: vm.migrationDetail.Id,\r\n Name: vm.migrationDetail.Name,\r\n Label: vm.migrationDetail.Label,\r\n Description: vm.migrationDetail.Description,\r\n Enabled: vm.migrationDetail.Enabled\r\n };\r\n try {\r\n await securityMigrationDataService.updateSecurityMigrationDetails(migrationHeaderId, data);\r\n await helperService.successfulSaveButton(vm.migrationDetailsSavePending);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.migrationDetailsSavePending.loadingValue = false;\r\n return;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize, customBooleanFilter } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\nimport migrationDetailsEditModalController from \"./migrationDetailsEditModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (securityMigrationDataService, helperService, $uibModal) {\r\n const vm = this;\r\n\r\n vm.$onInit = activate;\r\n vm.$onChanges = updateGridDataSource;\r\n vm.openMigrationDetailsEditModal = openMigrationDetailsEditModal;\r\n vm.changeEnabledValue = changeEnabledValue;\r\n vm.changeAllEnabled = changeAllEnabled;\r\n vm.allSelected = false;\r\n\r\n function activate() {\r\n setupMigrationDetailsGrid();\r\n }\r\n\r\n function setupMigrationDetailsGrid() {\r\n let migrationDetailsGridColumns =\r\n [\r\n { field: \"Enabled\", title: \"Enabled\", template: ``, width: 65, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"HeaderId\", title: \"Header Id\", filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Label\", title: \"Label\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Type\", filterable: customAutoCompleteFilter },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 }\r\n ];\r\n\r\n vm.migrationDetailsGridOptions = helperService.setMainGridOptions(migrationDetailsGridColumns, 612);\r\n vm.migrationDetailsGridOptions.selectable = false;\r\n\r\n vm.migrationDetailsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n vm.loadingDetails = true;\r\n let response = await securityMigrationDataService.getSecurityMigrationDetails(vm.migration.Id);\r\n options.success(response.data);\r\n vm.allEnabled = checkEnabledValues(response.data);\r\n vm.loadingDetails = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n function updateGridDataSource() {\r\n if (vm.migrationDetailsGridDataSource) {\r\n vm.migrationDetailsGridDataSource.read();\r\n }\r\n }\r\n\r\n async function openMigrationDetailsEditModal(migrationDetailsRow) {\r\n const migrationModal = $uibModal.open({\r\n templateUrl: '/App/Components/AXSecurityDesigner/SecurityMigration/MigrationDetails/migrationDetailsEditModal.html',\r\n controller: migrationDetailsEditModalController,\r\n controllerAs: 'mdemvm',\r\n backdrop: 'static',\r\n resolve: {\r\n migrationDetail: () => migrationDetailsRow,\r\n migrationHeaderId: () => vm.migration.Id\r\n }\r\n });\r\n\r\n try {\r\n await migrationModal.result;\r\n await vm.migrationDetailsGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function checkEnabledValues(data) {\r\n if (data.every(item => item.Enabled)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n async function changeAllEnabled() {\r\n vm.allEnabledLoading = true;\r\n const data = {\r\n HeaderId: vm.migration.Id,\r\n Enabled: vm.allEnabled\r\n };\r\n try {\r\n await securityMigrationDataService.updateSecurityMigrationDetailEnabled(data);\r\n vm.migrationDetailsGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n vm.allEnabledLoading = false;\r\n }\r\n\r\n async function changeEnabledValue(detailItem) {\r\n vm.loadingDetails = true;\r\n const data = {\r\n Id: detailItem.Id,\r\n Enabled: detailItem.Enabled,\r\n Name: detailItem.Name,\r\n Label: detailItem.Label,\r\n Description: detailItem.Description\r\n };\r\n\r\n try {\r\n await securityMigrationDataService.updateSecurityMigrationDetails(vm.migration.Id, data);\r\n updateGridDataSource();\r\n } catch {\r\n return;\r\n }\r\n vm.loadingDetails = false;\r\n }\r\n}","import migrationDetailsGridController from \"./migrationDetailsGrid.controller\";\r\n\r\n/* migrationDetailsGrid.component.js */\r\n\r\n/**\r\n * @desc component for viewing review assignments\r\n * @example \r\n */\r\n\r\nconst axSecurityDesignerMigrationDetailsGrid = {\r\n bindings: {\r\n migration: '<'\r\n },\r\n controller: migrationDetailsGridController,\r\n controllerAs: 'mdgvm',\r\n templateUrl: '/App/Components/AXSecurityDesigner/SecurityMigration/MigrationDetails/migrationDetailsGrid.html'\r\n};\r\n\r\nexport default axSecurityDesignerMigrationDetailsGrid;","import simulationsController from \"./simulations.controller\";\r\n\r\n/* simulations.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining sap security designer simulations\r\n * @example \r\n */\r\n\r\nconst sapSdSimulations = {\r\n controller: simulationsController,\r\n controllerAs: 'ssdsvm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simulations.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulations;","export default /*@ngInject*/ function () {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedSimulation = changeSelectedSimulation;\r\n vm.changeSelectedRole = changeSelectedRole;\r\n vm.changeSelectedCompositeRole = changeSelectedCompositeRole;\r\n vm.changeSelectedAuthObject = changeSelectedAuthObject;\r\n vm.changeSelectedAuthObjectField = changeSelectedAuthObjectField;\r\n vm.changeSelectedOrgLevel = changeSelectedOrgLevel;\r\n vm.roleTypeChange = roleTypeChange;\r\n vm.backToSimulationList = backToSimulationList;\r\n vm.manageAuthorizations = manageAuthorizations;\r\n vm.defineOrgLevels = defineOrgLevels;\r\n vm.viewAnalysis = viewAnalysis;\r\n vm.simulationsListUpdated = simulationsListUpdated;\r\n vm.updateList = updateList;\r\n\r\n vm.roleType = 'singleRole';\r\n vm.manageAuthActive = false;\r\n vm.defineOrgLevelsActive = false;\r\n vm.backButtonText = 'Simulations';\r\n vm.updateSimulationsList = false;\r\n\r\n function changeSelectedSimulation(simulation) {\r\n if ((vm.selectedSimulation && vm.selectedSimulation.Id !== simulation?.Id) || !simulation) {\r\n vm.selectedRole = null;\r\n vm.selectedCompositeRole = null;\r\n vm.selectedSimulation = null;\r\n }\r\n vm.roleType = 'singleRole';\r\n vm.selectedSimulation = simulation;\r\n }\r\n\r\n function changeSelectedRole(role) {\r\n vm.selectedRole = role;\r\n }\r\n\r\n function changeSelectedCompositeRole(compositeRole) {\r\n vm.selectedCompositeRole = compositeRole;\r\n }\r\n\r\n function changeSelectedAuthObject(authObject) {\r\n vm.selectedAuthObjectField = null;\r\n vm.selectedAuthObject = authObject;\r\n }\r\n \r\n function changeSelectedAuthObjectField(field) {\r\n vm.selectedAuthObjectField = field;\r\n }\r\n\r\n function changeSelectedOrgLevel(orgLevel) {\r\n vm.selectedOrgLevel = orgLevel;\r\n }\r\n\r\n function roleTypeChange(type) {\r\n vm.selectedRole = null;\r\n vm.selectedCompositeRole = null;\r\n vm.roleType = type;\r\n }\r\n\r\n function backToSimulationList() {\r\n vm.manageAuthActive = false;\r\n vm.defineOrgLevelsActive = false;\r\n vm.viewAnalysisActive = false;\r\n // clear list selections\r\n vm.selectedAuthRole = null;\r\n vm.selectedAuthObject = null;\r\n vm.selectedAuthObjectField = null;\r\n vm.selectedOrgLevel = null;\r\n vm.selectedOrgLevelsRole = null;\r\n vm.selectedAnalysisSimulation = null;\r\n // refresh simulations list so statuses can be up to date\r\n vm.updateSimulationsList = true;\r\n }\r\n\r\n function manageAuthorizations(role) {\r\n vm.staticHeaderTitle = `SAP Security Designer Simulation Role Authorizations`;\r\n vm.staticHeaderDescription = `Manage Authorizations for Simulation Role ${role.Name}`;\r\n vm.selectedAuthRole = role;\r\n vm.manageAuthActive = true;\r\n }\r\n\r\n function defineOrgLevels(role) {\r\n vm.staticHeaderTitle = `SAP Security Designer Simulation Role Organizational Levels`;\r\n vm.staticHeaderDescription = `Define Organizational Levels for Simulation Role ${role.Name}`;\r\n vm.selectedOrgLevelsRole = role;\r\n vm.defineOrgLevelsActive = true;\r\n }\r\n\r\n function viewAnalysis(simulation) {\r\n vm.staticHeaderTitle = `SAP Security Designer Simulation Risk Analysis`;\r\n vm.staticHeaderDescription = `Risk Analysis for Simulation ${simulation.Name}`;\r\n vm.selectedAnalysisSimulation = simulation;\r\n vm.viewAnalysisActive = true;\r\n }\r\n\r\n function simulationsListUpdated(updateList) {\r\n vm.updateSimulationsList = updateList;\r\n }\r\n\r\n function updateList(listToUpdate) {\r\n switch (listToUpdate) {\r\n case 'authObjects':\r\n vm.selectedAuthRole = angular.copy(vm.selectedAuthRole);\r\n break;\r\n case 'objectFields':\r\n vm.selectedAuthObject = angular.copy(vm.selectedAuthObject);\r\n break;\r\n case 'orgLevels':\r\n vm.selectedOrgLevelsRole = angular.copy(vm.selectedOrgLevelsRole);\r\n break;\r\n }\r\n }\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, simulation, helperService, sapSdSimulationDataService, dataService) {\r\n const vm = this;\r\n\r\n vm.saveSimulation = saveSimulation;\r\n vm.cancel = cancel;\r\n\r\n vm.simulation = { ...simulation };\r\n\r\n activate();\r\n\r\n function activate() {\r\n getProducts();\r\n }\r\n\r\n async function getProducts() {\r\n let response = await dataService.getProducts();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n response.data = response.data.filter(product => product.Type === 'SAP');\r\n if (response.data.length === 1) {\r\n vm.selectedProduct = response.data[0];\r\n } else {\r\n vm.availableProducts = response.data;\r\n }\r\n }\r\n\r\n async function saveSimulation() {\r\n vm.savePending = new createSpinner();\r\n let data = {\r\n Name: vm.simulation.Name,\r\n IsPublic: vm.simulation.IsPublic\r\n };\r\n\r\n if (!vm.simulation.Id) {\r\n data['ProductId'] = vm.selectedProduct.ID;\r\n createSimulation(data);\r\n } else {\r\n data['Id'] = vm.simulation.Id;\r\n data.IsPublic = vm.simulation.IsPublic;\r\n updateSimulation(data);\r\n }\r\n }\r\n\r\n async function createSimulation(data) {\r\n try { \r\n let response = await sapSdSimulationDataService.createSimulation(data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(response.data);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function updateSimulation(data) {\r\n try {\r\n await sapSdSimulationDataService.updateSimulation(data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close(simulationId) {\r\n $uibModalInstance.close(simulationId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport simulationModalController from \"./simulationModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, sapSdSimulationDataService, sapSdSimAnalysisDataService, helperService, $uibModal, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.radioFilter = radioFilter;\r\n vm.changeSelectedSimulation = changeSelectedSimulation;\r\n vm.analyzeSimulation = analyzeSimulation;\r\n vm.publishSimulation = publishSimulation;\r\n vm.deleteSimulation = deleteSimulation;\r\n vm.viewRiskAnalysis = viewRiskAnalysis;\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Run Analysis',\r\n click: item => {\r\n vm.analyzeSimulation(item.simulation);\r\n },\r\n displayed: item => {\r\n return item.simulation.Status !== 'Analyzing' && item.simulation.Status !== 'Deploying' && item.simulation.Status !== 'Deployed' && item.simulation.Status !== 'ReadyToDeploy';\r\n }\r\n },\r\n {\r\n text: 'View Analysis',\r\n click: item => {\r\n vm.viewRiskAnalysis(item.simulation);\r\n },\r\n displayed: item => {\r\n return item.simulation.Status !== 'New' && item.simulation.Status !== 'Analyzing';\r\n }\r\n },\r\n {\r\n text: 'Publish',\r\n click: item => {\r\n vm.publishSimulation(item.simulation);\r\n },\r\n displayed: item => {\r\n return item.simulation.Status === 'ReadyToDeploy'\r\n }\r\n },\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n vm.openSimulationModal(item.simulation);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.deleteSimulation(item.simulation);\r\n },\r\n displayed: item => {\r\n return item.simulation.Status !== 'Deployed';\r\n }\r\n }\r\n ];\r\n\r\n vm.simulationsRadioFilter = 'Active';\r\n\r\n vm.openSimulationModal = openSimulationModal;\r\n\r\n vm.$onInit = activate;\r\n vm.$onChanges = onChanges;\r\n\r\n //Watch for risk analysis completion and update simulations list to clear any needs analysis labels\r\n $scope.$on('RiskAnalysis', (event, args) => {\r\n getSimulations();\r\n });\r\n\r\n //Watch for publish success and update simulations list to reflect proper deployed status\r\n $scope.$on('PublishSecurityDesignerChanges', async (event, args) => {\r\n await getSimulations();\r\n changeSelectedSimulation(null);\r\n });\r\n\r\n function activate() {\r\n getSimulations()\r\n }\r\n\r\n function onChanges(changes) {\r\n if (changes['updateSimulationsList'] && changes['updateSimulationsList'].currentValue === true) {\r\n getSimulations();\r\n vm.updateSimulationsList = false;\r\n const updateList = vm.updateSimulationsList;\r\n vm.onUpdateSimulationsList({ updateList });\r\n }\r\n }\r\n\r\n function radioFilter(simulation) {\r\n if (vm.simulationsRadioFilter === 'Active') {\r\n return simulation.Status !== 'Deployed';\r\n } else {\r\n return simulation.Status === 'Deployed';\r\n }\r\n }\r\n\r\n async function getSimulations(newSimulationId) {\r\n vm.simulationsLoading = true;\r\n let response = await sapSdSimulationDataService.getSimulations();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.simulations = response.data;\r\n if (newSimulationId) {\r\n const newestSimIndex = vm.simulations.findIndex(simulation => simulation.Id === newSimulationId);\r\n const newestSim = vm.simulations.find(simulation => simulation.Id === newSimulationId);\r\n vm.simulations.splice(newestSimIndex, 1);\r\n vm.simulations.unshift(newestSim);\r\n }\r\n vm.simulationsLoading = false;\r\n }\r\n\r\n function changeSelectedSimulation(simulation) {\r\n vm.onSelectedSimulationChanged({ simulation });\r\n }\r\n\r\n async function openSimulationModal(simulation) {\r\n let simulationModal = $uibModal.open({\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simulationsList/simulationModal.tmpl.html',\r\n controller: simulationModalController,\r\n controllerAs: 'smvm',\r\n backdrop: 'static',\r\n resolve: {\r\n simulation: () => simulation || null\r\n }\r\n });\r\n\r\n try {\r\n let newSimulationId = await simulationModal.result;\r\n await getSimulations(newSimulationId);\r\n if (newSimulationId) {\r\n // We know a new simulation was created so we need to select it\r\n changeSelectedSimulation(vm.simulations.find(simulation => simulation.Id === newSimulationId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function analyzeSimulation(simulation) {\r\n let data = {\r\n SimulationId: simulation.Id\r\n }\r\n try {\r\n await swal(helperService.areYouSureParams(`Run Analysis`, `Are you sure you want to run the Simulation Analysis for Simulation ${simulation.Name}?`, `Yes`, 'No'))\r\n await sapSdSimAnalysisDataService.analyzeSimulation(data);\r\n simulation.Status = 'Analyzing';\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function publishSimulation(simulation) {\r\n let data = {\r\n SimulationId: simulation.Id,\r\n }\r\n try {\r\n await swal(helperService.areYouSureParams(`Publish`, `Are you sure you want to Publish Simulation ${simulation.Name}?`, `Yes`, 'No'))\r\n await sapSdSimulationDataService.publishSimulation(data);\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function deleteSimulation(simulation) {\r\n vm.simulationsLoading = true;\r\n try {\r\n await swal(helperService.areYouSureParams(`Delete Simulation`, `Are you sure you want to delete Simulation ${simulation.Name}?`, `Yes`, 'No'))\r\n await sapSdSimulationDataService.deleteSimulation(simulation.Id);\r\n changeSelectedSimulation(null);\r\n getSimulations();\r\n } catch {\r\n vm.simulationsLoading = false;\r\n return;\r\n }\r\n }\r\n\r\n async function viewRiskAnalysis(simulation) {\r\n vm.onViewAnalysisClicked({ simulation });\r\n }\r\n}","import simulationsListController from \"./simulationsList.controller\";\r\n\r\n/* simulationsList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of sap security designer simulations\r\n * @example \r\n */\r\n\r\nconst sapSdSimulationsList = {\r\n bindings: {\r\n selectedSimulation: '<',\r\n updateSimulationsList: '<',\r\n onUpdateSimulationsList: '&',\r\n onSelectedSimulationChanged: '&',\r\n onViewAnalysisClicked: '&'\r\n },\r\n controller: simulationsListController,\r\n controllerAs: 'ssdslvm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simulationsList/simulationsList.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulationsList;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, simulation, actionType, role, existingRoles, helperService, sapSdSimRoleDataService) {\r\n const vm = this;\r\n\r\n vm.actionType = actionType;\r\n\r\n vm.changeRowSelected = changeRowSelected;\r\n vm.saveRole = saveRole;\r\n vm.cancel = cancel;\r\n\r\n vm.role = { ...role };\r\n\r\n activate();\r\n\r\n function activate() {\r\n if (actionType !== 'Add') {\r\n setupAvailableRolesGrid();\r\n }\r\n }\r\n\r\n function setupAvailableRolesGrid() {\r\n let availableRolesGridColumns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n ];\r\n\r\n vm.availableRolesGridOptions = helperService.setMainGridOptions(availableRolesGridColumns, null);\r\n\r\n vm.availableRolesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let params;\r\n if (vm.actionType === 'Edit') {\r\n params = {\r\n IsEditable: true\r\n };\r\n }\r\n let response = await sapSdSimRoleDataService.getSimulationRoles(simulation.Id, params);\r\n if (vm.actionType === 'Edit') {\r\n response.data = response.data.filter(masterRole => !existingRoles.some(role => role.Id == masterRole.Id));\r\n }\r\n response.data = $filter('orderBy')(response.data, \"Name\");\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function changeRowSelected(dataItem) {\r\n vm.selectedRole = dataItem.toJSON();\r\n }\r\n\r\n async function saveRole() {\r\n vm.savePending = new createSpinner();\r\n switch (vm.actionType) {\r\n case 'Add':\r\n addRole();\r\n break;\r\n case 'Edit':\r\n editRole();\r\n break;\r\n case 'EditExisting':\r\n updateExistingCustomRole();\r\n break;\r\n case 'Copy':\r\n copyRole();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n async function addRole() {\r\n let data = vm.role;\r\n data.SimulationId = simulation.Id;\r\n\r\n try {\r\n let response = await sapSdSimRoleDataService.addRoleToSimulation(data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(response.data);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function updateExistingCustomRole() {\r\n let data = {\r\n \"SimulationId\": simulation.Id,\r\n \"RoleId\": vm.role.Id,\r\n \"Name\": vm.role.Name,\r\n \"Description\": vm.role.Description,\r\n \"LongDescription\": vm.role.LongDescription\r\n };\r\n\r\n try {\r\n await sapSdSimRoleDataService.updateSimulationRole(data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function editRole() {\r\n let data = {\r\n SimulationId: simulation.Id,\r\n Name: vm.selectedRole.Name\r\n };\r\n\r\n try {\r\n let response = await sapSdSimRoleDataService.editRoleToSimulation(data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(response.data);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function copyRole() {\r\n let data = {\r\n SimulationId: simulation.Id,\r\n ExistingRoleName: vm.selectedRole.Name,\r\n NewRoleName: vm.role.Name\r\n };\r\n\r\n try {\r\n let response = await sapSdSimRoleDataService.copyRoleToSimulation(data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(response.data);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close(roleId) {\r\n $uibModalInstance.close(roleId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport roleModalController from \"./roleModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (sapSdSimRoleDataService, helperService, $uibModal, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedRole = changeSelectedRole;\r\n vm.openSimulationRoleModal = openSimulationRoleModal;\r\n vm.manageRoleAuthorizations = manageRoleAuthorizations;\r\n vm.manageOrganizationalLevels = manageOrganizationalLevels;\r\n vm.deleteSimulationRole = deleteSimulationRole;\r\n vm.changeRoleType = changeRoleType;\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Define Organizational Levels',\r\n click: item => {\r\n vm.manageOrganizationalLevels(item.role);\r\n }\r\n },\r\n {\r\n text: 'Authorizations...',\r\n children: _ => {\r\n return [\r\n {\r\n text: 'Manage Authorizations',\r\n click: item => {\r\n vm.manageRoleAuthorizations(item.role);\r\n }\r\n },\r\n {\r\n text: 'Grant Full Authorization',\r\n click: item => {\r\n grantRoleFullAuthorization(item.role);\r\n }\r\n },\r\n ];\r\n },\r\n },\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n vm.openSimulationRoleModal(\"EditExisting\", item.role);\r\n },\r\n displayed: modelValue => {\r\n return modelValue.role.IsCustom;\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.deleteSimulationRole(item.role);\r\n }\r\n }\r\n ];\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n vm.selectedRole = null;\r\n getRoles();\r\n }\r\n\r\n async function getRoles() {\r\n vm.rolesLoading = true;\r\n const params = {\r\n isModified: true\r\n };\r\n let response = await sapSdSimRoleDataService.getSimulationRoles(vm.simulation.Id, params);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.roles = response.data;\r\n vm.rolesLoading = false;\r\n }\r\n\r\n async function changeSelectedRole(role) {\r\n vm.selectedRole = role;\r\n vm.onSelectedRoleChange({ role });\r\n }\r\n\r\n async function openSimulationRoleModal(actionType, role) {\r\n let roleModal = $uibModal.open({\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simulationRolesList/roleModal.tmpl.html',\r\n controller: roleModalController,\r\n controllerAs: 'rmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n simulation: () => vm.simulation,\r\n actionType: () => actionType,\r\n role: () => role,\r\n existingRoles: () => vm.roles\r\n }\r\n });\r\n\r\n try {\r\n let roleId = await roleModal.result;\r\n await getRoles();\r\n if (roleId) {\r\n changeSelectedRole(vm.roles.find(r => r.Id === roleId));\r\n refreshSimulations();\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function manageRoleAuthorizations(role) {\r\n vm.onManageAuthClicked({ role });\r\n }\r\n\r\n async function manageOrganizationalLevels(role) {\r\n vm.onDefineOrgLevelsClicked({ role });\r\n }\r\n\r\n async function grantRoleFullAuthorization(role) {\r\n await sapSdSimRoleDataService.grantRoleFullAuthorization(vm.simulation.Id, role.Id);\r\n refreshSimulations();\r\n getRoles();\r\n }\r\n\r\n async function deleteSimulationRole(role) {\r\n try {\r\n await swal(helperService.areYouSureParams(`Remove Role`, `Are you sure you want to remove role ${role.Name} from simulation ${vm.simulation.Name}?`, `Yes`, 'No'));\r\n vm.rolesLoading = true;\r\n await sapSdSimRoleDataService.removeRoleFromSimulation(vm.simulation.Id, role.Id);\r\n changeSelectedRole(null);\r\n refreshSimulations();\r\n getRoles();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function changeRoleType() {\r\n let roleType = vm.selectedRoleType;\r\n vm.onRoleTypeChange({ roleType });\r\n }\r\n\r\n function refreshSimulations() {\r\n const updateList = true;\r\n vm.onUpdateSimulationsList({ updateList });\r\n }\r\n}","import rolesListController from \"./rolesList.controller\";\r\n\r\n/* rolesList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of sap security designer simulation roles\r\n * @example \r\n */\r\n\r\nconst sapSdSimulationRolesList = {\r\n bindings: {\r\n simulation: '<',\r\n selectedRoleType: '<',\r\n onUpdateSimulationsList: '&',\r\n onSelectedCompositeRoleChange: '&',\r\n onSelectedRoleChange: '&',\r\n onRoleTypeChange: '&',\r\n onManageAuthClicked: '&',\r\n onDefineOrgLevelsClicked: '&'\r\n },\r\n controller: rolesListController,\r\n controllerAs: 'rlvm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simulationRolesList/rolesList.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulationRolesList;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, simulation, actionType, compositeRole, helperService, sapSdSimCompositeRoleDataService) {\r\n const vm = this;\r\n\r\n vm.actionType = actionType;\r\n\r\n vm.changeRowSelected = changeRowSelected;\r\n vm.saveCompositeRole = saveCompositeRole;\r\n vm.cancel = cancel;\r\n\r\n vm.compositeRole = { ...compositeRole };\r\n\r\n activate();\r\n\r\n function activate() {\r\n if (actionType !== 'Add') {\r\n setupAvailableCompositeRolesGrid();\r\n }\r\n }\r\n\r\n function setupAvailableCompositeRolesGrid() {\r\n let availableCompositeRolesGridColumns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n ];\r\n\r\n vm.availableRolesGridOptions = helperService.setMainGridOptions(availableCompositeRolesGridColumns, null);\r\n\r\n vm.availableRolesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let params;\r\n if (vm.actionType === 'Edit') {\r\n params = {\r\n IsEditable: true\r\n };\r\n }\r\n let response = await sapSdSimCompositeRoleDataService.getSimulationCompositeRoles(simulation.Id, params);\r\n response.data = $filter('orderBy')(response.data, \"Name\");\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function changeRowSelected(dataItem) {\r\n vm.selectedCompositeRole = dataItem.toJSON();\r\n }\r\n\r\n async function saveCompositeRole() {\r\n vm.savePending = new createSpinner();\r\n switch (vm.actionType) {\r\n case 'Add':\r\n createCompositeRole();\r\n break;\r\n case 'Edit':\r\n editCompositeRole();\r\n break;\r\n case 'EditExisting':\r\n updateExistingCustomCompositeRole();\r\n break;\r\n case 'Copy':\r\n copyCompositeRole();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n async function createCompositeRole() {\r\n let data = vm.compositeRole;\r\n data.SimulationId = simulation.Id;\r\n\r\n try {\r\n await sapSdSimCompositeRoleDataService.addCompositeRoleToSimulation(data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function editCompositeRole() {\r\n let data = {\r\n SimulationId: simulation.Id,\r\n Name: vm.selectedCompositeRole.Name\r\n };\r\n\r\n try {\r\n await sapSdSimCompositeRoleDataService.editCompositeRoleToSimulation(data);\r\n helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function updateExistingCustomCompositeRole() {\r\n let data = {\r\n SimulationId: simulation.Id,\r\n CompositeRoleId: vm.compositeRole.Id,\r\n Name: vm.compositeRole.Name,\r\n Description: vm.compositeRole.Description,\r\n LongDescription: vm.compositeRole.LongDescription\r\n };\r\n\r\n try {\r\n await sapSdSimCompositeRoleDataService.updateCompositeRole(data);\r\n helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function copyCompositeRole() {\r\n let data = {\r\n SimulationId: simulation.Id,\r\n ExistingCompositeRoleName: vm.selectedCompositeRole.Name,\r\n NewCompositeRoleName: vm.compositeRole.Name\r\n };\r\n\r\n try {\r\n await sapSdSimCompositeRoleDataService.copyCompositeRoleToSimulation(data);\r\n helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function updateCompositeRole() {\r\n vm.compositeRole['CompositeRoleId'] = vm.compositeRole.Id;\r\n delete vm.compositeRole.Id;\r\n try {\r\n await sapSdSimCompositeRoleDataService.updateCompositeRole(vm.compositeRole);\r\n helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport compositeRoleModalController from \"./compositeRoleModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (sapSdSimCompositeRoleDataService, helperService, $uibModal, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedCompositeRole = changeSelectedCompositeRole;\r\n vm.openCompositeRoleModal = openCompositeRoleModal;\r\n vm.deleteCompositeRole = deleteCompositeRole;\r\n vm.changeRoleType = changeRoleType;\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n vm.openCompositeRoleModal('EditExisting', item.compositeRole);\r\n },\r\n displayed: function (modelValue) {\r\n return modelValue.compositeRole.IsCustom;\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.deleteCompositeRole(item.compositeRole);\r\n }\r\n }\r\n ];\r\n\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n vm.selectedCompositeRole = null;\r\n getCompositeRoles();\r\n }\r\n\r\n async function getCompositeRoles() {\r\n vm.compositeRolesLoading = true;\r\n const params = {\r\n isModified: true\r\n };\r\n let response = await sapSdSimCompositeRoleDataService.getSimulationCompositeRoles(vm.simulation.Id, params);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.compositeRoles = response.data;\r\n vm.compositeRolesLoading = false;\r\n }\r\n\r\n async function changeSelectedCompositeRole(compositeRole) {\r\n vm.selectedCompositeRole = compositeRole;\r\n vm.onSelectedCompositeRoleChange({ compositeRole });\r\n }\r\n\r\n async function openCompositeRoleModal(actionType, compositeRole) {\r\n let compositeRoleModal = $uibModal.open({\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simulationCompositeRolesList/compositeRoleModal.tmpl.html',\r\n controller: compositeRoleModalController,\r\n controllerAs: 'crmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n simulation: () => vm.simulation,\r\n actionType: () => actionType,\r\n compositeRole: () => compositeRole\r\n }\r\n });\r\n\r\n try {\r\n await compositeRoleModal.result;\r\n refreshSimulations();\r\n await getCompositeRoles();\r\n } catch { return; }\r\n }\r\n\r\n async function deleteCompositeRole(compositeRole) {\r\n try {\r\n await swal(helperService.areYouSureParams(`Delete Composite Role`, `Are you sure you want to delete composite role ${compositeRole.Name}?`, `Yes`, 'No'));\r\n vm.compositeRolesLoading = true;\r\n await sapSdSimCompositeRoleDataService.deleteCompositeRole(vm.simulation.Id, compositeRole.Id);\r\n changeSelectedCompositeRole(null);\r\n refreshSimulations();\r\n getCompositeRoles();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function changeRoleType() {\r\n let roleType = vm.selectedRoleType;\r\n vm.onRoleTypeChange({ roleType });\r\n }\r\n\r\n function refreshSimulations() {\r\n const updateList = true;\r\n vm.onUpdateSimulationsList({ updateList });\r\n }\r\n}","import compositeRolesListController from \"./compositeRolesList.controller\";\r\n\r\n/* compositeRolesList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of sap security designer simulation composite roles\r\n * @example \r\n */\r\n\r\nconst sapSdSimulationCompositeRolesList = {\r\n bindings: {\r\n simulation: '<',\r\n selectedRoleType: '<',\r\n onUpdateSimulationsList: '&',\r\n onSelectedCompositeRoleChange: '&',\r\n onRoleTypeChange: '&'\r\n },\r\n controller: compositeRolesListController,\r\n controllerAs: 'crlvm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simulationCompositeRolesList/compositeRolesList.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulationCompositeRolesList;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, simulation, role, selectedAuthObjects, helperService, sapSdSimulationDataService, sapSdSimRoleDataService) {\r\n const vm = this;\r\n\r\n vm.close = close;\r\n vm.addAuthObjectToSimulationRole = addAuthObjectToSimulationRole;\r\n selectedAuthObjects = [...selectedAuthObjects];\r\n\r\n activate();\r\n\r\n function activate() {\r\n setupAvailableAuthObjectsGrid();\r\n }\r\n\r\n function setupAvailableAuthObjectsGrid() {\r\n let availableAuthObjectsGridColumns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n vm.availableAuthObjectsGridOptions = helperService.setMainGridOptions(availableAuthObjectsGridColumns, null);\r\n\r\n vm.availableAuthObjectsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await sapSdSimulationDataService.getSimulationAuthObjects(simulation.Id);\r\n response.data = response.data.filter(role => {\r\n return !selectedAuthObjects.some(selectedAuthObject => selectedAuthObject.Name === role.Name);\r\n });\r\n response.data = $filter('orderBy')(response.data, \"Name\");\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function addAuthObjectToSimulationRole(authObject) {\r\n vm.addingAuthObjectsToRole = true;\r\n kendo.ui.progress(vm.availableAuthObjectsGrid.element, true);\r\n let data = {\r\n SimulationId: simulation.Id,\r\n RoleId: role.Id,\r\n Name: authObject.Name,\r\n }\r\n try {\r\n await sapSdSimRoleDataService.addAuthObjectToSimulationRole(data);\r\n let processedAuthObject = JSON.parse(JSON.stringify(authObject));\r\n selectedAuthObjects.push(processedAuthObject);\r\n kendo.ui.progress(vm.availableAuthObjectsGrid.element, false);\r\n vm.availableAuthObjectsGridDataSource.read();\r\n vm.addingAuthObjectsToRole = false;\r\n } catch {\r\n vm.addingAuthObjectsToRole = false;\r\n kendo.ui.progress(vm.availableAuthObjectsGrid.element, false);\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport roleAuthObjectModalController from \"./roleAuthObjectModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (sapSdSimRoleDataService, helperService, $uibModal, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedAuthObject = changeSelectedAuthObject;\r\n vm.openAuthObjectModal = openAuthObjectModal;\r\n vm.removeAuthObjectFromRole = removeAuthObjectFromRole;\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n getRoleAuthObjects();\r\n }\r\n\r\n async function getRoleAuthObjects() {\r\n vm.authObjectsLoading = true;\r\n let response = await sapSdSimRoleDataService.getRoleAuthObjects(vm.simulation.Id, vm.selectedRole.Id);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.authObjects = response.data;\r\n vm.authObjectsLoading = false;\r\n }\r\n\r\n async function changeSelectedAuthObject(authObject) {\r\n vm.selectedAuthObject = authObject;\r\n vm.onSelectedAuthObjectChange({ authObject });\r\n }\r\n\r\n async function openAuthObjectModal() {\r\n let authObjectModal = $uibModal.open({\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simRoleAuthObjectsList/roleAuthObjectModal.tmpl.html',\r\n controller: roleAuthObjectModalController,\r\n controllerAs: 'raomvm',\r\n backdrop: 'static',\r\n resolve: {\r\n simulation: () => vm.simulation,\r\n role: () => vm.selectedRole,\r\n selectedAuthObjects: () => vm.authObjects\r\n }\r\n });\r\n\r\n try {\r\n await authObjectModal.result;\r\n await getRoleAuthObjects();\r\n } catch { return; }\r\n }\r\n\r\n async function removeAuthObjectFromRole(authObject) {\r\n try {\r\n await swal(helperService.areYouSureParams(`Remove Authorization Object`, `Are you sure you want to remove authorization object ${authObject.Name} from role ${vm.selectedRole.Name}?`, `Yes`, 'No'))\r\n await sapSdSimRoleDataService.removeAuthObjectFromRole(vm.simulation.Id, vm.selectedRole.Id, authObject);\r\n getRoleAuthObjects();\r\n } catch {\r\n return;\r\n }\r\n }\r\n}","import roleAuthObjectsListController from \"./roleAuthObjectsList.controller\";\r\n\r\n/* roleAuthObjectsList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of sap security designer simulation role authorization objects\r\n * @example \r\n */\r\n\r\nconst sapSdSimulationRoleAuthObjectsList = {\r\n bindings: {\r\n simulation: '<',\r\n selectedRole: '<',\r\n onSelectedAuthObjectChange: '&'\r\n },\r\n controller: roleAuthObjectsListController,\r\n controllerAs: 'raolvm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simRoleAuthObjectsList/roleAuthObjectsList.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulationRoleAuthObjectsList;","export default /*@ngInject*/ function (sapSdSimRoleDataService, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedOrgLevel = changeSelectedOrgLevel;\r\n vm.grantFullAuthorization = grantFullAuthorization;\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Grant full authorization',\r\n click: item => {\r\n vm.grantFullAuthorization(item.orgLevel);\r\n }\r\n }\r\n ];\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n getRoleOrgLevels();\r\n }\r\n\r\n async function getRoleOrgLevels() {\r\n vm.orgLevelsLoading = true;\r\n let response = await sapSdSimRoleDataService.getRoleOrgLevels(vm.simulation.Id, vm.selectedRole.Id);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.orgLevels = response.data;\r\n vm.orgLevelsLoading = false;\r\n }\r\n\r\n async function changeSelectedOrgLevel(orgLevel) {\r\n vm.selectedOrgLevel = orgLevel;\r\n vm.onSelectedOrgLevelChange({ orgLevel });\r\n }\r\n\r\n async function grantFullAuthorization(orgLevel) {\r\n vm.orgLevelsLoading = true;\r\n let data = {\r\n SimulationId: vm.simulation.Id,\r\n RoleId: vm.selectedRole.Id,\r\n FieldId: orgLevel.Id,\r\n Low: \"*\",\r\n High: null\r\n };\r\n\r\n try {\r\n await sapSdSimRoleDataService.addFieldValue(data);\r\n vm.orgLevelsLoading = false;\r\n // we have to clone the orgLevel object to ensure the field values component updates via $onChanges\r\n const updatedOrgLevel = { ...orgLevel };\r\n changeSelectedOrgLevel(updatedOrgLevel);\r\n vm.simulationsCtrl.updateList('orgLevels');\r\n } catch {\r\n vm.orgLevelsLoading = false;\r\n }\r\n }\r\n}","import roleOrgLevelsListController from \"./roleOrgLevelsList.controller\";\r\n\r\n/* roleOrgLevelsList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of sap security designer simulation role authorization objects\r\n * @example \r\n */\r\n\r\nconst sapSdSimulationRoleOrgLevelsList = {\r\n require: {\r\n simulationsCtrl: '^sapSdSimulations'\r\n },\r\n bindings: {\r\n simulation: '<',\r\n selectedRole: '<',\r\n onSelectedOrgLevelChange: '&'\r\n },\r\n controller: roleOrgLevelsListController,\r\n controllerAs: 'rollvm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simRoleOrgLevelsList/roleOrgLevelsList.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulationRoleOrgLevelsList;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, simulation, selectedCompositeRole, selectedRoles, helperService, sapSdSimRoleDataService, sapSdSimCompositeRoleDataService) {\r\n const vm = this;\r\n\r\n vm.close = close;\r\n vm.addRoleToCompositeRole = addRoleToCompositeRole;\r\n selectedRoles = [...selectedRoles];\r\n\r\n activate();\r\n\r\n function activate() {\r\n setupAvailableRolesGrid();\r\n }\r\n\r\n function setupAvailableRolesGrid() {\r\n let availableRolesGridColumns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n vm.availableRolesGridOptions = helperService.setMainGridOptions(availableRolesGridColumns, null);\r\n\r\n vm.availableRolesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await sapSdSimRoleDataService.getSimulationRoles(simulation.Id);\r\n response.data = response.data.filter(role => {\r\n return !selectedRoles.some(selectedRole => selectedRole.Name === role.Name);\r\n });\r\n response.data = $filter('orderBy')(response.data, \"Name\");\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function addRoleToCompositeRole(role) {\r\n vm.addingToCompositeRole = true;\r\n let data = {\r\n SimulationId: simulation.Id,\r\n CompositeRoleId: selectedCompositeRole.Id,\r\n RoleName: role.Name,\r\n }\r\n try {\r\n await sapSdSimCompositeRoleDataService.addRoleToCompositeRole(data);\r\n let processedRole = JSON.parse(JSON.stringify(role));\r\n selectedRoles.push(processedRole);\r\n vm.availableRolesGridDataSource.read();\r\n vm.addingToCompositeRole = false;\r\n } catch {\r\n vm.addingToCompositeRole = false;\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport addRolesModalController from \"./addRolesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (sapSdSimCompositeRoleDataService, helperService, $uibModal, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.openAddRoleModal = openAddRoleModal;\r\n vm.removeRoleFromCompositeRole = removeRoleFromCompositeRole;\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n getCompositeRoleRoles();\r\n }\r\n\r\n async function getCompositeRoleRoles() {\r\n vm.rolesLoading = true;\r\n let response = await sapSdSimCompositeRoleDataService.getCompositeRoleRoles(vm.simulation.Id, vm.selectedCompositeRole.Id);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.roles = response.data;\r\n vm.rolesLoading = false;\r\n }\r\n\r\n async function openAddRoleModal() {\r\n let addRoleModal = $uibModal.open({\r\n templateUrl: '/App/Components/SAPSecurityDesigner/compositeRoleRolesList/addRolesModal.tmpl.html',\r\n controller: addRolesModalController,\r\n controllerAs: 'armvm',\r\n backdrop: 'static',\r\n resolve: {\r\n simulation: () => vm.simulation,\r\n selectedCompositeRole: () => vm.selectedCompositeRole,\r\n selectedRoles: () => vm.roles\r\n }\r\n });\r\n\r\n try {\r\n await addRoleModal.result;\r\n refreshSimulations();\r\n await getCompositeRoleRoles();\r\n } catch { return; }\r\n }\r\n\r\n async function removeRoleFromCompositeRole(role) {\r\n try {\r\n await swal(helperService.areYouSureParams(`Remove Role from Composite Role`, `Are you sure you want to remove Role ${role.Name} from Composite Role ${vm.selectedCompositeRole.Name}?`, `Yes`, 'No'));\r\n vm.rolesLoading = true;\r\n await sapSdSimCompositeRoleDataService.removeRoleFromCompositeRole(vm.simulation.Id, vm.selectedCompositeRole.Id, role.Id);\r\n vm.rolesLoading = false;\r\n refreshSimulations();\r\n getCompositeRoleRoles();\r\n } catch {\r\n vm.rolesLoading = false;\r\n }\r\n }\r\n\r\n function refreshSimulations() {\r\n const updateList = true;\r\n vm.onUpdateSimulationsList({ updateList });\r\n }\r\n}","import compositeRoleRolesListController from \"./compositeRoleRolesList.controller\";\r\n\r\n/* compositeRoleRolesList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of sap security designer composite role roles\r\n * @example \r\n */\r\n\r\nconst sapSdSimulationsCompositeRoleRolesList = {\r\n bindings: {\r\n simulation: '<',\r\n onUpdateSimulationsList: '&',\r\n selectedCompositeRole: '<',\r\n },\r\n controller: compositeRoleRolesListController,\r\n controllerAs: 'crrlvm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/compositeRoleRolesList/compositeRoleRolesList.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulationsCompositeRoleRolesList;","export default /*@ngInject*/ function (sapSdSimRoleDataService, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedField = changeSelectedField;\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Grant full authorization',\r\n click: item => {\r\n grantFullAuthorization(item.field);\r\n }\r\n }\r\n ];\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n getAuthObjectFields();\r\n }\r\n\r\n async function getAuthObjectFields() {\r\n vm.fieldsLoading = true;\r\n let response = await sapSdSimRoleDataService.getAuthObjectFields(vm.simulation.Id, vm.selectedRole.Id, vm.authObject.Id);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.fields = response.data;\r\n vm.fieldsLoading = false;\r\n }\r\n\r\n async function changeSelectedField(field) {\r\n vm.selectedField = field;\r\n vm.onSelectedFieldChange({ field });\r\n }\r\n\r\n async function grantFullAuthorization(field) {\r\n vm.fieldsLoading = true;\r\n let data = {\r\n SimulationId: vm.simulation.Id,\r\n RoleId: vm.selectedRole.Id,\r\n AuthorizationObjectId: vm.authObject.Id,\r\n FieldId: field.Id,\r\n Low: \"*\",\r\n High: null\r\n };\r\n\r\n try {\r\n await sapSdSimRoleDataService.addFieldValue(data);\r\n vm.fieldsLoading = false;\r\n // we have to clone the field object to ensure the field values component updates via $onChanges\r\n const updatedField = { ...field };\r\n changeSelectedField(updatedField);\r\n await getAuthObjectFields();\r\n if (vm.fields.every(field => field.AllMaintained)) {\r\n // All Maintained status means we need to update the auth objects list\r\n vm.simulationsCtrl.updateList('authObjects');\r\n }\r\n } catch {\r\n vm.fieldsLoading = false;\r\n }\r\n }\r\n}","import authObjectFieldsListController from \"./authObjectFieldsList.controller\";\r\n\r\n/* authObjectFieldsList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of sap security designer authorization object fields\r\n * @example \r\n */\r\n\r\nconst sapSdSimulationRoleAuthObjectFieldsList = {\r\n require: {\r\n simulationsCtrl: '^sapSdSimulations'\r\n },\r\n bindings: {\r\n simulation: '<',\r\n selectedRole: '<',\r\n authObject: '<',\r\n onSelectedFieldChange: '&'\r\n },\r\n controller: authObjectFieldsListController,\r\n controllerAs: 'aoflvm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simRoleAuthObjFieldsList/authObjectFieldsList.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulationRoleAuthObjectFieldsList;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, simulation, role, selectedItems, selectedType, sapSdSimulationDataService, sapSdSimRoleDataService, helperService) {\r\n const vm = this,\r\n typeDisplayNames = {\r\n tcodes: \"Transactions\",\r\n catalogs: \"Catalogs\",\r\n groups: \"Groups\",\r\n spaces: \"Spaces\"\r\n };\r\n\r\n\r\n vm.itemAdded = false;\r\n selectedItems = [...selectedItems];\r\n vm.addItem = addItem;\r\n vm.close = close;\r\n vm.title = typeDisplayNames[selectedType];\r\n\r\n activate();\r\n\r\n function activate() {\r\n let availableItemsGridColumns = getColumnsByType(selectedType);\r\n\r\n vm.availableItemsGridOptions = helperService.setMainGridOptions(availableItemsGridColumns, null);\r\n\r\n vm.availableItemsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let { data } = await sapSdSimulationDataService.getSimulationItemsByType(simulation.Id, selectedType);\r\n\r\n data = data.filter(item => {\r\n return !selectedItems.some(selectedItem => selectedItem?.Name === item?.Name);\r\n });\r\n\r\n data = $filter('orderBy')(data, \"Name\");\r\n options.success(data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function addItem(item) {\r\n let data = {\r\n SimulationId: simulation.Id,\r\n RoleId: role.Id,\r\n Name: item.Name\r\n }\r\n\r\n if (selectedType === \"catalogs\") {\r\n data.Url = item.Url;\r\n }\r\n\r\n vm.addItemProcessing = true;\r\n kendo.ui.progress(vm.availableItemsGrid.element, true);\r\n\r\n try {\r\n await sapSdSimRoleDataService.addItemToSimulationRoleByType(data, selectedType);\r\n if (!vm.itemAdded) {\r\n vm.itemAdded = true;\r\n }\r\n\r\n selectedItems.push(JSON.parse(JSON.stringify(item)));\r\n kendo.ui.progress(vm.availableItemsGrid.element, false);\r\n\r\n vm.availableItemsGridDataSource.read();\r\n vm.addItemProcessing = false;\r\n } catch {\r\n vm.addItemProcessing = false;\r\n kendo.ui.progress(vm.availableItemsGrid.element, false);\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close(vm.itemAdded);\r\n }\r\n}\r\n\r\nfunction getColumnsByType(type) {\r\n let types = {\r\n tcodes: [\r\n { title: \"Transaction ID\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"Transaction Title\", field: \"Description\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ],\r\n groups: [\r\n { title: \"Group ID\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"Group Title\", field: \"DisplayName\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ],\r\n catalogs: [\r\n { title: \"Catalog Id\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"Catalog Title\", field: \"DisplayName\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ],\r\n spaces: [\r\n { title: \"Space Template ID\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"Space Description\", field: \"Description\", filterable: customAutoCompleteFilter },\r\n { title: \"Space Title\", field: \"DisplayName\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ]\r\n };\r\n\r\n return types[type];\r\n}","import swal from \"sweetalert2\";\r\nimport itemsModalController from \"./itemsModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (sapSdSimRoleDataService, configurationDataService, helperService, $uibModal, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.openItemModal = openItemModal;\r\n vm.deleteItemFromRole = deleteItemFromRole;\r\n vm.changeType = changeType;\r\n vm.itemsLoading = true;\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n let { data } = await configurationDataService.getProductConfigurationValueByName(\"SAP\", \"SAP_ErpType\");\r\n\r\n vm.showCatalogsGroupsAndSpaces = data.Value === \"S4\";\r\n\r\n vm.selectedType = \"tcodes\";\r\n\r\n getRoleItemsByType(vm.selectedType);\r\n }\r\n\r\n async function getRoleItemsByType() {\r\n vm.itemsLoading = true;\r\n\r\n let { data } = await sapSdSimRoleDataService.getRoleItemsByType(vm.simulation.Id, vm.selectedRole.Id, vm.selectedType);\r\n\r\n data = $filter('orderBy')(data, 'Name');\r\n vm.items = data;\r\n vm.itemsLoading = false;\r\n }\r\n\r\n async function openItemModal() {\r\n let itemModal = $uibModal.open({\r\n templateUrl: '/App/Components/SAPSecurityDesigner/itemsList/itemsModal.tmpl.html',\r\n controller: itemsModalController,\r\n controllerAs: 'imvm',\r\n backdrop: 'static',\r\n resolve: {\r\n simulation: () => vm.simulation,\r\n role: () => vm.selectedRole,\r\n selectedItems: () => vm.items,\r\n selectedType: () => vm.selectedType\r\n }\r\n });\r\n\r\n try {\r\n const itemAdded = await itemModal.result,\r\n openOrgLevels = vm.selectedType === \"tcodes\" || vm.selectedType === \"catalogs\";\r\n\r\n refreshSimulations();\r\n await getRoleItemsByType(vm.selectedType);\r\n\r\n if (itemAdded && openOrgLevels) {\r\n vm.onItemAdded();\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function deleteItemFromRole(item) {\r\n try {\r\n await swal(helperService.areYouSureParams(`Remove Item from Role`, `Are you sure you want to remove Item ${item.Name} from Role ${vm.selectedRole.Name}?`, `Yes`, 'No'));\r\n vm.itemsLoading = true;\r\n\r\n await sapSdSimRoleDataService.removeItemFromRole(vm.simulation.Id, vm.selectedRole.Id, item.Id, vm.selectedType);\r\n\r\n vm.itemsLoading = false;\r\n refreshSimulations();\r\n await getRoleItemsByType(vm.selectedType);\r\n } catch {\r\n vm.itemsLoading = false;\r\n }\r\n }\r\n\r\n function changeType() {\r\n getRoleItemsByType(vm.selectedType);\r\n }\r\n\r\n function refreshSimulations() {\r\n const updateList = true;\r\n\r\n vm.onUpdateSimulationsList({ updateList });\r\n }\r\n}","import controller from \"./items.controller\";\r\n\r\n/* items.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of sap security designer role items\r\n * @example \r\n */\r\n\r\nconst sapSdSimulationsRoleItemsList = {\r\n bindings: {\r\n simulation: '<',\r\n onUpdateSimulationsList: '&',\r\n selectedRole: '<',\r\n onItemAdded: '&'\r\n },\r\n controller: controller,\r\n controllerAs: 'ivm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/itemsList/items.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulationsRoleItemsList;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, simulation, role, field, object, helperService, sapSdSimRoleDataService) {\r\n const vm = this;\r\n\r\n vm.saveFieldValue = saveFieldValue;\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n function activate() {\r\n setupFieldValueDropdowns();\r\n }\r\n\r\n async function setupFieldValueDropdowns() {\r\n vm.fieldValueOptionsDataSource = new kendo.data.DataSource({\r\n serverFiltering: false,\r\n transport: {\r\n read: async options => {\r\n let response = await sapSdSimRoleDataService.getFieldValueOptions(simulation.Id, role.Id, object.Id, field ? field.Id : null);\r\n response.data = $filter('orderBy')(response.data, 'Value');\r\n options.success(response.data);\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n async function saveFieldValue() {\r\n vm.savePending = new createSpinner();\r\n let data = {\r\n SimulationId: simulation.Id,\r\n RoleId: role.Id,\r\n FieldId: field ? field.Id : object.Id,\r\n Low: vm.fieldValue.low,\r\n High: vm.fieldValue.high\r\n };\r\n\r\n if (field) {\r\n data.AuthorizationObjectId = object.Id;\r\n }\r\n\r\n try {\r\n await sapSdSimRoleDataService.addFieldValue(data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import fieldValueModalController from \"./fieldValueModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (sapSdSimRoleDataService, $filter, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.openFieldValueModal = openFieldValueModal;\r\n vm.deleteFieldValue = deleteFieldValue;\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n getFieldValues();\r\n }\r\n\r\n async function getFieldValues() {\r\n vm.fieldValuesLoading = true;\r\n let response = await sapSdSimRoleDataService.getFieldValues(vm.simulation.Id, vm.selectedRole.Id, vm.selectedObject.Id, vm.field ? vm.field.Id : null);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.fieldValues = response.data;\r\n vm.fieldValuesLoading = false;\r\n }\r\n\r\n async function openFieldValueModal() {\r\n let fieldValueModal = $uibModal.open({\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simFieldValuesList/fieldValueModal.tmpl.html',\r\n controller: fieldValueModalController,\r\n controllerAs: 'fvmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n simulation: () => vm.simulation,\r\n role: () => vm.selectedRole,\r\n field: () => vm.field,\r\n object: () => vm.selectedObject\r\n }\r\n });\r\n\r\n try {\r\n await fieldValueModal.result;\r\n await getFieldValues();\r\n updateLists();\r\n } catch { return; }\r\n }\r\n\r\n async function deleteFieldValue(fieldValue) {\r\n vm.fieldValuesLoading = true;\r\n await sapSdSimRoleDataService.deleteFieldValue(vm.simulation.Id, vm.selectedRole.Id, vm.selectedObject.Id, vm.field ? vm.field.Id : null, fieldValue.Id);\r\n await getFieldValues();\r\n updateLists();\r\n }\r\n\r\n function updateLists() {\r\n if (vm.field) {\r\n // need to refresh auth object fields list\r\n vm.simulationsCtrl.updateList('objectFields');\r\n vm.simulationsCtrl.updateList('authObjects');\r\n } else {\r\n // need to refresh org levels list\r\n vm.simulationsCtrl.updateList('orgLevels');\r\n }\r\n }\r\n}","import fieldValuesListController from \"./fieldValuesList.controller\";\r\n\r\n/* fieldValuesList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of sap security designer simulation field values\r\n * @example \r\n */\r\n\r\nconst sapSdSimulationFieldValuesList = {\r\n require: {\r\n simulationsCtrl: '^sapSdSimulations'\r\n },\r\n bindings: {\r\n simulation: '<',\r\n selectedRole: '<',\r\n selectedObject: '<',\r\n field: '<'\r\n },\r\n controller: fieldValuesListController,\r\n controllerAs: 'fvlvm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simFieldValuesList/fieldValuesList.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulationFieldValuesList;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, customBooleanFilter, standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, simulationId, detailedReportType, roleType, helperService, sapSdSimAnalysisDataService, FileSaver) {\r\n const vm = this;\r\n vm.detailedReportType = detailedReportType;\r\n\r\n vm.dismiss = dismiss;\r\n vm.exportDetailedReport = exportDetailedReport;\r\n\r\n activate();\r\n\r\n function activate() {\r\n setupDetailedReportGrid();\r\n }\r\n\r\n function setupDetailedReportGrid() {\r\n vm.reportDetails = getReportRouteAndColumnDefinitions(detailedReportType);\r\n\r\n vm.detailedReportGridOptions = helperService.setMainGridOptions(vm.reportDetails.columnDefinitions, null);\r\n\r\n vm.detailedReportGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await sapSdSimAnalysisDataService.getRiskAnalysisReportStatistics(simulationId, vm.reportDetails.routeString);\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function getReportRouteAndColumnDefinitions(reportType) {\r\n let reportDetails = {\r\n columnDefinitions: [],\r\n routeString: ''\r\n }, statusColumn = { title: \"Status\", field: \"AccessStatus\", width: 125, filterable: customAutoCompleteFilter, template: `{{dataItem.AccessStatus}}` };\r\n\r\n switch (reportType) {\r\n case 'roleRiskDetailed':\r\n reportDetails.columnDefinitions = [\r\n { title: \"Product\", field: \"ProductName\", filterable: customAutoCompleteFilter, width: 80 },\r\n { title: \"Role Id\", field: \"RoleId\", filterable: customAutoCompleteFilter, width: 100 },\r\n { title: \"Role Description\", field: \"RoleDescription\", filterable: customAutoCompleteFilter, width: 130 },\r\n { title: \"Ruleset\", field: \"RulesetName\", filterable: customAutoCompleteFilter, width: 130 },\r\n { title: \"Risk Id\", field: \"RiskId\", filterable: customAutoCompleteFilter, width: 80 },\r\n { title: \"Risk Name\", field: \"RiskName\", filterable: customAutoCompleteFilter, width: 120 },\r\n { title: \"Risk Description\", field: \"RiskDescription\", filterable: customAutoCompleteFilter, width: 240 },\r\n { title: \"Risk Type\", field: \"RiskType\", filterable: customAutoCompleteFilter, width: 120 },\r\n { title: \"Business Process\", field: \"BusinessProcess\", filterable: customAutoCompleteFilter, width: 120 },\r\n { title: \"Business Process Group\", field: \"BusinessProcessGroup\", filterable: customAutoCompleteFilter, width: 120 },\r\n { title: \"Security Object Name\", field: \"SecurityObjectName\", filterable: customAutoCompleteFilter, width: 120 },\r\n { title: \"Security Object Type Name\", field: \"SecurityObjectTypeName\", filterable: customAutoCompleteFilter, width: 85 },\r\n { title: \"Authorization\", field: \"Authorization\", filterable: customAutoCompleteFilter, width: 100 },\r\n { title: \"Field\", field: \"Field\", filterable: customAutoCompleteFilter, width: 80 },\r\n { title: \"Low\", field: \"Low\", filterable: customAutoCompleteFilter, width: 80 },\r\n { title: \"High\", field: \"High\", filterable: customAutoCompleteFilter, width: 80 }\r\n ];\r\n vm.reportTitle = 'Role Risk Detailed';\r\n break;\r\n case 'compositeRoleRiskDetailed':\r\n reportDetails.columnDefinitions = [\r\n { title: \"Product\", field: \"ProductName\", filterable: customAutoCompleteFilter, width: 80 },\r\n { title: \"Role Id\", field: \"RoleId\", filterable: customAutoCompleteFilter, width: 100 },\r\n { title: \"Role Description\", field: \"RoleDescription\", filterable: customAutoCompleteFilter, width: 240 },\r\n { title: \"Single Role\", field: \"SingleRole\", filterable: customAutoCompleteFilter, width: 120 },\r\n { title: \"Single Role Description\", field: \"SingleRoleDescription\", filterable: customAutoCompleteFilter, width: 240 },\r\n { title: \"Ruleset\", field: \"RulesetName\", filterable: customAutoCompleteFilter, width: 130 },\r\n { title: \"Risk Id\", field: \"RiskId\", filterable: customAutoCompleteFilter, width: 80 },\r\n { title: \"Risk Name\", field: \"RiskName\", filterable: customAutoCompleteFilter, width: 120 },\r\n { title: \"Risk Description\", field: \"RiskDescription\", filterable: customAutoCompleteFilter, width: 240 },\r\n { title: \"Risk Type\", field: \"RiskType\", filterable: customAutoCompleteFilter, width: 120 },\r\n { title: \"Business Cycle\", field: \"BusinessCycle\", filterable: customAutoCompleteFilter, width: 80 },\r\n { title: \"Policy\", field: \"Policy\", filterable: customAutoCompleteFilter, width: 130 },\r\n { title: \"Risk Level\", field: \"RiskLevel\", filterable: customAutoCompleteFilter, width: 80 },\r\n { title: \"Default Mitigation\", field: \"DefaultMitigation\", filterable: customAutoCompleteFilter, width: 150 }\r\n ];\r\n vm.reportTitle = 'Composite Role Risk Detailed';\r\n break;\r\n case 'roleBpAccess':\r\n reportDetails.columnDefinitions = [\r\n { field: \"ObjectId\", title: \"Object Id\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"IsAssigned\", title: \"Is Assigned\", width: 180, filterable: customBooleanFilter },\r\n { field: \"ProcessId\", title: \"Business Process Id\", width: 180, filterable: customBooleanFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RoleType\", title: \"Role Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ProductName\", title: \"Product\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectLabel\", title: \"Object Label\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectType\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectTypeName\", title: \"Object Type Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetName\", title: \"Ruleset Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Authorization\", title: \"Authorization\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetLow\", title: \"Ruleset Low\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetHigh\", title: \"Ruleset High\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalLow\", title: \"Technical Low\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Low\", title: \"Low\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalHigh\", title: \"Technical High\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"High\", title: \"High\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"AccessStatus\", title: \"Access Status\", width: 180, filterable: customAutoCompleteFilter }\r\n ];\r\n if (roleType === 'single') {\r\n reportDetails.columnDefinitions.unshift({ field: \"RoleName\", title: \"Role Name\", width: 180, filterable: customAutoCompleteFilter });\r\n reportDetails.routeString = 'rolebpdetailed';\r\n vm.reportTitle = 'Role Business Process Detailed';\r\n } else {\r\n reportDetails.columnDefinitions.unshift(\r\n { field: \"CompositeRoleName\", title: \"Composite Role Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"SingleRoleName\", title: \"Single Role Name\", width: 180, filterable: customAutoCompleteFilter });\r\n reportDetails.routeString = 'compositerolebpdetailed';\r\n vm.reportTitle = 'Composite Role Business Process Detailed';\r\n }\r\n break;\r\n case 'userBpAccess':\r\n reportDetails.columnDefinitions = [\r\n { field: \"UserName\", title: \"User Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserGroup\", title: \"User Group\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"UserType\", title: \"User Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ProcessName\", title: \"Business Process\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Type\", title: \"Type\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"Name\", title: \"Name\", width: 160, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectId\", title: \"Object ID\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectName\", title: \"Object Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectType\", title: \"Object Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"Authorization\", title: \"Authorization\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetLow\", title: \"Ruleset Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetHigh\", title: \"Ruleset High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalLow\", title: \"Technical Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalHigh\", title: \"Technical High\", width: 130, filterable: customAutoCompleteFilter },\r\n ]\r\n reportDetails.routeString = 'userbpaccessdetailed ';\r\n vm.reportTitle = 'User Business Process Detailed';\r\n break;\r\n case 'userRisk':\r\n reportDetails.columnDefinitions = [\r\n { field: \"UserId\", title: \"User ID\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User Name\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserGroup\", title: \"User Group\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"UserType\", title: \"User Type\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessProcess\", title: \"Business Process\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"GroupName\", title: \"Group Name\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"GroupType\", title: \"Group Type\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"Role\", title: \"Role\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectProduct\", title: \"Security Object Product\", width: 80, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectLabel\", title: \"Object Label\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"ObjectType\", title: \"Object Type\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Authorization\", title: \"Authorization\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Field\", title: \"Field\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetLow\", title: \"Ruleset Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RulesetHigh\", title: \"Ruleset High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalLow\", title: \"Technical Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"Low\", title: \"Low\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"TechnicalHigh\", title: \"Technical High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"High\", title: \"High\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 320, filterable: customAutoCompleteFilter },\r\n ];\r\n reportDetails.routeString = 'userriskdetailed';\r\n vm.reportTitle = 'User Risk Detailed';\r\n break;\r\n }\r\n if (!reportDetails.routeString) {\r\n reportDetails.routeString = reportType;\r\n }\r\n reportDetails.columnDefinitions.push(statusColumn);\r\n\r\n return reportDetails;\r\n }\r\n\r\n async function exportDetailedReport() {\r\n vm.exportPending = new createSpinner();\r\n\r\n try {\r\n let response = await sapSdSimAnalysisDataService.exportRiskAnalysisReportDetails(simulationId, vm.reportDetails.routeString);\r\n await helperService.successfulSaveButton(vm.exportPending);\r\n FileSaver.saveAs(response.data, `${vm.reportDetails.routeString}.xlsx`);\r\n } catch {\r\n vm.exportPending.loadingValue = false;\r\n }\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport simRiskAnalysisReportDetailModalController from \"./simRiskAnalysisReport/simRiskAnalysisReportDetailModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, sapSdSimAnalysisDataService, helperService) {\r\n const vm = this;\r\n\r\n vm.analyzeSimulation = analyzeSimulation;\r\n vm.openDetailedReportModal = openDetailedReportModal;\r\n\r\n vm.showReport = false;\r\n\r\n vm.$onInit = activate;\r\n\r\n $scope.$on('RiskAnalysis', () => getAnalysisStatistics());\r\n\r\n function activate() {\r\n getAnalysisStatistics();\r\n vm.headerTitle = `SAP Security Designer Simulation Risk Analysis`;\r\n vm.headerDescription = `Risk Analysis for Simulation ${vm.simulation.Name}`;\r\n if (vm.simulation.Status === 'NeedsAnalysis') vm.showNeedsReAnalyzeMessage = true;\r\n }\r\n\r\n async function getAnalysisStatistics() {\r\n vm.statisticsLoading = true;\r\n try {\r\n let response = await sapSdSimAnalysisDataService.getSimulationAnalysisStats(vm.simulation.Id);\r\n vm.selectedSimulationStatistics = response.data;\r\n vm.statisticsNotFound = false;\r\n vm.statisticsLoading = false;\r\n } catch (error) {\r\n if (error.status === 404) {\r\n vm.statisticsNotFound = true;\r\n vm.statisticsLoading = false;\r\n } else {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n async function analyzeSimulation() {\r\n let data = {\r\n SimulationId: vm.simulation.Id\r\n }\r\n try {\r\n await swal(helperService.areYouSureParams(`Run Analysis`, `Are you sure you want to run the Simulation Analysis for Simulation ${vm.simulation.Name}?`, `Yes`, 'No'))\r\n await sapSdSimAnalysisDataService.analyzeSimulation(data);\r\n showNeedsReAnalyzeMessage = false;\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openDetailedReportModal(detailedReportType, roleType) {\r\n let detailedReportModal = $uibModal.open({\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysisReport/simRiskAnalysisReportDetailModal.tmpl.html',\r\n controller: simRiskAnalysisReportDetailModalController,\r\n controllerAs: 'drmvm',\r\n backdrop: 'static',\r\n size: 'xl',\r\n resolve: {\r\n simulationId: () => vm.simulation.Id,\r\n detailedReportType: () => detailedReportType,\r\n roleType: () => roleType\r\n }\r\n });\r\n\r\n // prevent unhandled rejection\r\n try {\r\n await detailedReportModal.result\r\n } catch {\r\n return;\r\n }\r\n }\r\n}","import simRiskAnalysisController from \"./simRiskAnalysis.controller\";\r\n\r\n/* simRiskAnalysis.component.js */\r\n\r\n/**\r\n * @desc component for viewing sap security designer simulation risk analysis statistics\r\n * @example \r\n */\r\n\r\nconst sapSdSimulationRiskAnalysis = {\r\n bindings: {\r\n simulation: '<'\r\n },\r\n controller: simRiskAnalysisController,\r\n controllerAs: 'sravm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysis.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulationRiskAnalysis;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function (helperService, sapSdSimAnalysisDataService) {\r\n const vm = this;\r\n\r\n vm.$onInit = setupGrid;\r\n\r\n function setupGrid() {\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n const response = await sapSdSimAnalysisDataService.getRiskAnalysisReportStatistics(vm.simulation.Id, vm.selectedReportType.toLowerCase())\r\n options.success(response.data)\r\n }\r\n }\r\n });\r\n\r\n let columns;\r\n const statusColumn = { title: \"Status\", field: \"Status\", width: 125, filterable: customAutoCompleteFilter, template: '{{dataItem.Status}}' };\r\n\r\n switch (vm.selectedReportType) {\r\n case 'roleRisk':\r\n columns = [\r\n { title: \"Role Name\", field: \"RoleName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk ID\", field: \"RiskId\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Name\", field: \"RiskName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Type\", field: \"RiskType\", filterable: customAutoCompleteFilter }\r\n ];\r\n break;\r\n case 'roleBpAccess':\r\n columns = [\r\n { title: \"Role Name\", field: \"RoleName\", filterable: customAutoCompleteFilter },\r\n { title: \"Object Name\", field: \"ObjectName\", filterable: customAutoCompleteFilter },\r\n { title: \"Object Type\", field: \"ObjectType\", filterable: customAutoCompleteFilter }\r\n ];\r\n break;\r\n case 'userRisk':\r\n columns = [\r\n { title: \"User Name\", field: \"UserName\", filterable: customAutoCompleteFilter },\r\n { title: \"Company Name\", field: \"CompanyName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk ID\", field: \"RiskId\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Name\", field: \"RiskName\", filterable: customAutoCompleteFilter },\r\n { title: \"Risk Type\", field: \"RiskType\", filterable: customAutoCompleteFilter }\r\n ];\r\n break;\r\n case 'userBpAccess':\r\n columns = [\r\n { title: \"User Name\", field: \"UserName\", filterable: customAutoCompleteFilter },\r\n { title: \"Company Name\", field: \"CompanyName\", filterable: customAutoCompleteFilter },\r\n { title: \"Object Name\", field: \"ObjectName\", filterable: customAutoCompleteFilter },\r\n { title: \"Object Type\", field: \"ObjectType\", filterable: customAutoCompleteFilter }\r\n ];\r\n break;\r\n }\r\n columns.push(statusColumn);\r\n \r\n\r\n vm.gridOptions = helperService.setMainGridOptions(columns, null);\r\n vm.gridOptions.selectable = false;\r\n }\r\n}","import simRiskAnalysisReportController from \"./simRiskAnalysisReport.controller\";\r\n\r\n/* simRiskAnalysisReport.component.js */\r\n\r\n/**\r\n * @desc component for viewing sap security designer simulation risk analysis statistics data in report format\r\n * @example \r\n */\r\n\r\nconst sapSdSimulationRiskAnalysisReport = {\r\n bindings: {\r\n simulation: '<',\r\n selectedReportType: '<',\r\n reportData: '<'\r\n },\r\n controller: simRiskAnalysisReportController,\r\n controllerAs: 'srarvm',\r\n templateUrl: '/App/Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysisReport/simRiskAnalysisReport.tmpl.html'\r\n};\r\n\r\nexport default sapSdSimulationRiskAnalysisReport;","import angular from 'angular';\r\nimport axSecurityDesignerSecurityMigration from '../Components/AXSecurityDesigner/SecurityMigration/securityMigration.component';\r\nimport axSecurityDesignerMigrationsList from '../Components/AXSecurityDesigner/SecurityMigration/MigrationsList/migrationsList.component';\r\nimport axSecurityDesignerMigrationDetailsGrid from '../Components/AXSecurityDesigner/SecurityMigration/MigrationDetails/migrationDetailsGrid.component';\r\nimport sapSdSimulations from '../Components/SAPSecurityDesigner/simulations.component';\r\nimport sapSdSimulationsList from '../Components/SAPSecurityDesigner/simulationsList/simulationsList.component';\r\nimport sapSdSimulationRolesList from '../Components/SAPSecurityDesigner/simulationRolesList/rolesList.component';\r\nimport sapSdSimulationCompositeRolesList from '../Components/SAPSecurityDesigner/simulationCompositeRolesList/compositeRolesList.component';\r\nimport sapSdSimulationRoleAuthObjectsList from '../Components/SAPSecurityDesigner/simRoleAuthObjectsList/roleAuthObjectsList.component';\r\nimport sapSdSimulationRoleOrgLevelsList from '../Components/SAPSecurityDesigner/simRoleOrgLevelsList/roleOrgLevelsList.component';\r\nimport sapSdSimulationsCompositeRoleRolesList from '../Components/SAPSecurityDesigner/compositeRoleRolesList/compositeRoleRolesList.component';\r\nimport sapSdSimulationRoleAuthObjectFieldsList from '../Components/SAPSecurityDesigner/simRoleAuthObjFieldsList/authObjectFieldsList.component';\r\nimport sapSdSimulationsRoleItemsList from '../Components/SAPSecurityDesigner/itemsList/items.component';\r\nimport sapSdSimulationFieldValuesList from '../Components/SAPSecurityDesigner/simFieldValuesList/fieldValuesList.component';\r\nimport sapSdSimulationRiskAnalysis from '../Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysis.component';\r\nimport sapSdSimulationRiskAnalysisReport from '../Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysisReport/simRiskAnalysisReport.component';\r\n\r\nexport default angular\r\n .module('app.securityDesigner.components', [])\r\n .component('axSecurityDesignerSecurityMigration', axSecurityDesignerSecurityMigration)\r\n .component('axSecurityDesignerMigrationsList', axSecurityDesignerMigrationsList)\r\n .component('axSecurityDesignerMigrationDetailsGrid', axSecurityDesignerMigrationDetailsGrid)\r\n .component('sapSdSimulations', sapSdSimulations)\r\n .component('sapSdSimulationsList', sapSdSimulationsList)\r\n .component('sapSdSimulationRolesList', sapSdSimulationRolesList)\r\n .component('sapSdSimulationCompositeRolesList', sapSdSimulationCompositeRolesList)\r\n .component('sapSdSimulationsRoleItemsList', sapSdSimulationsRoleItemsList)\r\n .component('sapSdSimulationCompositeRoleRolesList', sapSdSimulationsCompositeRoleRolesList)\r\n .component('sapSdAuthorizationObjectsList', sapSdSimulationRoleAuthObjectsList)\r\n .component('sapSdOrganizationalLevelsList', sapSdSimulationRoleOrgLevelsList)\r\n .component('sapSdAuthorizationObjectFieldsList', sapSdSimulationRoleAuthObjectFieldsList)\r\n .component('sapSdFieldValuesList', sapSdSimulationFieldValuesList)\r\n .component('sapSdSimulationRiskAnalysis', sapSdSimulationRiskAnalysis)\r\n .component('sapSdSimulationRiskAnalysisReport', sapSdSimulationRiskAnalysisReport)\r\n .name;","import securityMigrationController from \"./securityMigration.controller\";\r\n\r\n/* axSecurityDesignerSecurityMigration.component.js */\r\n\r\n/**\r\n * @desc component for viewing review assignments\r\n * @example \r\n */\r\n\r\nconst axSecurityDesignerSecurityMigration = {\r\n controller: securityMigrationController,\r\n controllerAs: 'smvm',\r\n templateUrl: '/App/Components/AXSecurityDesigner/SecurityMigration/securityMigration.html'\r\n};\r\n\r\nexport default axSecurityDesignerSecurityMigration;","export default /*@ngInject*/ function () {\r\n const vm = this;\r\n\r\n vm.selectedMigrationChanged = selectedMigrationChanged;\r\n\r\n function selectedMigrationChanged(migration) {\r\n vm.selectedMigration = null;\r\n vm.selectedMigration = migration;\r\n }\r\n}","import angular from 'angular';\r\nimport AXSecurityDesignerDutiesViewModel from '../Components/AXSecurityDesigner/Duties/AXSecurityDesignerDutiesViewModel';\r\nimport AXSecurityDesignerPrivilegesViewModel from '../Components/AXSecurityDesigner/Privileges/AXSecurityDesignerPrivilegesViewModel';\r\nimport AXSecurityDesignerRolesViewModel from '../Components/AXSecurityDesigner/Roles/AXSecurityDesignerRolesViewModel';\r\nimport AXSecurityDesignerSecurityModelsViewModel from '../Components/AXSecurityDesigner/SecurityModels/AXSecurityDesignerSecurityModelsViewModel';\r\nimport AXSecurityDesignerSimulationDetailsViewModel from '../Components/AXSecurityDesigner/SimulationDetails/AXSecurityDesignerSimulationDetailsViewModel';\r\nimport taskRecordingManagerController from '../Components/AXSecurityDesigner/taskRecordingManager/taskRecordingManager.controller';\r\nimport securityDesignerFactoriesModule from './securityDesigner.factories.module';\r\nimport securityDesignerComponentsModule from './securityDesigner.components.module';\r\n\r\nexport default angular\r\n .module('app.securityDesigner', [securityDesignerFactoriesModule, securityDesignerComponentsModule])\r\n .controller(\"AXSecurityDesignerDutiesViewModel\", AXSecurityDesignerDutiesViewModel)\r\n .controller(\"AXSecurityDesignerPrivilegesViewModel\", AXSecurityDesignerPrivilegesViewModel)\r\n .controller(\"AXSecurityDesignerRolesViewModel\", AXSecurityDesignerRolesViewModel)\r\n .controller(\"AXSecurityDesignerSecurityModelsViewModel\", AXSecurityDesignerSecurityModelsViewModel)\r\n .controller(\"AXSecurityDesignerSimulationDetailsViewModel\", AXSecurityDesignerSimulationDetailsViewModel)\r\n .controller(\"taskRecordingManagerController\", taskRecordingManagerController)\r\n .name;","export default /*@ngInject*/ function ($http, errorsDataService, dataService, authenticationService) {\r\n const service = {\r\n getOpenRequests,\r\n checkForCancelOrEditAllRequests,\r\n cancelRequest\r\n };\r\n\r\n return service;\r\n\r\n async function getOpenRequests() {\r\n try {\r\n return await $http.get(apiUrl + 'api/identitymanager/requests/open');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function checkForCancelOrEditAllRequests(cancelOrEditAllRequests) {\r\n const user = await authenticationService.getUser(),\r\n { data } = await dataService.getClaims(user.userId);\r\n\r\n return data.some(data => data.Value === cancelOrEditAllRequests);\r\n }\r\n\r\n async function cancelRequest(request, data) {\r\n try {\r\n return await $http.put(apiUrl + 'api/identitymanager/requests/' + request.Id + '/version/' + request.Version + '/cancel', data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getApprovalRules,\r\n getApprovalRuleTypes,\r\n getRolesByProductId,\r\n removeApprovalRule,\r\n addApprovalRule,\r\n updateApprovalRule,\r\n updateApprovalRuleType\r\n };\r\n\r\n return service;\r\n\r\n //GET Requests\r\n async function getApprovalRules() {\r\n try {\r\n return await $http.get(apiUrl + 'api/identitymanager/approvalrules');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n\r\n }\r\n\r\n async function getApprovalRuleTypes() {\r\n try {\r\n return await $http.get(apiUrl + 'api/identitymanager/approvalruletypes');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n\r\n }\r\n\r\n async function getRolesByProductId(productId) {\r\n try {\r\n return await $http.get(apiUrl + 'api/identitymanager/' + productId + '/roles');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n //DELETE Requests\r\n async function removeApprovalRule(approvalRuleId) {\r\n try {\r\n return await $http.delete(apiUrl + 'api/identitymanager/approvalrules/' + approvalRuleId);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n\r\n }\r\n\r\n //POST Requests\r\n async function addApprovalRule(data) {\r\n try {\r\n return await $http.post(apiUrl + 'api/identitymanager/approvalrules', data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n\r\n }\r\n\r\n //PUT Requests\r\n async function updateApprovalRule(ruleTypeId, data) {\r\n try {\r\n return await $http.put(apiUrl + 'api/identitymanager/approvalrules/' + ruleTypeId, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n\r\n }\r\n\r\n async function updateApprovalRuleType(ruleTypeId, data) {\r\n try {\r\n return await $http.put(apiUrl + 'api/identitymanager/approvalruletypes/' + ruleTypeId, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}\r\n","import angular from 'angular';\r\nimport openRequestsDataServiceFactory from '../Components/openRequests/openRequestsDataService.factory';\r\nimport approvalRulesDataServiceFactory from '../Components/ApprovalRules/approvalRulesDataService.factory';\r\n\r\nexport default angular\r\n .module('app.identityManager.factories', [])\r\n .factory('openRequestsDataService', openRequestsDataServiceFactory)\r\n .factory('approvalRulesDataService', approvalRulesDataServiceFactory)\r\n .name;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, $filter, helperService, $http, row, grid, request, statusDataService) {\r\n\r\n $scope.originalMitigation = $scope.riskToMitigate.MitigationID;\r\n $scope.originalStatus = $scope.riskToMitigate.StatusID;\r\n $scope.originalMitigationNotes = $scope.riskToMitigate.MitigationNotes;\r\n\r\n function activate() {\r\n\r\n getItemPillLabels();\r\n getStandardMitigations();\r\n getMitigations();\r\n setupAdditionalMitigationsObject();\r\n getAdditionalCompaniesDataSource();\r\n\r\n if (row.RequestMitigation === 'Edit') {\r\n populateModalFieldsWithEditedMitigationRequestData();\r\n } else {\r\n setupDefaultModalFields();\r\n }\r\n }\r\n\r\n activate();\r\n\r\n function getStandardMitigations() {\r\n $http.get(apiUrl + 'api/core/configuration/ARM_StandardMitigations').then(function (response) {\r\n $scope.standardMitigations = response.data;\r\n });\r\n }\r\n\r\n function getControlLibrary() {\r\n $scope.controlsLoading = true;\r\n return $http.get(apiUrl + 'api/arm/controls').then(function (response) {\r\n $scope.controlLibrary = response.data;\r\n $scope.controlsLoading = false;\r\n });\r\n }\r\n\r\n function setupControls() {\r\n $scope.selectedControls = new Array();\r\n $scope.originalControls = new Array();\r\n return;\r\n }\r\n\r\n function getStatuses() {\r\n statusDataService.getStatuses().then(function (response) {\r\n response.data = $filter('filter')(response.data, { CanCurrentUserAccess: true });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $scope.statuses = response.data;\r\n });\r\n }\r\n\r\n function populateModalFieldsWithEdits() {\r\n if (row.Controls) {\r\n row.Controls.forEach(control => {\r\n let controlToAdd = $scope.controlLibrary.find(c => c.Identifier === control);\r\n if (controlToAdd) $scope.selectedControls.push(controlToAdd);\r\n });\r\n }\r\n $scope.riskToMitigate.MitigationID = row.RequestMitigationId;\r\n $scope.riskToMitigate.StatusID = row.RequestMitigationStatusId;\r\n $scope.riskToMitigate.MitigationNotes = row.RequestMitigationNotes;\r\n }\r\n\r\n function setupDefaultModalFields() {\r\n getControlLibrary().then(_ => setupControls()).then(_ => getStatuses());\r\n }\r\n\r\n function populateModalFieldsWithEditedMitigationRequestData() {\r\n getControlLibrary().then(_ => setupControls()).then(_ => getStatuses()).then(_ => populateModalFieldsWithEdits());\r\n }\r\n\r\n function getAdditionalCompaniesDataSource() {\r\n\r\n $scope.mitigateAddtionalDataSource = [];\r\n\r\n grid.forEach(item => {\r\n if (item.RiskId === row.RiskId && item.CompanyName !== row.CompanyName) {\r\n $scope.mitigateAddtionalDataSource.push(item);\r\n }\r\n });\r\n }\r\n\r\n function getItemPillLabels() {\r\n $http.get(apiUrl + 'api/arm/risks/' + $scope.riskToMitigate.RiskId).then(function (response) {\r\n $scope.riskObjects = response.data;\r\n });\r\n }\r\n\r\n function getMitigations() {\r\n $http.get(apiUrl + 'api/arm/mitigations').then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $scope.mitigations = response.data;\r\n });\r\n }\r\n\r\n function setupAdditionalMitigationsObject() {\r\n $scope.mitigatedRisk = {\r\n selectedMitigateAddtional: '',\r\n companyIds: ''\r\n };\r\n }\r\n\r\n $scope.requestRiskMitigation = async function () {\r\n $scope.riskToMitigate.updateInProgress = new createSpinner();\r\n\r\n let userMitigation = {\r\n \"RequestMitigationId\": $scope.riskToMitigate.RequestMitigationIdentifier,\r\n \"RequestId\": request.Id,\r\n \"Version\": request.Version,\r\n \"CompanyMasterId\": $scope.riskToMitigate.CompanyMasterID,\r\n \"RiskId\": $scope.riskToMitigate.RiskId,\r\n \"MitigationId\": $scope.riskToMitigate.MitigationID,\r\n \"MitigationNotes\": $scope.riskToMitigate.MitigationNotes,\r\n \"StatusId\": $scope.riskToMitigate.StatusID,\r\n \"Controls\": $scope.selectedControls.map(x => x.Identifier)\r\n };\r\n\r\n if ($scope.riskToMitigate.MitigationID) {\r\n userMitigation.Controls = null;\r\n } else if ($scope.selectedControls) {\r\n userMitigation.MitigationId = null;\r\n }\r\n\r\n grid.forEach(item => {\r\n // Create status for new request.\r\n if (item.RiskId === userMitigation.RiskId && item.CompanyMasterID === userMitigation.CompanyMasterId) {\r\n item.RequestMitigation = 'Edit';\r\n item.RequestMitigationId = userMitigation.MitigationId;\r\n item.RequestMitigationNotes = userMitigation.MitigationNotes;\r\n item.RequestMitigationStatusId = userMitigation.StatusId;\r\n item.Controls = userMitigation.Controls;\r\n }\r\n });\r\n\r\n $scope.killModal = true;\r\n try {\r\n await $http.post(apiUrl + 'api/identityManager/requests/' + request.Id + '/version/' + request.Version + '/mitigations', userMitigation);\r\n await $scope.mitigateInAdditionalCompanies();\r\n await helperService.successfulSaveButton($scope.riskToMitigate.updateInProgress);\r\n $uibModalInstance.close(true);\r\n $scope.$parent.vm.RisksDataSource.read();\r\n } catch (error) {\r\n $scope.riskToMitigate.updateInProgress.loadingValue = false;\r\n helperService.showErrorMessage(error.data);\r\n }\r\n\r\n };\r\n\r\n $scope.mitigateInAdditionalCompanies = async function () {\r\n if ($scope.mitigatedRisk && $scope.mitigatedRisk.additionalCompanies) {\r\n if ($scope.mitigatedRisk.additionalCompanies && $scope.mitigatedRisk.additionalCompanies.length > 0) {\r\n const additionalCompanies = $scope.mitigatedRisk.additionalCompanies;\r\n\r\n try {\r\n for (const company of additionalCompanies) {\r\n let additionalUserMitigation = {\r\n \"RequestMitigationId\": $scope.riskToMitigate.RequestMitigationId, \"RequestId\": request.Id,\r\n \"Version\": request.Version,\r\n \"CompanyMasterId\": company.CompanyMasterID,\r\n \"RiskId\": $scope.riskToMitigate.RiskId,\r\n \"MitigationId\": $scope.riskToMitigate.MitigationID,\r\n \"MitigationNotes\": $scope.riskToMitigate.MitigationNotes,\r\n \"StatusId\": $scope.riskToMitigate.StatusID,\r\n \"Controls\": $scope.selectedControls.map(x => x.Identifier)\r\n };\r\n\r\n if ($scope.riskToMitigate.MitigationID) {\r\n additionalUserMitigation.Controls = null;\r\n } else if ($scope.selectedControls) {\r\n additionalUserMitigation.MitigationId = null;\r\n }\r\n\r\n grid.forEach(item => {\r\n // Create status for new request.\r\n if (item.RiskId === additionalUserMitigation.RiskId && item.CompanyMasterID === additionalUserMitigation.CompanyMasterId) {\r\n item.RequestMitigation = 'Edit';\r\n item.RequestMitigationId = additionalUserMitigation.RequestMitigationId;\r\n item.RequestMitigationNotes = additionalUserMitigation.MitigationNotes;\r\n item.RequestMitigationStatusId = additionalUserMitigation.StatusId;\r\n item.Controls = additionalUserMitigation.Controls;\r\n }\r\n });\r\n\r\n await $http.post(apiUrl + 'api/identityManager/requests/' + request.Id + '/version/' + request.Version + '/mitigations', additionalUserMitigation);\r\n }\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, mainGrid, helperService, disableObjectData) {\r\n\r\n const vm = this;\r\n\r\n vm.cancel = cancel;\r\n\r\n var RisksColumns = [\r\n { field: \"Comparison\", width: 100, template: '{{dataItem.Comparison}}' },\r\n { field: \"RequestMitigation\", title: \"Request Mitigation\", template: \"{{dataItem.RequestMitigation}}{{dataItem.RequestMitigation}}\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyName\", title: \"Company\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 190, filterable: customAutoCompleteFilter, groupHeaderTemplate: \"#= value #\" },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 110, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 110, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Current Mitigation\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationStatus\", title: \"Current Mitigation Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RequestMitigationStatusName\", title: \"Request Mitigation Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Current Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RequestMitigationNotes\", title: \"Request Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Current Mitigation Controls\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RequestMitigationControlNames\", title: \"Request Mitigation Controls\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"ProductID\", title: \"ProductID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityRoleID\", title: \"Security Role ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectTypeID\", title: \"Security ObjectType ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectID\", title: \"Security Object ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"AccessTypeID\", title: \"Access Type ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true }\r\n ];\r\n\r\n vm.RisksOptions = helperService.setMainGridOptions(RisksColumns, null);\r\n if (!disableObjectData) {\r\n vm.RisksOptions.detailTemplate = kendo.template($(\"#risksTemplate\").html());\r\n }\r\n vm.RisksOptions.selectable = false;\r\n vm.RisksOptions.columnMenu = true;\r\n vm.RisksOptions.filterable = {\r\n mode: \"row\",\r\n operators: {\r\n string: {\r\n contains: \"Contains\",\r\n doesnotcontain: \"Does not contain\",\r\n eq: \"Equal to\",\r\n neq: \"Not equal to\"\r\n }\r\n }\r\n };\r\n\r\n vm.RisksDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n data: mainGrid,\r\n schema: {\r\n model: {\r\n fields: {\r\n RiskId: { type: \"number\" }\r\n }\r\n }\r\n },\r\n pageable: false\r\n });\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $http, helperService, errorsDataService, request) {\r\n\r\n const vm = this;\r\n\r\n vm.submitRequestAction = submitRequestAction;\r\n vm.cancel = cancel;\r\n\r\n async function submitRequestAction() {\r\n\r\n vm.updatePending = new createSpinner();\r\n let accessItems = request.RequestAccesses.filter(access => access.Action && access.Action !== 'Delegated');\r\n let userItems = request.RequestUsers.filter(user => user.Action && user.Action !== 'Delegated');\r\n\r\n accessItems = accessItems.map(item => {\r\n let newItem = {\r\n RequestAccessId: item.Id,\r\n Approved: item.Action === 'Approve' ? true : false\r\n };\r\n return newItem;\r\n });\r\n\r\n userItems = userItems.map(item => {\r\n let newItem = {\r\n RequestUserId: item.Id,\r\n Approved: item.Action === 'Approve' ? true : false\r\n };\r\n return newItem;\r\n });\r\n\r\n let postData = {\r\n \"RequestId\": request.Id,\r\n \"Version\": request.Version,\r\n \"Notes\": vm.approveDeny.note,\r\n \"AccessItems\": accessItems,\r\n \"UserItems\": userItems\r\n };\r\n\r\n try {\r\n let response = await $http.post(apiUrl + 'api/identitymanager/requests/' + request.Id + '/version/' + request.Version + '/reviews', postData);\r\n await helperService.successfulSaveButton(vm.updatePending);\r\n $uibModalInstance.close(response.status);\r\n } catch (err) {\r\n vm.updatePending.loadingValue = false;\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($http, $uibModalInstance, $filter, authenticationService, errorsDataService, dataService, helperService, request, delegationItems, requestType) {\r\n\r\n const vm = this;\r\n vm.delegation = {};\r\n vm.userDropdownLoading = false;\r\n vm.helperService = helperService;\r\n vm.cancel = cancel;\r\n vm.requestDelegation = requestDelegation;\r\n\r\n activate();\r\n\r\n function activate() {\r\n getUsers();\r\n }\r\n\r\n async function getUsers() {\r\n vm.userDropdownLoading = true;\r\n const currentUser = await authenticationService.getUser();\r\n let response = await dataService.getUsers();\r\n response.data = response.data.filter(user => user.UserID !== currentUser.userId && user.UserID !== request.Requestor);\r\n response.data = $filter('orderBy')(response.data, 'UserLogonName');\r\n response.data = response.data.filter(user => user.Active && user.RestrictDelegateAccessIM === false);\r\n vm.usersDataSource = response.data;\r\n vm.userDropdownLoading = false;\r\n }\r\n\r\n async function requestDelegation() {\r\n vm.delegationPending = new createSpinner();\r\n let data = {\r\n RequestId: request.Id,\r\n Version: request.Version,\r\n DelegatedUserId: vm.delegation.selectedUser,\r\n Notes: vm.delegation.notes,\r\n RequestUserIds: requestType === 'User' ? delegationItems.map(user => user.Id) : null,\r\n RequestAccessIds: requestType === 'Access' ? delegationItems.map(access => access.Id) : null\r\n };\r\n\r\n try { \r\n await $http.post(apiUrl + 'api/identitymanager/requests/' + request.Id + '/version/' + request.Version + '/delegations', data);\r\n await helperService.successfulSaveButton(vm.delegationPending);\r\n $uibModalInstance.close(delegationItems);\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n vm.delegationPending.loadingValue = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($http, $uibModalInstance, helperService, selectedAccessItemsForAction, request, errorsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.cancel = cancel;\r\n\r\n vm.accessItems = selectedAccessItemsForAction;\r\n vm.requestType = request.Action;\r\n vm.requestId = request.Id;\r\n\r\n vm.fromDateChanged = fromDateChanged;\r\n vm.toDateChanged = toDateChanged;\r\n vm.saveEffectiveDates = saveEffectiveDates;\r\n\r\n activate();\r\n\r\n function activate() {\r\n // Set up Min Dates for each item\r\n vm.accessItems.forEach(access => {\r\n access.minStartDate = new Date();\r\n access.minEndDate = new Date();\r\n access.maxEndDate = new Date(2900, 0, 1, 0, 0, 0);\r\n\r\n if (access.StartDate) {\r\n access.StartDate = new Date(access.StartDate);\r\n }\r\n\r\n if (access.EndDate) {\r\n access.EndDate = new Date(access.EndDate);\r\n }\r\n\r\n if (access.originalStartDate > new Date()) {\r\n access.minEndDate = access.StartDate;\r\n access.readOnly = false;\r\n } else {\r\n access.minEndDate = new Date();\r\n access.minStartDate = new Date(null);\r\n access.readOnly = true;\r\n }\r\n\r\n access.invalidEmergencyAccessEndDate = false;\r\n\r\n if (vm.requestType === 'EmergencyAccess') {\r\n access.maxEndDate = new Date();\r\n access.maxEndDate.setTime(vm.maxEndDate.getTime() + (vm.emergencyAccessPeriod * 60 * 60 * 1000));\r\n }\r\n\r\n });\r\n\r\n vm.changeMade = false;\r\n vm.emergencyAccessPeriod = Number(JSON.parse(localStorage.getItem(\"ConfigurationValues\")).MaxFirefighterAccessPeriod);\r\n }\r\n\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function fromDateChanged(access) {\r\n vm.changeMade = true;\r\n if (!access.StartDate) {\r\n access.minEndDate = new Date();\r\n } else {\r\n access.minEndDate = access.StartDate;\r\n }\r\n if (vm.requestType === 'EmergencyAccess') {\r\n access.maxEndDate = new Date(access.StartDate);\r\n access.maxEndDate.setTime(access.maxEndDate.getTime() + (vm.emergencyAccessPeriod * 60 * 60 * 1000));\r\n }\r\n vm.rebindEffectiveDates = vm.rebindEffectiveDates === 0 ? 1 : 0;\r\n }\r\n\r\n function toDateChanged(access) {\r\n vm.changeMade = true;\r\n\r\n if (!isDate(access.EndDate)) {\r\n access.EndDate = null;\r\n }\r\n\r\n if (vm.requestType === 'EmergencyAccess') {\r\n if (access.EndDate > access.maxEndDate) {\r\n access.invalidEmergencyAccessEndDate = true;\r\n } else {\r\n access.invalidEmergencyAccessEndDate = false;\r\n }\r\n }\r\n\r\n vm.rebindEffectiveDates = vm.rebindEffectiveDates === 0 ? 1 : 0;\r\n }\r\n\r\n function isDate(x) {\r\n return x instanceof Date;\r\n }\r\n\r\n async function saveEffectiveDates() {\r\n vm.saving = new createSpinner();\r\n let effectiveDates = [];\r\n vm.accessItems.forEach(access => {\r\n effectiveDates.push({\r\n \"RequestAccessId\": access.Id,\r\n \"StartDate\": access.StartDate,\r\n \"EndDate\": access.EndDate\r\n });\r\n });\r\n\r\n let putData = {\r\n \"RequestId\": request.Id,\r\n \"Version\": request.Version,\r\n \"RequestEffectiveDates\": effectiveDates\r\n };\r\n\r\n try {\r\n await $http.put(apiUrl + 'api/identitymanager/requests/' + request.Id + '/version/' + request.Version + '/effectivedates', putData);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close();\r\n } catch (err) {\r\n vm.saving.loadingValue = false;\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $http, helperService, errorsDataService, requestData) {\r\n\r\n const vm = this;\r\n vm.requestData = requestData;\r\n vm.submitCancelNotes = submitCancelNotes;\r\n vm.cancel = cancel;\r\n\r\n async function submitCancelNotes() {\r\n\r\n vm.savePending = new createSpinner();\r\n\r\n try {\r\n await $http.put(`${apiUrl}api/identitymanager/requests/${requestData.RequestId}/version/${requestData.Version}/cancel`, vm.requestData);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n $uibModalInstance.close();\r\n } catch (err) {\r\n vm.savePending.loadingValue = false;\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($http, $uibModalInstance, helperService, request, errorsDataService, $scope) {\r\n\r\n const vm = this;\r\n\r\n vm.request = { ...request };\r\n vm.saveRequestExpirationDate = saveRequestExpirationDate;\r\n vm.dismiss = dismiss;\r\n\r\n vm.minStartDate = new Date();\r\n\r\n\r\n async function saveRequestExpirationDate() {\r\n vm.saving = new createSpinner();\r\n\r\n let putData = {\r\n RequestId: request.Id,\r\n Version: request.Version,\r\n ExpirationDate: vm.request.ExpirationDate ? new Date(vm.request.ExpirationDate).toUTCString() : null\r\n };\r\n\r\n try {\r\n await $http.put(`${apiUrl}api/identitymanager/requests/${request.Id}/version/${request.Version}/expirationdate`, putData);\r\n\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close();\r\n } catch (err) {\r\n vm.saving.loadingValue = false;\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import swal from \"sweetalert2\";\r\nimport { standardGridPageSize, customAutoCompleteFilter, customDatePickerFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport requestDetailsUserRisksMitigationModalController from \"./UserRisksMitigationModal/requestDetailsUserRisksMitigationModal.controller\";\r\nimport requestDetailsModalController from \"./RequestDetailsModal/requestDetailsModal.controller\";\r\nimport approveDenyModalController from \"./ApproveDenyModal/approveDenyModal.controller\";\r\nimport requestDelegationModalController from \"./DelegationModal/requestDelegationModal.controller\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport editEffectiveDatesModalController from \"./EditEffectiveDatesModal/editEffectiveDatesModal.controller\";\r\nimport cancellationNotesModalController from \"./cancellationNotesModal/cancellationNotesModal.controller\";\r\nimport editRequestExpirationModalController from \"./EditRequestExpirationModal/editRequestExpirationModal.controller\";\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $uibModal, RequestManagementLoadDataService, emailNavigationService, openRequestsDataService, configurationDataService, $route, authenticationService, $filter, $http, $window, $location, helperService, FileSaver, controlLibraryDataService) {\r\n\r\n var vm = $scope.vm = {};\r\n vm.helperService = helperService;\r\n vm.requestDetails = null;\r\n vm.pageParams = $location.search();\r\n const tenantInlocalStorage = angular.fromJson(localStorage.getItem(\"selectedTenant\"));\r\n vm.selectedItemsForAction = [];\r\n vm.allUserSelected = false;\r\n vm.allAccessSelected = false;\r\n vm.selectedUserItemsForAction = [];\r\n vm.selectedAccessItemsForAction = [];\r\n vm.attachments = [];\r\n vm.changesToSubmit = false;\r\n vm.emergencyAccessStatus = null;\r\n vm.selectedDetailView = 'Notes';\r\n vm.awaitingRequestProcessing = false;\r\n\r\n vm.requestRiskMitigation = requestRiskMitigation;\r\n vm.expandDetails = expandDetails;\r\n vm.openApproveDenyRequestModal = openApproveDenyRequestModal;\r\n vm.updateSelectedAccessItemsForAction = updateSelectedAccessItemsForAction;\r\n vm.updateSelectedUserItemsForAction = updateSelectedUserItemsForAction;\r\n vm.selectAllAccesses = selectAllAccesses;\r\n vm.selectAllUsers = selectAllUsers;\r\n vm.applyActionToSelectedItems = applyActionToSelectedItems;\r\n vm.collectTCodeUsage = collectTCodeUsage;\r\n vm.openEffectiveDateModal = openEffectiveDateModal;\r\n vm.openEditRequestExpirationModal = openEditRequestExpirationModal;\r\n vm.removeFile = removeFile;\r\n vm.downloadFile = downloadFile;\r\n vm.hideBackButton = false;\r\n\r\n async function activate() {\r\n vm.disableObjectLevelRiskAnalysis = await getDisableObjectLevelConfiguration();\r\n vm.currentUser = await authenticationService.getUser();\r\n checkForCancelOrEditAllRequests();\r\n redirectIfNeeded();\r\n defineColumnsAndReports();\r\n }\r\n\r\n activate();\r\n\r\n $scope.$on('$locationChangeStart', (e, newUrl) => {\r\n if (checkForUnsavedChanges() && !vm.awaitingRequestProcessing) {\r\n e.preventDefault();\r\n swal(helperService.areYouSureParams('Pending Changes', 'Any request items with pending approve or deny actions will not be saved until you have submitted. Do you still want to continue?', 'Yes')).then(_ => {\r\n $window.location.href = newUrl;\r\n }).catch(_ => {\r\n return;\r\n });\r\n }\r\n });\r\n\r\n $scope.$on('RequestReview', _ => {\r\n $route.reload();\r\n });\r\n\r\n async function getDisableObjectLevelConfiguration() {\r\n const disableObjectLevelRiskAnalysis = await configurationDataService.getConfigurationValueByName(\"IM_DisableObjectLevelRiskAnalysis\");\r\n return disableObjectLevelRiskAnalysis.data === 1;\r\n }\r\n\r\n function checkForUnsavedChanges() {\r\n return vm.selectedAccessItemsForAction.length > 0 || vm.selectedUserItemsForAction.length > 0 || vm.req && vm.req.RequestAccesses.some(access => access.Action && access.Action !== 'Delegated') || vm.req && vm.req.RequestUsers.some(user => user.Action && user.Action !== 'Delegated');\r\n }\r\n\r\n // Attachments Logic\r\n\r\n async function removeFile(file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n await controlLibraryDataService.deleteAttachment(file.Identifier);\r\n\r\n const index = vm.attachments.findIndex(remainingFile => remainingFile.Identifier === file.Identifier);\r\n vm.attachments.splice(index, 1);\r\n vm.fileActionPending = false;\r\n } catch {\r\n vm.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function downloadFile(file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n const response = await controlLibraryDataService.downloadAttachment(file.Identifier);\r\n FileSaver.saveAs(response.data, file.FileName);\r\n vm.fileActionPending = false;\r\n } catch {\r\n vm.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function redirectIfNeeded() {\r\n try {\r\n if (vm.pageParams.tenantid) {\r\n vm.hideBackButton = true;\r\n\r\n if (vm.pageParams.tenantid === tenantInlocalStorage.ID) {\r\n vm.sufficientSecurityAccess = true;\r\n return;\r\n } else {\r\n await findTenantFromEmail();\r\n }\r\n } else {\r\n vm.sufficientSecurityAccess = true;\r\n return;\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function findTenantFromEmail() {\r\n emailNavigationService.availableTenants(vm.currentUser.userId)\r\n .then(response => {\r\n\r\n let validTenant = response.data.find(tenant => {\r\n return tenant.ID === vm.pageParams.tenantid;\r\n });\r\n\r\n if (validTenant) {\r\n vm.redirectToTenant = true;\r\n localStorage.setItem(\"selectedTenant\", JSON.stringify(angular.copy(validTenant)));\r\n $window.location.reload();\r\n } else {\r\n vm.insufficientSecurityAccess = true;\r\n }\r\n\r\n });\r\n }\r\n\r\n var requestIdParam = null;\r\n if (vm.pageParams.requestid) {\r\n requestIdParam = vm.pageParams.requestid;\r\n }\r\n if (vm.pageParams.RequestId) {\r\n requestIdParam = vm.pageParams.RequestId;\r\n }\r\n\r\n var requestVersionParam = null;\r\n if (vm.pageParams.Version) {\r\n requestVersionParam = vm.pageParams.Version;\r\n }\r\n if (vm.pageParams.version) {\r\n requestVersionParam = vm.pageParams.version;\r\n }\r\n\r\n vm.reportDetailsComplete = false;\r\n\r\n async function createDataSources(data) {\r\n if (vm.emergencyAccessStatus) {\r\n const requestedResponse = await $http.get(`${apiUrl}api/identitymanager/requests/${vm.req.Id}/version/${vm.req.Version}/emergencyaccessobjects`);\r\n data.TCodeRequest = requestedResponse.data;\r\n const usageResponse = await $http.get(`${apiUrl}api/identitymanager/requests/${vm.req.Id}/version/${vm.req.Version}/emergencyaccess/usage`);\r\n data.TCodeUsage = usageResponse.data;\r\n vm.selectedDetailView = 'TCodes';\r\n }\r\n vm.ApprovalsRequiredDataSource = new kendo.data.DataSource({\r\n data: data.Reviewers\r\n });\r\n vm.ApprovalsSubmittedDataSource = new kendo.data.DataSource({\r\n data: data.Reviews\r\n });\r\n vm.ErrorLogDataSource = new kendo.data.DataSource({\r\n data: data.Errors\r\n });\r\n vm.TCodeRequestedDataSource = new kendo.data.DataSource({\r\n data: data.TCodeRequest\r\n });\r\n vm.TCodeUsageDataSource = new kendo.data.DataSource({\r\n data: data.TCodeUsage\r\n });\r\n\r\n if (data.RiskAnalysis) {\r\n\r\n vm.RisksDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n data: data.RiskAnalysis.UserRisks,\r\n schema: {\r\n model: {\r\n fields: {\r\n RiskId: { type: \"number\" }\r\n }\r\n }\r\n },\r\n pageable: false\r\n });\r\n\r\n vm.BusinessProcessDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n data: data.RiskAnalysis.BusinessProcesses,\r\n group: [{ field: \"BusinessProcessGroupName\", dir: \"asc\" }, { field: \"ObjectComparison\", dir: \"asc\" }]\r\n });\r\n\r\n }\r\n\r\n vm.ucExistingTotal = 0;\r\n vm.ucNewTotal = 0;\r\n vm.ucRemovedTotal = 0;\r\n vm.ucTotal = 0;\r\n\r\n //Assign totals for summary grids\r\n if (data.RiskAnalysis) {\r\n //Assign totals for summary grids\r\n vm.riskResults = data.RiskAnalysis;\r\n\r\n vm.ucExistingTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.UserRiskAnalysis.CountByComparison, 'Existing');\r\n vm.ucNewTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.UserRiskAnalysis.CountByComparison, 'Added');\r\n vm.ucRemovedTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.UserRiskAnalysis.CountByComparison, 'Deleted');\r\n vm.ucTotal = vm.ucExistingTotal + vm.ucNewTotal;\r\n\r\n vm.bpGroupExistingTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.GroupCountByComparison, 'Existing');\r\n vm.bpGroupNewTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.GroupCountByComparison, 'Added');\r\n vm.bpGroupRemovedTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.GroupCountByComparison, 'Deleted');\r\n vm.bpGroupTotal = vm.bpGroupExistingTotal + vm.bpGroupNewTotal;\r\n\r\n vm.bpObjectExistingTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.ObjectCountByComparison, 'Existing');\r\n vm.bpObjectNewTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.ObjectCountByComparison, 'Added');\r\n vm.bpObjectRemovedTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.ObjectCountByComparison, 'Deleted');\r\n vm.bpObjectTotal = vm.bpObjectExistingTotal + vm.bpObjectNewTotal;\r\n }\r\n\r\n vm.notesList = data.Notes;\r\n }\r\n\r\n async function collectTCodeUsage() {\r\n vm.collecting = new createSpinner();\r\n let postBody = {\r\n RequestId: vm.req.Id,\r\n Version: vm.req.Version\r\n };\r\n try {\r\n await $http.post(`${apiUrl}api/identitymanager/requests/${vm.req.Id}/version/${vm.req.Version}/emergencyaccess/usage/collect`, postBody);\r\n await helperService.successfulSaveButton(vm.collecting);\r\n let response = await $http.get(`${apiUrl}api/identitymanager/requests/${vm.req.Id}/version/${vm.req.Version}/emergencyaccess/usage`);\r\n vm.TCodeUsageDataSource = response.data;\r\n await vm.TCodeUsageDataSource.read();\r\n } catch {\r\n vm.collecting.loadingValue = false;\r\n }\r\n }\r\n\r\n async function checkForCancelOrEditAllRequests() {\r\n vm.cancelAllRequests = await openRequestsDataService.checkForCancelOrEditAllRequests(\"Cancel Other User's Requests\");\r\n vm.editAllRequests = await openRequestsDataService.checkForCancelOrEditAllRequests('Edit All Requests');\r\n }\r\n\r\n vm.editRequest = function () {\r\n $rootScope.requestToEdit = { Id: vm.req.Id, Version: vm.req.Version };\r\n $location.path('/IdentityManager/Place/RequestManagement/' + vm.req.Action).search({});\r\n };\r\n\r\n vm.cancelRequest = function () {\r\n swal(helperService.areYouSureParams('Cancel Request', 'Are you sure you want to cancel this request?', 'Yes', 'No')).then(async function () {\r\n var putData = {\r\n \"RequestId\": vm.req.Id,\r\n \"Version\": vm.req.Version\r\n };\r\n\r\n const requireNotes = await helperService.getConfigurationValue('IM_RequireNoteOnCancelledRequests') === '1';\r\n\r\n if (requireNotes) {\r\n openCancellationNotesModal(putData);\r\n } else {\r\n $http.put(`${apiUrl}api/identitymanager/requests/${vm.req.Id}/version/${vm.req.Version}/cancel`, putData).then(function (response) {\r\n $route.reload();\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n }, function (dismiss) {\r\n return;\r\n });\r\n };\r\n\r\n async function openCancellationNotesModal(requestData) {\r\n let cancelNotesModal = $uibModal.open({\r\n templateUrl: '/App/Components/IdentityManagerRequestDetails/cancellationNotesModal/cancellationNotesModal.html',\r\n controller: cancellationNotesModalController,\r\n controllerAs: 'cnvm',\r\n backdrop: 'static',\r\n resolve: {\r\n requestData: () => requestData\r\n }\r\n });\r\n\r\n try {\r\n await cancelNotesModal.result;\r\n $route.reload();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n vm.endEmergencyAccessUsage = function () {\r\n swal(helperService.areYouSureParams('End Emergency Access', 'Are you sure you want to end emergency access for the roles in this request?', 'Continue')).then(function () {\r\n var putData = {\r\n \"RequestId\": vm.req.Id,\r\n \"Version\": vm.req.Version\r\n };\r\n $http.delete(apiUrl + `api/identitymanager/requests/${vm.req.Id}/version/${vm.req.Version}/emergencyaccess/end`).then(function (response) {\r\n $route.reload();\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }, function (dismiss) {\r\n return;\r\n });\r\n };\r\n\r\n vm.reprocessRequest = function () {\r\n var putData = {\r\n \"RequestId\": vm.req.Id,\r\n \"Version\": vm.req.Version\r\n };\r\n\r\n $http.put(apiUrl + 'api/identitymanager/requests/' + vm.req.Id + '/version/' + vm.req.Version + '/reprocess', putData).then(function (response) {\r\n helperService.showConfirmationMessage(\"Success\", \"Request is being reprocessed\");\r\n $route.reload();\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n vm.exportReport = function () {\r\n var postData = {\r\n \"RequestId\": vm.req.Id,\r\n \"Version\": vm.req.Version\r\n };\r\n\r\n $http.post(apiUrl + 'api/core/exports/imrequest', postData).then(function successCallback(response) {\r\n var fullExportName;\r\n fullExportName = 'IdentityManagementRequestDetails' + '.pdf';\r\n\r\n response.data = { ExportId: response.data, ExportName: fullExportName };\r\n\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $http.get(apiUrl + 'api/identitymanager/requests/' + requestIdParam + '/version/' + requestVersionParam).then(async function (response) {\r\n\r\n var data = response.data;\r\n vm.linkedTickets = response.data.Tickets;\r\n\r\n if (data.RiskAnalysis && data.RiskAnalysis.UserRisks.length > 0) {\r\n data.RiskAnalysis.UserRisks = $filter('orderBy')(data.RiskAnalysis.UserRisks, 'Comparison');\r\n vm.userRisksData = data.RiskAnalysis.UserRisks;\r\n }\r\n\r\n if (vm.userRisksData && data.CanIReview) {\r\n data.RiskAnalysis.UserRisks.forEach(risk => {\r\n if (risk.RequestMitigationIdentifier) {\r\n risk.RequestMitigation = 'Edit';\r\n } else {\r\n risk.RequestMitigation = 'Request';\r\n }\r\n\r\n vm.requestAllowed = true;\r\n });\r\n } else if (vm.userRisksData && data.RiskAnalysis.UserRisks.length > 0) {\r\n data.RiskAnalysis.UserRisks.forEach(risk => {\r\n if (risk.RequestMitigationIdentifier) {\r\n risk.RequestMitigation = 'Requested Mitigation';\r\n } else {\r\n risk.RequestMitigation = 'N/A';\r\n }\r\n vm.requestAllowed = false;\r\n });\r\n }\r\n\r\n if (data.GeneralUser) {\r\n data.AffectedObject = data.GeneralUser;\r\n }\r\n\r\n data.RequestAccesses.forEach(function (row, i) {\r\n if (row.Access) {\r\n row.Access = row.Access;\r\n }\r\n });\r\n\r\n data.RequestUsers.forEach(function (row, i) {\r\n if (row.User) {\r\n row.User = row.User;\r\n }\r\n });\r\n\r\n vm.req = data;\r\n vm.requestDetails = data;\r\n\r\n vm.terminations = data.TerminatedUserRoles.reduce((accessAccumulator, currentRole) => {\r\n const role = {\r\n Product: currentRole.ProductName,\r\n AccessType: currentRole.TypeID,\r\n Access: currentRole.Name\r\n };\r\n if (currentRole.Companies.length) {\r\n $scope.vm.hasCompany = true;\r\n let roleCompanies = [];\r\n currentRole.Companies.forEach(company => {\r\n roleCompanies.push({ ...role, Company: company.Name });\r\n })\r\n return accessAccumulator.concat(roleCompanies);\r\n }\r\n else {\r\n accessAccumulator.push(role);\r\n return accessAccumulator;\r\n }\r\n }, []);\r\n\r\n vm.accessItems = data.RequestAccesses;\r\n\r\n vm.canReviewAccessRequest = vm.accessItems.some(access => access.CanIReview);\r\n vm.canReviewUserRequest = data.RequestUsers.some(user => user.CanIReview);\r\n\r\n vm.emptyStartEndDates = vm.accessItems.every(access => access.StartDate === null && access.EndDate === null);\r\n\r\n // Check all Access Statuses to determine if 'Edit Effective Dates' button and column should be hidden\r\n vm.checkEveryAccessStatus = vm.accessItems.every(access => access.Status === 'Pending' || access.Status === 'Approved' || access.Status === 'AwaitingEffectiveDateProcessing');\r\n\r\n // Check to see if any Access Request Statuses are Pending, Approved, or Awaiting and disable 'Edit Effective Dates' button and column accordingly\r\n vm.checkSomeAccessStatuses = vm.accessItems.some(access => access.Status === 'Pending' || access.Status === 'Approved' || access.Status === 'AwaitingEffectiveDateProcessing');\r\n\r\n // Check to see if Start Date or End Date is null or in the past\r\n vm.checkEveryStartDate = vm.accessItems.every(access => (access.StartDate === null || (new Date(access.StartDate) < new Date())));\r\n vm.checkEveryEndDate = vm.accessItems.every(access => (access.EndDate === null || (new Date(access.EndDate) < new Date())));\r\n\r\n // Consolidate Access and Date Checks\r\n vm.showRequests = (vm.checkEveryAccessStatus || vm.checkSomeAccessStatuses) && (!vm.checkEveryStartDate || !vm.checkEveryEndDate) && (vm.currentUser.userId === vm.req.Requestor);\r\n\r\n\r\n checkEffectiveDates();\r\n vm.attachments = vm.req.Attachments;\r\n vm.req.hasObjectId = vm.req.AffectedObject.ID === '00000000-0000-0000-0000-000000000000';\r\n await checkForEmergencyAccessStatus(data.RequestAccesses);\r\n createDataSources(data);\r\n updateActionTotals();\r\n vm.reportDetailsComplete = true;\r\n }, function errorCallback(response) {\r\n vm.reportDetailsComplete = true;\r\n });\r\n\r\n function checkEffectiveDates() {\r\n const currentDate = new Date();\r\n\r\n vm.accessItems.forEach(access => {\r\n const startDate = new Date(access.StartDate);\r\n const endDate = new Date(access.EndDate);\r\n access.validStartDate = false;\r\n access.validEndDate = false;\r\n\r\n if (access.StartDate !== null && (startDate >= currentDate)) {\r\n access.validStartDate = true;\r\n } else {\r\n access.validStartDate = false;\r\n }\r\n\r\n if (access.EndDate !== null && (endDate >= currentDate)) {\r\n access.validEndDate = true;\r\n } else {\r\n access.validEndDate = false;\r\n }\r\n\r\n if ((access.EndDate !== null && (endDate >= currentDate)) && (access.StartDate === null || (startDate < currentDate))) {\r\n access.validEndDate = true;\r\n }\r\n\r\n });\r\n\r\n vm.availableEffectiveDatesAccessItems = vm.accessItems.filter(access => (access.validEndDate || access.validStartDate) && (access.Status === 'Pending' || access.Status === 'Approved' || access.Status === 'AwaitingEffectiveDateProcessing'));\r\n }\r\n\r\n //Copy the Request ID to the clipboard\r\n vm.copyToClipboard = function () {\r\n try {\r\n const el = document.createElement('input');\r\n el.value = vm.req.Id;\r\n el.setAttribute('readonly', '');\r\n el.style.position = 'absolute';\r\n el.style.left = '-9999px';\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n }\r\n catch (ex) {\r\n swal({ title: 'Error copying to clipboard', type: 'warning', showCancelButton: false });\r\n }\r\n };\r\n\r\n function defineColumnsAndReports() {\r\n var ApprovalsRequiredColumns = [\r\n { field: \"Type\", filterable: customAutoCompleteFilter },\r\n { field: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Level\", filterable: customAutoCompleteFilter },\r\n { field: \"Quantity\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n var ApprovalsSubmittedColumns = [\r\n { field: \"Reviewer\", title: \"Approver\", filterable: customAutoCompleteFilter },\r\n { field: \"ReviewedOn\", template: \"{{ dataItem.ReviewedOn | date:'short'}}\", title: \"Approval Date\", filterable: customDatePickerFilter },\r\n { field: \"Version\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n var ErrorLogColumns = [\r\n { field: \"Detail\", filterable: customAutoCompleteFilter },\r\n { field: \"TimeStamp\", template: \"{{ dataItem.TimeStamp | date:'short'}}\", title: \"Time\", filterable: customDatePickerFilter }\r\n ];\r\n\r\n var RisksColumns = [\r\n { field: \"Comparison\", width: 100, template: '{{dataItem.Comparison}}' },\r\n { field: \"RequestMitigation\", title: \"Request Mitigation\", template: \"{{dataItem.RequestMitigation}}{{dataItem.RequestMitigation}}\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyName\", title: \"Company\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk Id\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 190, filterable: customAutoCompleteFilter, groupHeaderTemplate: \"#= value #\" },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 110, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 110, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Current Mitigation\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationStatus\", title: \"Current Mitigation Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RequestMitigationStatusName\", title: \"Request Mitigation Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Current Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RequestMitigationNotes\", title: \"Request Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Current Mitigation Controls\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RequestMitigationControlNames\", title: \"Request Mitigation Controls\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"ProductID\", title: \"ProductID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityRoleID\", title: \"Security Role ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectTypeID\", title: \"Security ObjectType ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectID\", title: \"Security Object ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"AccessTypeID\", title: \"Access Type ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true }\r\n ];\r\n\r\n const TCodeRequestColumns = [\r\n { field: \"SecurityObjectName\", title: \"TCode\", filterable: false },\r\n { field: \"SecurityObjectAltName\", title: \"Description\", filterable: false }];\r\n\r\n const TCodeUseColumns = [\r\n { field: \"SecurityObjectId\", title: \"TCode\", filterable: false },\r\n { field: \"AccessDate\", title: \"Access Date\", filterable: false }];\r\n\r\n var columnsFromVMBusinessProcess = [\r\n { field: \"CompanyName\", title: \"Company\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"ProductName\", title: \"Product\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object\", width: 180, filterable: customAutoCompleteFilter, hidden: vm.disableObjectLevelRiskAnalysis },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 180, filterable: customAutoCompleteFilter, hidden: vm.disableObjectLevelRiskAnalysis },\r\n { field: \"ObjectComparison\", width: 125, groupHeaderTemplate: \"#= value #\", template: '{{dataItem.ObjectComparison}}', hidden: vm.disableObjectLevelRiskAnalysis },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 150, filterable: customAutoCompleteFilter, hidden: vm.disableObjectLevelRiskAnalysis },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 150, filterable: customAutoCompleteFilter, hidden: vm.disableObjectLevelRiskAnalysis },\r\n { field: \"BusinessProcessGroupName\", title: \"Group\", width: 180, filterable: customAutoCompleteFilter, groupHeaderTemplate: \"#= value #\" },\r\n { field: \"GroupComparison\", width: 125, groupHeaderTemplate: \"#= value #\", template: '{{dataItem.GroupComparison}}' }\r\n ];\r\n\r\n vm.TCodeRequestedOptions = helperService.setNonPageableGridOptions(TCodeRequestColumns);\r\n vm.TCodeUsageOptions = helperService.setNonPageableGridOptions(TCodeUseColumns);\r\n vm.TCodeUsageOptions.noRecords = {\r\n template: \"
No TCode Usage Was Recorded
\"\r\n };\r\n\r\n vm.ApprovalsRequiredOptions = helperService.setNonPageableGridOptions(ApprovalsRequiredColumns);\r\n vm.ApprovalsRequiredOptions.dataBound = function (e) {\r\n let items = e.sender.items();\r\n items.each(function () {\r\n var row = $(this);\r\n var dataItem = e.sender.dataItem(row);\r\n // We only want to show the detail template if necessary\r\n if (dataItem.GroupUsers.length === 0) {\r\n row.find(\".k-hierarchy-cell\").html(\"\");\r\n }\r\n });\r\n };\r\n vm.ApprovalsSubmittedOptions = helperService.setNonPageableGridOptions(ApprovalsSubmittedColumns);\r\n vm.ApprovalsSubmittedOptions.detailTemplate = kendo.template($(\"#approvalsSubmittedTemplate\").html());\r\n\r\n vm.ErrorLogOptions = helperService.setNonPageableGridOptions(ErrorLogColumns);\r\n\r\n vm.RisksOptions = helperService.setMainGridOptions(RisksColumns, null);\r\n if (!vm.disableObjectLevelRiskAnalysis) {\r\n vm.RisksOptions.detailTemplate = kendo.template($(\"#risksTemplate\").html());\r\n }\r\n vm.RisksOptions.selectable = false;\r\n vm.RisksOptions.filterable = {\r\n mode: \"row\",\r\n operators: {\r\n string: {\r\n contains: \"Contains\",\r\n doesnotcontain: \"Does not contain\",\r\n eq: \"Equal to\",\r\n neq: \"Not equal to\"\r\n }\r\n }\r\n };\r\n vm.RisksOptions.columnMenu = true;\r\n\r\n vm.BusinessProcessOptions = helperService.setMainGridOptions(columnsFromVMBusinessProcess, null);\r\n vm.BusinessProcessOptions.selectable = false;\r\n\r\n vm.BusinessProcessOptions.filterable = {\r\n mode: \"row\",\r\n operators: {\r\n string: {\r\n contains: \"Contains\",\r\n doesnotcontain: \"Does not contain\",\r\n eq: \"Equal to\",\r\n neq: \"Not equal to\"\r\n }\r\n }\r\n };\r\n }\r\n\r\n function openRequestMitigationModal(dataItem, dataGrid) {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/IdentityManagerRequestDetails/UserRisksMitigationModal/requestDetailsUserRisksMitigationModal.html',\r\n controller: requestDetailsUserRisksMitigationModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n row: () => dataItem,\r\n grid: () => dataGrid,\r\n request: () => vm.req\r\n }\r\n });\r\n }\r\n\r\n function requestRiskMitigation(dataItem) {\r\n $scope.riskToMitigate = angular.copy(dataItem);\r\n openRequestMitigationModal(dataItem, vm.userRisksData);\r\n }\r\n\r\n function openExpandDetailsModal(dataGrid, scope) {\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/RequestDetailsModal.html',\r\n controller: requestDetailsModalController,\r\n controllerAs: 'vm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n mainGrid: () => dataGrid,\r\n data: () => scope,\r\n disableObjectData: () => vm.disableObjectLevelRiskAnalysis\r\n }\r\n });\r\n }\r\n\r\n function expandDetails() {\r\n openExpandDetailsModal(vm.userRisksData, vm);\r\n }\r\n\r\n async function openApproveDenyRequestModal() {\r\n let approveDenyRequestModal = $uibModal.open({\r\n templateUrl: '/App/Components/IdentityManagerRequestDetails/ApproveDenyModal/ApproveDenyModal.html',\r\n controller: approveDenyModalController,\r\n controllerAs: 'vm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n request: () => vm.req\r\n }\r\n });\r\n\r\n try {\r\n await approveDenyRequestModal.result;\r\n // we are awaiting request processing so we would want to update the page as such\r\n vm.awaitingRequestProcessing = true;\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function updateSelectedAccessItemsForAction() {\r\n if (vm.currentUser.userId === vm.req.Requestor) {\r\n // user is requestor - we are working with effective date selections\r\n vm.allAccessSelected = vm.availableEffectiveDatesAccessItems.every(access => access.selectedForAction);\r\n vm.selectedAccessItemsForAction = vm.availableEffectiveDatesAccessItems.filter(access => access.selectedForAction);\r\n } else {\r\n let reviewableAccessItems = vm.req.RequestAccesses.filter(access => access.CanIReview);\r\n vm.allAccessSelected = reviewableAccessItems.every(access => access.selectedForAction);\r\n vm.selectedAccessItemsForAction = vm.req.RequestAccesses.filter(access => access.selectedForAction && access.CanIReview);\r\n }\r\n }\r\n\r\n function updateSelectedUserItemsForAction() {\r\n vm.allUserSelected = vm.req.RequestUsers.every(user => user.selectedForAction);\r\n vm.selectedUserItemsForAction = vm.req.RequestUsers.filter(user => user.selectedForAction && user.CanIReview);\r\n }\r\n\r\n function selectAllAccesses() {\r\n let selectionStatus = vm.allAccessSelected;\r\n if (vm.currentUser.userId === vm.req.Requestor) {\r\n // user is requestor so we need to set all effective dates available to match the select all\r\n vm.availableEffectiveDatesAccessItems.forEach(access => access.selectedForAction = selectionStatus);\r\n } else {\r\n // user is reviewer so we need to set accesses they can review to match the select all\r\n vm.req.RequestAccesses.forEach(access => {\r\n if (access.CanIReview) {\r\n access.selectedForAction = selectionStatus;\r\n }\r\n });\r\n }\r\n updateSelectedAccessItemsForAction();\r\n }\r\n\r\n function selectAllUsers() {\r\n let selectionStatus = vm.allUserSelected;\r\n vm.req.RequestUsers.forEach(user => user.selectedForAction = selectionStatus);\r\n updateSelectedUserItemsForAction();\r\n }\r\n\r\n async function openEffectiveDateModal() {\r\n const selectedAccessItemsForAction = vm.selectedAccessItemsForAction.map(access => {\r\n let newAccess = { ...access };\r\n if (newAccess.StartDate !== null) {\r\n newAccess.originalStartDate = new Date(newAccess.StartDate);\r\n } else {\r\n newAccess.originalStartDate = null;\r\n }\r\n\r\n if (newAccess.EndDate !== null) {\r\n newAccess.originalEndDate = new Date(newAccess.EndDate);\r\n } else {\r\n newAccess.originalEndDate = null;\r\n }\r\n\r\n return newAccess;\r\n });\r\n let modal = $uibModal.open({\r\n templateUrl: '/App/Components/IdentityManagerRequestDetails/EditEffectiveDatesModal/editEffectiveDatesModal.tmpl.html',\r\n controller: editEffectiveDatesModalController,\r\n controllerAs: 'eedmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n selectedAccessItemsForAction: () => selectedAccessItemsForAction,\r\n request: () => vm.req\r\n }\r\n });\r\n\r\n try {\r\n await modal.result;\r\n $route.reload();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openEditRequestExpirationModal() {\r\n let modal = $uibModal.open({\r\n templateUrl: '/App/Components/IdentityManagerRequestDetails/EditRequestExpirationModal/editRequestExpirationModal.tmpl.html',\r\n controller: editRequestExpirationModalController,\r\n controllerAs: 'eremvm',\r\n backdrop: 'static',\r\n resolve: {\r\n request: () => vm.req\r\n }\r\n });\r\n\r\n try {\r\n await modal.result;\r\n $route.reload();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function applyActionToSelectedItems(action, requestType) {\r\n let items = [];\r\n if (requestType === 'User') {\r\n items = vm.selectedUserItemsForAction;\r\n } else {\r\n items = vm.selectedAccessItemsForAction;\r\n }\r\n if (action === 'Delegate') {\r\n let delegateModal = $uibModal.open({\r\n templateUrl: '/App/Components/IdentityManagerRequestDetails/DelegationModal/requestDelegationModal.html',\r\n controller: requestDelegationModalController,\r\n controllerAs: 'rdmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n request: () => vm.req,\r\n delegationItems: () => items,\r\n requestType: () => requestType\r\n }\r\n });\r\n\r\n try {\r\n let items = await delegateModal.result;\r\n setActionsToDelegated(items);\r\n } catch (_) {\r\n return;\r\n }\r\n } else {\r\n items.forEach(item => {\r\n item.Action = action;\r\n item.selectedForAction = false;\r\n });\r\n vm.changesToSubmit = true;\r\n }\r\n clearSelectedRequestType(requestType);\r\n\r\n updateActionTotals();\r\n }\r\n\r\n function updateActionTotals() {\r\n vm.approvedRequestItems = vm.req.RequestUsers.filter(item => item.Action === 'Approve').length + vm.req.RequestAccesses.filter(item => item.Action === 'Approve').length;\r\n vm.deniedRequestItems = vm.req.RequestUsers.filter(item => item.Action === 'Deny').length + vm.req.RequestAccesses.filter(item => item.Action === 'Deny').length;\r\n }\r\n\r\n\r\n function clearSelectedRequestType(requestType) {\r\n switch (requestType) {\r\n case 'Access':\r\n vm.allAccessSelected = false;\r\n vm.selectedAccessItemsForAction = [];\r\n if (!vm.req.RequestAccesses.some(access => access.Action === 'Deny' || access.Action === 'Approve')) {\r\n vm.changesToSubmit = false;\r\n }\r\n break;\r\n case 'User':\r\n vm.allUserSelected = false;\r\n vm.selectedUserItemsForAction = [];\r\n if (!vm.req.RequestUsers.some(user => user.Action === 'Deny' || user.Action === 'Approve')) {\r\n vm.changesToSubmit = false;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n function setActionsToDelegated(requestItems) {\r\n requestItems.forEach(item => {\r\n item.Action = 'Delegated';\r\n item.CanIReview = false;\r\n item.selectedForAction = false;\r\n });\r\n\r\n }\r\n\r\n function checkForEmergencyAccessStatus(requestAccessItems) {\r\n vm.emergencyAccessItem = requestAccessItems.find(accessItem => accessItem.Status.includes('EmergencyAccess'));\r\n if (vm.emergencyAccessItem) {\r\n vm.emergencyAccessStatus = vm.emergencyAccessItem.Status;\r\n }\r\n }\r\n\r\n}\r\n","import { customAutoCompleteFilter, customDatePickerFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport swal from \"sweetalert2\";\r\nimport cancellationNotesModalController from \"../IdentityManagerRequestDetails/cancellationNotesModal/cancellationNotesModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, $filter, $uibModal, $location, authenticationService, helperService, openRequestsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.viewDetails = viewDetails;\r\n vm.editRequest = editRequest;\r\n vm.cancelRequest = cancelRequest;\r\n vm.setStatusCssClass = helperService.setStatusCssClass;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.currentUser = await authenticationService.getUser();\r\n\r\n const openRequestsGridColumns = [\r\n { field: \"RequestorName\", title: \"Requestor Name\", filterable: customAutoCompleteFilter },\r\n { field: \"GeneralUser.Name\", title: \"Affected User\", filterable: customAutoCompleteFilter },\r\n { field: \"GeneralUser.Email\", title: \"Affected User Email\", filterable: customAutoCompleteFilter },\r\n { field: \"AffectedType\", title: \"Affected Type\", filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"TicketIds\", title: \"Ticket ID\", filterable: customAutoCompleteFilter },\r\n { field: \"RequestedDate\", title: \"Request Date\", template: \"{{ dataItem.RequestedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"Action\", title: \"Action\", template: \"{{ dataItem.Action | insertSpaceBetweenCapitalWords }}\", filterable: customAutoCompleteFilter },\r\n { field: \"Status\", template: \"{{dataItem.Status | insertSpaceBetweenCapitalWords}}\", filterable: customAutoCompleteFilter },\r\n { template: `Details`, \"title\": \"Details\", width: 90 },\r\n { template: `Edit`, title: \"Edit\", width: 90 },\r\n { template: `Cancel`, \"title\": \"Cancel\", width: 90 }\r\n ];\r\n\r\n checkForCancelOrEditAllRequests();\r\n\r\n vm.openRequestsGridOptions = helperService.setMainGridOptions(openRequestsGridColumns, 600);\r\n vm.openRequestsGridOptions.selectable = false;\r\n\r\n vm.openRequestsGridDataSource = new kendo.data.DataSource({\r\n schema: {\r\n model: {\r\n fields: {\r\n RequestedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let { data } = await openRequestsDataService.getOpenRequests();\r\n\r\n data = $filter('orderBy')(data, 'RequestedDate', true);\r\n\r\n data.forEach(row => {\r\n if (row.AffectedObject) {\r\n let AffectedObject = JSON.parse(row.AffectedObject);\r\n if (AffectedObject) {\r\n row[\"AffectedObjectUserName\"] = AffectedObject.Name;\r\n }\r\n }\r\n row.isCancellable = setIsCancellableProp(row);\r\n row.isEditable = setIsEditableProp(row);\r\n });\r\n options.success(data);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function setIsCancellableProp(request) {\r\n return (vm.cancelAllRequests || request.Requestor === vm.currentUser.userId) && (request.Action !== 'EmergencyAccess' || (request.Action === 'EmergencyAccess' && request.Status === \"Pending\"));\r\n }\r\n\r\n function setIsEditableProp(request) {\r\n return (vm.currentUser.userId === request.Requestor || vm.editAllRequests === true) && request.Status === 'Pending' && request.Action !== 'EmergencyAccess';\r\n }\r\n\r\n function viewDetails(request) {\r\n $location.path('/IdentityManager/RequestDetails').search({ RequestId: request.Id, Version: request.Version });\r\n }\r\n\r\n async function checkForCancelOrEditAllRequests() {\r\n vm.cancelAllRequests = await openRequestsDataService.checkForCancelOrEditAllRequests(\"Cancel Other User's Requests\");\r\n vm.editAllRequests = await openRequestsDataService.checkForCancelOrEditAllRequests('Edit All Requests');\r\n }\r\n\r\n function editRequest(request) {\r\n $rootScope.requestToEdit = { Id: request.Id, Version: request.Version };\r\n $location.path('/IdentityManager/Place/RequestManagement/' + request.Action).search({});\r\n }\r\n\r\n async function cancelRequest(request) {\r\n kendo.ui.progress(vm.openRequestsGrid.element, true);\r\n let data = {\r\n \"RequestId\": request.Id,\r\n \"Version\": request.Version\r\n };\r\n\r\n try {\r\n await swal(helperService.areYouSureParams('Cancel Request', 'Are you sure you want to cancel this request?', 'Yes', 'No'));\r\n const requireNotes = await helperService.getConfigurationValue('IM_RequireNoteOnCancelledRequests') === '1';\r\n if (requireNotes) {\r\n openCancellationNotesModal(data);\r\n } else {\r\n await openRequestsDataService.cancelRequest(request, data);\r\n kendo.ui.progress(vm.openRequestsGrid.element, false);\r\n vm.openRequestsGridDataSource.read();\r\n }\r\n } catch {\r\n kendo.ui.progress(vm.openRequestsGrid.element, false);\r\n }\r\n }\r\n\r\n async function openCancellationNotesModal(requestData) {\r\n let cancelNotesModal = $uibModal.open({\r\n templateUrl: '/App/Components/IdentityManagerRequestDetails/cancellationNotesModal/cancellationNotesModal.html',\r\n controller: cancellationNotesModalController,\r\n controllerAs: 'cnvm',\r\n backdrop: 'static',\r\n resolve: {\r\n requestData: () => requestData\r\n }\r\n });\r\n\r\n try {\r\n await cancelNotesModal.result;\r\n kendo.ui.progress(vm.openRequestsGrid.element, false);\r\n vm.openRequestsGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n}\r\n","import controller from \"./openRequests.controller\";\r\n\r\n/* openRequests.component.js */\r\n\r\n/**\r\n * @desc component for open IM requests\r\n * @example \r\n */\r\n\r\nconst openRequests = {\r\n controller: controller,\r\n controllerAs: 'orvm',\r\n templateUrl: '/App/Components/openRequests/openRequests.tmpl.html'\r\n};\r\n\r\nexport default openRequests;","export default /*@ngInject*/ function ($rootScope) {\r\n const service = {\r\n valueMap\r\n };\r\n\r\n return service;\r\n\r\n function valueMap(userObject, mailMappingField) {\r\n let mappedObject = {};\r\n\r\n switch (userObject.ProductType) {\r\n case 'AX7':\r\n // AX7_UseAzureAD === 0 ? On-prem Active Directory : Azure AD\r\n mappedObject = {\r\n UserId: null,\r\n UserName: userObject.DisplayName,\r\n Email: $rootScope.ConfigurationValues.AX7_UseAzureAD === '0' ? userObject.Mail : userObject.UserPrincipalName,\r\n NetworkDomain: $rootScope.ConfigurationValues.AX7_UseAzureAD === '0' ? null : userObject.NetworkDomain,\r\n Company: null,\r\n Enabled: userObject.Enabled,\r\n ProductType: userObject.ProductType,\r\n UserType: userObject.UserType\r\n }\r\n break;\r\n\r\n case 'D365S':\r\n mappedObject = {\r\n AzureADObjectId: userObject.Id,\r\n FirstName: userObject.GivenName,\r\n LastName: userObject.SurName,\r\n Title: userObject.JobTitle,\r\n HomePhone: userObject.BusinessPhone,\r\n MobilePhone: userObject.MobilePhone,\r\n Address1_Street1: userObject.StreetAddress,\r\n Address1_City: userObject.City,\r\n Address1_StateOrProvince: userObject.State,\r\n Address1_Country: userObject.Country,\r\n InternalEmailAddress: userObject.Mail,\r\n DomainName: userObject.UserPrincipalName,\r\n ProductType: userObject.ProductType,\r\n UserType: userObject.UserType\r\n };\r\n break;\r\n\r\n case 'ORFC':\r\n mappedObject = {\r\n DisplayName: userObject.DisplayName,\r\n FirstName: userObject.GivenName,\r\n LastName: userObject.SurName,\r\n Email: userObject[mailMappingField],\r\n ProductType: userObject.ProductType,\r\n EndDate: ''\r\n };\r\n break;\r\n\r\n case 'SF':\r\n mappedObject = {\r\n CompanyName: userObject.CompanyName,\r\n Department: userObject.Department,\r\n Email: userObject[mailMappingField],\r\n FirstName: userObject.GivenName,\r\n LastName: userObject.SurName,\r\n ManagerId: '',\r\n MobilePhone: userObject.MobilePhone,\r\n Phone: userObject.BusinessPhones[0],\r\n ProductType: userObject.ProductType,\r\n Title: userObject.JobTitle,\r\n UserEffectiveEndDate: '',\r\n Country: userObject.Country,\r\n Street: userObject.StreetAddress,\r\n City: userObject.City\r\n };\r\n break;\r\n\r\n case 'PS':\r\n mappedObject = {\r\n PrimaryEmail: userObject[mailMappingField],\r\n ProductType: userObject.ProductType,\r\n UserEffectiveEndDate: ''\r\n };\r\n break;\r\n\r\n case 'NS':\r\n mappedObject = {\r\n Email: userObject[mailMappingField],\r\n FirstName: userObject.GivenName,\r\n LastName: userObject.SurName,\r\n Phone: userObject.BusinessPhones[0],\r\n MobilePhone: userObject.MobilePhone,\r\n JobTitle: userObject.JobTitle,\r\n ProductType: userObject.ProductType,\r\n EndDate: ''\r\n };\r\n break;\r\n\r\n case 'OR':\r\n mappedObject = {\r\n ProductType: userObject.ProductType,\r\n Email: userObject[mailMappingField],\r\n EndDate: null\r\n }\r\n break;\r\n\r\n case 'SAP':\r\n mappedObject = {\r\n Email: userObject[mailMappingField],\r\n FirstName: userObject.GivenName,\r\n LastName: userObject.SurName,\r\n Street1: userObject.StreetAddress,\r\n City: userObject.City,\r\n State: userObject.State\r\n };\r\n break;\r\n\r\n default:\r\n mappedObject = userObject;\r\n }\r\n return mappedObject;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http) {\n\n const service = {\n checkAX7,\n checkAX,\n checkGP,\n checkOR,\n checkAAD\n };\n\n return service;\n\n function checkAX7(userId) {\n // AX7\n return $http.get(apiUrl + `api/identitymanager/ax7/users/search?userId=${userId}`);\r\n }\n\n function checkAX(userId, partitionId) {\n // AX R1, R2+\n return $http.get(apiUrl + `api/identitymanager/ax/users/search?userId=${partitionId}|${userId}`);\n }\n\n function checkGP(userId) {\n // GP\n return $http.get(apiUrl + `api/identitymanager/gp/users/search?userId=${userId}`);\r\n }\n\n function checkOR(username) {\r\n return $http.get(`${apiUrl}api/identitymanager/or/users/search?userName=${username}`);\r\n }\n\n function checkAAD(username) {\r\n return $http.get(`${apiUrl}api/identitymanager/aad/users/${username}`);\r\n }\n\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getFilteredAzureADUsers,\r\n getFilteredADUsers,\r\n getFilteredAX7Person,\r\n getFilteredAX2012Person\r\n };\r\n\r\n return service;\r\n\r\n async function getFilteredAzureADUsers(searchString, filterBoolean) {\r\n try {\r\n return await $http({\r\n method: 'GET',\r\n params: {\r\n \"criteria\": searchString,\r\n \"includeInactive\": filterBoolean\r\n },\r\n url: apiUrl + 'api/identitymanager/aad/users/search'\r\n });\r\n } catch(err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getFilteredADUsers(searchString, filterBoolean) {\r\n try {\r\n return await $http({\r\n method: 'GET',\r\n params: {\r\n \"criteria\": searchString,\r\n \"includeInactive\": filterBoolean\r\n },\r\n url: apiUrl + 'api/identitymanager/activedirectory/users/search'\r\n });\r\n } catch(err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getFilteredAX7Person(searchString) {\r\n try {\r\n return await $http({\r\n method: 'GET',\r\n params: {\r\n \"criteria\": searchString\r\n\r\n },\r\n url: apiUrl + 'api/identitymanager/ax7/persons/search'\r\n });\r\n } catch(err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getFilteredAX2012Person(searchString, partitionKey) {\r\n let params = { \"criteria\": searchString };\r\n if (partitionKey) {\r\n params[\"partitionKey\"] = partitionKey;\r\n }\r\n try {\r\n return await $http({\r\n method: 'GET',\r\n params: params,\r\n url: apiUrl + 'api/identitymanager/ax/persons/search'\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n}","import angular from 'angular';\r\nimport aDUserObjectValueMapperService from '../Components/RequestManagement/Services/aDUserObjectValueMapper.service';\r\nimport azureADUserObjectValueMapperService from '../Components/RequestManagement/Services/azureADUserObjectValueMapper.service';\r\nimport existingUserCheckService from '../Components/RequestManagement/Services/existingUserCheck.service';\r\nimport existingUserSearchService from '../Components/RequestManagement/Services/existingUserSearch.service';\r\nexport default angular\r\n .module('app.identityManager.requestManagement.factories', [])\r\n .factory('aDUserObjectValueMapperService', aDUserObjectValueMapperService)\r\n .factory('azureADUserObjectValueMapperService', azureADUserObjectValueMapperService)\r\n .factory('existingUserCheckService', existingUserCheckService)\r\n .factory('existingUserSearchService', existingUserSearchService)\r\n .name;","export default function () {\r\n\r\n const service = {\r\n valueMap\r\n };\r\n\r\n return service;\r\n\r\n function valueMap(userObject, mailMappingField) {\r\n\r\n let mappedObject = {};\r\n\r\n switch (userObject.ProductType) {\r\n case 'AX':\r\n mappedObject = {\r\n NetworkDomain: userObject.Domain,\r\n NetworkAlias: userObject.SamAccountName,\r\n UserName: userObject.DisplayName,\r\n DisplayUserId: userObject.SamAccountName.substring(0, 8),\r\n SID: userObject.Sid\r\n };\r\n break;\r\n\r\n case 'GP':\r\n mappedObject = {\r\n WindowsUserId: userObject.SamAccountName,\r\n NetBiosName: userObject.NetBiosName,\r\n ADUserId: userObject.ObjectGuid,\r\n Id: userObject.SamAccountName,\r\n UserName: userObject.DisplayName,\r\n ProductType: userObject.ProductType\r\n };\r\n break;\r\n\r\n case 'NAV':\r\n mappedObject = {\r\n WindowsUserName: userObject.NetBiosName + '\\\\' + userObject.SamAccountName,\r\n UserName: userObject.NetBiosName + '\\\\' + userObject.SamAccountName,\r\n FullName: userObject.DisplayName,\r\n WindowsSID: userObject.Sid,\r\n LicenseType: 0,\r\n State: '0',\r\n ProductType: userObject.ProductType\r\n };\r\n break;\r\n\r\n case 'ORFC':\r\n mappedObject = {\r\n DisplayName: userObject.DisplayName,\r\n Email: userObject[mailMappingField],\r\n EndDate: userObject.AccountExpirationDate,\r\n ProductType: userObject.ProductType,\r\n FirstName: '',\r\n LastName: ''\r\n };\r\n break;\r\n\r\n case 'SF':\r\n mappedObject = {\r\n CompanyName: userObject.Company,\r\n Department: userObject.Department,\r\n Email: userObject[mailMappingField],\r\n FirstName: '',\r\n LastName: '',\r\n ManagerId: '',\r\n Moble: '',\r\n Phone: '',\r\n ProductType: userObject.ProductType,\r\n Title: userObject.Title,\r\n EndDate: userObject.AccountExpirationDate,\r\n Street: '',\r\n City: '',\r\n };\r\n break;\r\n\r\n case 'PS':\r\n mappedObject = {\r\n PrimaryEmail: userObject[mailMappingField],\r\n ProductType: userObject.ProductType,\r\n EndDate: userObject.AccountExpirationDate\r\n };\r\n break;\r\n\r\n case 'NS':\r\n mappedObject = {\r\n Email: userObject[mailMappingField],\r\n ProductType: userObject.ProductType,\r\n JobTitle: userObject.Title,\r\n EndDate: userObject.AccountExpirationDate,\r\n FirstName: '',\r\n LastName: '',\r\n Phone: '',\r\n MobilePhone: '',\r\n };\r\n break;\r\n\r\n case 'OR':\r\n mappedObject = {\r\n ProductType: userObject.ProductType,\r\n Email: userObject[mailMappingField],\r\n EndDate: userObject.AccountExpirationDate\r\n }\r\n break;\r\n\r\n case 'SAP':\r\n mappedObject = {\r\n Email: userObject[mailMappingField],\r\n EndDate: userObject.AccountExpirationDate,\r\n };\r\n break;\r\n\r\n default:\r\n mappedObject = userObject;\r\n }\r\n return mappedObject;\r\n }\r\n\r\n}","import { standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, $filter, $uibModalInstance, helperService, aDUserObjectValueMapperService, existingUserSearchService, userObject) {\r\n\r\n const vm = this;\r\n\r\n vm.title = 'Active Directory User Search';\r\n vm.filterUsersToggle = true;\r\n vm.selectedUser = null;\r\n\r\n vm.doneSearchingUsers = doneSearchingUsers;\r\n vm.changeExistingUserRowSelected = changeExistingUserRowSelected;\r\n vm.selectUser = selectUser;\r\n vm.filterUsers = filterUsers;\r\n\r\n //Search Existing Users\r\n var getExistingUserGridColumns =\r\n [\r\n { field: \"DisplayName\", title: \"User Name\", filterable: false },\r\n { field: \"Domain\", title: \"Domain\", filterable: false },\r\n { field: \"Mail\", title: \"Email\", filterable: false }\r\n ];\r\n\r\n function doneSearchingUsers() {\r\n\r\n $rootScope.IMSelectedExistingUser = null;\r\n\r\n if (vm.ExistingWindowsUserSearchString === '' || vm.ExistingWindowsUserSearchString === null) {\r\n\r\n var raw = vm.ExistingusersGridDataSource.data();\r\n var length = raw.length;\r\n\r\n let item, i;\r\n for (i = length - 1; i >= 0; i--) {\r\n\r\n item = raw[i];\r\n vm.ExistingusersGridDataSource.remove(item);\r\n\r\n }\r\n } else {\r\n vm.ExistingusersGridDataSource.read();\r\n }\r\n }\r\n\r\n vm.ExistingUsersGridOptions = helperService.setMainGridOptions(getExistingUserGridColumns, 350);\r\n vm.ExistingUsersGridOptions.autoBind = false;\r\n\r\n vm.ExistingusersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n try {\r\n let response = await existingUserSearchService.getFilteredADUsers(vm.ExistingWindowsUserSearchString, vm.filterUsersToggle);\r\n response.data = $filter('orderBy')(response.data, 'DisplayName');\r\n options.success(response.data);\r\n } catch(err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n function changeExistingUserRowSelected(kendoEvent) {\r\n let grid = kendoEvent.sender;\r\n vm.selectedUser = grid.dataItem(grid.select());\r\n }\r\n\r\n function selectUser() {\r\n vm.selectedUser.ProductType = userObject.ProductType; // Add productType for value mapper to map properly\r\n let mappedObject = aDUserObjectValueMapperService.valueMap(vm.selectedUser); // convert selectedUser properties for form models\r\n userObject = Object.assign(userObject, mappedObject); // add mapped properties back into userObject\r\n\r\n vm.ExistingWindowsUserSearchString = null;\r\n $uibModalInstance.close(userObject);\r\n }\r\n\r\n function filterUsers() {\r\n if (vm.ExistingusersGridDataSource._data.length > 0) {\r\n vm.ExistingusersGridDataSource.read();\r\n }\r\n }\r\n\r\n vm.cancel = () => $uibModalInstance.dismiss();\r\n\r\n}","import aDUserSearchController from \"./aDUserSearch.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.onClick = onClick;\r\n\r\n function onClick() {\r\n\r\n let modal = $uibModal.open({\r\n templateUrl: '/App/Components/RequestManagement/ADUserLink/aDUserSearch.html',\r\n controller: aDUserSearchController,\r\n controllerAs: 'adusvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n userObject: () => vm.userObject // bound to parent controller\r\n }\r\n });\r\n modal.result\r\n .then(userObject => vm.userObject = userObject)\r\n .catch(_ => { return });\r\n }\r\n\r\n}","import aDUserController from \"./aDUser.controller\";\r\n\r\n/* aDUser.component.js */\r\n\r\n/**\r\n * @desc component for displaying AD Username search and input fields\r\n * @example \r\n */\r\n\r\nconst adUserSearchLink = {\r\n bindings: {\r\n userObject: '='\r\n },\r\n controller: aDUserController,\r\n controllerAs: 'aduvm',\r\n templateUrl: '/App/Components/RequestManagement/ADUserLink/aDUser.tmpl.html'\r\n};\r\n\r\nexport default adUserSearchLink;","import { standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, existingUserSearchService, $rootScope, $filter, helperService, userObject, aDUserObjectValueMapperService) {\r\n const vm = this;\r\n\r\n vm.title = 'Active Directory User Lookup';\r\n vm.filterUsersToggle = true;\r\n vm.selectedUser = null;\r\n\r\n vm.cancel = cancel;\r\n vm.doneSearchingUsers = doneSearchingUsers;\r\n vm.selectUser = selectUser;\r\n vm.filterUsers = filterUsers;\r\n vm.changeExistingUserRowSelected = changeExistingUserRowSelected;\r\n\r\n if (!userObject) {\r\n userObject = {};\r\n }\r\n\r\n const userGridColumns = [\r\n { field: \"DisplayName\", title: \"User Name\", filterable: false },\r\n { field: \"Mail\", title: \"Email\", filterable: false }\r\n ];\r\n\r\n function doneSearchingUsers() {\r\n\r\n $rootScope.IMSelectedExistingUser = null;\r\n\r\n if (vm.ExistingWindowsUserSearchString === '' || vm.ExistingWindowsUserSearchString === null) {\r\n vm.ExistingusersGridDataSource.data([]);\r\n } else {\r\n vm.ExistingusersGridDataSource.read();\r\n }\r\n }\r\n\r\n vm.ExistingUsersGridOptions = helperService.setMainGridOptions(userGridColumns, 350);\r\n vm.ExistingUsersGridOptions.autoBind = false;\r\n\r\n vm.ExistingusersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n try {\r\n let { data: existingUsers } = await existingUserSearchService.getFilteredADUsers(vm.ExistingWindowsUserSearchString, vm.filterUsersToggle);\r\n existingUsers = $filter('orderBy')(existingUsers, 'DisplayName');\r\n options.success(existingUsers);\r\n } catch (err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n async function selectUser() {\r\n let emailMappingField, mappedObject, emailMapConfig = await helperService.getConfigurationValue('IM_ADFieldForEmailMapping');\r\n emailMappingField = emailMapConfig === '0' ? 'UserPrincipalName' : 'Mail';\r\n vm.selectedUser.ProductType = userObject.ProductType; // Add productType for value mapper to map properly\r\n mappedObject = aDUserObjectValueMapperService.valueMap(vm.selectedUser, emailMappingField); // convert selectedUser properties for form models\r\n userObject = Object.assign(userObject, mappedObject); // add mapped properties back into userObject\r\n\r\n vm.ExistingWindowsUserSearchString = null;\r\n $uibModalInstance.close(userObject);\r\n }\r\n\r\n function changeExistingUserRowSelected(kendoEvent) {\r\n let grid = kendoEvent.sender;\r\n vm.selectedUser = grid.dataItem(grid.select());\r\n }\r\n\r\n function filterUsers() {\r\n if (vm.ExistingusersGridDataSource._data.length > 0) {\r\n vm.ExistingusersGridDataSource.read();\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n}","import aDUserLookupSearchController from \"./aDUserLookupSearch.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal) {\r\n const vm = this;\r\n\r\n vm.onClick = onClick;\r\n\r\n async function onClick() {\r\n let modal = $uibModal.open({\r\n templateUrl: '/App/Components/RequestManagement/ADUserLookup/aDUserLookupSearch.html',\r\n controller: aDUserLookupSearchController,\r\n controllerAs: 'adulsvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n userObject: () => vm.userObject // bound to parent controller\r\n }\r\n });\r\n\r\n try {\r\n const user = await modal.result;\r\n vm.onUserUpdated({ user });\r\n }\r\n catch { return; }\r\n }\r\n}","import aDUserLookupController from \"./aDUserLookup.controller\";\r\n\r\n/* aDUserLookup.component.js */\r\n\r\n/**\r\n * @desc component for displaying AD User Lookup\r\n * @example \r\n */\r\n\r\nconst aDUserLookup = {\r\n bindings: {\r\n userObject: '<',\r\n onUserUpdated: '&'\r\n },\r\n controller: aDUserLookupController,\r\n controllerAs: 'adulm',\r\n templateUrl: '/App/Components/RequestManagement/ADUserLookup/aDUserLookup.tmpl.html'\r\n};\r\n\r\nexport default aDUserLookup;","import { standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, $filter, $uibModalInstance, helperService, azureADUserObjectValueMapperService, existingUserSearchService, userObject) {\r\n\r\n const vm = this;\r\n\r\n vm.title = 'Active Directory User Search';\r\n vm.filterUsersToggle = true;\r\n vm.selectedUser = null;\r\n vm.adTypeConfigValue = $rootScope.ConfigurationValues.AX7_UseAzureAD === '1' || $rootScope.ConfigurationValues.D365S_UseAzureAD === '1' ? true : false;\r\n\r\n vm.doneSearchingUsers = doneSearchingUsers;\r\n vm.changeExistingUserRowSelected = changeExistingUserRowSelected;\r\n vm.selectUser = selectUser;\r\n vm.filterUsers = filterUsers;\r\n vm.cancel = cancel;\r\n\r\n if (!userObject) {\r\n userObject = {};\r\n }\r\n\r\n function getExistingUserGridColumns() {\r\n if (vm.adTypeConfigValue) {\r\n return [\r\n { field: \"DisplayName\", title: \"User Name\", filterable: false },\r\n { field: \"GivenName\", title: \"Given Name\", filterable: false },\r\n { field: \"Mail\", title: \"Email\", filterable: false },\r\n { field: \"JobTitle\", title: \"Job Title\", filterable: false },\r\n { field: \"UserPrincipalName\", title: \"User Principal Name\", filterable: false }\r\n ];\r\n } else {\r\n return [\r\n { field: \"DisplayName\", title: \"User Name\", filterable: false },\r\n { field: \"Mail\", title: \"Email\", filterable: false }\r\n ];\r\n }\r\n }\r\n\r\n function doneSearchingUsers() {\r\n\r\n $rootScope.IMSelectedExistingUser = null;\r\n\r\n if (vm.ExistingWindowsUserSearchString === '' || vm.ExistingWindowsUserSearchString === null) {\r\n\r\n var raw = vm.ExistingusersGridDataSource.data();\r\n var length = raw.length;\r\n\r\n let item, i;\r\n for (i = length - 1; i >= 0; i--) {\r\n\r\n item = raw[i];\r\n vm.ExistingusersGridDataSource.remove(item);\r\n\r\n }\r\n } else {\r\n vm.ExistingusersGridDataSource.read();\r\n }\r\n }\r\n\r\n vm.ExistingUsersGridOptions = helperService.setMainGridOptions(getExistingUserGridColumns(), 350);\r\n vm.ExistingUsersGridOptions.autoBind = false;\r\n\r\n vm.ExistingusersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n let response;\r\n try {\r\n if (vm.adTypeConfigValue) {\r\n response = await existingUserSearchService.getFilteredAzureADUsers(vm.ExistingWindowsUserSearchString, vm.filterUsersToggle);\r\n } else {\r\n response = await existingUserSearchService.getFilteredADUsers(vm.ExistingWindowsUserSearchString, vm.filterUsersToggle);\r\n }\r\n response.data = $filter('orderBy')(response.data, 'DisplayName');\r\n options.success(response.data);\r\n } catch (err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n function changeExistingUserRowSelected(kendoEvent) {\r\n let grid = kendoEvent.sender;\r\n vm.selectedUser = grid.dataItem(grid.select());\r\n }\r\n\r\n function selectUser() {\r\n vm.selectedUser.ProductType = userObject.ProductType; // Add productType for value mapper to map properly\r\n if (vm.selectedUser) {\r\n userObject = Object.assign(userObject, vm.selectedUser);\r\n userObject = azureADUserObjectValueMapperService.valueMap(userObject);\r\n }\r\n if (vm.selectedUser.UserType === 'Guest') {\r\n let emailFromPrincipalName = vm.selectedUser.UserPrincipalName.split(\"#EXT#\")[0];\r\n const underscoreIndex = emailFromPrincipalName.lastIndexOf(\"_\");\r\n userObject.Email = emailFromPrincipalName.substr(0, underscoreIndex) + '@' + emailFromPrincipalName.substr(underscoreIndex + 1);\r\n userObject.NetworkDomain = `https://sts.windows.net/${userObject.Email.slice(userObject.Email.indexOf('@')).slice(1)}`;\r\n }\r\n vm.ExistingWindowsUserSearchString = null;\r\n $uibModalInstance.close(userObject);\r\n }\r\n\r\n function filterUsers() {\r\n if (vm.ExistingusersGridDataSource._data.length > 0) {\r\n vm.ExistingusersGridDataSource.read();\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n}","import azureADUserSearchController from \"./azureADUserSearch.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.onClick = onClick;\r\n\r\n async function onClick() {\r\n\r\n let modal = $uibModal.open({\r\n templateUrl: '/App/Components/RequestManagement/AzureADUserLink/azureADUserSearch.html',\r\n controller: azureADUserSearchController,\r\n controllerAs: 'aadusvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n userObject: () => vm.userObject // bound to parent controller\r\n }\r\n });\r\n\r\n try {\r\n const user = await modal.result;\r\n vm.onUserUpdated({ user });\r\n }\r\n catch(_) { return; }\r\n }\r\n\r\n}","import azureADUserController from \"./azureADUser.controller\";\r\n\r\n/* azureADUser.component.js */\r\n\r\n/**\r\n * @desc component for displaying Azure AD Username search and input fields\r\n * @example \r\n */\r\n\r\nconst azureAdUserSearchLink = {\r\n bindings: {\r\n userObject: '<',\r\n onUserUpdated: '&'\r\n },\r\n controller: azureADUserController,\r\n controllerAs: 'aaduvm',\r\n templateUrl: '/App/Components/RequestManagement/AzureADUserLink/azureADUser.tmpl.html'\r\n};\r\n\r\nexport default azureAdUserSearchLink;","import { standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, existingUserSearchService, $rootScope, $filter, helperService, userObject, azureADUserObjectValueMapperService) {\r\n const vm = this;\r\n\r\n vm.title = 'Entra ID User Lookup';\r\n vm.filterUsersToggle = true;\r\n vm.selectedUser = null;\r\n\r\n vm.cancel = cancel;\r\n vm.doneSearchingUsers = doneSearchingUsers;\r\n vm.selectUser = selectUser;\r\n vm.filterUsers = filterUsers;\r\n vm.changeExistingUserRowSelected = changeExistingUserRowSelected;\r\n \r\n if (!userObject) {\r\n userObject = {};\r\n }\r\n\r\n const userGridColumns = [\r\n { field: \"DisplayName\", title: \"Display Name\", filterable: false },\r\n { field: \"UserPrincipalName\", title: \"Email\", filterable: false },\r\n ];\r\n\r\n function doneSearchingUsers() {\r\n\r\n $rootScope.IMSelectedExistingUser = null;\r\n\r\n if (vm.ExistingWindowsUserSearchString === '' || vm.ExistingWindowsUserSearchString === null) {\r\n vm.ExistingusersGridDataSource.data([]);\r\n } else {\r\n vm.ExistingusersGridDataSource.read();\r\n }\r\n }\r\n\r\n vm.ExistingUsersGridOptions = helperService.setMainGridOptions(userGridColumns, 350);\r\n vm.ExistingUsersGridOptions.autoBind = false;\r\n\r\n vm.ExistingusersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n try {\r\n if (vm.ExistingWindowsUserSearchString) {\r\n let { data: existingUsers } = await existingUserSearchService.getFilteredAzureADUsers(vm.ExistingWindowsUserSearchString, vm.filterUsersToggle);\r\n existingUsers = $filter('orderBy')(existingUsers, 'DisplayName');\r\n options.success(existingUsers);\r\n } \r\n } catch (err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n async function selectUser() {\r\n let emailMappingField, emailMapConfig = await helperService.getConfigurationValue('IM_AADFieldForEmailMapping');\r\n emailMappingField = emailMapConfig === '0' ? 'UserPrincipalName' : 'Mail'\r\n if (vm.selectedUser) {\r\n userObject = Object.assign(userObject, vm.selectedUser);\r\n userObject = azureADUserObjectValueMapperService.valueMap(userObject, emailMappingField);\r\n }\r\n if (vm.selectedUser.UserType === 'Guest') {\r\n let emailFromPrincipalName = vm.selectedUser.UserPrincipalName.split(\"#EXT#\")[0];\r\n const underscoreIndex = emailFromPrincipalName.lastIndexOf(\"_\");\r\n userObject.Email = emailFromPrincipalName.substr(0, underscoreIndex) + '@' + emailFromPrincipalName.substr(underscoreIndex + 1);\r\n userObject.NetworkDomain = `https://sts.windows.net/${userObject.Email.slice(userObject.Email.indexOf('@')).slice(1)}`;\r\n }\r\n vm.ExistingWindowsUserSearchString = null;\r\n $uibModalInstance.close(userObject);\r\n }\r\n\r\n function changeExistingUserRowSelected(kendoEvent) {\r\n let grid = kendoEvent.sender;\r\n vm.selectedUser = grid.dataItem(grid.select());\r\n }\r\n\r\n function filterUsers() {\r\n if (vm.ExistingusersGridDataSource._data.length > 0) {\r\n vm.ExistingusersGridDataSource.read();\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n}","import azureADUserLookupSearchController from \"./azureADUserLookupSearch.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal) {\r\n const vm = this;\r\n\r\n vm.onClick = onClick;\r\n\r\n async function onClick() {\r\n let modal = $uibModal.open({\r\n templateUrl: '/App/Components/RequestManagement/AzureADUserLookup/azureADUserLookupSearch.html',\r\n controller: azureADUserLookupSearchController,\r\n controllerAs: 'aadulsvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n userObject: () => vm.userObject // bound to parent controller\r\n }\r\n });\r\n\r\n try {\r\n const user = await modal.result;\r\n vm.onUserUpdated({ user });\r\n }\r\n catch { return; }\r\n }\r\n}","import azureADUserLookupController from \"./azureADUserLookup.controller\";\r\n\r\n/* azureADUserLookup.component.js */\r\n\r\n/**\r\n * @desc component for displaying Azure AD User Lookup\r\n * @example \r\n */\r\n\r\nconst azureAdUserLookup = {\r\n bindings: {\r\n userObject: '<',\r\n onUserUpdated: '&'\r\n },\r\n controller: azureADUserLookupController,\r\n controllerAs: 'aadulm',\r\n templateUrl: '/App/Components/RequestManagement/AzureADUserLookup/azureADUserLookup.tmpl.html'\r\n};\r\n\r\nexport default azureAdUserLookup;","import { customAutoCompleteFilter, customBooleanFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function (helperService, $http, dataService, reportsDataService) {\r\n\r\n const vm = this;\r\n vm.$onInit = activate;\r\n vm.selectUser = selectUser;\r\n vm.helperService = helperService;\r\n \r\n\r\n async function activate() {\r\n // making metadata call so report is up to date\r\n await reportsDataService.getReportMetadata(reportId);\r\n setupExpansionGrid();\r\n }\r\n\r\n \r\n const reportId = 'e5f3c3b7-2b49-4192-bddb-17ff914682d6';\r\n\r\n async function setupExpansionGrid() {\r\n vm.expansionGridColumns = [\r\n { field: \"FastpathUserName\", title: \"Fastpath User Name\", template: ``, filterable: customAutoCompleteFilter, width: 125 },\r\n { field: \"FastpathEmail\", title: \"Fastpath Email\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"UserCrossPlatformMapping\", title: \"Cross Platform User\", filterable: customBooleanFilter, width: 100 }\r\n ];\r\n\r\n let {data: availableProducts } = await dataService.getProducts();\r\n\r\n availableProducts.forEach(product => {\r\n const productName = helperService.removeSpaces(product.Name)\r\n vm.expansionGridColumns = vm.expansionGridColumns.concat([\r\n { field: productName, title: product.Name, width: 75, },\r\n { field: productName + \"UserId\", title: product.Name + \" ID\", width: 100, },\r\n { field: productName + \"UserName\", title: product.Name + \" User Name\", width: 130, },\r\n { field: productName + \"Email\", title: product.Name + \" Email\", width: 125, }\r\n ]);\r\n });\r\n\r\n\r\n // Table data setup\r\n const fields = { UserCrossPlatformMapping: { type: \"boolean\" } };\r\n availableProducts.forEach(product => {\r\n fields[helperService.removeSpaces(product.Name)] = { type: \"boolean\" }\r\n });\r\n \r\n\r\n vm.ExistingUsersGridOptions = helperService.setMainGridOptions(vm.expansionGridColumns, 350);\r\n vm.ExistingUsersGridOptions.selectable = true;\r\n vm.ExistingUsersGridOptions.persistSelection = true;\r\n vm.ExistingUsersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n id: '_hidden_UserMasterID',\r\n fields: fields\r\n }\r\n }),\r\n transport: {\r\n read: async options => {\r\n const params = {\r\n \"pagesize\": options.data.pageSize,\r\n \"page\": options.data.page\r\n }, sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n try {\r\n let { data } = await $http.post(`${apiUrl}api/core/reports/${reportId}/execute`, sortsAndFilters, { params: params });\r\n options.success(data);\r\n } catch (error) {\r\n options.error();\r\n helperService.showErrorMessage(error.data);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function selectUser(kendoEvent) {\r\n let grid = kendoEvent.sender;\r\n let linkedUser = grid.dataItem(grid.select());\r\n vm.linkedUserChange({ linkedUser });\r\n }\r\n}","import existingUserExpansionController from \"./existingUserExpansion.controller\"\r\n\r\n/* existingUserExpansion.component.js */\r\n\r\n/**\r\n * @desc component for displaying existing user table and linked user info when selected\r\n * @example \r\n */\r\n\r\n\r\nconst existingUserExpansion = {\r\n bindings: {\r\n linkedUserChange: '&'\r\n },\r\n controller: existingUserExpansionController,\r\n controllerAs: 'euevm',\r\n template: `
\r\n Select Existing User Account\r\n
\r\n
\r\n
\r\n
`\r\n};\r\n\r\nexport default existingUserExpansion;","export default /*@ngInject*/ function ($q, RequestManagementAXService) {\r\n\r\n this.loadAX7 = function ($scope) {\r\n var axDfrd = $.Deferred();\r\n\r\n loadAX7Permissions($scope).done(function () {\r\n axDfrd.resolve();\r\n });\r\n\r\n return $.when(axDfrd).done(function () {\r\n }).promise();\r\n };\r\n\r\n this.loadAX7LoadPermisssions = function ($scope) {\r\n return loadAX7Permissions($scope);\r\n };\r\n //Load the AX permissions, after that completes and if there is an existing AX user load their permissions\r\n function loadAX7Permissions($scope) {\r\n var permissionsDfrd = $.Deferred(),\r\n promises = [],\r\n axRoles = [],\r\n pendingRoles = $scope.vm.User?.AX7User?.PendingRoleCompanies || [],\r\n pendingUserGroups = $scope.vm.User?.AX7User?.PendingUserGroups || [];\r\n\r\n $scope.vm.ListOfSelectedAX7Roles = [];\r\n $scope.vm.ListOfAvailableAX7Roles = [];\r\n $scope.vm.ListOfSelectedAX7UserGroups = [];\r\n $scope.vm.ListOfAvailableAX7UserGroups = [];\r\n\r\n if ($scope.vm.User.AX7User != null && $scope.vm.User.AX7User.UserId != null) {\r\n\r\n //If any axRoles are selected in the request set the axRoles valid property to true below\r\n $scope.vm.numberOfAXRolesValid = false;\r\n\r\n axRoles = $scope.vm.User.AX7User.RoleCompanies || [];\r\n\r\n if (axRoles?.length > 0) {\r\n $scope.vm.numberOfAXRolesValid = true;\r\n }\r\n }\r\n\r\n //Load Available axRoles then process existing security\r\n promises.push(RequestManagementAXService.getAllAX7Roles().then(function (response) {\r\n $scope.vm.ListOfAvailableAX7Roles = response.data.filter(applyPendingByKey.bind(null, \"Role\", pendingRoles));\r\n\r\n // we need to pre-select the system user role\r\n var systemUserRole = $scope.vm.ListOfAvailableAX7Roles.find(role => role.Id === 'SystemUser');\r\n\r\n if ($scope.vm.wizardMode === 'New' && !$scope.defaultRoleTemplate) {\r\n\r\n $scope.vm.ListOfAvailableAX7Roles.forEach((row, i) => {\r\n if (row.Id == systemUserRole.Id) {\r\n $scope.vm.ListOfAvailableAX7Roles.splice(i, 1);\r\n $scope.vm.ListOfSelectedAX7Roles.push(systemUserRole);\r\n }\r\n });\r\n } else if ($scope.vm.wizardMode === \"New\" && $scope.defaultRoleTemplate) {\r\n let defaultRoles = $scope.defaultRoleTemplate.Roles.filter(role => role.TypeId === \"Role\" && role.ProductType === \"AX7\");\r\n\r\n $scope.vm.ListOfSelectedAX7Roles = [...defaultRoles];\r\n $scope.vm.ListOfAvailableAX7Roles = $scope.vm.ListOfAvailableAX7Roles.filter(availableRole => {\r\n let selectedRole = $scope.vm.ListOfSelectedAX7Roles.find(selectedRole => selectedRole.Id === availableRole.Id);\r\n\r\n if (selectedRole) {\r\n selectedRole = Object.merge(selectedRole, availableRole);\r\n }\r\n\r\n return !selectedRole;\r\n });\r\n\r\n $scope.vm.ListOfSelectedAX7Roles.push(systemUserRole);\r\n }\r\n\r\n if ($scope.vm.ListOfSelectedAX7Roles.length) {\r\n $scope.vm.numberOfAXRolesValid = true;\r\n }\r\n\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n promises.push(RequestManagementAXService.getAllAX7Companies().then(function (response) {\r\n $scope.vm.ListOfAX7Companies = response.data;\r\n\r\n if ($scope.vm.axCompanyDropdownDataSource) {\r\n $scope.vm.axCompanyDropdownDataSource.read();\r\n }\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n //Load Available axUserGroups then process existing security\r\n promises.push(RequestManagementAXService.getAllAX7UserGroups().then(function (response) {\r\n $scope.vm.ListOfAvailableAX7UserGroups = response.data.map(applyPending.bind(null, pendingUserGroups));\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n $q.all(promises).then(function () {\r\n\r\n //Load AX user roles\r\n if ($scope.vm.User.AX7User.RoleCompanies != null) {\r\n $scope.vm.User.AX7User.RoleCompanies.forEach(roleCompany => {\r\n\r\n var axRole = null;\r\n var selectedAXRole = null;\r\n var selectedCompany = null;\r\n\r\n //Get the role information from the available axRoles list\r\n axRole = $scope.vm.ListOfAvailableAX7Roles.find(object => object.Id.toUpperCase() === roleCompany.Role.Id.toUpperCase());\r\n\r\n //Check if the company Id has been set for the current role company\r\n if (roleCompany.Company != null) {\r\n selectedCompany = $scope.vm.ListOfAX7Companies.find(object => object.CompanyId.toUpperCase() === roleCompany.Company.CompanyId.toUpperCase());\r\n }\r\n\r\n\r\n //Check if the role already exists in the selected list\r\n selectedAXRole = $scope.vm.ListOfSelectedAX7Roles.find(object => object.Id.toUpperCase() === roleCompany.Role.Id.toUpperCase());\r\n //If the role already exists add the current company information to the company list\r\n if (selectedAXRole != null && selectedCompany != null) {\r\n if (selectedAXRole.Companies == null) {\r\n selectedAXRole.Companies = [];\r\n }\r\n if (selectedAXRole.Companies.none(company => company.CompanyId.toUpperCase() === selectedCompany.CompanyId.toUpperCase())) {\r\n selectedAXRole.Companies.push(selectedCompany);\r\n }\r\n } else {\r\n if (axRole != null) {\r\n $scope.vm.ListOfSelectedAX7Roles.unshift({\r\n Id: axRole.Id,\r\n Name: axRole.Name,\r\n IsAssignable: axRole.IsAssignable,\r\n Description: axRole.Description,\r\n Identifier: axRole.Identifier,\r\n Companies: selectedCompany == null ? null : [selectedCompany],\r\n Pending: pendingRoles.find(pendingRole => pendingRole.Role.Id.toUpperCase() === axRole.Id.toUpperCase() && axRole.Id !== \"SystemUser\")\r\n });\r\n\r\n $scope.vm.ListOfAvailableAX7Roles.forEach(function (row, j) {\r\n if (row.Id.toUpperCase() === axRole.Id.toUpperCase()) {\r\n $scope.vm.ListOfAvailableAX7Roles.splice(j, 1);\r\n }\r\n });\r\n }\r\n }\r\n\r\n axRole = null;\r\n selectedCompany = null;\r\n\r\n $scope.vm.numberOfAXRolesValid = true;\r\n });\r\n }\r\n $scope.vm.ListOfAvailableAX7Roles = $scope.vm.ListOfAvailableAX7Roles.filter(role => role.IsAssignable);\r\n\r\n //Load AX user groups\r\n if ($scope.vm.User.AX7User.UserGroups != null) {\r\n $scope.vm.User.AX7User.UserGroups.forEach(userGroup => {\r\n\r\n var axUserGroup = null;\r\n var selectedAXUserGroup = null;\r\n\r\n //Get the role information from the available axRoles list\r\n axUserGroup = $scope.vm.ListOfAvailableAX7UserGroups.find(object => object.Id.toUpperCase() === userGroup.Id.toUpperCase());\r\n\r\n\r\n //Check if the role already exists in the selected list\r\n selectedAXUserGroup = $scope.vm.ListOfSelectedAX7UserGroups.find(object => object.Id.toUpperCase() === userGroup.Id.toUpperCase());\r\n if (axUserGroup != null) {\r\n $scope.vm.ListOfSelectedAX7UserGroups.unshift({\r\n Id: axUserGroup.Id, Name: axUserGroup.Name,\r\n Pending: pendingUserGroups.find(pendingGroup => pendingGroup.Id.toUpperCase() === axUserGroup.Id.toUpperCase())\r\n });\r\n\r\n $scope.vm.ListOfAvailableAX7UserGroups.forEach(function (row, j) {\r\n if (row.Id.toUpperCase() === axUserGroup.Id.toUpperCase()) {\r\n $scope.vm.ListOfAvailableAX7UserGroups.splice(j, 1);\r\n }\r\n });\r\n }\r\n axUserGroup = null;\r\n });\r\n }\r\n\r\n $scope.axUserLoaded = true;\r\n permissionsDfrd.resolve();\r\n });\r\n\r\n return $.when(permissionsDfrd).done(function () {\r\n }).promise();\r\n\r\n }\r\n\r\n this.loadAX2012 = function (scope) {\r\n var axDfrd = $.Deferred();\r\n\r\n loadAX2012Permissions(scope).done(function () {\r\n axDfrd.resolve();\r\n });\r\n\r\n return $.when(axDfrd).done(function () {\r\n }).promise();\r\n };\r\n\r\n this.loadAX2012LoadPermisssions = function ($scope) {\r\n return loadAX2012Permissions($scope);\r\n };\r\n //Load the AX permissions, after that completes and if there is an existing AX user load their permissions\r\n function loadAX2012Permissions($scope) {\r\n let permissionsDfrd = $.Deferred(),\r\n promises = [],\r\n axRoles = [],\r\n pendingRoles = $scope.vm.User?.AX2012User?.PendingRoleCompanies || [],\r\n pendingUserGroups = $scope.vm.User?.AX2012User?.PendingUserGroups || [];\r\n\r\n $scope.vm.ListOfSelectedAX2012Roles = [];\r\n $scope.vm.ListOfAvailableAX2012Roles = [];\r\n $scope.vm.ListOfSelectedAX2012UserGroups = [];\r\n $scope.vm.ListOfAvailableAX2012UserGroups = [];\r\n\r\n if ($scope.vm.User.AX2012User != null && $scope.vm.User.AX2012User.UserId != null) {\r\n\r\n //If any axRoles are selected in the request set the axRoles valid property to true below\r\n $scope.vm.numberOfAXRolesValid = false;\r\n\r\n axRoles = $scope.vm.User.AX2012User.RoleCompanies;\r\n\r\n if (axRoles.length > 0) {\r\n $scope.vm.numberOfAXRolesValid = true;\r\n }\r\n }\r\n\r\n //Load Available axRoles then process existing security\r\n promises.push(RequestManagementAXService.getAllAX2012Roles().then(function (response) {\r\n $scope.vm.ListOfAvailableAX2012Roles = response.data.map(applyPendingByKey.bind(null, \"Role\", pendingRoles));\r\n let systemUserRole = $scope.vm.ListOfAvailableAX2012Roles.find(role => role.Name === 'SystemUser');\r\n\r\n if ($scope.vm.wizardMode === 'New' && !$scope.defaultRoleTemplate) {\r\n // we need to pre-select the system user role\r\n\r\n $scope.vm.ListOfAvailableAX2012Roles.forEach((row, i) => {\r\n if (row.Id === systemUserRole.Id) {\r\n $scope.vm.ListOfAvailableAX2012Roles.splice(i, 1);\r\n $scope.vm.ListOfSelectedAX2012Roles.push(systemUserRole);\r\n }\r\n });\r\n } else if ($scope.vm.wizardMode === \"New\" && $scope.defaultRoleTemplate) {\r\n let defaultRoles = $scope.defaultRoleTemplate.Roles.filter(role => role.TypeId === \"Role\" && role.ProductType === \"AX\");\r\n\r\n $scope.vm.ListOfSelectedAX2012Roles = [...defaultRoles];\r\n $scope.vm.ListOfAvailableAX2012Roles = $scope.vm.ListOfAvailableAX2012Roles.filter(availableRole => {\r\n let selectedRole = $scope.vm.ListOfSelectedAX2012Roles.find(selectedRole => selectedRole.Id === availableRole.Id);\r\n\r\n if (selectedRole) {\r\n selectedRole = Object.merge(selectedRole, availableRole);\r\n }\r\n\r\n return !selectedRole;\r\n });\r\n $scope.vm.ListOfSelectedAX2012Roles.push(systemUserRole);\r\n }\r\n\r\n if ($scope.vm.ListOfSelectedAX2012Roles.length) {\r\n $scope.vm.numberOfAXRolesValid = true;\r\n }\r\n\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n promises.push(RequestManagementAXService.getAllAX2012Partitions().then(function (response) {\r\n $scope.vm.ListOfAX2012Partitions = response.data;\r\n $scope.vm.User.AX2012User.Partition = $scope.vm.ListOfAX2012Partitions.find(p => p.Key === 'initial');\r\n\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n //Load Available axUserGroups then process existing security\r\n promises.push(RequestManagementAXService.getAllAX2012UserGroups().then(function (response) {\r\n $scope.vm.ListOfAvailableAX2012UserGroups = response.data.map(applyPending.bind(null, pendingUserGroups));\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n $q.all(promises).then(async function () {\r\n\r\n // load AX Companies\r\n let axCompanies = await RequestManagementAXService.getAllAX2012Companies($scope.vm.User.AX2012User.Partition.Key);\r\n\r\n $scope.vm.ListOfAX2012Companies = axCompanies.data;\r\n\r\n if ($scope.vm.axCompanyDropdownDataSource) {\r\n $scope.vm.axCompanyDropdownDataSource.read();\r\n }\r\n //Load AX user roles\r\n if ($scope.vm.User.AX2012User.RoleCompanies != null) {\r\n $scope.vm.User.AX2012User.RoleCompanies.forEach(function (roleCompany) {\r\n\r\n var axRole = null;\r\n var selectedAXRole = null;\r\n var selectedCompany = null;\r\n\r\n //Get the role information from the available axRoles list\r\n axRole = $scope.vm.ListOfAvailableAX2012Roles.find(function (object) {\r\n return object.Id.toUpperCase() === roleCompany.Role.Id.toUpperCase();\r\n });\r\n //Check if the company Id has been set for the current role company\r\n if (roleCompany.Company != null) {\r\n selectedCompany = $scope.vm.ListOfAX2012Companies.find(object => object.CompanyId.toUpperCase() === roleCompany.Company.CompanyId.toUpperCase());\r\n }\r\n\r\n //Check if the role already exists in the selected list\r\n selectedAXRole = $scope.vm.ListOfSelectedAX2012Roles.find(object => object.Id.toUpperCase() === roleCompany.Role.Id.toUpperCase());\r\n //If the role already exists add the current company information to the company list\r\n if (selectedAXRole != null && selectedCompany != null) {\r\n if (selectedAXRole.Companies == null) {\r\n selectedAXRole.Companies = [];\r\n }\r\n if (selectedAXRole.Companies.none(company => company.CompanyId.toUpperCase() === selectedCompany.CompanyId.toUpperCase())) {\r\n selectedAXRole.Companies.push(selectedCompany);\r\n }\r\n }\r\n else {\r\n if (axRole != null) {\r\n $scope.vm.ListOfSelectedAX2012Roles.unshift({\r\n Id: axRole.Id,\r\n Name: axRole.Name,\r\n IsAssignable: axRole.IsAssignable,\r\n Description: axRole.Description,\r\n Identifier: axRole.Identifier,\r\n Companies: selectedCompany == null ? null : [selectedCompany],\r\n Pending: pendingRoles.some(pendingRole => pendingRole.Role.Id.toUpperCase() === axRole.Id.toUpperCase() && axRole.Name !== \"SystemUser\")\r\n });\r\n\r\n\r\n $scope.vm.ListOfAvailableAX2012Roles.forEach(function (row, j) {\r\n if (row.Id.toUpperCase() === axRole.Id.toUpperCase()) {\r\n $scope.vm.ListOfAvailableAX2012Roles.splice(j, 1);\r\n }\r\n });\r\n }\r\n }\r\n\r\n axRole = null;\r\n selectedCompany = null;\r\n\r\n $scope.vm.numberOfAXRolesValid = true;\r\n });\r\n }\r\n $scope.vm.ListOfAvailableAX2012Roles = $scope.vm.ListOfAvailableAX2012Roles.filter(role => role.IsAssignable);\r\n\r\n //Load AX user groups\r\n if ($scope.vm.User.AX2012User.UserGroups != null) {\r\n $scope.vm.User.AX2012User.UserGroups.forEach(userGroup => {\r\n var ax2012UserGroup = null;\r\n\r\n //Get the role information from the available axRoles list\r\n ax2012UserGroup = $scope.vm.ListOfAvailableAX2012UserGroups.find(object => object.Id.toUpperCase() === userGroup.Id.toUpperCase());\r\n\r\n if (ax2012UserGroup != null) {\r\n $scope.vm.ListOfSelectedAX2012UserGroups.unshift({\r\n Id: ax2012UserGroup.Id,\r\n Name: ax2012UserGroup.Name,\r\n Pending: pendingUserGroups.some(pendingUserGroup => pendingUserGroup.Id === ax2012UserGroup.Id)\r\n });\r\n\r\n $scope.vm.ListOfAvailableAX2012UserGroups.forEach(function (row, j) {\r\n if (row.Id.toUpperCase() === ax2012UserGroup.Id.toUpperCase()) {\r\n $scope.vm.ListOfAvailableAX2012UserGroups.splice(j, 1);\r\n }\r\n });\r\n }\r\n ax2012UserGroup = null;\r\n });\r\n }\r\n\r\n $scope.axUserLoaded = true;\r\n permissionsDfrd.resolve();\r\n });\r\n\r\n return $.when(permissionsDfrd).done(function () {\r\n }).promise();\r\n }\r\n}\r\n\r\nfunction applyPendingByKey(key, pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem[key].Id.toUpperCase() === item.Id.toUpperCase());\r\n }\r\n\r\n return item;\r\n}\r\n\r\nfunction applyPending(pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem.Id.toUpperCase() === item.Id.toUpperCase());\r\n }\r\n\r\n return item;\r\n}","export default /*@ngInject*/ function ($http) {\r\n\r\n //AX 7 HTTP Calls\r\n this.getAllAX7Roles = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ax7/roles'\r\n });\r\n };\r\n\r\n this.getAllAX7UserGroups = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ax7/usergroups'\r\n })\r\n };\r\n\r\n this.getAllAX7Companies = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ax7/companies'\r\n });\r\n };\r\n\r\n this.getAX7UserData = function (userId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ax7/users/' + userId + '/'\r\n });\r\n };\r\n\r\n this.getAllAX7UserRoleCompanies = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ax7/userrolecompanies'\r\n });\r\n };\r\n\r\n //AX 2012\r\n this.getAllAX2012Roles = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ax/roles'\r\n });\r\n };\r\n\r\n this.getAllAX2012UserGroups = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ax/usergroups'\r\n })\r\n };\r\n\r\n this.getAllAX2012Companies = function (partitionKey) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ax/companies/partitions/' + partitionKey\r\n });\r\n };\r\n\r\n this.getAllAX2012Partitions = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ax/partitions'\r\n });\r\n };\r\n}","export const aad_application_id = 'e636d4fc-dd34-4dca-9171-d61270179167';\r\nexport const ax7_application_id = 'c311c379-e109-4e68-8082-f9c2f2e843ff';\r\nexport const ax_application_id = 'e39d0c80-61ea-4f40-8179-a5def6869507';\r\nexport const netsuite_application_id = '919aa6b9-8083-4c08-ace7-9322aa69bc4e';\r\nexport const sap_application_id = 'a4066336-3e11-4856-a7cc-9726460448b0';\r\nexport const oracle_application_id = '34d25422-9dc2-4918-8d85-084373e4bbb3';\r\nexport const oracleCloud_application_id = '286e7a77-4450-4527-987c-c08680356b00';\r\nexport const gp_application_id = 'e0981441-d1f9-4d5a-af74-cbb7339991a0';\r\nexport const nav_application_id = '19c49353-308b-4485-babe-f4200dfd1bf0';\r\nexport const d365s_application_id = '79f1178d-d827-460e-84e5-758c0b799115';\r\nexport const ps_application_id = '52c24698-ed59-4734-a80f-c7bcde27b16f';\r\nexport const universalProduct_application_id = '23fa3370-b057-489e-b6bb-49aa2a2fa040';\r\nexport const salesforce_application_id = '98999322-a76f-4c6e-b025-e62134cda4d1';","import { ax7_application_id, oracle_application_id, oracleCloud_application_id, gp_application_id, nav_application_id, d365s_application_id, netsuite_application_id, sap_application_id, ax_application_id, universalProduct_application_id, aad_application_id, ps_application_id, salesforce_application_id } from \"../../Shared/GlobalVariables/applicationIdVariables\";\r\n\r\nexport default /*@ngInject*/ function ($http) {\r\n var self = this;\r\n //Build request for executeRequest function, isFinishRequest adds in any revoked roles from the available role lists\r\n this.buildRequest = function (vm, isFinishRequest) {\r\n\r\n var request = self.buildHeaderRequest(vm),\r\n isTerminate = vm.wizardMode === \"Terminate\";\r\n\r\n var globalPermissionsWithUnusedRemoved = [];\r\n //Removes all levels from object and populates it with 1 selected Level\r\n if (vm.ListOfSelectedNetSuitePermissions != null) {\r\n globalPermissionsWithUnusedRemoved = vm.ListOfSelectedNetSuitePermissions && vm.ListOfSelectedNetSuitePermissions.map(permission => ({ ...permission }));\r\n }\r\n\r\n if (globalPermissionsWithUnusedRemoved.length > 0) {\r\n globalPermissionsWithUnusedRemoved.forEach(function (row) {\r\n row.Levels = [row.selectedLevel];\r\n delete row.selectedLevel;\r\n delete row.Pending;\r\n });\r\n }\r\n\r\n var netSuiteRequest = {};\r\n var nsApplication = vm.availableApplications.find(function (application) {\r\n return application.Id == netsuite_application_id;\r\n });\r\n\r\n if (vm.User.NetSuiteUser != null && nsApplication != null && (nsApplication?.selected || vm.wizardMode === 'Terminate' && nsApplication?.selected == false)) {\r\n\r\n var nsRoles = vm.ListOfSelectedNetSuiteRoles && vm.ListOfSelectedNetSuiteRoles.map(role => ({ ...role })),\r\n nsPermissions = [];\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n nsRoles = vm.ReturnedRequest?.NetSuiteRequest?.Roles.map(removePendingKey);\r\n nsPermissions = vm.ReturnedRequest?.NetSuiteRequest?.GlobalPermissions;\r\n } else if (!isTerminate && !isFinishRequest) {\r\n nsRoles = nsRoles && nsRoles.map(removePendingKey);\r\n nsPermissions = globalPermissionsWithUnusedRemoved;\r\n } else {\r\n nsRoles = [];\r\n nsPermissions = [];\r\n }\r\n\r\n netSuiteRequest = {\r\n NetSuiteRequest: {\r\n User: {\r\n Id: vm.User.NetSuiteUser.Id,\r\n ProductId: vm.User.NetSuiteUser.ProductId,\r\n FirstName: vm.User.NetSuiteUser.FirstName,\r\n LastName: vm.User.NetSuiteUser.LastName,\r\n Email: vm.User.NetSuiteUser.Email,\r\n Subsidiary: vm.User.NetSuiteUser.Subsidiary,\r\n Password: vm.User.NetSuiteUser.Password,\r\n Department: vm.User.NetSuiteUser.Department == null || vm.User.NetSuiteUser.Department.Id == '' ? null : vm.User.NetSuiteUser.Department,\r\n Class: vm.User.NetSuiteUser.Class == null || vm.User.NetSuiteUser.Class.Id == '' ? null : vm.User.NetSuiteUser.Class,\r\n Location: vm.User.NetSuiteUser.Location == null || vm.User.NetSuiteUser.Location.Id == '' ? null : vm.User.NetSuiteUser.Location,\r\n Phone: vm.User.NetSuiteUser.Phone,\r\n MobilePhone: vm.User.NetSuiteUser.MobilePhone,\r\n JobTitle: vm.User.NetSuiteUser.JobTitle,\r\n Inactive: vm.User.NetSuiteUser.Inactive,\r\n GiveAccess: vm.User.NetSuiteUser.GiveAccess,\r\n StartDate: vm.User.NetSuiteUser.StartDate,\r\n EndDate: vm.User.NetSuiteUser.EndDate,\r\n IsSalesRep: vm.User.NetSuiteUser.IsSalesRep,\r\n IsSupportRep: vm.User.NetSuiteUser.IsSupportRep,\r\n Action: vm.User.NetSuiteUser.Action,\r\n RequirePasswordChange: vm.User.NetSuiteUser.RequirePasswordChange,\r\n SendNotificationEmail: vm.User.NetSuiteUser.SendNotificationEmail,\r\n UserChanges: vm.User.NetSuiteUser.UserChanges\r\n },\r\n Roles: nsRoles,\r\n GlobalPermissions: nsPermissions\r\n }\r\n };\r\n }\r\n else {\r\n netSuiteRequest = {\r\n NetSuiteRequest: null\r\n };\r\n }\r\n //Add NS request\r\n request = $.extend({}, request, netSuiteRequest);\r\n\r\n //SAP Request\r\n var sapApplication = vm.availableApplications.filter(function (application) {\r\n return application.Id == sap_application_id;\r\n });\r\n\r\n var sapRequest = {};\r\n if (vm.User.SAPUser) {\r\n sapRequest.SAPRequest = [];\r\n } else {\r\n sapRequest.SAPRequest = null;\r\n }\r\n sapApplication.forEach(application => {\r\n var productSapRequest = {};\r\n if (vm.User.SAPUser) {\r\n if (vm.User.SAPUser[application.ProductName] != null && application != null && application?.selected == true) {\r\n\r\n function getRoles() {\r\n if (vm.wizardMode !== 'Terminate') {\r\n if (isFinishRequest) {\r\n if (vm.ReturnedRequest.SAPRequest.some(request => request.ProductId === application.ProductID)) {\r\n return vm.ReturnedRequest.SAPRequest.find(request => request.ProductId === application.ProductID).Roles;\r\n } else {\r\n return [];\r\n }\r\n } else {\r\n let allRoles = vm.ListOfSelectedSAPSingleRoles[application.ProductName].concat(vm.ListOfSelectedSAPCompositeRoles[application.ProductName]);\r\n return allRoles;\r\n }\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n function findSAPUserIndex() {\r\n return vm.ReturnedRequest.SAPRequest.findIndex(request => request.ProductId === application.ProductID);\r\n }\r\n\r\n function getSAPUserAction() {\r\n let action = null;\r\n\r\n if (isFinishRequest && vm.alternatePath !== 'EmergencyAccess') {\r\n if (vm.ReturnedRequest) {\r\n if (vm.ReturnedRequest.SAPRequest[findSAPUserIndex()].User) {\r\n action = vm.ReturnedRequest.SAPRequest[findSAPUserIndex()].User.Action;\r\n }\r\n } else {\r\n action = vm.User.SAPUser[application.ProductName].Action;\r\n }\r\n }\r\n return action;\r\n }\r\n\r\n let isEmergencyAccess = vm.alternatePath === \"EmergencyAccess\" ? true : false;\r\n productSapRequest = {\r\n \"ProductId\": application.ProductID,\r\n \"User\": {\r\n \"ProductId\": application.ProductID,\r\n \"Action\": getSAPUserAction(),\r\n \"Status\": vm.User.SAPUser[application.ProductName].Status,\r\n \"StartDate\": vm.User.SAPUser[application.ProductName].StartDate,\r\n \"EndDate\": vm.User.SAPUser[application.ProductName].EndDate,\r\n \"Active\": vm.User.SAPUser[application.ProductName].Active,\r\n \"UserStartDate\": vm.User.SAPUser[application.ProductName].UserStartDate,\r\n \"UserEndDate\": vm.User.SAPUser[application.ProductName].UserEndDate,\r\n \"Email\": vm.User.SAPUser[application.ProductName].Email,\r\n \"FirstName\": vm.User.SAPUser[application.ProductName].FirstName,\r\n \"LastName\": vm.User.SAPUser[application.ProductName].LastName,\r\n \"UserName\": vm.User.SAPUser[application.ProductName].UserName,\r\n \"Street1\": vm.User.SAPUser[application.ProductName].Street1,\r\n \"SNC\": vm.User.SAPUser[application.ProductName].SNC,\r\n \"State\": vm.User.SAPUser[application.ProductName].State,\r\n \"TimeZone\": vm.User.SAPUser[application.ProductName].TimeZone,\r\n \"Title\": vm.User.SAPUser[application.ProductName].Title,\r\n \"UserGroup\": vm.User.SAPUser[application.ProductName].UserGroup,\r\n \"UserType\": vm.User.SAPUser[application.ProductName].UserType === null ? null : vm.User.SAPUser[application.ProductName].UserType,\r\n \"AccountId\": vm.User.SAPUser[application.ProductName].AccountId,\r\n \"City\": vm.User.SAPUser[application.ProductName].City,\r\n \"Password\": vm.User.SAPUser[application.ProductName].Password,\r\n \"UserChanges\": vm.User.SAPUser[application.ProductName].UserChanges\r\n },\r\n \"Roles\": getRoles().map(removePendingKey),\r\n \"IsEmergencyAccess\": isEmergencyAccess,\r\n \"EmergencyAccessObjects\": isEmergencyAccess && vm.ListOfSelectedSAPRoleObjects[application.ProductName] ? vm.ListOfSelectedSAPRoleObjects[application.ProductName].map(o => o.Identifier) : []\r\n };\r\n sapRequest.SAPRequest.push(productSapRequest);\r\n }\r\n } else {\r\n sapRequest.SAPRequest = null;\r\n }\r\n });\r\n request = $.extend({}, request, sapRequest);\r\n\r\n //UP Request\r\n var universalApplication = vm.availableApplications.filter(function (application) {\r\n return application.Id == universalProduct_application_id;\r\n });\r\n\r\n var universalProductRequest = {};\r\n if (vm.User.UPUser) {\r\n universalProductRequest.UniversalRequest = [];\r\n } else {\r\n universalProductRequest.UniversalRequest = null;\r\n }\r\n universalApplication.forEach(application => {\r\n var productUpRequest = {};\r\n if (vm.User.UPUser) {\r\n if (vm.User.UPUser[application.ProductName] != null && application != null && application?.selected == true) {\r\n let upRoles = [];\r\n\r\n if (vm.ListOfSelectedUPRoles[application.ProductName] != null) {\r\n vm.ListOfSelectedUPRoles[application.ProductName].forEach(role => {\r\n if (role.Companies != null) {\r\n\r\n role.Companies.forEach(company => {\r\n upRoles.push(\r\n {\r\n \"UserId\": vm.User.UPUser[application.ProductName].Id,\r\n \"Action\": role.Action,\r\n \"StartDate\": company?.StartDate,\r\n \"EndDate\": company?.EndDate,\r\n \"Role\": {\r\n \"Id\": role.Id,\r\n \"Name\": role.Name,\r\n \"Description\": role.Description,\r\n \"Identifier\": role.Identifier,\r\n \"ProductId\": application.ProductID,\r\n \"ProductName\": application.ProductName\r\n },\r\n \"Company\": {\r\n \"Id\": company?.CompanyId,\r\n \"Name\": company?.CompanyName,\r\n \"ProductId\": company?.ProductId\r\n }\r\n });\r\n });\r\n } else {\r\n upRoles.push(\r\n {\r\n \"UserId\": vm.User.UPUser[application.ProductName].Id,\r\n \"Action\": role.Action,\r\n \"StartDate\": role.StartDate,\r\n \"EndDate\": role.EndDate,\r\n \"Role\": {\r\n \"Id\": role.Id,\r\n \"Name\": role.Name,\r\n \"Description\": role.Description,\r\n \"Identifier\": role.Identifier,\r\n \"ProductId\": application.ProductID,\r\n \"ProductName\": application.ProductName\r\n },\r\n \"Company\": null\r\n });\r\n }\r\n });\r\n }\r\n\r\n function findUPUserIndex() {\r\n return vm.ReturnedRequest.UniversalRequest.findIndex(request => request.ProductId === application?.ProductID);\r\n }\r\n\r\n function getUPUserAction() {\r\n let action = null;\r\n\r\n if (isFinishRequest && vm.ReturnedRequest) {\r\n if (vm.ReturnedRequest.UniversalRequest[findUPUserIndex()].User) {\r\n action = vm.ReturnedRequest.UniversalRequest[findUPUserIndex()].User.Action;\r\n } else {\r\n action = vm.User.UPUser[application.ProductName].Action;\r\n }\r\n }\r\n return action;\r\n }\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n upRoles = vm.ReturnedRequest.UniversalRequest.find(request => request.ProductName === application?.ProductName).UserRoles;\r\n } else if (isTerminate && !isFinishRequest) {\r\n upRoles = [];\r\n }\r\n\r\n productUpRequest = {\r\n \"ProductId\": application.ProductID,\r\n \"ProductName\": application.ProductName,\r\n \"UserId\": vm.User.UPUser[application.ProductName].Id,\r\n \"User\": {\r\n \"ProductId\": application.ProductID,\r\n \"Action\": isTerminate ? \"Delete\" : getUPUserAction(),\r\n \"Id\": vm.User.UPUser[application.ProductName].Id,\r\n \"Name\": vm.User.UPUser[application.ProductName].Name,\r\n \"Description\": vm.User.UPUser[application.ProductName].Description,\r\n \"Email\": vm.User.UPUser[application.ProductName].Email,\r\n \"UserChanges\": vm.User.UPUser[application.ProductName].UserChanges\r\n },\r\n \"UserRoles\": upRoles\r\n };\r\n universalProductRequest.UniversalRequest.push(productUpRequest);\r\n }\r\n } else {\r\n universalProductRequest.UniversalRequest = null;\r\n }\r\n });\r\n request = $.extend({}, request, universalProductRequest);\r\n\r\n //AAD Request\r\n var aadRequest = {};\r\n var aadApplication = vm.availableApplications.find(function (application) {\r\n return application.Id == aad_application_id;\r\n });\r\n\r\n if (vm.User.AadUser != null && vm.User.AadUser.UserPrincipalName != null && aadApplication?.selected == true) {\r\n let aadRoles = vm.ListOfSelectedAADRoles && vm.ListOfSelectedAADRoles.map(role => ({ ...role })),\r\n aadGroups = vm.ListOfSelectedAADGroups && vm.ListOfSelectedAADGroups.map(group => ({ ...group })),\r\n aadLicenses = vm.ListOfSelectedAADLicenses && vm.ListOfSelectedAADLicenses.map(license => ({ ...license }));\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n aadRoles = vm.ReturnedRequest?.AadRequest?.Roles.map(removePendingKey);\r\n aadGroups = vm.ReturnedRequest?.AadRequest?.Groups.map(removePendingKey);\r\n aadLicenses = vm.ReturnedRequest?.AadRequest?.Licenses.map(removePendingKey);\r\n } else if (!isTerminate && !isFinishRequest) {\r\n aadRoles = aadRoles && aadRoles.map(removePendingKey);\r\n aadGroups = aadGroups && aadGroups.map(removePendingKey);\r\n aadLicenses = aadLicenses && aadLicenses.map(removePendingKey);\r\n } else {\r\n aadRoles = [];\r\n aadGroups = [];\r\n aadLicenses = [];\r\n }\r\n\r\n aadRequest = {\r\n AadRequest: {\r\n User: {\r\n AccountEnabled: vm.User.AadUser.AccountEnabled,\r\n BusinessPhones: !vm.User.AadUser.BusinessPhones ? [] : Array.isArray(vm.User.AadUser.BusinessPhones) ? vm.User.AadUser.BusinessPhones : [vm.User.AadUser.BusinessPhones],\r\n City: vm.User.AadUser.City,\r\n Country: vm.User.AadUser.Country,\r\n Department: vm.User.AadUser.Department,\r\n DisplayName: vm.User.AadUser.DisplayName,\r\n GivenName: vm.User.AadUser.GivenName,\r\n Id: vm.User.AadUser.Id,\r\n JobTitle: vm.User.AadUser.JobTitle,\r\n Mail: vm.User.AadUser.Mail,\r\n MobilePhone: vm.User.AadUser.MobilePhone,\r\n OfficeLocation: vm.User.AadUser.OfficeLocation,\r\n PostalCode: vm.User.AadUser.PostalCode,\r\n ProductId: vm.User.AadUser.ProductId,\r\n State: vm.User.AadUser.State,\r\n StreetAddress: vm.User.AadUser.StreetAddress,\r\n SurName: vm.User.AadUser.SurName,\r\n UsageLocation: vm.User.AadUser.UsageLocation,\r\n UserPrincipalName: vm.User.AadUser.Domain ? vm.User.AadUser.UserPrincipalName + '@' + vm.User.AadUser.Domain : vm.User.AadUser.UserPrincipalName,\r\n UserType: \"Member\",\r\n Manager: vm.User.AadUser.Manager,\r\n StartDate: vm.User.AadUser.StartDate,\r\n EndDate: vm.User.AadUser.EndDate,\r\n Action: vm.User.AadUser.Action,\r\n StartDate: vm.User.AadUser.StartDate,\r\n EndDate: vm.User.AadUser.EndDate,\r\n PersonUser: vm.User.AadUser.PersonUser,\r\n PasswordProfile: vm.User.AadUser.PasswordProfile ? {\r\n ForceChangePasswordNextSignIn: vm.User.AadUser.PasswordProfile.ForceChangePasswordNextSignIn,\r\n Password: vm.User.AadUser.PasswordProfile.Password\r\n } : null,\r\n UserChanges: vm.User.AadUser.UserChanges\r\n },\r\n Groups: aadGroups,\r\n Roles: aadRoles,\r\n Licenses:aadLicenses\r\n }\r\n\r\n };\r\n }\r\n else {\r\n aadRequest = {\r\n AadRequest: null\r\n };\r\n }\r\n\r\n request = $.extend({}, request, aadRequest);\r\n\r\n //AX7 Request\r\n var ax7Request = {};\r\n var axApplication = vm.availableApplications.find(function (application) {\r\n return application.Id == ax7_application_id;\r\n });\r\n\r\n if (vm.User.AX7User != null && vm.User.AX7User.UserId != null && axApplication?.selected == true) {\r\n let ax7UserGroups = vm.ListOfSelectedAX7UserGroups && vm.ListOfSelectedAX7UserGroups.map(group => ({ ...group })),\r\n ax7RoleCompanies = [];\r\n\r\n if (vm.ListOfSelectedAX7Roles != null) {\r\n vm.ListOfSelectedAX7Roles.forEach(role => {\r\n if (role.Companies != null) {\r\n\r\n role.Companies.forEach(function (company) {\r\n ax7RoleCompanies.push(\r\n {\r\n UserId: vm.User.AX7User.UserId,\r\n Action: role.Action,\r\n StartDate: company.StartDate,\r\n EndDate: company.EndDate,\r\n Role: {\r\n Id: role.Id,\r\n Name: role.Name,\r\n Description: role.Description\r\n },\r\n Company: {\r\n CompanyId: company.CompanyId,\r\n CompanyName: company.CompanyName,\r\n CompanyType: company.CompanyType\r\n }\r\n });\r\n });\r\n } else {\r\n ax7RoleCompanies.push(\r\n {\r\n UserId: vm.User.AX7User.UserId,\r\n Action: role.Action,\r\n StartDate: role.StartDate,\r\n EndDate: role.EndDate,\r\n Role: {\r\n Id: role.Id,\r\n Name: role.Name,\r\n Description: role.Description\r\n },\r\n Company: null\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n ax7UserGroups = vm.ReturnedRequest?.Ax7Request?.UserGroups.map(removePendingKey);\r\n ax7RoleCompanies = vm.ReturnedRequest?.Ax7Request?.RoleCompanies.map(removePendingKey);\r\n } else if (!isTerminate && !isFinishRequest) {\r\n ax7UserGroups = ax7UserGroups && ax7UserGroups.map(removePendingKey);\r\n } else {\r\n ax7UserGroups = [];\r\n ax7RoleCompanies = [];\r\n }\r\n\r\n ax7Request = {\r\n Ax7Request: {\r\n User: {\r\n ProductId: vm.User.AX7User.ProductId,\r\n Company: vm.User.AX7User.Company == null ? null : vm.User.AX7User.Company,\r\n Email: vm.User.AX7User.Email,\r\n NetworkDomain: vm.User.AX7User.NetworkDomain,\r\n UserId: vm.User.AX7User.UserId,\r\n UserName: vm.User.AX7User.UserName,\r\n Person: vm.User.AX7User.Person,\r\n Enabled: vm.User.AX7User.Enabled,\r\n StartDate: vm.User.AX7User.StartDate,\r\n EndDate: vm.User.AX7User.EndDate,\r\n Action: vm.User.AX7User.Action,\r\n PersonUser: vm.User.AX7User.PersonUser,\r\n UserChanges: vm.User.AX7User.UserChanges\r\n },\r\n RoleCompanies: ax7RoleCompanies,\r\n UserGroups: ax7UserGroups,\r\n //If wizard mode is Modify, current user security was pulled from initiate request - populate it here. Otherwise, null. API will ignore if null.\r\n CurrentUser: vm.wizardMode === 'Modify' && !vm.requestToEdit ? vm.User.AX7User.CurrentAx7User : null\r\n }\r\n };\r\n\r\n }\r\n else {\r\n ax7Request = {\r\n Ax7Request: null\r\n };\r\n }\r\n\r\n request = $.extend({}, request, ax7Request);\r\n\r\n //AX2012 Request\r\n var ax2012Request = {};\r\n var axApplication = vm.availableApplications.find(function (application) {\r\n return application.Id == ax_application_id;\r\n });\r\n\r\n if (vm.User.AX2012User != null && axApplication != null && axApplication?.selected == true) {\r\n let ax2012UserGroups = vm.ListOfSelectedAX2012UserGroups && vm.ListOfSelectedAX2012UserGroups.map(group => ({ ...group })),\r\n ax2012RoleCompanies = [];\r\n\r\n if (vm.ListOfSelectedAX2012Roles != null) {\r\n vm.ListOfSelectedAX2012Roles.forEach(function (role) {\r\n if (role.Companies != null && role?.Companies?.length > 0) {\r\n\r\n role.Companies.forEach(function (company) {\r\n ax2012RoleCompanies.push(\r\n {\r\n UserId: vm.User.AX2012User.UserId,\r\n Action: role.Action,\r\n StartDate: company.StartDate,\r\n EndDate: company.EndDate,\r\n Role: {\r\n Id: role.Id,\r\n Name: role.Name,\r\n Description: role.Description\r\n },\r\n Company: {\r\n CompanyId: company.CompanyId,\r\n CompanyName: company.CompanyName\r\n }\r\n });\r\n });\r\n } else {\r\n ax2012RoleCompanies.push(\r\n {\r\n UserId: vm.User.AX2012User.UserId,\r\n Action: role.Action,\r\n StartDate: role.StartDate,\r\n EndDate: role.EndDate,\r\n Role: {\r\n Id: role.Id,\r\n Name: role.Name,\r\n Description: role.Description\r\n },\r\n Company: null\r\n });\r\n }\r\n });\r\n }\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n ax2012UserGroups = vm.ReturnedRequest?.AxRequest?.UserGroups.map(removePendingKey);\r\n ax2012RoleCompanies = vm.ReturnedRequest?.AxRequest?.RoleCompanies.map(removePendingKey);\r\n } else if (!isTerminate && !isFinishRequest) {\r\n ax2012UserGroups = ax2012UserGroups && ax2012UserGroups.map(removePendingKey);\r\n } else {\r\n ax2012UserGroups = [];\r\n ax2012RoleCompanies = [];\r\n }\r\n\r\n ax2012Request = {\r\n AxRequest: {\r\n User: {\r\n ProductId: vm.User.AX2012User.ProductId,\r\n Company: vm.User.AX2012User.Company == null ? null : vm.User.AX2012User.Company,\r\n Email: vm.User.AX2012User.Email,\r\n UserId: vm.wizardMode == 'Modify' || vm.wizardMode == 'Terminate' ? vm.User.AX2012User.UserId : vm.User.AX2012User.DisplayUserId,\r\n UserName: vm.User.AX2012User.UserName,\r\n Person: vm.User.AX2012User.Person,\r\n Enabled: vm.User.AX2012User.Enabled,\r\n StartDate: vm.User.AX2012User.StartDate,\r\n EndDate: vm.User.AX2012User.EndDate,\r\n Action: vm.User.AX2012User.Action,\r\n Partition: vm.User.AX2012User.Partition == null ? null : vm.User.AX2012User.Partition.Id,\r\n PartitionKey: vm.User.AX2012User.Partition == null ? null : vm.User.AX2012User.Partition.Key,\r\n SID: vm.User.AX2012User.SID,\r\n NetworkDomain: vm.User.AX2012User.NetworkDomain,\r\n NetworkAlias: vm.User.AX2012User.NetworkAlias,\r\n UserChanges: vm.User.AX2012User.UserChanges\r\n },\r\n RoleCompanies: ax2012RoleCompanies,\r\n UserGroups: ax2012UserGroups,\r\n //If wizard mode is Modify, current user security was pulled from initiate request - populate it here. Otherwise, null. API will ignore if null.\r\n CurrentUser: vm.wizardMode === 'Modify' && !vm.requestToEdit ? vm.User.AX2012User.CurrentAX2012User : null\r\n }\r\n };\r\n }\r\n else {\r\n ax2012Request = {\r\n \"AxRequest\": null\r\n };\r\n }\r\n\r\n request = $.extend({}, request, ax2012Request);\r\n\r\n //ORACLE Request\r\n var oracleApplication = vm.availableApplications.find(function (application) {\r\n return application.Id == oracle_application_id;\r\n });\r\n\r\n var oracleRequest = {};\r\n\r\n if (vm.User.OracleUser != null && oracleApplication != null && oracleApplication?.selected == true) {\r\n let oracleResponsibilities = vm.ListOfSelectedOracleResponsibilities && vm.ListOfSelectedOracleResponsibilities.map(responsibility => ({ ...responsibility })),\r\n oracleRoles = vm.ListOfSelectedOracleRoles && vm.ListOfSelectedOracleRoles.map(role => ({ ...role }));\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n oracleResponsibilities = vm.ReturnedRequest?.EbsRequest?.Responsibilities.map(removePendingKey);\r\n oracleRoles = vm.ReturnedRequest?.EbsRequest?.Roles.map(removePendingKey);\r\n } else if (!isTerminate && !isFinishRequest) {\r\n oracleResponsibilities = oracleResponsibilities && oracleResponsibilities.map(removePendingKey);\r\n oracleRoles = oracleRoles && oracleRoles.map(removePendingKey)\r\n } else {\r\n oracleResponsibilities = [];\r\n oracleRoles = [];\r\n }\r\n\r\n oracleRequest = {\r\n \"EbsRequest\": {\r\n \"User\": {\r\n \"ProductId\": vm.User.OracleUser.ProductId,\r\n \"Action\": vm.User.OracleUser.Action,\r\n \"StartDate\": vm.User.OracleUser.StartDate,\r\n \"EndDate\": vm.User.OracleUser.EndDate,\r\n \"ID\": vm.User.OracleUser.ID,\r\n \"Name\": vm.User.OracleUser.Name,\r\n \"Description\": vm.User.OracleUser.Description,\r\n \"EmployeeID\": vm.User.OracleUser.EmployeeID,\r\n \"Email\": vm.User.OracleUser.Email,\r\n \"Password\": vm.User.OracleUser.Password,\r\n \"PasswordAccesses\": vm.User.OracleUser.Expiration === 'None' || vm.User.OracleUser.Expiration === 'Days' ? null : vm.User.OracleUser.ExpirationValue,\r\n \"PasswordDays\": vm.User.OracleUser.Expiration === 'None' || vm.User.OracleUser.Expiration === 'Accesses' ? null : vm.User.OracleUser.ExpirationValue,\r\n \"UserChanges\": vm.User.OracleUser.UserChanges\r\n },\r\n \"Responsibilities\": oracleResponsibilities\r\n }\r\n };\r\n\r\n if (vm.ORRBACEnabled) {\r\n oracleRequest.EbsRequest.Roles = oracleRoles;\r\n }\r\n\r\n } else {\r\n oracleRequest = {\r\n \"EbsRequest\": null\r\n };\r\n }\r\n request = $.extend({}, request, oracleRequest);\r\n\r\n // Oracle Cloud Request\r\n var oracleCloudApplication = vm.availableApplications.find(function (application) {\r\n return application.Id == oracleCloud_application_id;\r\n });\r\n\r\n var oracleCloudRequest = {};\r\n\r\n if (vm.User.OracleCloudUser != null && oracleCloudApplication != null && oracleCloudApplication?.selected == true) {\r\n var oracleCloudRoles = vm.ListOfSelectedOracleCloudRoles && vm.ListOfSelectedOracleCloudRoles.map(role => ({ ...role }));\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n oracleCloudRoles = vm.ReturnedRequest?.OrfcRequest?.Roles.map(removePendingKey);\r\n \r\n } else if (!isTerminate && !isFinishRequest) {\r\n oracleCloudRoles = oracleCloudRoles && oracleCloudRoles.map(removePendingKey);\r\n } else {\r\n oracleCloudRoles = [];\r\n }\r\n\r\n oracleCloudRequest = {\r\n \"OrfcRequest\": {\r\n \"User\": {\r\n \"Action\": vm.User.OracleCloudUser.Action,\r\n \"ProductId\": vm.User.OracleCloudUser.ProductId,\r\n \"UserID\": vm.User.OracleCloudUser.UserID,\r\n \"UserName\": vm.User.OracleCloudUser.UserName,\r\n \"Password\": vm.User.OracleCloudUser.Password,\r\n \"FirstName\": vm.User.OracleCloudUser.FirstName,\r\n \"LastName\": vm.User.OracleCloudUser.LastName,\r\n \"Email\": vm.User.OracleCloudUser.Email,\r\n \"ExternalID\": vm.User.OracleCloudUser.ExternalID,\r\n \"DisplayName\": vm.User.OracleCloudUser.DisplayName,\r\n \"Active\": vm.User.OracleCloudUser.Active,\r\n \"StartDate\": vm.User.OracleCloudUser.StartDate,\r\n \"EndDate\": vm.User.OracleCloudUser.EndDate,\r\n \"UserChanges\": vm.User.OracleCloudUser.UserChanges\r\n },\r\n \"Roles\": oracleCloudRoles\r\n }\r\n };\r\n\r\n } else {\r\n oracleRequest = {\r\n \"OrfcRequest\": null\r\n };\r\n }\r\n request = $.extend({}, request, oracleCloudRequest);\r\n\r\n //GP Request\r\n var gpApplication = vm.availableApplications.find(function (application) {\r\n return application.Id == gp_application_id;\r\n });\r\n\r\n var gpRequest = {};\r\n if (vm.User.GPUser != null && gpApplication != null && gpApplication?.selected == true) {\r\n let gpRoles = [],\r\n gpCompanies = [];\r\n\r\n if (vm.ListOfStoredGPRoles != null) {\r\n vm.ListOfStoredGPRoles.forEach(function (roleCompany) {\r\n //Find the company for each role, this is used to set the AltModProfile for each role\r\n var foundCompany = vm.User.GPUser.Companies.find(company => company.Company.Id == roleCompany.Company.Id);\r\n\r\n gpRoles.push({\r\n \"UserId\": vm.User.GPUser.Id,\r\n \"Action\": roleCompany.Action,\r\n \"Status\": roleCompany.Status,\r\n \"StartDate\": roleCompany.StartDate,\r\n \"EndDate\": roleCompany.EndDate,\r\n \"AccessType\": roleCompany.AccessType,\r\n \"Role\": {\r\n \"Id\": roleCompany.Role.Id,\r\n \"Name\": roleCompany.Role.Id,\r\n \"Description\": roleCompany.Role.Id\r\n },\r\n \"Company\": {\r\n \"Id\": roleCompany.Company.Id,\r\n \"Name\": roleCompany.Company.Name\r\n },\r\n \"AltModProfile\": foundCompany.AltModProfile.Id\r\n });\r\n });\r\n }\r\n\r\n if (vm.ListOfSelectedGPCompanies != null) {\r\n vm.ListOfSelectedGPCompanies.forEach(company => {\r\n gpCompanies.push({\r\n \"UserId\": vm.User.GPUser.Id,\r\n \"Action\": company.Action,\r\n \"Status\": company.Status,\r\n \"AccessType\": company.AccessType,\r\n \"StartDate\": company.StartDate,\r\n \"EndDate\": company.EndDate,\r\n \"Company\": {\r\n \"Id\": company.Id,\r\n \"Name\": company.Name\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n gpRoles = vm.ReturnedRequest?.GPRequest?.RoleCompanies.map(removePendingKeyByKey.bind(null, \"Role\"));\r\n gpCompanies = vm.ReturnedRequest?.GPRequest?.UserCompanies.map(removePendingKey);\r\n } else if (!isTerminate && !isFinishRequest) {\r\n gpCompanies = gpCompanies && gpCompanies.map(removePendingKey);\r\n } else {\r\n gpRoles = [];\r\n gpCompanies = [];\r\n }\r\n\r\n gpRequest = {\r\n \"GPRequest\": {\r\n \"User\": {\r\n \"ProductId\": vm.User.GPUser.ProductId,\r\n \"Action\": vm.User.GPUser.Action,\r\n \"Status\": vm.User.GPUser.Status,\r\n \"StartDate\": vm.User.GPUser.StartDate,\r\n \"EndDate\": vm.User.GPUser.EndDate,\r\n \"Id\": vm.User.GPUser.Id,\r\n \"UserName\": vm.User.GPUser.UserName,\r\n \"UserStatus\": vm.User.GPUser.UserStatus,\r\n \"UserType\": vm.User.GPUser.UserType,\r\n \"WCUser\": vm.User.GPUser.WCUser,\r\n \"Company\": vm.User.GPUser.Company,\r\n \"Class\": vm.User.GPUser.DisplayClass == null ? null : vm.User.GPUser.DisplayClass.RowId,\r\n \"ClassName\": vm.User.GPUser.DisplayClass == null ? null : vm.User.GPUser.DisplayClass.Name,\r\n \"LoginType\": vm.User.GPUser.LoginType,\r\n \"PayrollViewForHR\": vm.User.GPUser.PayrollViewForHR,\r\n \"WindowsUserId\": vm.User.GPUser.WindowsUserId,\r\n \"NetBiosName\": vm.User.GPUser.NetBiosName,\r\n \"ADUserId\": vm.User.GPUser.ADUserId,\r\n \"UserChanges\": vm.User.GPUser.UserChanges\r\n\r\n },\r\n \"RoleCompanies\": gpRoles,\r\n \"UserCompanies\": gpCompanies\r\n }\r\n };\r\n\r\n } else {\r\n gpRequest = {\r\n \"GpRequest\": null\r\n };\r\n }\r\n request = $.extend({}, request, gpRequest);\r\n\r\n\r\n //NAV Request\r\n var navRequest = {};\r\n var navApplication = vm.availableApplications.find(function (application) {\r\n return application.Id == nav_application_id;\r\n });\r\n\r\n if (vm.User.NAVUser != null && vm.User.NAVUser.LicenseType != null && navApplication?.selected == true) {\r\n let navPermissions = [],\r\n navUserGroups = [];\r\n\r\n if (vm.ListOfSelectedNAVPermissionSets != null) {\r\n vm.ListOfSelectedNAVPermissionSets.forEach(permissionSet => {\r\n if (permissionSet.Companies != null && permissionSet.Companies.length > 0) {\r\n\r\n permissionSet.Companies.forEach(company => {\r\n navPermissions.push({\r\n \"UserId\": vm.User.NAVUser.UserId,\r\n \"Action\": permissionSet.Action,\r\n \"Status\": permissionSet.Status,\r\n \"StartDate\": permissionSet.StartDate,\r\n \"EndDate\": permissionSet.EndDate,\r\n \"AccessType\": permissionSet.AccessType,\r\n \"Id\": permissionSet.Id,\r\n \"Name\": permissionSet.Name,\r\n \"Company\": company.Name,\r\n \"StartDate\": company.StartDate,\r\n \"EndDate\": company.EndDate\r\n });\r\n });\r\n } else {\r\n navPermissions.push(\r\n {\r\n \"UserId\": vm.User.NAVUser.UserId,\r\n \"Action\": permissionSet.Action,\r\n \"Status\": permissionSet.Status,\r\n \"StartDate\": permissionSet.StartDate,\r\n \"EndDate\": permissionSet.EndDate,\r\n \"AccessType\": permissionSet.AccessType,\r\n \"Id\": permissionSet.Id,\r\n \"Name\": permissionSet.Name,\r\n \"Company\": null\r\n });\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfSelectedNAVUserGroups != null) {\r\n vm.ListOfSelectedNAVUserGroups.forEach(group => {\r\n if (group.Companies != null && group.Companies.length > 0) {\r\n group.Companies.forEach(company => {\r\n navUserGroups.push(\r\n {\r\n \"UserId\": vm.User.NAVUser.UserId,\r\n \"Action\": group.Action,\r\n \"Status\": group.Status,\r\n \"StartDate\": group.StartDate,\r\n \"EndDate\": group.EndDate,\r\n \"AccessType\": group.AccessType,\r\n \"Id\": group.Id,\r\n \"Name\": group.Name,\r\n \"PermissionSets\": group.PermissionSets,\r\n \"Company\": company.Name\r\n });\r\n });\r\n } else {\r\n navUserGroups.push(\r\n {\r\n \"UserId\": vm.User.NAVUser.UserId,\r\n \"Action\": group.Action,\r\n \"Status\": group.Status,\r\n \"StartDate\": group.StartDate,\r\n \"EndDate\": group.EndDate,\r\n \"AccessType\": group.AccessType,\r\n \"Id\": group.Id,\r\n \"Name\": group.Name,\r\n \"PermissionSets\": group.PermissionSets,\r\n \"Company\": null\r\n });\r\n }\r\n });\r\n }\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n navPermissions = vm.ReturnedRequest?.NavRequest?.PermissionSets.map(removePendingKey);\r\n navUserGroups = vm.ReturnedRequest?.NavRequest?.UserGroups.map(removePendingKey);\r\n } else if (isTerminate && !isFinishRequest) {\r\n navPermissions = [];\r\n navUserGroups = [];\r\n }\r\n\r\n navRequest = {\r\n \"NavRequest\": {\r\n \"User\": {\r\n \"Action\": vm.User.NAVUser.Action,\r\n \"ProductId\": vm.User.NAVUser.ProductId,\r\n \"Status\": vm.User.NAVUser.Status,\r\n \"StartDate\": vm.User.NAVUser.StartDate,\r\n \"EndDate\": vm.User.NAVUser.EndDate,\r\n \"UserSecurityId\": vm.User.NAVUser.UserSecurityId,\r\n \"UserName\": vm.User.NAVUser.UserName,\r\n \"FullName\": vm.User.NAVUser.FullName,\r\n \"LicenseType\": vm.User.NAVUser.LicenseType.Id,\r\n \"State\": vm.User.NAVUser.State,\r\n \"ExpirySet\": vm.User.NAVUser.ExpiryDate == new Date(-8640000000000000) ? false : true,\r\n \"ExpiryDate\": vm.User.NAVUser.ExpiryDate,\r\n \"ContactEmail\": vm.User.NAVUser.ContactEmail,\r\n \"WindowsUserName\": vm.User.NAVUser.WindowsUserName,\r\n \"WindowsSID\": vm.User.NAVUser.WindowsSID,\r\n \"Domain\": vm.User.NAVUser.Domain,\r\n \"ProfileID\": vm.User.NAVUser.ProfileID,\r\n \"LanguageID\": vm.User.NAVUser.LanguageID,\r\n \"Company\": vm.User.NAVUser.Company,\r\n \"Personalized\": true,\r\n \"UserChanges\": vm.User.NAVUser.UserChanges\r\n },\r\n \"PermissionSets\": navPermissions,\r\n \"UserGroups\": navUserGroups\r\n }\r\n };\r\n }\r\n else {\r\n navRequest = {\r\n \"NavRequest\": null\r\n };\r\n }\r\n\r\n request = $.extend({}, request, navRequest);\r\n\r\n //D365S Request\r\n var d365SRequest = {};\r\n var d365SApplication = vm.availableApplications.find(function (application) {\r\n return application.Id == d365s_application_id;\r\n });\r\n\r\n if (vm.User.D365SUser != null && vm.User.D365SUser.DomainName != null && d365SApplication?.selected == true) {\r\n let d365sRoles = [],\r\n d365sTeams = [];\r\n\r\n if (vm.ListOfSelectedD365SRoles != null) {\r\n vm.ListOfSelectedD365SRoles.forEach(role => {\r\n d365sRoles.push(\r\n {\r\n \"UserId\": vm.User.D365SUser.UserId,\r\n \"Action\": role.Action,\r\n \"StartDate\": role.StartDate,\r\n \"EndDate\": role.EndDate,\r\n \"Role\": {\r\n \"Id\": role.Id,\r\n \"Name\": role.Name,\r\n \"Description\": role.Description\r\n },\r\n \"Company\": null\r\n });\r\n });\r\n }\r\n\r\n if (vm.ListOfSelectedD365STeams != null) {\r\n vm.ListOfSelectedD365STeams.forEach(team => {\r\n d365sTeams.push(\r\n {\r\n \"UserId\": vm.User.D365SUser.UserId,\r\n \"Action\": team.Action,\r\n \"StartDate\": team.StartDate,\r\n \"EndDate\": team.EndDate,\r\n \"Team\": {\r\n \"Id\": team.Id,\r\n \"Name\": team.Name,\r\n \"Description\": team.Description\r\n },\r\n \"Company\": null\r\n });\r\n });\r\n }\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n d365sRoles = vm.ReturnedRequest.D365SRequest.UserRoles.map(removePendingKeyByKey.bind(null, \"Role\"));\r\n d365sTeams = vm.ReturnedRequest.D365SRequest.UserTeams.map(removePendingKey);\r\n } else if (isTerminate && !isFinishRequest) {\r\n d365sRoles = [];\r\n d365sTeams = [];\r\n }\r\n\r\n d365SRequest = {\r\n \"D365SRequest\": {\r\n \"User\": {\r\n \"Action\": vm.User.D365SUser.Action,\r\n \"Status\": vm.User.D365SUser.Status,\r\n \"StartDate\": vm.User.D365SUser.StartDate,\r\n \"EndDate\": vm.User.D365SUser.EndDate,\r\n \"ProductId\": vm.User.D365SUser.ProductId,\r\n \"Id\": vm.User.D365SUser.Id,\r\n \"AccessMode\": vm.User.D365SUser.AccessMode,\r\n \"BusinessUnitId\": vm.User.D365SUser.BusinessUnitId,\r\n \"CalType\": vm.User.D365SUser.CalType,\r\n \"DomainName\": vm.User.D365SUser.DomainName,\r\n \"FirstName\": vm.User.D365SUser.FirstName,\r\n \"LastName\": vm.User.D365SUser.LastName,\r\n \"IncomingEmailDeliveryMethod\": vm.User.D365SUser.IncomingEmailDeliveryMethod,\r\n \"InternalEmailAddress\": vm.User.D365SUser.InternalEmailAddress,\r\n \"IsDisabled\": vm.User.D365SUser.IsDisabled,\r\n \"HomePhone\": vm.User.D365SUser.HomePhone,\r\n \"MobilePhone\": vm.User.D365SUser.MobilePhone,\r\n \"OutgoingEmailDeliveryMethod\": vm.User.D365SUser.OutgoingEmailDeliveryMethod,\r\n \"SiteId\": vm.User.D365SUser.SiteId,\r\n \"TerritoryId\": vm.User.D365SUser.TerritoryId,\r\n \"Title\": vm.User.D365SUser.Title,\r\n \"ParentSystemUserId\": vm.User.D365SUser.ParentSystemUserId,\r\n \"AzureADObjectId\": vm.User.D365SUser.AzureADObjectId,\r\n \"UserChanges\": vm.User.D365SUser.UserChanges\r\n },\r\n \"UserRoles\": d365sRoles,\r\n \"UserTeams\": d365sTeams\r\n }\r\n };\r\n\r\n }\r\n else {\r\n d365SRequest = {\r\n \"D365SRequest\": null\r\n };\r\n }\r\n\r\n request = $.extend({}, request, d365SRequest);\r\n\r\n\r\n //Peoplesoft Request\r\n var psRequest = {};\r\n var psApplication = vm.availableApplications.find(function (application) {\r\n return application.Id == ps_application_id;\r\n });\r\n\r\n if (vm.User.PSUser != null && vm.User.PSUser.Id != null && psApplication?.selected == true) {\r\n\r\n let psRoles = vm.ListOfSelectedPSRoles;\r\n\r\n if (vm.User.PSUser.Password === \"\") {\r\n vm.User.PSUser.Password = null;\r\n }\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n psRoles = vm.ReturnedRequest?.PsRequest?.Roles.map(removePendingKeyByKey.bind(null, \"Name\"));\r\n } else if (!isTerminate && !isFinishRequest) {\r\n psRoles = psRoles && psRoles.map(removePendingKey);\r\n } else {\r\n psRoles = [];\r\n }\r\n\r\n psRequest = {\r\n \"PsRequest\": {\r\n \"User\": {\r\n \"Action\": vm.User.PSUser.Action,\r\n \"Status\": vm.User.PSUser.Status,\r\n \"StartDate\": vm.User.PSUser.StartDate,\r\n \"EndDate\": vm.User.PSUser.EndDate,\r\n \"ProductId\": vm.User.PSUser.ProductId,\r\n \"Id\": vm.User.PSUser.Id,\r\n \"Description\": vm.User.PSUser.Description,\r\n \"Alias\": vm.User.PSUser.Alias,\r\n \"PrimaryEmail\": vm.User.PSUser.PrimaryEmail,\r\n \"EmailType\": vm.User.PSUser.EmailType,\r\n \"Password\": vm.User.PSUser.Password,\r\n \"AccountLocked\": vm.User.PSUser.AccountLocked,\r\n \"NavigatorHomePermissionList\": vm.User.PSUser.NavigatorHomePermissionList,\r\n \"ProcessProfilePermissionList\": vm.User.PSUser.ProcessProfilePermissionList,\r\n \"PrimaryPermissionList\": vm.User.PSUser.PrimaryPermissionList,\r\n \"RowSecurityPermissionList\": vm.User.PSUser.RowSecurityPermissionList,\r\n \"UserChanges\": vm.User.PSUser.UserChanges\r\n },\r\n \"Roles\": psRoles,\r\n }\r\n };\r\n\r\n }\r\n else {\r\n psRequest = {\r\n \"PSRequest\": null\r\n };\r\n }\r\n\r\n request = $.extend({}, request, psRequest);\r\n\r\n //Salesforce Request\r\n var salesforceRequest = {};\r\n var salesforceApplication = vm.availableApplications.find(application => application.Id == salesforce_application_id);\r\n\r\n if (vm.User.SalesforceUser != null && vm.User.SalesforceUser.Username && salesforceApplication?.selected == true) {\r\n \r\n let salesforceProfiles, salesforcePermissionSets = vm.ListOfSelectedSalesforcePermissionSets;\r\n\r\n if (!isTerminate && isFinishRequest) {\r\n salesforceProfiles = vm.ReturnedRequest?.SfRequest?.Profiles;\r\n salesforcePermissionSets = vm.ReturnedRequest?.SfRequest?.PermissionSets.map(removePendingKey);\r\n } else if (!isTerminate && !isFinishRequest) {\r\n salesforceProfiles = [vm.User.SalesforceUser.Profile];\r\n salesforcePermissionSets = salesforcePermissionSets && salesforcePermissionSets.map(removePendingKey);\r\n } else {\r\n salesforcePermissionSets = [];\r\n }\r\n\r\n salesforceRequest = {\r\n SfRequest: {\r\n User: {\r\n Action: vm.User.SalesforceUser.Action,\r\n Status: vm.User.SalesforceUser.Status,\r\n StartDate: vm.User.SalesforceUser.StartDate,\r\n EndDate: vm.User.SalesforceUser.EndDate,\r\n ProductId: vm.User.SalesforceUser.ProductId,\r\n Id: vm.User.SalesforceUser.Id,\r\n FirstName: vm.User.SalesforceUser.FirstName,\r\n LastName: vm.User.SalesforceUser.LastName,\r\n Alias: vm.User.SalesforceUser.Alias,\r\n Email: vm.User.SalesforceUser.Email,\r\n Username: vm.User.SalesforceUser.Username,\r\n Nickname: vm.User.SalesforceUser.Nickname,\r\n Title: vm.User.SalesforceUser.Title,\r\n CompanyName: vm.User.SalesforceUser.CompanyName,\r\n Department: vm.User.SalesforceUser.Department,\r\n Division: vm.User.SalesforceUser.Division,\r\n Phone: vm.User.SalesforceUser.Phone,\r\n Extension: vm.User.SalesforceUser.Extension,\r\n Fax: vm.User.SalesforceUser.Fax,\r\n MobilePhone: vm.User.SalesforceUser.MobilePhone,\r\n EmployeeNumber: vm.User.SalesforceUser.EmployeeNumber,\r\n Country: vm.User.SalesforceUser.Country,\r\n Street: vm.User.SalesforceUser.Street,\r\n City: vm.User.SalesforceUser.City,\r\n State: vm.User.SalesforceUser.State,\r\n PostalCode: vm.User.SalesforceUser.PostalCode,\r\n FederationIdentifier: vm.User.SalesforceUser.FederationIdentifier,\r\n ManagerId: vm.User.SalesforceUser.ManagerId,\r\n DelegateApproverId: vm.User.SalesforceUser.DelegateApproverId,\r\n UserRoleId: vm.User.SalesforceUser.UserRoleId,\r\n UserChanges: vm.User.SalesforceUser.UserChanges\r\n },\r\n Profiles: salesforceProfiles,\r\n PermissionSets: salesforcePermissionSets\r\n }\r\n };\r\n\r\n }\r\n else {\r\n salesforceRequest = {\r\n SfRequest: null\r\n };\r\n }\r\n\r\n request = $.extend({}, request, salesforceRequest);\r\n\r\n return request;\r\n };\r\n\r\n this.buildHeaderRequest = function (vm) {\r\n\r\n var request = {\r\n };\r\n\r\n //Add inital settings for the requests\r\n if (vm.User.UserMaster != null) {\r\n request = $.extend({}, request, { \"UserMasterId\": vm.User.UserMaster.Id });\r\n }\r\n if (vm.requestToEdit != null) {\r\n request = $.extend({}, request, { \"RequestId\": vm.requestToEdit.Id });\r\n request = $.extend({}, request, { \"Version\": vm.requestToEdit.Version });\r\n }\r\n\r\n request = $.extend({}, request, { \"Note\": vm.RequestNotes });\r\n if (vm.RiskLevelId != null) {\r\n request = $.extend({}, request, { \"RiskLevelId\": vm.RiskLevelId });\r\n }\r\n if (vm.RiskLevelIdNewOnly != null) {\r\n request = $.extend({}, request, { \"RiskLevelIdNewOnly\": vm.RiskLevelIdNewOnly });\r\n }\r\n if (vm.bypassRiskAnalysis != null) {\r\n request = $.extend({}, request, { \"RiskAnalysisBypassed\": vm.bypassRiskAnalysis });\r\n }\r\n\r\n request = $.extend({}, request, { \"Action\": vm.wizardMode });\r\n if (vm.alternatePath === 'EmergencyAccess') {\r\n // Emergency Access uses modify wizard mode, so we have to intercept and change the request Action\r\n request.Action = 'EmergencyAccess';\r\n }\r\n request = $.extend({}, request, { \"AffectedType\": \"User\" });\r\n\r\n return request;\r\n };\r\n\r\n this.executeRequest = function (request) {\r\n return $http.post(apiUrl + 'api/identitymanager/requests/build', request);\r\n };\r\n}\r\n\r\nfunction removePendingKey(item) {\r\n item = { ...item }\r\n delete item.Pending;\r\n\r\n return item;\r\n}\r\n\r\nfunction removePendingKeyByKey(key, item) {\r\n item = { ...item }\r\n delete item[key].Pending;\r\n\r\n return item;\r\n}","export default /*@ngInject*/ function ($q, $filter, RequestManagementD365SService) {\r\n\r\n var self = this;\r\n\r\n this.loadD365S = function ($scope, openRequest) {\r\n //Load Data for Products after search row is selected\r\n var d365sDfrd = $q.defer();\r\n\r\n try {\r\n self.loadPermissions($scope, openRequest).then(function () {\r\n d365sDfrd.resolve();\r\n }, function errorCallback(response) {\r\n d365sDfrd.reject(response);\r\n });\r\n }\r\n catch (e) {\r\n d365sDfrd.reject(e);\r\n }\r\n\r\n return $.when(d365sDfrd).done(function () {\r\n }).promise();\r\n\r\n };\r\n\r\n this.loadPermissions = function ($scope, openRequest) {\r\n let permissionsDfrd = $.Deferred(),\r\n promises = [],\r\n d365SRoles = [],\r\n d365STeams = [],\r\n pendingRoles = $scope.vm.User?.D365SUser?.PendingRoles || [],\r\n pendingTeams = $scope.vm.User?.D365SUser?.PendingTeams || [];\r\n\r\n $scope.vm.businessUnitsDropdownLoading = true;\r\n $scope.vm.usersDropdownLoading = true;\r\n $scope.vm.territoryDropdownLoading = true;\r\n $scope.vm.siteDropdownLoading = true;\r\n $scope.vm.incomingMailDropdownLoading = true;\r\n $scope.vm.outgoingMailDropdownLoading = true;\r\n $scope.vm.accessModeDropdownLoading = true;\r\n\r\n if ($scope.vm.User.D365SUser != null) {\r\n\r\n d365SRoles = $scope.vm.User.D365SUser.Roles;\r\n d365STeams = $scope.vm.User.D365SUser.Teams;\r\n\r\n //We can only get roles if there is a business unit selected\r\n if ($scope.vm.User.D365SUser.BusinessUnitId) {\r\n promises.push(\r\n RequestManagementD365SService.getRolesByBusinessUnitId($scope.vm.User.D365SUser.BusinessUnitId).then(function (response) {\r\n $scope.vm.ListOfAvailableD365SRoles = response.data.map(applyPendingByKey.bind(null, \"Role\", pendingRoles));\r\n })\r\n );\r\n promises.push(RequestManagementD365SService.getTeamsByBusinessUnitId($scope.vm.User.D365SUser.BusinessUnitId).then(function (response) {\r\n $scope.vm.ListOfAvailableD365STeams = response.data.map(applyPendingByKey.bind(null, \"Team\", pendingTeams));\r\n }));\r\n }\r\n }\r\n\r\n promises.push(RequestManagementD365SService.getAllUsers().then(response => {\r\n response.data = $filter('orderBy')(response.data, 'FullName');\r\n $scope.vm.D365SUserDataSource = response.data;\r\n $scope.vm.usersDropdownLoading = false;\r\n }));\r\n\r\n promises.push(RequestManagementD365SService.getAllBusinessUnits().then(response => {\r\n $scope.vm.D365SBusinessUnitDataSource = response.data;\r\n $scope.vm.businessUnitsDropdownLoading = false;\r\n }));\r\n\r\n promises.push(RequestManagementD365SService.getAllTerritories().then(response => {\r\n $scope.vm.D365STerritoryDataSource = response.data;\r\n $scope.vm.territoryDropdownLoading = false;\r\n }));\r\n\r\n promises.push(RequestManagementD365SService.getAllSites().then(response => {\r\n $scope.vm.D365SSiteDataSource = response.data;\r\n $scope.vm.siteDropdownLoading = false;\r\n }));\r\n\r\n promises.push(RequestManagementD365SService.getAllIncomingMailMethods().then(response => {\r\n $scope.vm.D365SIncomingMailMethodsDataSource = response.data.lstOptions;\r\n $scope.vm.incomingMailDropdownLoading = false;\r\n }));\r\n\r\n promises.push(RequestManagementD365SService.getAllOutgoingMailMethods().then(response => {\r\n $scope.vm.D365SOutgoingMailMethodsDataSource = response.data.lstOptions;\r\n $scope.vm.outgoingMailDropdownLoading = false;\r\n }));\r\n\r\n promises.push(RequestManagementD365SService.getAllAccessModes().then(response => {\r\n response.data.lstOptions = $filter('orderBy')(response.data.lstOptions, 'Label');\r\n $scope.vm.D365SAccessModeDataSource = response.data.lstOptions;\r\n $scope.vm.accessModeDropdownLoading = false;\r\n }));\r\n\r\n $q.all(promises).then(function () {\r\n if ($scope.vm.User === null) {\r\n $scope.vm.User = {};\r\n }\r\n if ($scope.vm.User.D365SUser === null) {\r\n $scope.vm.User.D365SUser = {};\r\n }\r\n\r\n //Modify Available and Selected company lists to refect users current security\r\n if (d365SRoles != null && $scope.vm.ListOfAvailableD365SRoles != null) {\r\n d365SRoles.forEach(role => {\r\n if ($scope.vm.ListOfSelectedD365SRoles.none(selectedRole => { return selectedRole.Id === role.Role.Id; })) {\r\n\r\n $scope.vm.ListOfSelectedD365SRoles.unshift({\r\n Id: role.Role.Id,\r\n Name: role.Role.Name,\r\n IsAssignable: role.Role.IsAssignable,\r\n Identifier: role.Role.Identifier,\r\n Pending: pendingRoles.find(pendingRole => pendingRole.id === role.Role.Id)\r\n });\r\n\r\n $scope.vm.ListOfAvailableD365SRoles.forEach((row, j) => {\r\n if (row.Id === role.Role.Id) {\r\n $scope.vm.ListOfAvailableD365SRoles.splice(j, 1);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n if (d365STeams != null && $scope.vm.ListOfAvailableD365STeams != null) {\r\n d365STeams.forEach(team => {\r\n if ($scope.vm.ListOfSelectedD365STeams.none(selectedTeam => { return selectedTeam.Id === team.Team.Id; })) {\r\n\r\n $scope.vm.ListOfSelectedD365STeams.unshift({\r\n Id: team.Team.Id,\r\n Name: team.Team.Name,\r\n Pending: pendingTeams.find(pendingTeam => pendingTeam.id === team.Team.Id)\r\n });\r\n\r\n $scope.vm.ListOfAvailableD365STeams.forEach((row, j) => {\r\n if (row.Id === team.Team.Id) {\r\n $scope.vm.ListOfAvailableD365STeams.splice(j, 1);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n $scope.vm.ListOfAvailableD365SRoles = $scope.vm.ListOfAvailableD365SRoles.filter(role => role.IsAssignable);\r\n $scope.d365sUserLoaded = true;\r\n permissionsDfrd.resolve();\r\n\r\n });\r\n\r\n return $.when(permissionsDfrd).done(function () {\r\n }).promise();\r\n\r\n };\r\n}\r\n\r\nfunction applyPendingByKey(key, pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem[key].Id === item.Id);\r\n }\r\n\r\n return item;\r\n}","export default /*@ngInject*/ function ($http) {\r\n\r\n this.getRolesByBusinessUnitId = function (businessUnitId) {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/d365s/roles/businessunit/' + businessUnitId\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading D365S Roles';\r\n }\r\n };\r\n\r\n this.getTeamsByBusinessUnitId = function (businessUnitId) {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/d365s/teams/businessunit/' + businessUnitId\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading D365S Teams';\r\n }\r\n };\r\n\r\n this.getAllSites = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/d365s/sites'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading D365S Sites';\r\n }\r\n };\r\n\r\n this.getAllTerritories = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/d365s/territories'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading D365S Territories';\r\n }\r\n };\r\n\r\n this.getAllUsers = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/d365s/users'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading D365S Users';\r\n }\r\n };\r\n\r\n this.getAllBusinessUnits = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/d365s/businessunits'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading D365S Business Units';\r\n }\r\n };\r\n\r\n this.getAllIncomingMailMethods = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/d365s/picklists/incomingmailmethods'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading D365S Business Units';\r\n }\r\n };\r\n\r\n this.getAllOutgoingMailMethods = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/d365s/picklists/outgoingmailmethods'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading D365S Business Units';\r\n }\r\n };\r\n\r\n this.getAllAccessModes = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/d365s/picklists/accessModes'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading D365S Business Units';\r\n }\r\n };\r\n\r\n this.getLicenseTypesByAccessModeId = function (accessModeId) {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/d365s/picklists/licensetypes/accessmode/' + accessModeId\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading D365S Business Units';\r\n }\r\n };\r\n\r\n}","export default /*@ngInject*/ function ($q, RequestManagementGPService) {\r\n\r\n var self = this;\r\n\r\n this.loadGP = function ($scope, openRequest) {\r\n //Load Data for Products after search row is selected\r\n var gpDfrd = $.Deferred();\r\n\r\n self.loadGPData($scope);\r\n\r\n try {\r\n self.loadPermissions($scope, openRequest).then(function () {\r\n gpDfrd.resolve();\r\n }, function errorCallback(response) {\r\n gpDfrd.reject(response);\r\n });\r\n }\r\n catch (e) {\r\n gpDfrd.reject(e);\r\n }\r\n\r\n return $.when(gpDfrd).done(function () {\r\n }).promise();\r\n };\r\n\r\n this.loadPermissions = function ($scope) {\r\n let permissionsDfrd = $.Deferred(),\r\n promises = [],\r\n gpCompanies = [],\r\n pendingCompanies = $scope.vm.User?.GPUser?.PendingCompanies || [];\r\n\r\n $scope.vm.ListOfSelectedGPRoles = [];\r\n $scope.vm.ListOfAvailableGPRoles = [];\r\n $scope.vm.ListOfSelectedGPCompanies = [];\r\n $scope.vm.ListOfAvailableGPCompanies = [];\r\n\r\n if ($scope.vm.User.GPUser != null) {\r\n $scope.vm.ListOfStoredGPRoles = $scope.vm.User.GPUser.RoleCompanies;\r\n gpCompanies = $scope.vm.User.GPUser.Companies;\r\n }\r\n\r\n $scope.vm.PendingGpRoleCompanies = $scope.vm.User?.GPUser?.PendingRoleCompanies || [];\r\n //Load Available gpRoles then process existing security\r\n promises.push(\r\n RequestManagementGPService.getAllRoles().then(function (response) {\r\n // Not filtering pending roles here, they are filtered after choosing a company\r\n $scope.vm.ListOfAllAvailableGPRoles = response.data;\r\n })\r\n );\r\n\r\n promises.push(\r\n RequestManagementGPService.getAllCompanies().then(function (response) {\r\n $scope.vm.ListOfAvailableGPCompanies = response.data.map(applyPending.bind(null, pendingCompanies));\r\n })\r\n );\r\n\r\n promises.push(RequestManagementGPService.getAllClasses().then(function (response) {\r\n $scope.vm.GPClassesDataSource = response.data;\r\n }));\r\n\r\n promises.push(RequestManagementGPService.getAltModProfiles().then(function (response) {\r\n $scope.vm.GPAltModProfileDataSource = response.data;\r\n if ($scope.vm.User != null && $scope.vm.User.GPUser != null && $scope.vm.User.GPUser.Companies != null) {\r\n $scope.vm.User.GPUser.Companies.forEach(function (comp) {\r\n if (comp.AltModProfile != null && comp.AltModProfile !== \"\") {\r\n var altModProfileId = comp.AltModProfile.Id != null ? comp.AltModProfile.Id : comp.AltModProfile;\r\n var dbAltModProfile = $scope.vm.GPAltModProfileDataSource.find(function (profile) {\r\n return profile.Id === altModProfileId;\r\n });\r\n comp.AltModProfile = dbAltModProfile;\r\n }\r\n });\r\n }\r\n }));\r\n\r\n\r\n $q.all(promises).then(function () {\r\n if ($scope.vm.User == null) {\r\n $scope.vm.User = {};\r\n }\r\n if ($scope.vm.User.GPUser == null) {\r\n $scope.vm.User.GPUser = {};\r\n $scope.vm.User.GPUser.LoginType = 1;\r\n $scope.vm.User.GPUser.UserType = 1;\r\n $scope.vm.User.GPUser.UserStatus = 1;\r\n }\r\n\r\n //Modify Available and Selected company lists to reflect users current security\r\n if (gpCompanies != null && $scope.vm.ListOfSelectedGPCompanies != null) {\r\n gpCompanies.forEach(company => {\r\n if ($scope.vm.ListOfSelectedGPCompanies.none(selectedRole => selectedRole.Id == company.Company.Id)) {\r\n\r\n $scope.vm.ListOfSelectedGPCompanies.unshift({\r\n Id: company.Company.Id,\r\n Name: company.Company.Name,\r\n Pending: pendingCompanies.some(pendingCompany => pendingCompany.Company.Id === company.Company.Id)\r\n });\r\n\r\n $scope.vm.ListOfAvailableGPCompanies.forEach(function (row, j) {\r\n if (row.Id == company.Company.Id) {\r\n $scope.vm.ListOfAvailableGPCompanies.splice(j, 1);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n $scope.vm.ListOfAllAvailableGPRoles = $scope.vm.ListOfAllAvailableGPRoles.filter(role => role.IsAssignable);\r\n\r\n $scope.gpUserLoaded = true;\r\n permissionsDfrd.resolve();\r\n });\r\n\r\n return $.when(permissionsDfrd).done(function () {\r\n }).promise();\r\n };\r\n\r\n this.loadGPData = function ($scope) {\r\n //Populate the GP Roles with the AltModProfile from the UserCompanies\r\n if ($scope.vm.User != null && $scope.vm.User.GPUser != null && $scope.vm.User.GPUser.RoleCompanies != null) {\r\n $scope.vm.User.GPUser.RoleCompanies.forEach(function (role) {\r\n if (role.AltModProfile == null) {\r\n role.AltModProfile = $scope.vm.User.GPUser.Companies.find(company => company.Company.Id === role.Company.Id).AltModProfile;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.User.GPUser != null) {\r\n $scope.vm.User.GPUser.DisplayClass = { RowId: $scope.vm.User.GPUser.Class, Name: $scope.vm.User.GPUser.ClassName };\r\n }\r\n };\r\n}\r\n\r\nfunction applyPending(pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem.Company.Id === item.Id);\r\n } else {\r\n item.Pending = false;\r\n }\r\n\r\n return item;\r\n}","export default /*@ngInject*/ function ($http) {\r\n\r\n this.getGPLoginTypes = function () {\r\n\r\n return [\r\n {\r\n Name: 'Single Sign-On',\r\n Id: 1\r\n },\r\n {\r\n Name: 'Single Sign-On (Password Required)',\r\n Id: 0\r\n },\r\n {\r\n Name: 'Standard',\r\n Id: 2\r\n }\r\n ];\r\n };\r\n\r\n this.getGPUserTypes = function () {\r\n\r\n return [\r\n {\r\n Name: 'Full',\r\n Id: 1\r\n },\r\n {\r\n Name: 'Limited',\r\n Id: 2\r\n },\r\n {\r\n Name: 'Self-Service',\r\n Id: 3\r\n }\r\n ];\r\n };\r\n\r\n this.getGPStatuses = function () {\r\n\r\n return [\r\n {\r\n Name: 'Active',\r\n Id: 1\r\n },\r\n {\r\n Name: 'Inactive',\r\n Id: 2\r\n },\r\n {\r\n Name: 'Lesson User',\r\n Id: 3\r\n }\r\n ];\r\n };\r\n\r\n\r\n this.getExistingGPUserSecurity = function (userId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/gp/userroles/' + userId + '/'\r\n });\r\n };\r\n\r\n this.getGPIMUserSecurity = function (userId, version, useConfigAd) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + `identitymanager/gp/users/user/${userId}/version/${version}/useConfigAd/${useConfigAd}`\r\n });\r\n };\r\n\r\n this.getAllRoles = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/gp/roles'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading GP Roles';\r\n }\r\n };\r\n\r\n this.getAllCompanies = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/gp/companies'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading GP Companies';\r\n }\r\n };\r\n\r\n this.getAllClasses = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/gp/classes'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading GP Classes';\r\n }\r\n };\r\n\r\n this.getAltModProfiles = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/gp/altmodprofiles'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading GP Alt Mod Profiles';\r\n }\r\n };\r\n\r\n this.getClassesBySubsidiary = function (subsidiaryId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/gp/subsidiaries/' + subsidiaryId + '/classes'\r\n });\r\n };\r\n\r\n}","import { ax7_application_id, ax_application_id, netsuite_application_id, oracle_application_id, oracleCloud_application_id, gp_application_id, nav_application_id, d365s_application_id, sap_application_id, universalProduct_application_id, aad_application_id, ps_application_id, salesforce_application_id } from \"../../Shared/GlobalVariables/applicationIdVariables\";\r\n\r\nexport default /*@ngInject*/ function ($http, $q, $rootScope, RequestManagementBuildRequestService, RequestManagementGPLoadDataService, RequestManagementEffectiveDateService, RequestManagementNetSuiteLoadDataService, RequestManagementUPLoadDataService, RequestManagementSAPLoadDataService, RequestManagementAXLoadDataService, RequestManagementAADLoadDataService, RequestManagementNAVLoadDataService, RequestManagementOracleLoadDataService, RequestManagementD365SLoadDataService, RequestManagementOracleCloudLoadDataService, RequestManagementPSLoadDataService, salesforceLoadData, helperService) {\r\n\r\n var self = this;\r\n\r\n //Populate user data from an Open Request for editing\r\n this.loadOpenRequestData = function ($scope) {\r\n\r\n if ($rootScope.requestToEdit) {\r\n\r\n var vm = $scope.vm;\r\n if ($scope.vm.User == null) {\r\n $scope.vm.User = {};\r\n }\r\n\r\n $scope.requestToEdit = $rootScope.requestToEdit;\r\n vm.requestToEdit = $rootScope.requestToEdit;\r\n\r\n delete $rootScope.requestToEdit;\r\n $scope.reportDetailsComplete = false;\r\n\r\n //Get Request data based on request Id and version from the database\r\n $http.get(apiUrl + 'api/identitymanager/requests/edit/' + $scope.requestToEdit.Id + '/version/' + $scope.requestToEdit.Version).then(({ data }) => {\r\n\r\n $scope.linkedTickets = data.Tickets;\r\n\r\n $scope.jiraTicketLinked = $scope.linkedTickets.some(ticket => ticket.TicketProvider === 'Jira');\r\n $scope.zendeskTicketLinked = $scope.linkedTickets.some(ticket => ticket.TicketProvider === 'Zendesk');\r\n $scope.serviceNowTicketLinked = $scope.linkedTickets.some(ticket => ticket.TicketProvider === 'ServiceNow');\r\n $scope.customTicketLinked = $scope.linkedTickets.some(ticket => ticket.TicketProvider === 'Custom');\r\n\r\n //data.AffectedObject = JSON.parse(data.AffectedObject);\r\n $scope.vm.User.UserMaster = data.GeneralUser;\r\n\r\n //Add applications array to store the applications the user has access to\r\n if ($scope.vm.User.Applications == null) {\r\n $scope.vm.User.Applications = [];\r\n }\r\n\r\n $scope.vm.availableApplications = $scope.vm.availableApplications.map(setVisibleAndSelectedApps.bind(null, data));\r\n\r\n if (data.AadUser != null) {\r\n $scope.vm.User.AadUser = data.AadUser;\r\n if ($scope.vm.wizardMode === 'New') {\r\n const splitPrincipalName = $scope.vm.User.AadUser.UserPrincipalName.split('@');\r\n $scope.vm.User.AadUser.UserPrincipalName = splitPrincipalName[0];\r\n $scope.vm.User.AadUser.Domain = splitPrincipalName[1];\r\n }\r\n if ($scope.vm.User.AadUser.StartDate != null) {\r\n $scope.vm.User.AadUser.StartDate = new Date($scope.vm.User.AadUser.StartDate);\r\n }\r\n if ($scope.vm.User.AadUser.EndDate != null) {\r\n $scope.vm.User.AadUser.EndDate = new Date($scope.vm.User.AadUser.EndDate);\r\n }\r\n if ($scope.vm.User.AadUser.PasswordProfile) {\r\n $scope.vm.User.AadUser.ConfirmPassword = $scope.vm.User.AadUser.PasswordProfile.Password;\r\n }\r\n if ($scope.vm.User.AadUser.BusinessPhones.length > 0) {\r\n $scope.vm.User.AadUser.BusinessPhones = $scope.vm.User.AadUser.BusinessPhones.toString();\r\n }\r\n }\r\n if (data.Ax7User != null) {\r\n $scope.vm.User.AX7User = data.Ax7User;\r\n if ($scope.vm.User.AX7User.StartDate != null) {\r\n $scope.vm.User.AX7User.StartDate = new Date($scope.vm.User.AX7User.StartDate);\r\n }\r\n if ($scope.vm.User.AX7User.EndDate != null) {\r\n $scope.vm.User.AX7User.EndDate = new Date($scope.vm.User.AX7User.EndDate);\r\n }\r\n $scope.vm.User.AX7User.ConfirmPassword = $scope.vm.User.AX7User.Password;\r\n }\r\n if (data.AxUser != null) {\r\n $scope.vm.User.AX2012User = data.AxUser;\r\n $scope.vm.User.AX2012User.Partition = { Id: data.AxUser.Partition, Key: data.AxUser.PartitionKey };\r\n\r\n if ($scope.vm.User.AX2012User.StartDate != null) {\r\n $scope.vm.User.AX2012User.StartDate = new Date($scope.vm.User.AX2012User.StartDate);\r\n }\r\n if ($scope.vm.User.AX2012User.EndDate != null) {\r\n $scope.vm.User.AX2012User.EndDate = new Date($scope.vm.User.AX2012User.EndDate);\r\n }\r\n $scope.vm.User.AX2012User.ConfirmPassword = $scope.vm.User.AX2012User.Password;\r\n }\r\n if (data.NetSuiteUser != null) {\r\n $scope.vm.User.NetSuiteUser = data.NetSuiteUser;\r\n if ($scope.vm.User.NetSuiteUser.StartDate != null) {\r\n $scope.vm.User.NetSuiteUser.StartDate = new Date($scope.vm.User.NetSuiteUser.StartDate);\r\n }\r\n if ($scope.vm.User.NetSuiteUser.EndDate != null) {\r\n $scope.vm.User.NetSuiteUser.EndDate = new Date($scope.vm.User.NetSuiteUser.EndDate);\r\n }\r\n $scope.vm.User.NetSuiteUser.ConfirmPassword = $scope.vm.User.NetSuiteUser.Password;\r\n }\r\n if (data.UvUser != null) {\r\n // 'UvUser' gets set to property 'UPUser'\r\n if (!$scope.vm.User.UPUser) { $scope.vm.User.UPUser = []; }\r\n data.UvUser.forEach(user => {\r\n var productName = helperService.getProductName(user.ProductId, $scope.vm.availableApplications);\r\n $scope.vm.User.UPUser[productName] = user;\r\n if ($scope.vm.User.UPUser[productName].StartDate) {\r\n $scope.vm.User.UPUser[productName].StartDate = new Date($scope.vm.User.UPUser[productName].StartDate);\r\n }\r\n if ($scope.vm.User.UPUser[productName].EndDate) {\r\n $scope.vm.User.UPUser[productName].EndDate = new Date($scope.vm.User.UPUser[productName].EndDate);\r\n }\r\n $scope.vm.User.UPUser[productName].ProductName = productName;\r\n });\r\n }\r\n if (data.SapUser != null) {\r\n if (!$scope.vm.User.SAPUser) { $scope.vm.User.SAPUser = []; }\r\n data.SapUser.forEach(user => {\r\n var productName = helperService.getProductName(user.ProductId, $scope.vm.availableApplications);\r\n $scope.vm.User.SAPUser[productName] = user;\r\n if ($scope.vm.User.SAPUser[productName].StartDate) {\r\n $scope.vm.User.SAPUser[productName].StartDate = new Date($scope.vm.User.SAPUser[productName].StartDate);\r\n }\r\n if ($scope.vm.User.SAPUser[productName].EndDate) {\r\n $scope.vm.User.SAPUser[productName].EndDate = new Date($scope.vm.User.SAPUser[productName].EndDate);\r\n }\r\n $scope.vm.User.SAPUser[productName].ConfirmPassword = user.Password;\r\n $scope.vm.User.SAPUser[productName].ProductName = productName;\r\n });\r\n }\r\n if (data.EbsUser != null) {\r\n $scope.vm.User.OracleUser = data.EbsUser;\r\n if ($scope.vm.User.OracleUser.StartDate != null) {\r\n $scope.vm.User.OracleUser.StartDate = new Date($scope.vm.User.OracleUser.StartDate);\r\n }\r\n if ($scope.vm.User.OracleUser.EndDate != null) {\r\n $scope.vm.User.OracleUser.EndDate = new Date($scope.vm.User.OracleUser.EndDate);\r\n }\r\n $scope.vm.User.OracleUser.ConfirmPassword = $scope.vm.User.OracleUser.Password;\r\n $scope.vm.User.OracleUser.Expiration = data.EbsUser.PasswordDays === null && data.EbsUser.PasswordAccesses === null ? 'None' : data.EbsUser.PasswordDays !== null ? 'Days' : 'Accesses';\r\n $scope.vm.User.OracleUser.ExpirationValue = data.EbsUser.PasswordDays !== null ? data.EbsUser.PasswordDays : data.EbsUser.PasswordAccesses;\r\n }\r\n\r\n // Oracle Cloud\r\n if (data.OrfcUser != null) {\r\n $scope.vm.User.OracleCloudUser = data.OrfcUser;\r\n if ($scope.vm.User.OracleCloudUser.StartDate != null) {\r\n $scope.vm.User.OracleCloudUser.StartDate = new Date($scope.vm.User.OracleCloudUser.StartDate);\r\n }\r\n if ($scope.vm.User.OracleCloudUser.EndDate != null) {\r\n $scope.vm.User.OracleCloudUser.EndDate = new Date($scope.vm.User.OracleCloudUser.EndDate);\r\n }\r\n $scope.vm.User.OracleCloudUser.PasswordConfirm = $scope.vm.User.OracleCloudUser.Password;\r\n }\r\n if (data.GPUser != null) {\r\n $scope.vm.User.GPUser = data.GPUser;\r\n $scope.vm.User.GPUser.DisplayClass = { RowId: data.GPUser.Class, Name: data.GPUser.ClassName };\r\n\r\n if ($scope.vm.User.GPUser.StartDate != null) {\r\n $scope.vm.User.GPUser.StartDate = new Date($scope.vm.User.GPUser.StartDate);\r\n }\r\n if ($scope.vm.User.GPUser.EndDate != null) {\r\n $scope.vm.User.GPUser.EndDate = new Date($scope.vm.User.GPUser.EndDate);\r\n }\r\n $scope.vm.User.GPUser.ConfirmPassword = $scope.vm.User.GPUser.Password;\r\n }\r\n if (data.NavUser != null) {\r\n $scope.vm.User.NAVUser = data.NavUser;\r\n if ($scope.vm.User.NAVUser.StartDate != null) {\r\n $scope.vm.User.NAVUser.StartDate = new Date($scope.vm.User.NAVUser.StartDate);\r\n }\r\n if ($scope.vm.User.NAVUser.EndDate != null) {\r\n $scope.vm.User.NAVUser.EndDate = new Date($scope.vm.User.NAVUser.EndDate);\r\n }\r\n }\r\n if (data.D365SUser != null) {\r\n $scope.vm.User.D365SUser = data.D365SUser;\r\n if ($scope.vm.User.D365SUser.StartDate != null) {\r\n $scope.vm.User.D365SUser.StartDate = new Date($scope.vm.User.D365SUser.StartDate);\r\n }\r\n if ($scope.vm.User.D365SUser.EndDate != null) {\r\n $scope.vm.User.D365SUser.EndDate = new Date($scope.vm.User.D365SUser.EndDate);\r\n }\r\n }\r\n if (data.PsUserRequest != null) {\r\n $scope.vm.User.PSUser = data.PsUserRequest;\r\n if ($scope.vm.User.PSUser.StartDate != null) {\r\n $scope.vm.User.PSUser.StartDate = new Date($scope.vm.User.PSUser.StartDate);\r\n }\r\n if ($scope.vm.User.PSUser.EndDate != null) {\r\n $scope.vm.User.PSUser.EndDate = new Date($scope.vm.User.PSUser.EndDate);\r\n }\r\n $scope.vm.User.PSUser.ConfirmPassword = $scope.vm.User.PSUser.Password;\r\n }\r\n\r\n if (data.SfUserRequest != null) {\r\n $scope.vm.User.SalesforceUser = data.SfUserRequest;\r\n if ($scope.vm.User.SalesforceUser.StartDate != null) {\r\n $scope.vm.User.SalesforceUser.StartDate = new Date($scope.vm.User.SalesforceUser.StartDate);\r\n }\r\n if ($scope.vm.User.SalesforceUser.EndDate != null) {\r\n $scope.vm.User.SalesforceUser.EndDate = new Date($scope.vm.User.SalesforceUser.EndDate);\r\n }\r\n }\r\n\r\n //Load application data, this includes security data and any data that is used in dropdown lists\r\n self.loadApplicationData($scope, data).then(function () {\r\n //Set the effective dates from the build request on the initial load of an open request\r\n self.loadOpenRequestEffectiveDates($scope, data).then(function () {\r\n //Check if an application is selected and load ERP steps\r\n $scope.atLeastOneAppSelected();\r\n\r\n\r\n $scope.vm.availableApplications.forEach(application => $scope.loadERPSpecificSteps(application));\r\n $scope.loadingIcon = false;\r\n $scope.stopRequestManagementSpinner = true;\r\n $scope.reportDetailsComplete = true;\r\n $scope.$evalAsync();\r\n });\r\n\r\n\r\n }, function errorCallback(response) {\r\n lockdownOnError($scope, response);\r\n });\r\n }, function (response) {\r\n lockdownOnError($scope, response);\r\n });\r\n }\r\n };\r\n\r\n //Add Start/End dates and Actions to any permissions set in an Open Request\r\n this.loadOpenRequestEffectiveDates = function ($scope, request) {\r\n //Set effective dates on any existing or granted roles in the selected list\r\n //Set effective dates on any revoked roles that will be in the available list\r\n var loadRequestDfrd = $.Deferred();\r\n var returnedRequest = RequestManagementBuildRequestService.buildRequest($scope.vm, false);\r\n $http.post(apiUrl + 'api/identitymanager/requests/build', returnedRequest).then(function (buildResponse) {\r\n var builtRequest = buildResponse.data;\r\n //Find all effective dates and convert them to local time\r\n RequestManagementEffectiveDateService.convertDatesToLocal(builtRequest);\r\n\r\n if (builtRequest.NetSuiteRequest != null) {\r\n\r\n if ($scope.vm.ListOfSelectedNetSuiteRoles != null) {\r\n $scope.vm.ListOfSelectedNetSuiteRoles.forEach(function (role) {\r\n prepareNSAccessItem(role);\r\n\r\n var foundRole = builtRequest.NetSuiteRequest.Roles.find(function (nsRole) {\r\n return nsRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableNetSuiteRoles != null) {\r\n $scope.vm.ListOfAvailableNetSuiteRoles.forEach(function (role) {\r\n prepareNSAccessItem(role);\r\n\r\n var foundRole = builtRequest.NetSuiteRequest.Roles.find(function (nsRole) {\r\n return nsRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfSelectedNetSuitePermissions != null) {\r\n $scope.vm.ListOfSelectedNetSuitePermissions.forEach(function (perm) {\r\n prepareNSAccessItem(perm);\r\n\r\n var foundPermission = builtRequest.NetSuiteRequest.GlobalPermissions.find(function (selPerm) {\r\n return selPerm.Id == perm.Id;\r\n });\r\n if (foundPermission != null) {\r\n perm.Action = foundPermission.Action;\r\n perm.StartDate = foundPermission.StartDate;\r\n perm.EndDate = foundPermission.EndDate;\r\n perm.AccessType = foundPermission.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableNetSuitePermissions != null) {\r\n $scope.vm.ListOfAvailableNetSuitePermissions.forEach(function (perm) {\r\n prepareNSAccessItem(perm);\r\n\r\n var foundPermission = builtRequest.NetSuiteRequest.GlobalPermissions.find(function (selPerm) {\r\n return selPerm.Id == perm.Id;\r\n });\r\n if (foundPermission != null) {\r\n perm.Action = foundPermission.Action;\r\n perm.StartDate = perm.StartDate;\r\n perm.EndDate = perm.EndDate;\r\n perm.AccessType = perm.AccessType;\r\n }\r\n });\r\n }\r\n }\r\n if (builtRequest.AadRequest != null) {\r\n if ($scope.vm.ListOfSelectedAADRoles != null) {\r\n $scope.vm.ListOfSelectedAADRoles.forEach(role => {\r\n var foundRole = builtRequest.AadRequest.Roles.find(adRole => {\r\n return adRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(role);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableAADRoles != null) {\r\n $scope.vm.ListOfAvailableAADRoles.forEach(role => {\r\n\r\n var foundRole = builtRequest.AadRequest.Roles.find(adRole => {\r\n return adRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(role);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfSelectedAADGroups != null) {\r\n $scope.vm.ListOfSelectedAADGroups.forEach(group => {\r\n var foundGroup = builtRequest.AadRequest.Groups.find(adGroup => {\r\n return adGroup.Id == group.Id;\r\n });\r\n if (foundGroup != null) {\r\n group.Action = foundGroup.Action;\r\n group.StartDate = foundGroup.StartDate;\r\n group.EndDate = foundGroup.EndDate;\r\n group.AccessType = foundGroup.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(group);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableAADGroups != null) {\r\n $scope.vm.ListOfAvailableAADGroups.forEach(group => {\r\n\r\n var foundGroup = builtRequest.AadRequest.Groups.find(adGroup => {\r\n return adGroup.Id == group.Id;\r\n });\r\n if (foundGroup != null) {\r\n group.Action = foundGroup.Action;\r\n group.StartDate = foundGroup.StartDate;\r\n group.EndDate = foundGroup.EndDate;\r\n group.AccessType = foundGroup.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(group);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfSelectedAADLicenses != null) {\r\n $scope.vm.ListOfSelectedAADLicenses.forEach(license => {\r\n var foundLicense = builtRequest.AadRequest.Licenses.find(adLicense => {\r\n return adLicense.Id == license.Id;\r\n });\r\n if (foundLicense != null) {\r\n license.Action = foundLicense.Action;\r\n license.StartDate = foundLicense.StartDate;\r\n license.EndDate = foundLicense.EndDate;\r\n license.AccessType = foundLicense.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(license);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableAADLicenses != null) {\r\n $scope.vm.ListOfAvailableAADLicenses.forEach(license => {\r\n\r\n var foundLicense = builtRequest.AadRequest.Licenses.find(adLicense => {\r\n return adLicense.Id == license.Id;\r\n });\r\n if (foundLicense != null) {\r\n license.Action = foundLicense.Action;\r\n license.StartDate = foundLicense.StartDate;\r\n license.EndDate = foundLicense.EndDate;\r\n license.AccessType = foundLicense.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(license);\r\n });\r\n }\r\n }\r\n if (builtRequest.Ax7Request != null) {\r\n if ($scope.vm.ListOfSelectedAX7Roles != null) {\r\n $scope.vm.ListOfSelectedAX7Roles.forEach(function (role) {\r\n\r\n if (role.Companies != null && role.Companies) {\r\n role.Companies.forEach(function (company) {\r\n var foundRole = builtRequest.Ax7Request.RoleCompanies.find(function (axRole) {\r\n return axRole.Role.Id == role.Id && axRole.Company.CompanyId == company.CompanyId;\r\n });\r\n\r\n if (foundRole != null) {\r\n company.Action = foundRole.Action;\r\n company.StartDate = foundRole.StartDate;\r\n company.EndDate = foundRole.EndDate;\r\n company.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n } else {\r\n var foundRole = builtRequest.Ax7Request.RoleCompanies.find(function (axRole) {\r\n return axRole.Role.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n }\r\n\r\n prepareAX7AccessItem(role);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableAX7Roles != null) {\r\n $scope.vm.ListOfAvailableAX7Roles.forEach(function (role) {\r\n\r\n var foundRole = builtRequest.Ax7Request.RoleCompanies.find(function (axRole) {\r\n return axRole.Role.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareAX7AccessItem(role);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfSelectedAX7UserGroups != null) {\r\n $scope.vm.ListOfSelectedAX7UserGroups.forEach(function (userGroup) {\r\n var foundUserGroup = builtRequest.Ax7Request.UserGroups.find(function (axUserGroup) {\r\n return axUserGroup.Id == userGroup.Id;\r\n });\r\n if (foundUserGroup != null) {\r\n userGroup.Action = foundUserGroup.Action;\r\n userGroup.StartDate = foundUserGroup.StartDate;\r\n userGroup.EndDate = foundUserGroup.EndDate;\r\n userGroup.AccessType = foundUserGroup.AccessType;\r\n }\r\n\r\n prepareAX7AccessItem(userGroup);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableAX7UserGroups != null) {\r\n $scope.vm.ListOfAvailableAX7UserGroups.forEach(function (userGroup) {\r\n\r\n var foundUserGroup = builtRequest.Ax7Request.UserGroups.find(function (axUserGroup) {\r\n return axUserGroup.Id == userGroup.Id;\r\n });\r\n if (foundUserGroup != null) {\r\n userGroup.Action = foundUserGroup.Action;\r\n userGroup.StartDate = foundUserGroup.StartDate;\r\n userGroup.EndDate = foundUserGroup.EndDate;\r\n userGroup.AccessType = foundUserGroup.AccessType;\r\n }\r\n\r\n prepareAX7AccessItem(userGroup);\r\n });\r\n }\r\n }\r\n if (builtRequest.AxRequest != null) {\r\n if ($scope.vm.ListOfSelectedAX2012Roles != null) {\r\n $scope.vm.ListOfSelectedAX2012Roles.forEach(function (role) {\r\n\r\n if (role.Companies != null && role.Companies) {\r\n role.Companies.forEach(function (company) {\r\n var foundRole = builtRequest.AxRequest.RoleCompanies.find(function (axRole) {\r\n return axRole.Role.Id == role.Id && axRole?.Company?.CompanyId == company.CompanyId;\r\n });\r\n\r\n if (foundRole != null) {\r\n company.Action = foundRole.Action;\r\n company.StartDate = foundRole.StartDate;\r\n company.EndDate = foundRole.EndDate;\r\n company.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n } else {\r\n var foundRole = builtRequest.AxRequest.RoleCompanies.find(function (axRole) {\r\n return axRole.Role.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n }\r\n\r\n prepareAX2012AccessItem(role);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableAX2012Roles != null) {\r\n $scope.vm.ListOfAvailableAX2012Roles.forEach(function (role) {\r\n\r\n var foundRole = builtRequest.AxRequest.RoleCompanies.find(function (axRole) {\r\n return axRole.Role.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareAX2012AccessItem(role);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfSelectedAX2012UserGroups != null) {\r\n $scope.vm.ListOfSelectedAX2012UserGroups.forEach(function (userGroup) {\r\n var foundUserGroup = builtRequest.AxRequest.UserGroups.find(function (axUserGroup) {\r\n return axUserGroup.Id == userGroup.Id;\r\n });\r\n if (foundUserGroup != null) {\r\n userGroup.Action = foundUserGroup.Action;\r\n userGroup.StartDate = foundUserGroup.StartDate;\r\n userGroup.EndDate = foundUserGroup.EndDate;\r\n userGroup.AccessType = foundUserGroup.AccessType;\r\n }\r\n\r\n prepareAX2012AccessItem(userGroup);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableAX2012UserGroups != null) {\r\n $scope.vm.ListOfAvailableAX2012UserGroups.forEach(function (userGroup) {\r\n\r\n var foundUserGroup = builtRequest.AxRequest.UserGroups.find(function (axUserGroup) {\r\n return axUserGroup.Id == userGroup.Id;\r\n });\r\n if (foundUserGroup != null) {\r\n userGroup.Action = foundUserGroup.Action;\r\n userGroup.StartDate = foundUserGroup.StartDate;\r\n userGroup.EndDate = foundUserGroup.EndDate;\r\n userGroup.AccessType = foundUserGroup.AccessType;\r\n }\r\n\r\n prepareAX2012AccessItem(userGroup);\r\n });\r\n }\r\n }\r\n if (builtRequest.SAPRequest != null) {\r\n // for Single Roles\r\n if ($scope.vm.ListOfSelectedSAPSingleRoles != null) {\r\n $scope.vm.ListOfSelectedSAPSingleRoles.forEach(function (role) {\r\n prepareSAPAccessItem(role);\r\n\r\n var foundRole = builtRequest.SAPRequest.Roles.find(function (sapRole) {\r\n return sapRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableSAPSingleRoles != null) {\r\n $scope.vm.ListOfAvailableSAPSingleRoles.forEach(function (role) {\r\n prepareSAPAccessItem(role);\r\n\r\n var foundRole = builtRequest.SAPRequest.Roles.find(function (sapRole) {\r\n return sapRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n // for Composite Roles\r\n if ($scope.vm.ListOfSelectedSAPCompositeRoles != null) {\r\n $scope.vm.ListOfSelectedSAPCompositeRoles.forEach(function (compositeRole) {\r\n prepareSAPAccessItem(compositeRole);\r\n\r\n var foundCompositeRole = builtRequest.SAPRequest.Roles.find(function (sapCompositeRole) {\r\n return sapCompositeRole.Id == compositeRole.Id;\r\n });\r\n if (foundCompositeRole != null) {\r\n compositeRole.Action = foundCompositeRole.Action;\r\n compositeRole.StartDate = foundCompositeRole.StartDate;\r\n compositeRole.EndDate = foundCompositeRole.EndDate;\r\n compositeRole.AccessType = foundCompositeRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableSAPCompositeRoles != null) {\r\n $scope.vm.ListOfAvailableSAPCompositeRoles.forEach(function (compositeRole) {\r\n prepareSAPAccessItem(compositeRole);\r\n\r\n var foundCompositeRole = builtRequest.SAPRequest.Roles.find(function (sapCompositeRole) {\r\n return sapCompositeRole.Id == compositeRole.Id;\r\n });\r\n if (foundCompositeRole != null) {\r\n compositeRole.Action = foundCompositeRole.Action;\r\n compositeRole.StartDate = foundCompositeRole.StartDate;\r\n compositeRole.EndDate = foundCompositeRole.EndDate;\r\n compositeRole.AccessType = foundCompositeRole.AccessType;\r\n }\r\n });\r\n }\r\n }\r\n if (builtRequest.EbsRequest != null) {\r\n if ($scope.vm.ListOfSelectedOracleResponsibilities != null) {\r\n $scope.vm.ListOfSelectedOracleResponsibilities.forEach(function (responsibility) {\r\n prepareORAccessItem(responsibility);\r\n\r\n var foundResponsibility = builtRequest.EbsRequest.Responsibilities.find(function (oracle) {\r\n return oracle.Id == responsibility.Id;\r\n });\r\n\r\n if (foundResponsibility != null) {\r\n responsibility.Action = foundResponsibility.Action;\r\n responsibility.StartDate = foundResponsibility.StartDate;\r\n responsibility.EndDate = foundResponsibility.EndDate;\r\n responsibility.AccessType = foundResponsibility.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableOracleResponsibilities != null) {\r\n $scope.vm.ListOfAvailableOracleResponsibilities.forEach(function (responsibility) {\r\n prepareORAccessItem(responsibility);\r\n\r\n var foundResponsibility = builtRequest.EbsRequest.Responsibilities.find(function (oracle) {\r\n return oracle.Id == responsibility.Id;\r\n });\r\n\r\n if (foundResponsibility != null) {\r\n responsibility.Action = foundResponsibility.Action;\r\n responsibility.StartDate = foundResponsibility.StartDate;\r\n responsibility.EndDate = foundResponsibility.EndDate;\r\n responsibility.AccessType = foundResponsibility.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfSelectedOracleRoles != null) {\r\n $scope.vm.ListOfSelectedOracleRoles.forEach(function (role) {\r\n prepareORAccessItem(role);\r\n\r\n var foundRole = builtRequest.EbsRequest.Roles.find(function (oracle) {\r\n return oracle.Id == role.Id;\r\n });\r\n\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableOracleRoles != null) {\r\n $scope.vm.ListOfAvailableOracleRoles.forEach(function (role) {\r\n prepareORAccessItem(role);\r\n\r\n var foundRole = builtRequest.EbsRequest.Roles.find(function (oracle) {\r\n return oracle.Id == role.Id;\r\n });\r\n\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n }\r\n // Oracle Cloud\r\n if (builtRequest.OrfcRequest != null) {\r\n if ($scope.vm.ListOfSelectedOracleCloudRoles != null) {\r\n $scope.vm.ListOfSelectedOracleCloudRoles.forEach(function (role) {\r\n prepareORFCAccessItem(role);\r\n\r\n var foundRole = builtRequest.OrfcRequest.Roles.find(function (OrfcRole) {\r\n return OrfcRole.RoleID == role.RoleID;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableOracleCloudRoles != null) {\r\n $scope.vm.ListOfAvailableOracleCloudRoles.forEach(function (role) {\r\n prepareORFCAccessItem(role);\r\n\r\n var foundRole = builtRequest.OrfcRequest.Roles.find(function (OrfcRole) {\r\n return OrfcRole.RoleID == role.RoleID;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n }\r\n if (builtRequest.NavRequest != null) {\r\n if ($scope.vm.ListOfSelectedNAVPermissionSets != null) {\r\n\r\n $scope.vm.ListOfSelectedNAVPermissionSets.forEach(permissionSet => {\r\n if (permissionSet.Companies != null && permissionSet.Companies.length > 0) {\r\n permissionSet.Companies.forEach(company => {\r\n var foundPermission = builtRequest.NavRequest.PermissionSets.find(permission => permission.Id == permissionSet.Id && permission.Company == company);\r\n\r\n if (foundPermission != null) {\r\n company.Action = foundPermission.Action;\r\n company.StartDate = foundPermission.StartDate;\r\n company.EndDate = foundPermission.EndDate;\r\n company.AccessType = foundPermission.AccessType;\r\n }\r\n });\r\n } else {\r\n var foundPermission = builtRequest.NavRequest.PermissionSets.find(permission => permission.Id == permissionSet.Id);\r\n\r\n if (foundPermission != null) {\r\n permissionSet.Action = foundPermission.Action;\r\n permissionSet.StartDate = foundPermission.StartDate;\r\n permissionSet.EndDate = foundPermission.EndDate;\r\n permissionSet.AccessType = foundPermission.AccessType;\r\n }\r\n }\r\n\r\n prepareNAVAccessItem(permissionSet);\r\n });\r\n }\r\n }\r\n if (builtRequest.D365Request != null) {\r\n\r\n if ($scope.vm.ListOfSelectedD365SRoles != null) {\r\n $scope.vm.ListOfSelectedD365SRoles.forEach(function (role) {\r\n\r\n var foundRole = builtRequest.D365Request.Roles.find(function (d365sRole) {\r\n return d365sRole.Role.Id === role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareD365SAccessItem(role);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableD365SRoles != null) {\r\n $scope.vm.ListOfAvailableD365SRoles.forEach(function (role) {\r\n\r\n var foundRole = builtRequest.D365Request.Roles.find(function (d365sRole) {\r\n return d365sRole.Role.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareD365SAccessItem(role);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfSelectedD365STeams != null) {\r\n $scope.vm.ListOfSelectedD365STeams.forEach(function (team) {\r\n\r\n var foundTeam = builtRequest.D365Request.UserTeams.find(function (d365sTeam) {\r\n return d365sTeam.Team.Id === team.Id;\r\n });\r\n if (foundTeam != null) {\r\n team.Action = foundTeam.Action;\r\n team.StartDate = foundTeam.StartDate;\r\n team.EndDate = foundTeam.EndDate;\r\n team.AccessType = foundTeam.AccessType;\r\n }\r\n\r\n prepareD365SAccessItem(team);\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableD365STeams != null) {\r\n $scope.vm.ListOfAvailableD365STeams.forEach(function (team) {\r\n\r\n var foundTeam = builtRequest.D365Request.UserTeams.find(function (d365sTeam) {\r\n return d365sTeam.Team.Id == team.Id;\r\n });\r\n if (foundTeam != null) {\r\n team.Action = foundTeam.Action;\r\n team.StartDate = foundTeam.StartDate;\r\n team.EndDate = foundTeam.EndDate;\r\n team.AccessType = foundTeam.AccessType;\r\n }\r\n\r\n prepareD365SAccessItem(team);\r\n });\r\n }\r\n }\r\n\r\n // PeopleSoft\r\n if (builtRequest.PsRequest != null) {\r\n if ($scope.vm.ListOfSelectedPSRoles != null) {\r\n $scope.vm.ListOfSelectedPSRoles.forEach(function (role) {\r\n preparePSAccessItem(role);\r\n\r\n var foundRole = builtRequest.PsRequest.Roles.find(function (PsRole) {\r\n return PsRole.Name == role.Name;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailablePSRoles != null) {\r\n $scope.vm.ListOfAvailablePSRoles.forEach(function (role) {\r\n preparePSAccessItem(role);\r\n\r\n var foundRole = builtRequest.PsRequest.Roles.find(function (PsRole) {\r\n return PsRole.Name == role.Name;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.StartDate = foundRole.StartDate;\r\n role.EndDate = foundRole.EndDate;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // Salesforce\r\n if (builtRequest.SalesForceRequest != null) {\r\n if ($scope.vm.ListOfSelectedSalesforcePermissionSets != null) {\r\n $scope.vm.ListOfSelectedSalesforcePermissionSets.forEach(permission => {\r\n prepareSalesforceAccessItem(permission);\r\n\r\n var foundPermission = builtRequest.SalesForceRequest.Permissions.find(requestPermission => requestPermission.Name == permission.Name);\r\n\r\n if (foundPermission != null) {\r\n permission.Action = foundPermission.Action;\r\n permission.StartDate = foundPermission.StartDate;\r\n permission.EndDate = foundPermission.EndDate;\r\n permission.AccessType = foundPermission.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableSalesforcePermissionSets != null) {\r\n $scope.vm.ListOfAvailableSalesforcePermissionSets.forEach(permission => {\r\n prepareSalesForceAccessItem(permission);\r\n\r\n var foundPermission = builtRequest.SalesForceRequest.Permissions.find(requestPermission => requestPermission.Name === permission.Name);\r\n if (foundPermission != null) {\r\n permission.Action = foundPermission.Action;\r\n permission.StartDate = foundPermission.StartDate;\r\n permission.EndDate = foundPermission.EndDate;\r\n permission.AccessType = foundPermission.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.vm.User.SalesforceUser.Profile) {\r\n let profile = $scope.vm.User.SalesforceUser.Profile,\r\n foundProfile = builtRequest.SalesForceRequest.Profiles.find(requestProfile => requestProfile.Id === profile.Id);\r\n\r\n prepareSalesforceAccessItem(profile);\r\n\r\n if (foundProfile) {\r\n profile.Action = foundProfile.Action;\r\n profile.StartDate = foundProfile.StartDate;\r\n profile.EndDate = foundProfile.EndDate;\r\n profile.AccessType = foundProfile.AccessType;\r\n }\r\n }\r\n\r\n if ($scope.vm.salesforceProfiles) {\r\n $scope.vm.salesforceProfiles.forEach(profile => {\r\n prepareSalesForceAccessItem(profile);\r\n\r\n var foundProfile = builtRequest.SalesForceRequest.Profiles.find(requestProfile => requestProfile.Id === profile.Id);\r\n if (foundProfile != null) {\r\n profile.Action = foundProfile.Action;\r\n profile.StartDate = foundProfile.StartDate;\r\n profile.EndDate = foundProfile.EndDate;\r\n profile.AccessType = foundProfile.AccessType;\r\n }\r\n });\r\n }\r\n }\r\n\r\n loadRequestDfrd.resolve();\r\n });\r\n\r\n\r\n return $.when(loadRequestDfrd).done(function () {\r\n }).promise();\r\n\r\n };\r\n\r\n this.loadUserMasterERPData = function ($scope, userMaster, applications) {\r\n var User = {};\r\n var vm = $scope.vm;\r\n $scope.vm.helperService = helperService;\r\n $scope.vm.typeOf = typeOf;\r\n\r\n $scope.vm.userProperties = [];\r\n $scope.vm.userPropertyInfo = [];\r\n $scope.vm.terminationDisplay = [];\r\n\r\n if (vm == null) {\r\n vm = {};\r\n if ($scope.vm == null) {\r\n $scope.vm = vm;\r\n }\r\n }\r\n if ($scope.vm.User == null) {\r\n $scope.vm.User = User;\r\n }\r\n\r\n var userMasterDfrd = $.Deferred();\r\n\r\n $scope.vm.User.UserMaster = userMaster;\r\n var userMasterId = '';\r\n if (userMaster.Id) {\r\n userMasterId = userMaster.Id;\r\n } else if (userMaster.ID) {\r\n userMasterId = userMaster.ID;\r\n }\r\n $scope.netSuiteUserLoaded = false;\r\n $scope.upUserLoaded = false;\r\n $scope.sapUserLoaded = false;\r\n $scope.aadUserLoaded = false;\r\n $scope.axUserLoaded = false;\r\n $scope.gpUserLoaded = false;\r\n $scope.navUserLoaded = false;\r\n $scope.d365sUserLoaded = false;\r\n $scope.psUserLoaded = false;\r\n $scope.salesforceUserLoaded = false;\r\n\r\n //Reset all applications selected to false\r\n applications.forEach(function (app) {\r\n app.selected = false;\r\n app.Visible = false;\r\n });\r\n\r\n let isEmergencyAccess = vm.alternatePath === \"EmergencyAccess\" ? true : false;\r\n\r\n //Load data for existing users\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/requests/initiate/' + userMasterId\r\n\r\n }).then(({ data }) => {\r\n //Loop through Products and load ERP user data\r\n\r\n //Add list of errors, if any\r\n if (data.Errors != null) {\r\n $scope.vm.Errors = data.Errors;\r\n }\r\n\r\n $scope.vm.availableApplications = $scope.vm.availableApplications.map(setVisibleAndSelectedApps.bind(null, data));\r\n let dataCopy = { ...data };\r\n\r\n $scope.vm.availableUsers = Object.values(terminationSummaryFilter(dataCopy));\r\n createUserDetailsInstances($scope.vm.availableUsers);\r\n\r\n for (let i = 0; i < $scope.vm.availableUsers.length; i++) {\r\n $scope.vm.userProperties.push(Object.keys($scope.vm.availableUsers[i]));\r\n $scope.vm.userPropertyInfo.push(Object.values($scope.vm.availableUsers[i]));\r\n }\r\n\r\n $scope.vm.terminationDisplay = $scope.vm.availableUsers.reduce((acc, user, j) => {\r\n let tempArray = [];\r\n Object.keys(user).forEach((key, k) => {\r\n let tempObject = {\r\n UserProperty: $scope.vm.userProperties[j][k],\r\n UserPropertyInfo: $scope.vm.userPropertyInfo[j][k]\r\n }\r\n tempArray.push(tempObject);\r\n });\r\n tempArray.push(user.ProductId);\r\n acc.push(tempArray);\r\n return acc;\r\n }, []);\r\n\r\n if (data.AadUser != null && !isEmergencyAccess) {\r\n $scope.vm.User.AadUser = data.AadUser;\r\n if ($scope.vm.User.AadUser.PasswordProfile) {\r\n $scope.vm.User.AadUser.ConfirmPassword = $scope.vm.User.AadUser.PasswordProfile.Password;\r\n }\r\n if ($scope.vm.User.AadUser.BusinessPhones.length > 0) {\r\n $scope.vm.User.AadUser.BusinessPhones = $scope.vm.User.AadUser.BusinessPhones.toString();\r\n }\r\n }\r\n if (data.AxUser != null && !isEmergencyAccess) {\r\n $scope.vm.User.AX2012User = data.AxUser;\r\n $scope.vm.User.AX2012User.CurrentAX2012User = { ...data.AxUser };\r\n $scope.vm.User.AX2012User.ConfirmPassword = $scope.vm.User.AX2012User.Password;\r\n $scope.vm.User.AX2012User.Partition = { Id: data.AxUser.Partition, Key: data.AxUser.PartitionKey };\r\n }\r\n if (data.Ax7User != null && !isEmergencyAccess) {\r\n $scope.vm.User.AX7User = data.Ax7User;\r\n $scope.vm.User.AX7User.CurrentAx7User = { ...data.Ax7User };\r\n $scope.vm.User.AX7User.ConfirmPassword = $scope.vm.User.AX7User.Password;\r\n }\r\n if (data.NetSuiteUser != null && !isEmergencyAccess) {\r\n $scope.vm.User.NetSuiteUser = data.NetSuiteUser;\r\n $scope.vm.User.NetSuiteUser.ConfirmPassword = $scope.vm.User.NetSuiteUser.Password;\r\n }\r\n if (data.EbsUser != null && !isEmergencyAccess) {\r\n $scope.vm.User.OracleUser = data.EbsUser;\r\n $scope.vm.User.OracleUser.ConfirmPassword = $scope.vm.User.OracleUser.Password;\r\n\r\n $scope.vm.User.OracleUser.Expiration = data.EbsUser.PasswordAccesses === null && data.EbsUser.PasswordDays === null ? 'None' : data.EbsUser.PasswordAccesses !== null ? 'Accesses' : 'Days';\r\n $scope.vm.User.OracleUser.ExpirationValue = data.EbsUser.Expiration === 'Days' ? data.EbsUser.PasswordDays : data.EbsUser.PasswordAccesses;\r\n }\r\n\r\n if (data.SapUser != null && data.SapUser.length > 0) {\r\n data.SapUser.forEach((user, i) => {\r\n var productName = helperService.getProductName(user.ProductId, applications);\r\n if (!$scope.vm.User.SAPUser) {\r\n $scope.vm.User.SAPUser = [];\r\n }\r\n $scope.vm.User.SAPUser[productName] = user;\r\n $scope.vm.User.SAPUser[productName].ConfirmPassword = $scope.vm.User.SAPUser[productName].Password;\r\n $scope.vm.User.SAPUser[productName].ProductName = productName;\r\n });\r\n\r\n let userApplications = [];\r\n // get a list of applications the user has access to\r\n for (const userProduct in data) {\r\n if (Array.isArray(data[userProduct])) {\r\n data[userProduct].forEach(item => userApplications.push(item.ProductId));\r\n } else if (data[userProduct] && data[userProduct].ProductId) {\r\n userApplications.push(data[userProduct].ProductId);\r\n }\r\n }\r\n\r\n // filter out applications that the user does not have access to\r\n $scope.vm.availableApplications.forEach((application, index, applications) => {\r\n if (!userApplications.some(app => app === application.ProductID)) {\r\n applications.splice(index, 1);\r\n }\r\n });\r\n }\r\n if (data.UvUser != null && data.UvUser.length > 0 && !isEmergencyAccess) {\r\n data.UvUser.forEach((user, i) => {\r\n var productName = helperService.getProductName(user.ProductId, applications);\r\n if (!$scope.vm.User.UPUser) {\r\n $scope.vm.User.UPUser = [];\r\n }\r\n $scope.vm.User.UPUser[productName] = user;\r\n $scope.vm.User.UPUser[productName].ProductName = productName;\r\n });\r\n\r\n let userApplications = [];\r\n // get a list of applications the user has access to\r\n for (const userProduct in data) {\r\n if (Array.isArray(data[userProduct])) {\r\n data[userProduct].forEach(item => userApplications.push(item.ProductId));\r\n } else if (data[userProduct] && data[userProduct].ProductId) {\r\n userApplications.push(data[userProduct].ProductId);\r\n }\r\n }\r\n\r\n // filter out applications that the user does not have access to\r\n $scope.vm.availableApplications.forEach((application, index, applications) => {\r\n if (!userApplications.some(app => app === application.ProductID)) {\r\n applications.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n // Oracle Cloud User\r\n if (data.OrfcUser != null && !isEmergencyAccess) {\r\n $scope.vm.User.OracleCloudUser = data.OrfcUser;\r\n $scope.vm.User.OracleCloudUser.PasswordConfirm = $scope.vm.User.OracleCloudUser.Password;\r\n }\r\n\r\n if (data.GPUser != null && !isEmergencyAccess) {\r\n $scope.vm.User.GPUser = data.GPUser;\r\n $scope.vm.User.GPUser.SamAccountName = data.GPUser.WindowsUserId;\r\n }\r\n\r\n if (data.NavUser != null && !isEmergencyAccess) {\r\n $scope.vm.User.NAVUser = data.NavUser;\r\n }\r\n if (data.D365SUser != null && !isEmergencyAccess) {\r\n $scope.vm.User.D365SUser = data.D365SUser;\r\n\r\n if ($scope.vm.User.D365SUser.AccessMode !== null) {\r\n $rootScope.$broadcast('im-request-d365s-getlicenseTypes');\r\n }\r\n }\r\n if (data.PsUserRequest != null && !isEmergencyAccess) {\r\n $scope.vm.User.PSUser = data.PsUserRequest;\r\n if (data.PsUserRequest.PrimaryEmail) {\r\n $scope.vm.originalPSEmail = data.PsUserRequest.PrimaryEmail.slice();\r\n } else {\r\n $scope.vm.originalPSEmail = null;\r\n }\r\n }\r\n\r\n if (data.SfUserRequest != null && !isEmergencyAccess) {\r\n $scope.vm.User.SalesforceUser = data.SfUserRequest;\r\n }\r\n\r\n userMasterDfrd.resolve(data);\r\n\r\n }, function errorCallback(response) {\r\n userMasterDfrd.reject(response.data);\r\n });\r\n\r\n return $.when(userMasterDfrd).done(function () {\r\n }).promise();\r\n };\r\n //Load any user information lists displayed on the User Information pages\r\n this.loadApplicationData = function ($scope, openRequest) {\r\n var loadAppsDfrd = $.Deferred();\r\n var promises = [];\r\n\r\n try {\r\n if (openRequest.NetSuiteUser != null) {\r\n promises.push(RequestManagementNetSuiteLoadDataService.loadNetSuite($scope, openRequest.NetSuiteUser.Subsidiary.Id, openRequest));\r\n }\r\n\r\n if (openRequest.SapUser != null) {\r\n var selectedSapApplications = $scope.vm.availableApplications.filter(application => application.selected === true);\r\n selectedSapApplications.forEach(application => {\r\n if (application.ProductType === 'SAP') {\r\n promises.push(RequestManagementSAPLoadDataService.loadSAP($scope, application, null));\r\n }\r\n });\r\n }\r\n\r\n if (openRequest.UvUser != null) {\r\n var selectedUvApplications = $scope.vm.availableApplications.filter(application => application.selected === true);\r\n\r\n selectedUvApplications.forEach(application => {\r\n if (application.Name === 'Universal') {\r\n promises.push(RequestManagementUPLoadDataService.loadUP($scope, application, null));\r\n }\r\n });\r\n }\r\n\r\n if (openRequest.AadUser != null) {\r\n promises.push(RequestManagementAADLoadDataService.loadAAD($scope, openRequest.AadUser))\r\n }\r\n\r\n if (openRequest.Ax7User != null) {\r\n promises.push(RequestManagementAXLoadDataService.loadAX7($scope, openRequest.Ax7User));\r\n }\r\n\r\n if (openRequest.AxUser != null) {\r\n promises.push(RequestManagementAXLoadDataService.loadAX2012($scope, openRequest.AxUser));\r\n }\r\n\r\n if (openRequest.EbsUser != null) {\r\n promises.push(RequestManagementOracleLoadDataService.loadOracle($scope));\r\n }\r\n // Oracle Cloud\r\n if (openRequest.OrfcUser != null) {\r\n promises.push(RequestManagementOracleCloudLoadDataService.loadOracleCloud($scope));\r\n }\r\n\r\n if (openRequest.GPUser != null) {\r\n promises.push(RequestManagementGPLoadDataService.loadGP($scope));\r\n }\r\n\r\n if (openRequest.NavUser != null) {\r\n promises.push(RequestManagementNAVLoadDataService.loadNAV($scope));\r\n }\r\n\r\n if (openRequest.D365SUser != null) {\r\n promises.push(RequestManagementD365SLoadDataService.loadD365S($scope, openRequest.D365SUser));\r\n }\r\n\r\n if (openRequest.PsUserRequest != null) {\r\n promises.push(RequestManagementPSLoadDataService.loadPS($scope, openRequest.PSUser));\r\n }\r\n\r\n if (openRequest.SfUserRequest != null) {\r\n promises.push(salesforceLoadData.loadSalesforce($scope, openRequest.SfUserRequest));\r\n }\r\n\r\n $q.all(promises).then(function () {\r\n loadAppsDfrd.resolve();\r\n }, function errorCallback(response) {\r\n loadAppsDfrd.reject(response);\r\n });\r\n\r\n }\r\n catch (e) {\r\n loadAppsDfrd.reject(e);\r\n }\r\n\r\n return $.when(loadAppsDfrd).done(function () {\r\n }).promise();\r\n };\r\n\r\n function lockdownOnError($scope, errorMessage) {\r\n $scope.reportDetailsComplete = false;\r\n $scope.stopRequestManagementSpinner = true;\r\n\r\n //helperService.showErrorMessage(errorMessage);\r\n $rootScope.$emit('RequestManagementStopGridLoadingEvent', \"Error\");\r\n }\r\n //Find any permission changes for display, currently on Access Effective Dates and Summary\r\n this.findAccessChanges = function (request, accessChanges) {\r\n var changeList = [];\r\n\r\n if (request.GPRequest != null) {\r\n request.GPRequest.RoleCompanies.forEach(function (item) {\r\n changeList.push(prepareGPAccessItem(item));\r\n });\r\n\r\n request.GPRequest.UserCompanies.forEach(function (item) {\r\n changeList.push(prepareGPAccessItem(item));\r\n });\r\n }\r\n\r\n if (request.NetSuiteRequest != null) {\r\n\r\n request.NetSuiteRequest.Roles.forEach(function (item) {\r\n changeList.push(prepareNSAccessItem(item));\r\n });\r\n\r\n request.NetSuiteRequest.GlobalPermissions.forEach(function (item) {\r\n changeList.push(prepareNSAccessItem(item));\r\n });\r\n }\r\n\r\n if (request.UniversalRequest != null) {\r\n request.UniversalRequest.forEach(universalRequest => {\r\n universalRequest.UserRoles.forEach(function (item) {\r\n changeList.push(prepareUniversalAccessItem(item, item.Role.ProductName));\r\n });\r\n });\r\n }\r\n\r\n if (request.SAPRequest != null) {\r\n request.SAPRequest.forEach(sapRequest => {\r\n sapRequest.Roles.forEach(function (item) {\r\n changeList.push(prepareSAPAccessItem(item));\r\n });\r\n });\r\n }\r\n\r\n if (request.AadRequest != null) {\r\n request.AadRequest.Roles.forEach(function (item) {\r\n changeList.push(prepareAADAccessItem(item));\r\n });\r\n\r\n request.AadRequest.Groups.forEach(function (item) {\r\n changeList.push(prepareAADAccessItem(item));\r\n });\r\n\r\n request.AadRequest.Licenses.forEach(function (item) {\r\n changeList.push(prepareAADAccessItem(item));\r\n });\r\n }\r\n\r\n if (request.Ax7Request != null) {\r\n request.Ax7Request.RoleCompanies.forEach(function (item) {\r\n changeList.push(prepareAX7AccessItem(item));\r\n });\r\n\r\n request.Ax7Request.UserGroups.forEach(function (item) {\r\n changeList.push(prepareAX7AccessItem(item));\r\n });\r\n }\r\n\r\n if (request.AxRequest != null) {\r\n request.AxRequest.RoleCompanies.forEach(function (item) {\r\n changeList.push(prepareAX2012AccessItem(item));\r\n });\r\n\r\n request.AxRequest.UserGroups.forEach(function (item) {\r\n changeList.push(prepareAX2012AccessItem(item));\r\n });\r\n }\r\n\r\n if (request.NavRequest != null) {\r\n request.NavRequest.PermissionSets.forEach(function (item) {\r\n changeList.push(prepareNAVAccessItem(item));\r\n });\r\n\r\n request.NavRequest.UserGroups.forEach(function (item) {\r\n changeList.push(prepareNAVAccessItem(item));\r\n });\r\n }\r\n\r\n if (request.EbsRequest != null) {\r\n request.EbsRequest.Responsibilities.forEach(function (item) {\r\n changeList.push(prepareORAccessItem(item));\r\n });\r\n\r\n request.EbsRequest.Roles.forEach(function (item) {\r\n changeList.push(prepareORAccessItem(item));\r\n });\r\n }\r\n // Oracle Cloud\r\n if (request.OrfcRequest != null) {\r\n request.OrfcRequest.Roles.forEach(function (item) {\r\n changeList.push(prepareORFCAccessItem(item));\r\n });\r\n }\r\n\r\n if (request.D365SRequest != null) {\r\n request.D365SRequest.UserRoles.forEach(function (item) {\r\n changeList.push(prepareD365SAccessItem(item));\r\n });\r\n request.D365SRequest.UserTeams.forEach(function (item) {\r\n changeList.push(prepareD365SAccessItem(item));\r\n });\r\n }\r\n\r\n if (request.PsRequest != null) {\r\n request.PsRequest.Roles.forEach(function (item) {\r\n changeList.push(preparePSAccessItem(item));\r\n });\r\n }\r\n\r\n if (request.SfRequest != null) {\r\n request.SfRequest.Profiles.forEach(item => {\r\n changeList.push(prepareSalesforceAccessItem(item));\r\n });\r\n request.SfRequest.PermissionSets.forEach(item => {\r\n changeList.push(prepareSalesforceAccessItem(item));\r\n });\r\n }\r\n\r\n\r\n changeList.forEach(function (access) {\r\n\r\n self.addEffectiveDates(access, accessChanges);\r\n\r\n if (access.StartDate != null && access.MinDate == null) {\r\n access.MinDate = access.StartDate;\r\n }\r\n\r\n if (access.MinDate == null) {\r\n access.MinDate = new Date(2000, 0, 1, 0, 0, 0);\r\n }\r\n });\r\n\r\n return changeList;\r\n };\r\n //Find if a change is being made to a User, currently displayed on the Summary page\r\n this.findUserChanges = function (data) {\r\n var changeList = [];\r\n\r\n if (data.User.NetSuiteUser != null && data.User.NetSuiteUser.Action != null && data.availableApplications.some(availableApp => availableApp.ProductID === data.User.NetSuiteUser.ProductId && availableApp.selected)) {\r\n changeList.push(data.User.NetSuiteUser);\r\n }\r\n\r\n if (data.User.SAPUser != null) {\r\n Object.keys(data.User.SAPUser).forEach(key => {\r\n const currentObject = data.User.SAPUser[key];\r\n\r\n if (currentObject && currentObject.Action && data.availableApplications.some(availableApp => key === availableApp.ProductName && availableApp.selected)) {\r\n changeList.push(currentObject);\r\n }\r\n });\r\n }\r\n\r\n if (data.User.AadUser != null && data.User.AadUser.Action != null && data.availableApplications.some(availableApp => availableApp.ProductID === data.User.AadUser.ProductId && availableApp.selected)) {\r\n changeList.push(data.User.AadUser);\r\n }\r\n\r\n if (data.User.AX7User != null && data.User.AX7User.Action != null && data.availableApplications.some(availableApp => availableApp.ProductID === data.User.AX7User.ProductId && availableApp.selected)) {\r\n changeList.push(data.User.AX7User);\r\n }\r\n\r\n if (data.User.AX2012User != null && data.User.AX2012User.Action != null && data.availableApplications.some(availableApp => availableApp.ProductID === data.User.AX2012User.ProductId && availableApp.selected)) {\r\n changeList.push(data.User.AX2012User);\r\n }\r\n\r\n if (data.User.OracleUser != null && data.User.OracleUser.Action != null && data.availableApplications.some(availableApp => availableApp.ProductID === data.User.OracleUser.ProductId && availableApp.selected)) {\r\n changeList.push(data.User.OracleUser);\r\n }\r\n\r\n if (data.User.OracleCloudUser != null && data.User.OracleCloudUser.Action != null && data.availableApplications.some(availableApp => availableApp.ProductID === data.User.OracleCloudUser.ProductId && availableApp.selected)) {\r\n changeList.push(data.User.OracleCloudUser);\r\n }\r\n\r\n if (data.User.GPUser != null && data.User.GPUser.Action != null && data.availableApplications.some(availableApp => availableApp.ProductID === data.User.GPUser.ProductId && availableApp.selected)) {\r\n changeList.push(data.User.GPUser);\r\n }\r\n\r\n if (data.User.NAVUser != null && data.User.NAVUser.Action != null && data.availableApplications.some(availableApp => availableApp.ProductID === data.User.NAVUser.ProductId && availableApp.selected)) {\r\n changeList.push(data.User.NAVUser);\r\n }\r\n\r\n if (data.User.D365SUser != null && data.User.D365SUser.Action != null && data.availableApplications.some(availableApp => availableApp.ProductID === data.User.D365SUser.ProductId && availableApp.selected)) {\r\n changeList.push(data.User.D365SUser);\r\n }\r\n\r\n if (data.User.PSUser != null && data.User.PSUser.Action != null && data.availableApplications.some(availableApp => availableApp.ProductID === data.User.PSUser.ProductId && availableApp.selected)) {\r\n changeList.push(data.User.PSUser);\r\n }\r\n\r\n if (data.User.SalesforceUser != null) {\r\n if (data.User.SalesforceUser != null && data.User.SalesforceUser.Action != null) {\r\n changeList.push(data.User.SalesforceUser);\r\n }\r\n }\r\n\r\n if (data.User.UPUser != null) {\r\n Object.keys(data.User.UPUser).forEach(key => {\r\n const currentObject = data.User.UPUser[key];\r\n if (currentObject && currentObject.Action && data.availableApplications.some(availableApp => key === availableApp.ProductName && availableApp.selected)) {\r\n changeList.push(currentObject);\r\n }\r\n });\r\n }\r\n\r\n return changeList;\r\n };\r\n //Populate IM with data returned from the Build call\r\n this.loadRequestData = function (toStep, fromStep, vm, scope, request) {\r\n var loadRequestDfrd = $.Deferred();\r\n\r\n if (request.NetSuiteRequest != null) {\r\n if (request.NetSuiteRequest.User != null) {\r\n vm.User.NetSuiteUser.ConfirmPassword = request.NetSuiteRequest.User.Password;\r\n vm.User.NetSuiteUser.Action = request.NetSuiteRequest.User.Action;\r\n vm.User.NetSuiteUser.ProductId = request.NetSuiteRequest.User.ProductId;\r\n vm.User.NetSuiteUser.ApplicationType = request.NetSuiteRequest.User.ApplicationType;\r\n vm.User.NetSuiteUser.UserChanges = request.NetSuiteRequest.User.UserChanges;\r\n }\r\n vm.User.NetSuiteUser.ApplicationId = netsuite_application_id;\r\n\r\n if (vm.ListOfSelectedNetSuiteRoles != null) {\r\n //Remove all actions in between builds\r\n vm.ListOfSelectedNetSuiteRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfSelectedNetSuiteRoles.forEach(function (role) {\r\n prepareNSAccessItem(role);\r\n\r\n var foundRole = request.NetSuiteRequest.Roles.find(function (nsRole) {\r\n return nsRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableNetSuiteRoles != null) {\r\n vm.ListOfAvailableNetSuiteRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfAvailableNetSuiteRoles.forEach(function (role) {\r\n prepareNSAccessItem(role);\r\n\r\n var foundRole = request.NetSuiteRequest.Roles.find(function (nsRole) {\r\n return nsRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n\r\n if (vm.ListOfSelectedNetSuitePermissions != null) {\r\n vm.ListOfSelectedNetSuitePermissions.forEach(function (perm) {\r\n perm.Action = null;\r\n });\r\n vm.ListOfSelectedNetSuitePermissions.forEach(function (perm) {\r\n prepareNSAccessItem(perm);\r\n\r\n\r\n var foundPermission = request.NetSuiteRequest.GlobalPermissions.find(function (selPerm) {\r\n return selPerm.Id == perm.Id;\r\n });\r\n if (foundPermission != null) {\r\n perm.Action = foundPermission.Action;\r\n perm.AccessType = foundPermission.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableNetSuitePermissions != null) {\r\n vm.ListOfAvailableNetSuitePermissions.forEach(function (perm) {\r\n perm.Action = null;\r\n });\r\n vm.ListOfAvailableNetSuitePermissions.forEach(function (perm) {\r\n prepareNSAccessItem(perm);\r\n\r\n var foundPermission = request.NetSuiteRequest.GlobalPermissions.find(function (selPerm) {\r\n return selPerm.Id == perm.Id;\r\n });\r\n if (foundPermission != null) {\r\n perm.Action = foundPermission.Action;\r\n perm.AccessType = foundPermission.AccessType;\r\n }\r\n });\r\n }\r\n }\r\n if (request.AadRequest != null) {\r\n if (request.AadRequest.User != null) {\r\n if (request.AadRequest.User.PasswordProfile) {\r\n vm.User.AadUser.ConfirmPassword = request.AadRequest.User.PasswordProfile.Password;\r\n }\r\n vm.User.AadUser.Action = request.AadRequest.User.Action;\r\n vm.User.AadUser.ProductId = request.AadRequest.User.ProductId;\r\n vm.User.AadUser.ApplicationType = request.AadRequest.User.ApplicationType;\r\n vm.User.AadUser.UserChanges = request.AadRequest.User.UserChanges;\r\n }\r\n vm.User.AadUser.ApplicationId = aad_application_id;\r\n\r\n if (vm.ListOfSelectedAADRoles != null) {\r\n vm.ListOfSelectedAADRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfSelectedAADRoles.forEach(function (role) {\r\n\r\n var foundRole = request.AadRequest.Roles.find(function (adRole) {\r\n return adRole.Id.toUpperCase() == role.Id.toUpperCase();\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(role);\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableAADRoles != null) {\r\n vm.ListOfAvailableAADRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfAvailableAADRoles.forEach(function (role) {\r\n\r\n var foundRole = request.AadRequest.Roles.find(function (adRole) {\r\n return adRole.Id.toUpperCase() == role.Id.toUpperCase();\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(role);\r\n });\r\n }\r\n\r\n if (vm.ListOfSelectedAADGroups != null) {\r\n vm.ListOfSelectedAADGroups.forEach(function (group) {\r\n group.Action = null;\r\n });\r\n vm.ListOfSelectedAADGroups.forEach(function (group) {\r\n\r\n var foundLicense = request.AadRequest.Groups.find(function (adGroup) {\r\n return adGroup.Id.toUpperCase() == group.Id.toUpperCase();\r\n });\r\n if (foundLicense != null) {\r\n group.Action = foundLicense.Action;\r\n group.AccessType = foundLicense.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(group);\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableAADGroups != null) {\r\n vm.ListOfAvailableAADGroups.forEach(function (group) {\r\n group.Action = null;\r\n });\r\n vm.ListOfAvailableAADGroups.forEach(function (group) {\r\n\r\n var foundLicense = request.AadRequest.Groups.find(function (adGroup) {\r\n return adGroup.Id.toUpperCase() == group.Id.toUpperCase();\r\n });\r\n if (foundLicense != null) {\r\n group.Action = foundLicense.Action;\r\n group.AccessType = foundLicense.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(group);\r\n });\r\n }\r\n\r\n if (vm.ListOfSelectedAADLicenses != null) {\r\n vm.ListOfSelectedAADLicenses.forEach(function (license) {\r\n license.Action = null;\r\n });\r\n vm.ListOfSelectedAADLicenses.forEach(function (license) {\r\n\r\n var foundLicense = request.AadRequest.Licenses.find(function (adLicense) {\r\n return adLicense.SkuId.toUpperCase() == license.SkuId.toUpperCase();\r\n });\r\n if (foundLicense != null) {\r\n license.Action = foundLicense.Action;\r\n license.AccessType = foundLicense.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(license);\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableAADLicenses != null) {\r\n vm.ListOfAvailableAADLicenses.forEach(function (license) {\r\n license.Action = null;\r\n });\r\n vm.ListOfAvailableAADLicenses.forEach(function (license) {\r\n\r\n var foundLicense = request.AadRequest.Licenses.find(function (adLicense) {\r\n return adLicense.SkuId.toUpperCase() == license.SkuId.toUpperCase();\r\n });\r\n if (foundLicense != null) {\r\n license.Action = foundLicense.Action;\r\n license.AccessType = foundLicense.AccessType;\r\n }\r\n\r\n prepareAADAccessItem(license);\r\n });\r\n }\r\n }\r\n if (request.Ax7Request != null) {\r\n if (request.Ax7Request.User != null) {\r\n vm.User.AX7User.ConfirmPassword = request.Ax7Request.User.Password;\r\n vm.User.AX7User.Action = request.Ax7Request.User.Action;\r\n vm.User.AX7User.ProductId = request.Ax7Request.User.ProductId;\r\n vm.User.AX7User.ApplicationType = request.Ax7Request.User.ApplicationType;\r\n vm.User.AX7User.UserChanges = request.Ax7Request.User.UserChanges;\r\n }\r\n vm.User.AX7User.ApplicationId = ax7_application_id;\r\n\r\n if (vm.ListOfSelectedAX7Roles != null) {\r\n vm.ListOfSelectedAX7Roles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfSelectedAX7Roles.forEach(function (role) {\r\n\r\n var foundRole = request.Ax7Request.RoleCompanies.find(function (axRole) {\r\n return axRole.Role.Id.toUpperCase() == role.Id.toUpperCase();\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareAX7AccessItem(role);\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableAX7Roles != null) {\r\n vm.ListOfAvailableAX7Roles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfAvailableAX7Roles.forEach(function (role) {\r\n\r\n var foundRole = request.Ax7Request.RoleCompanies.find(function (axRole) {\r\n return axRole.Role.Id.toUpperCase() == role.Id.toUpperCase();\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareAX7AccessItem(role);\r\n });\r\n }\r\n\r\n if (vm.ListOfSelectedAX7UserGroups != null) {\r\n vm.ListOfSelectedAX7UserGroups.forEach(function (userGroup) {\r\n userGroup.Action = null;\r\n });\r\n vm.ListOfSelectedAX7UserGroups.forEach(function (userGroup) {\r\n\r\n var foundUserGroup = request.Ax7Request.UserGroups.find(function (axUserGroup) {\r\n return axUserGroup.Id.toUpperCase() == userGroup.Id.toUpperCase();\r\n });\r\n if (foundUserGroup != null) {\r\n userGroup.Action = foundUserGroup.Action;\r\n userGroup.AccessType = foundUserGroup.AccessType;\r\n }\r\n\r\n prepareAX7AccessItem(userGroup);\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableAX7UserGroups != null) {\r\n vm.ListOfAvailableAX7UserGroups.forEach(function (userGroup) {\r\n userGroup.Action = null;\r\n });\r\n vm.ListOfAvailableAX7UserGroups.forEach(function (userGroup) {\r\n\r\n var foundUserGroup = request.Ax7Request.UserGroups.find(function (axUserGroup) {\r\n return axUserGroup.Id.toUpperCase() == userGroup.Id.toUpperCase();\r\n });\r\n if (foundUserGroup != null) {\r\n userGroup.Action = foundUserGroup.Action;\r\n userGroup.AccessType = foundUserGroup.AccessType;\r\n }\r\n\r\n prepareAX7AccessItem(userGroup);\r\n });\r\n }\r\n }\r\n if (request.AxRequest != null) {\r\n if (request.AxRequest.User != null) {\r\n vm.User.AX2012User.ApplicationType = request.AxRequest.User.ApplicationType;\r\n vm.User.AX2012User.Action = request.AxRequest.User.Action;\r\n vm.User.AX2012User.ProductId = request.AxRequest.User.ProductId;\r\n vm.User.AX2012User.UserChanges = request.AxRequest.User.UserChanges;\r\n }\r\n vm.User.AX2012User.ApplicationId = ax_application_id;\r\n\r\n if (vm.ListOfSelectedAX2012Roles != null) {\r\n vm.ListOfSelectedAX2012Roles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfSelectedAX2012Roles.forEach(function (role) {\r\n\r\n var foundRole = request.AxRequest.RoleCompanies.find(function (axRole) {\r\n return axRole.Role.Id.toUpperCase() == role.Id.toUpperCase();\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareAX2012AccessItem(role);\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableAX2012Roles != null) {\r\n vm.ListOfAvailableAX2012Roles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfAvailableAX2012Roles.forEach(function (role) {\r\n\r\n var foundRole = request.AxRequest.RoleCompanies.find(function (axRole) {\r\n return axRole.Role.Id.toUpperCase() == role.Id.toUpperCase();\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareAX2012AccessItem(role);\r\n });\r\n }\r\n\r\n if (vm.ListOfSelectedAX2012UserGroups != null) {\r\n vm.ListOfSelectedAX2012UserGroups.forEach(function (userGroup) {\r\n userGroup.Action = null;\r\n });\r\n vm.ListOfSelectedAX2012UserGroups.forEach(function (userGroup) {\r\n\r\n var foundUserGroup = request.AxRequest.UserGroups.find(function (axUserGroup) {\r\n return axUserGroup.Id.toUpperCase() == userGroup.Id.toUpperCase();\r\n });\r\n if (foundUserGroup != null) {\r\n userGroup.Action = foundUserGroup.Action;\r\n userGroup.AccessType = foundUserGroup.AccessType;\r\n }\r\n\r\n prepareAX2012AccessItem(userGroup);\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableAX2012UserGroups != null) {\r\n vm.ListOfAvailableAX2012UserGroups.forEach(function (userGroup) {\r\n userGroup.Action = null;\r\n });\r\n vm.ListOfAvailableAX2012UserGroups.forEach(function (userGroup) {\r\n\r\n var foundUserGroup = request.AxRequest.UserGroups.find(function (axUserGroup) {\r\n return axUserGroup.Id.toUpperCase() == userGroup.Id.toUpperCase();\r\n });\r\n if (foundUserGroup != null) {\r\n userGroup.Action = foundUserGroup.Action;\r\n userGroup.AccessType = foundUserGroup.AccessType;\r\n }\r\n\r\n prepareAX2012AccessItem(userGroup);\r\n });\r\n }\r\n }\r\n if (request.UniversalRequest != null) {\r\n request.UniversalRequest.forEach(universalRequest => {\r\n var productName = vm.availableApplications.find(application => application.ProductID === universalRequest.ProductId).ProductName;\r\n\r\n if (universalRequest.User != null) {\r\n vm.User.UPUser[productName].Action = universalRequest.User.Action;\r\n vm.User.UPUser[productName].ApplicationType = universalRequest.User.ApplicationType;\r\n vm.User.UPUser[productName].ProductId = universalRequest.User.ProductId;\r\n vm.User.UPUser[productName].UserChanges = universalRequest.User.UserChanges;\r\n }\r\n vm.User.UPUser[productName].ApplicationId = universalProduct_application_id;\r\n\r\n if (vm.ListOfSelectedUPRoles[productName] != null) {\r\n vm.ListOfSelectedUPRoles[productName].forEach(function (role) {\r\n role.Action = null;\r\n });\r\n\r\n vm.ListOfSelectedUPRoles[productName].forEach(function (role) {\r\n prepareUniversalAccessItem(role, productName);\r\n var foundRole = universalRequest.UserRoles.find(function (universalRole) {\r\n return universalRole.Id == role.Id;\r\n });\r\n\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableUPRoles[productName] != null) {\r\n vm.ListOfAvailableUPRoles[productName].forEach(function (role) {\r\n role.Action = null;\r\n });\r\n\r\n vm.ListOfAvailableUPRoles[productName].forEach(function (role) {\r\n prepareUniversalAccessItem(role, productName);\r\n var foundRole = universalRequest.UserRoles.find(function (universalRole) {\r\n return universalRole.Id == role.Id;\r\n });\r\n\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n if (request.SAPRequest != null) {\r\n request.SAPRequest.forEach(sapRequest => {\r\n var productName = vm.availableApplications.find(application => application.ProductID === sapRequest.ProductId).ProductName;\r\n\r\n if (sapRequest.User != null) {\r\n vm.User.SAPUser[productName].ConfirmPassword = sapRequest.User.Password;\r\n vm.User.SAPUser[productName].Action = sapRequest.User.Action;\r\n vm.User.SAPUser[productName].ApplicationType = sapRequest.User.ApplicationType;\r\n vm.User.SAPUser[productName].ProductId = sapRequest.User.ProductId;\r\n vm.User.SAPUser[productName].UserChanges = sapRequest.User.UserChanges;\r\n }\r\n vm.User.SAPUser[productName].ApplicationId = sap_application_id;\r\n\r\n // for Single Roles\r\n if (vm.ListOfSelectedSAPSingleRoles[productName] != null) {\r\n vm.ListOfSelectedSAPSingleRoles[productName].forEach(role => {\r\n role.Action = null;\r\n });\r\n\r\n vm.ListOfSelectedSAPSingleRoles[productName].forEach(role => {\r\n prepareSAPAccessItem(role);\r\n var foundRole = sapRequest.Roles.find(sapRole => sapRole.Id == role.Id);\r\n\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableSAPSingleRoles[productName] != null) {\r\n vm.ListOfAvailableSAPSingleRoles[productName].forEach(role => {\r\n role.Action = null;\r\n });\r\n\r\n vm.ListOfAvailableSAPSingleRoles[productName].forEach(role => {\r\n prepareSAPAccessItem(role);\r\n var foundRole = sapRequest.Roles.find(sapRole => sapRole.Id == role.Id);\r\n\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n // for Composite Roles\r\n if (vm.ListOfSelectedSAPCompositeRoles[productName] != null) {\r\n vm.ListOfSelectedSAPCompositeRoles[productName].forEach(compositeRole => {\r\n compositeRole.Action = null;\r\n });\r\n\r\n vm.ListOfSelectedSAPCompositeRoles[productName].forEach(compositeRole => {\r\n prepareSAPAccessItem(compositeRole);\r\n var foundCompositeRole = sapRequest.Roles.find(sapCompositeRole => sapCompositeRole.Id == compositeRole.Id);\r\n\r\n if (foundCompositeRole != null) {\r\n compositeRole.Action = foundCompositeRole.Action;\r\n compositeRole.AccessType = foundCompositeRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableSAPCompositeRoles[productName] != null) {\r\n vm.ListOfAvailableSAPCompositeRoles[productName].forEach(compositeRole => {\r\n compositeRole.Action = null;\r\n });\r\n\r\n vm.ListOfAvailableSAPCompositeRoles[productName].forEach(compositeRole => {\r\n prepareSAPAccessItem(compositeRole);\r\n var foundCompositeRole = sapRequest.Roles.find(sapCompositeRole => sapCompositeRole.Id == compositeRole.Id);\r\n\r\n if (foundCompositeRole != null) {\r\n compositeRole.Action = foundCompositeRole.Action;\r\n compositeRole.AccessType = foundCompositeRole.AccessType;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n if (request.EbsRequest != null) {\r\n if (request.EbsRequest.User != null) {\r\n vm.User.OracleUser.ConfirmPassword = request.EbsRequest.User.Password;\r\n vm.User.OracleUser.Action = request.EbsRequest.User.Action;\r\n vm.User.OracleUser.ProductId = request.EbsRequest.User.ProductId;\r\n vm.User.OracleUser.ApplicationType = request.EbsRequest.User.ApplicationType;\r\n vm.User.OracleUser.Expiration = request.EbsRequest.User.PasswordAccesses === null && request.EbsRequest.User.PasswordDays === null ? 'None' : request.EbsRequest.User.PasswordAccesses === null ? 'Days' : 'Accesses';\r\n vm.User.OracleUser.ExpirationValue = vm.User.OracleUser.Expiration === 'Days' ? request.EbsRequest.User.PasswordDays : request.EbsRequest.User.PasswordAccesses;\r\n vm.User.OracleUser.UserChanges = request.EbsRequest.User.UserChanges;\r\n }\r\n vm.User.OracleUser.ApplicationId = oracle_application_id;\r\n\r\n if (vm.ListOfSelectedOracleResponsibilities != null) {\r\n vm.ListOfSelectedOracleResponsibilities.forEach(function (responsibility) {\r\n responsibility.Action = null;\r\n });\r\n vm.ListOfSelectedOracleResponsibilities.forEach(function (responsibility) {\r\n prepareORAccessItem(responsibility);\r\n\r\n var foundResponsibility = request.EbsRequest.Responsibilities.find(function (oracle) {\r\n return oracle.Id == responsibility.Id;\r\n });\r\n\r\n if (foundResponsibility != null) {\r\n responsibility.Action = foundResponsibility.Action;\r\n responsibility.AccessType = foundResponsibility.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableOracleResponsibilities != null) {\r\n vm.ListOfAvailableOracleResponsibilities.forEach(function (responsibility) {\r\n responsibility.Action = null;\r\n });\r\n vm.ListOfAvailableOracleResponsibilities.forEach(function (responsibility) {\r\n prepareORAccessItem(responsibility);\r\n\r\n var foundResponsibility = request.EbsRequest.Responsibilities.find(function (oracle) {\r\n return oracle.Id == responsibility.Id;\r\n });\r\n\r\n if (foundResponsibility != null) {\r\n responsibility.Action = foundResponsibility.Action;\r\n responsibility.AccessType = foundResponsibility.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfSelectedOracleRoles != null) {\r\n vm.ListOfSelectedOracleRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfSelectedOracleRoles.forEach(function (role) {\r\n prepareORAccessItem(role);\r\n\r\n var foundRole = request.EbsRequest.Roles.find(function (oracle) {\r\n return oracle.Id == role.Id;\r\n });\r\n\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableOracleRoles != null) {\r\n vm.ListOfAvailableOracleRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfAvailableOracleRoles.forEach(function (role) {\r\n prepareORAccessItem(role);\r\n\r\n var foundRole = request.EbsRequest.Roles.find(function (oracle) {\r\n return oracle.Id == role.Id;\r\n });\r\n\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // Oracle Cloud\r\n if (request.OrfcRequest != null) {\r\n if (request.OrfcRequest.User != null) {\r\n vm.User.OracleCloudUser = request.OrfcRequest.User;\r\n vm.User.OracleCloudUser.Action = request.OrfcRequest.User.Action;\r\n vm.User.OracleCloudUser.PasswordConfirm = request.OrfcRequest.User.Password;\r\n vm.User.OracleCloudUser.UserChanges = request.OrfcRequest.User.UserChanges;\r\n }\r\n vm.User.OracleCloudUser.ApplicationId = oracleCloud_application_id;\r\n\r\n if (vm.User.OrfcUser != null && vm.ListOfStoredOracleCloudRoles != null) {\r\n //Remove all actions in between builds\r\n vm.ListOfStoredOracleCloudRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfStoredOracleCloudRoles.forEach(function (role) {\r\n prepareORFCAccessItem(role);\r\n\r\n var foundRole = request.OrfcRequest.Roles.find(function (orfcRole) {\r\n return orfcRole.RoleID == role.RoleID;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableOracleCloudRoles != null) {\r\n vm.ListOfAvailableOracleCloudRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfAvailableOracleCloudRoles.forEach(function (role) {\r\n prepareORFCAccessItem(role);\r\n\r\n var foundRole = request.OrfcRequest.Roles.find(function (orfcRole) {\r\n return orfcRole.RoleID == role.RoleID;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n }\r\n // END\r\n\r\n if (request.GPRequest != null) {\r\n if (request.GPRequest.User != null) {\r\n vm.User.GPUser.ConfirmPassword = request.GPRequest.User.Password;\r\n vm.User.GPUser.Action = request.GPRequest.User.Action;\r\n vm.User.GPUser.ProductId = request.GPRequest.User.ProductId;\r\n vm.User.GPUser.ApplicationType = request.GPRequest.User.ApplicationType;\r\n vm.User.GPUser.UserChanges = request.GPRequest.User.UserChanges;\r\n }\r\n vm.User.GPUser.ApplicationId = gp_application_id;\r\n\r\n if (vm.User.GPUser != null && vm.ListOfStoredGPRoles != null) {\r\n //Remove all actions in between builds\r\n vm.ListOfStoredGPRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfStoredGPRoles.forEach(function (role) {\r\n prepareGPAccessItem(role);\r\n\r\n var foundRole = request.GPRequest.RoleCompanies.find(function (nsRole) {\r\n return nsRole.Role.Id == role.Role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableGPRoles != null) {\r\n vm.ListOfAvailableGPRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfAvailableGPRoles.forEach(function (role) {\r\n prepareGPAccessItem(role);\r\n\r\n var foundRole = request.GPRequest.RoleCompanies.find(function (nsRole) {\r\n return nsRole.Role.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfSelectedGPCompanies != null) {\r\n vm.ListOfSelectedGPCompanies.forEach(function (perm) {\r\n perm.Action = null;\r\n });\r\n vm.ListOfSelectedGPCompanies.forEach(function (perm) {\r\n prepareGPAccessItem(perm);\r\n\r\n var foundPermission = request.GPRequest.UserCompanies.find(function (selPerm) {\r\n return selPerm.Company.Id == perm.Id;\r\n });\r\n if (foundPermission != null) {\r\n perm.Action = foundPermission.Action;\r\n perm.AccessType = foundPermission.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableGPCompanies != null) {\r\n vm.ListOfAvailableGPCompanies.forEach(function (perm) {\r\n perm.Action = null;\r\n });\r\n vm.ListOfAvailableGPCompanies.forEach(function (perm) {\r\n prepareGPAccessItem(perm);\r\n\r\n var foundPermission = request.GPRequest.UserCompanies.find(function (selPerm) {\r\n return selPerm.Company.Id == perm.Id;\r\n });\r\n if (foundPermission != null) {\r\n perm.Action = foundPermission.Action;\r\n perm.AccessType = foundPermission.AccessType;\r\n }\r\n });\r\n }\r\n }\r\n if (request.NavRequest != null) {\r\n if (request.NavRequest.User != null) {\r\n vm.User.NAVUser.Action = request.NavRequest.User.Action;\r\n vm.User.NAVUser.ProductId = request.NavRequest.User.ProductId;\r\n vm.User.NAVUser.ApplicationType = request.NavRequest.User.ApplicationType;\r\n vm.User.NAVUser.UserChanges = request.NavRequest.User.UserChanges;\r\n }\r\n vm.User.NAVUser.ApplicationId = netsuite_application_id;\r\n\r\n if (vm.ListOfSelectedNAVPermissionSets != null) {\r\n //Remove all actions in between builds\r\n vm.ListOfSelectedNAVPermissionSets.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfSelectedNAVPermissionSets.forEach(function (role) {\r\n prepareNAVAccessItem(role);\r\n\r\n var foundRole = request.NavRequest.PermissionSets.find(function (nsRole) {\r\n return nsRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableNAVPermissionSets != null) {\r\n vm.ListOfAvailableNAVPermissionSets.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfAvailableNAVPermissionSets.forEach(function (role) {\r\n prepareNAVAccessItem(role);\r\n\r\n var foundRole = request.NavRequest.PermissionSets.find(function (nsRole) {\r\n return nsRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfSelectedNAVUserGroups != null) {\r\n //Remove all actions in between builds\r\n vm.ListOfSelectedNAVUserGroups.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfSelectedNAVUserGroups.forEach(function (role) {\r\n prepareNAVAccessItem(role);\r\n\r\n var foundRole = request.NavRequest.UserGroups.find(function (nsRole) {\r\n return nsRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableNAVUserGroups != null) {\r\n vm.ListOfAvailableNAVUserGroups.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfAvailableNAVUserGroups.forEach(function (role) {\r\n prepareNAVAccessItem(role);\r\n\r\n var foundRole = request.NavRequest.UserGroups.find(function (nsRole) {\r\n return nsRole.Id == role.Id;\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n });\r\n }\r\n }\r\n if (request.D365SRequest != null) {\r\n if (request.D365SRequest.User != null) {\r\n vm.User.D365SUser.Action = request.D365SRequest.User.Action;\r\n vm.User.D365SUser.ProductId = request.D365SRequest.User.ProductId;\r\n vm.User.D365SUser.ApplicationType = request.D365SRequest.User.ApplicationType;\r\n vm.User.D365SUser.UserChanges = request.D365SRequest.User.UserChanges;\r\n }\r\n vm.User.D365SUser.ApplicationId = d365s_application_id;\r\n\r\n if (vm.ListOfSelectedD365SRoles != null) {\r\n vm.ListOfSelectedD365SRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfSelectedD365SRoles.forEach(function (role) {\r\n\r\n var foundRole = request.D365SRequest.UserRoles.find(function (d365sRole) {\r\n return d365sRole.Role.Id.toUpperCase() === role.Id.toUpperCase();\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareD365SAccessItem(role);\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableD365SRoles != null) {\r\n vm.ListOfAvailableD365SRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfAvailableD365SRoles.forEach(function (role) {\r\n\r\n var foundRole = request.D365SRequest.UserRoles.find(function (d365sRole) {\r\n return d365sRole.Role.Id.toUpperCase() === role.Id.toUpperCase();\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n prepareD365SAccessItem(role);\r\n });\r\n }\r\n\r\n if (vm.ListOfSelectedD365STeams != null) {\r\n vm.ListOfSelectedD365STeams.forEach(function (team) {\r\n\r\n var foundTeam = request.D365SRequest.UserTeams.find(function (d365sTeam) {\r\n return d365sTeam.Team.Id.toUpperCase() === team.Id;\r\n });\r\n if (foundTeam != null) {\r\n team.Action = foundTeam.Action;\r\n team.AccessType = foundTeam.AccessType;\r\n }\r\n\r\n prepareD365SAccessItem(team);\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableD365STeams != null) {\r\n vm.ListOfAvailableD365STeams.forEach(function (team) {\r\n\r\n var foundTeam = request.D365SRequest.UserTeams.find(function (d365sTeam) {\r\n return d365sTeam.Team.Id.toUpperCase() === team.Id;\r\n });\r\n if (foundTeam != null) {\r\n team.Action = foundTeam.Action;\r\n team.AccessType = foundTeam.AccessType;\r\n }\r\n\r\n prepareD365SAccessItem(team);\r\n });\r\n }\r\n }\r\n\r\n // PeopleSoft\r\n if (request.PsRequest != null) {\r\n if (request.PsRequest.User != null) {\r\n vm.User.PSUser.ConfirmPassword = request.PsRequest.User.Password;\r\n vm.User.PSUser.ApplicationType = request.PsRequest.User.ApplicationType;\r\n vm.User.PSUser.Action = request.PsRequest.User.Action;\r\n vm.User.PSUser.ProductId = request.PsRequest.User.ProductId;\r\n vm.User.PSUser.UserChanges = request.PsRequest.User.UserChanges;\r\n }\r\n vm.User.PSUser.ApplicationId = ps_application_id;\r\n\r\n if (vm.ListOfSelectedPSRoles != null) {\r\n vm.ListOfSelectedPSRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfSelectedPSRoles.forEach(function (role) {\r\n\r\n var foundRole = request.PsRequest.Roles.find(function (psRole) {\r\n return psRole.Name.toUpperCase() === role.Name.toUpperCase();\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n preparePSAccessItem(role);\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailablePSRoles != null) {\r\n vm.ListOfAvailablePSRoles.forEach(function (role) {\r\n role.Action = null;\r\n });\r\n vm.ListOfAvailablePSRoles.forEach(function (role) {\r\n\r\n var foundRole = request.PsRequest.Roles.find(function (psRole) {\r\n return psRole.Name.toUpperCase() == role.Name.toUpperCase();\r\n });\r\n if (foundRole != null) {\r\n role.Action = foundRole.Action;\r\n role.AccessType = foundRole.AccessType;\r\n }\r\n\r\n preparePSAccessItem(role);\r\n });\r\n }\r\n }\r\n\r\n // Salesforce\r\n if (request.SfRequest != null) {\r\n if (request.SfRequest.User != null) {\r\n vm.User.SalesforceUser.ApplicationType = request.SfRequest.User.ApplicationType;\r\n vm.User.SalesforceUser.Action = request.SfRequest.User.Action;\r\n vm.User.SalesforceUser.ProductId = request.SfRequest.User.ProductId;\r\n vm.User.SalesforceUser.UserChanges = request.SfRequest.User.UserChanges;\r\n }\r\n\r\n vm.User.SalesforceUser.ApplicationId = salesforce_application_id;\r\n\r\n if (vm.ListOfSelectedSalesforcePermissionSets != null) {\r\n vm.ListOfSelectedSalesforcePermissionSets.forEach(permission => {\r\n permission.Action = null;\r\n });\r\n vm.ListOfSelectedSalesforcePermissionSets.forEach(permission => {\r\n\r\n var foundPermission = request.SfRequest.PermissionSets.find(salesforcePermission => salesforcePermission.Name.toUpperCase() === permission.Name.toUpperCase());\r\n if (foundPermission != null) {\r\n permission.Action = foundPermission.Action;\r\n permission.AccessType = foundPermission.AccessType;\r\n }\r\n\r\n prepareSalesforceAccessItem(permission);\r\n });\r\n }\r\n\r\n if (vm.ListOfAvailableSalesforcePermissionSets != null) {\r\n vm.ListOfAvailableSalesforcePermissionSets.forEach(permission => {\r\n permission.Action = null;\r\n });\r\n vm.ListOfAvailableSalesforcePermissionSets.forEach(permission => {\r\n let foundPermission = request.SfRequest.PermissionSets.find(salesforcePermission => salesforcePermission.Name.toUpperCase() == permission.Name.toUpperCase());\r\n if (foundPermission != null) {\r\n permission.Action = foundPermission.Action;\r\n permission.AccessType = foundPermission.AccessType;\r\n }\r\n\r\n prepareSalesforceAccessItem(permission);\r\n });\r\n }\r\n\r\n if (vm.User.SalesforceUser.Profile) {\r\n let profile = vm.User.SalesforceUser.Profile,\r\n foundProfile = request.SfRequest.Profiles.find(requestProfile => requestProfile.Id === profile.Id);\r\n\r\n profile.Action = null;\r\n\r\n if (foundProfile) {\r\n profile.Action = foundProfile.Action;\r\n profile.AccessType = foundProfile.AccessType;\r\n }\r\n\r\n prepareSalesforceAccessItem(profile);\r\n }\r\n\r\n if (vm.salesforceProfiles) {\r\n let profile = vm.User.SalesforceUser.Profile,\r\n foundProfile = request.SfRequest.Profiles.find(requestProfile => requestProfile.Id == profile.Id);\r\n\r\n profile.Action = null;\r\n\r\n if (foundProfile) {\r\n profile.Action = foundProfile.Action;\r\n profile.StartDate = foundProfile.StartDate;\r\n profile.EndDate = foundProfile.EndDate;\r\n profile.AccessType = foundProfile.AccessType;\r\n }\r\n\r\n prepareSalesforceAccessItem(profile);\r\n }\r\n }\r\n // END\r\n\r\n if (toStep == \"Access Effective Dates\") {\r\n //Find the access changes after the build request returns\r\n scope.loadEffectiveDateData(request);\r\n vm.hasCompany = vm.AccessChanges.find(function (access) { return access.Company != null; }) != null;\r\n if (vm.AccessChanges.some(access => access.Action === 'Grant') && vm.AccessChanges.some(access => access.Action === 'Revoke')) {\r\n vm.allowApplyAllDates = false;\r\n } else {\r\n vm.allowApplyAllDates = true;\r\n if (vm.AccessChanges.length > 0 && vm.AccessChanges.every(access => access.Action === 'Revoke')) {\r\n vm.allDatesRevoke = true;\r\n } else {\r\n vm.allDatesRevoke = false;\r\n }\r\n }\r\n }\r\n\r\n if (toStep == \"Summary\") {\r\n //Find access and user changes for summary page\r\n scope.loadEffectiveDateData(request);\r\n vm.AccessChanges = this.findAccessChanges(request, vm.AccessChanges);\r\n vm.hasCompany = vm.AccessChanges.find(function (access) { return access.Company != null; }) != null;\r\n vm.UserChanges = this.findUserChanges(vm);\r\n }\r\n\r\n loadRequestDfrd.resolve();\r\n\r\n return $.when(loadRequestDfrd).done(function () {\r\n }).promise();\r\n\r\n };\r\n\r\n this.addEffectiveDates = function (accessItem, accessChanges) {\r\n var foundAccessItem = null;\r\n var foundAccessItems = [];\r\n var companyId = null;\r\n\r\n if (accessItem.Company != null) {\r\n if (accessItem.Company.Id != null) {\r\n companyId = accessItem.Company.Id;\r\n } else if (accessItem.Company.CompanyId != null) {\r\n companyId = accessItem.Company.CompanyId;\r\n } else {\r\n companyId = accessItem.Company;\r\n }\r\n }\r\n\r\n //ternary operator for GP since GP can grant companies as a type\r\n if (accessItem.Company != null && (accessItem.ProductId == 'GP' && accessItem.AccessType == 'Company' ? false : true)) {\r\n //Find all access items that have the same Id and AppId\r\n foundAccessItems = accessChanges.filter(access => (access.Id != null && accessItem.Id != null && access.Id == accessItem.Id || access.Role != null && accessItem.Role != null && access.Role.Id != null && access.Role.Id == accessItem.Role.Id) && access.AppId == accessItem.AppId);\r\n for (let item of foundAccessItems) {\r\n //If there is more than one filter by company\r\n if (item.Company != null) {\r\n if (item.Company.Id != null && item.Company.Id == companyId) {\r\n foundAccessItem = item;\r\n } else if (item.Company.CompanyId != null && item.Company.CompanyId == companyId) {\r\n foundAccessItem = item;\r\n } else if (item.Company == companyId) {\r\n foundAccessItem = item;\r\n }\r\n\r\n if (foundAccessItem != null) {\r\n break;\r\n }\r\n }\r\n }\r\n } else if (accessItem.Company != null && (accessItem.ProductId == 'GP' && accessItem.AccessType == 'Company')) {\r\n foundAccessItem = accessChanges.find(function (item) {\r\n return item.Company.Id == companyId && item.AccessType == 'Company';\r\n });\r\n } else if (accessItem.RoleID) { // If RoleID exists, Oracle Cloud\r\n foundAccessItem = accessChanges.find(access => {\r\n return access.RoleID == accessItem.RoleID && access.AppId == accessItem.AppId;\r\n });\r\n }\r\n else {\r\n foundAccessItem = accessChanges.find(access => {\r\n return (access.Id != null && accessItem.Id != null && access.Id == accessItem.Id || access.Role != null && accessItem.Role != null && access.Role.Id != null && access.Role.Id == accessItem.Role.Id || access.SkuId != null && accessItem.SkuId != null & access.SkuId == accessItem.SkuId || access.Team != null && accessItem.Team != null && access.Team.Id != null && access.Team.Id == accessItem.Team.Id || access.Name != null && accessItem.Name != null && access.Name == accessItem.Name) && access.AppId == accessItem.AppId && access.Company == null;\r\n });\r\n }\r\n\r\n //Populate Start/End dates\r\n if (foundAccessItem != null) {\r\n accessItem.StartDate = foundAccessItem.StartDate;\r\n accessItem.EndDate = foundAccessItem.EndDate;\r\n }\r\n };\r\n\r\n this.getSelfServiceMapping = getSelfServiceMapping;\r\n\r\n async function getSelfServiceMapping() {\r\n try {\r\n let response = await $http.get(apiUrl + 'api/identitymanager/users/selfservice');\r\n return response.data;\r\n } catch (err) {\r\n throw err;\r\n }\r\n }\r\n\r\n //Removes null instances and empty arrays from 'data'\r\n function terminationSummaryFilter(data) {\r\n\r\n Object.keys(data).forEach(key => {\r\n if (data[key] === null) {\r\n delete data[key];\r\n }\r\n });\r\n\r\n if (Array.isArray(data)) {\r\n const temp = data.reduce((r, v) => {\r\n v = terminationSummaryFilter(v);\r\n if (v !== '') r.push(v);\r\n return r;\r\n }, []);\r\n return temp.length\r\n ? temp\r\n : '';\r\n }\r\n if (data && typeof data === 'object') {\r\n const temp = Object.entries(data).reduce((r, [k, v]) => {\r\n v = terminationSummaryFilter(v);\r\n if (v !== '') r.push([k, v]);\r\n return r;\r\n }, []);\r\n return temp.length\r\n ? Object.fromEntries(temp)\r\n : '';\r\n }\r\n return data;\r\n }\r\n\r\n //Creates a new object with a subset of data properties based on the ProductId/ProductType of the data instance\r\n function createUserDetailsInstances(data) {\r\n for (let i = 0; i < data.length; i++) {\r\n if (data[i].ProductId) {\r\n switch (data[i].ProductId) {\r\n case 'AX7': //Dynamics 365FO\r\n data[i] = {\r\n UserID: data[i].UserId,\r\n UserName: data[i].UserName,\r\n Email: data[i].Email,\r\n Company: data[i].Company,\r\n ProductId: data[i].ProductId\r\n };\r\n break;\r\n case 'NS': //Netsuite\r\n data[i] = {\r\n FirstName: data[i].FirstName,\r\n LastName: data[i].LastName,\r\n Email: data[i].Email,\r\n Subsidiary: data[i].Subsidiary.Name,\r\n ProductId: data[i].ProductId\r\n };\r\n break;\r\n case 'ORFC': //Oracle Cloud\r\n data[i] = {\r\n UserName: data[i].UserName,\r\n FirstName: data[i].FirstName,\r\n LastName: data[i].LastName,\r\n Email: data[i].Email,\r\n ProductId: data[i].ProductId\r\n };\r\n break;\r\n case 'OR': //Oracle EBS\r\n data[i] = {\r\n UserName: data[i].Name,\r\n Description: data[i].Description,\r\n Email: data[i].Email,\r\n ProductId: data[i].ProductId\r\n };\r\n break;\r\n case 'SF': //Salesforce\r\n data[i] = {\r\n FirstName: data[i].FirstName,\r\n LastName: data[i].LastName,\r\n Alias: data[i].Alias,\r\n Email: data[i].Email,\r\n UserName: data[i].Username,\r\n NickName: data[i].Nickname,\r\n ProductId: data[i].ProductId\r\n };\r\n break;\r\n case 'AAD': //Azure Active Directory now Entra ID\r\n data[i] = {\r\n DisplayName: data[i].DisplayName,\r\n UserName: data[i].UserPrincipalName,\r\n FirstName: data[i].GivenName,\r\n LastName: data[i].SurName,\r\n ProductId: data[i].ProductId\r\n };\r\n break;\r\n case 'AX': //Dynamics AX 2012\r\n data[i] = {\r\n UserID: data[i].UserId,\r\n UserName: data[i].UserName,\r\n Company: data[i].Company,\r\n Email: data[i].Email,\r\n ProductId: data[i].ProductId\r\n };\r\n break;\r\n case 'D365S': //Dynamics 365 CE\r\n data[i] = {\r\n FirstName: data[i].FirstName,\r\n LastName: data[i].LastName,\r\n Email: data[i].InternalEmailAddress,\r\n ProductId: data[i].ProductId\r\n };\r\n break;\r\n case 'GP': //Dynamics GP\r\n data[i] = {\r\n UserID: data[i].Id,\r\n UserName: data[i].UserName,\r\n ProductId: data[i].ProductId\r\n };\r\n break;\r\n case 'NAV': //Dynamics NAV\r\n data[i] = {\r\n UserName: data[i].UserName,\r\n FullName: data[i].FullName,\r\n ProductId: data[i].ProductId\r\n };\r\n break;\r\n case 'PS': //Peoplesoft\r\n data[i] = {\r\n UserID: data[i].UserId,\r\n Description: data[i].Description,\r\n PrimaryEmail: data[i].PrimaryEmail,\r\n ProductId: data[i].ProductId\r\n };\r\n break;\r\n default:\r\n data[i] = {\r\n Name: data[i].Name,\r\n Email: data[i].Email,\r\n ProductId: data[i].ProductId\r\n }\r\n break;\r\n }\r\n } else {\r\n data[i] = { //SAP User case\r\n FirstName: data[i][0].FirstName,\r\n LastName: data[i][0].LastName,\r\n Email: data[i][0].Email,\r\n User: data[i][0].UserName,\r\n ProductId: data[i][0].ProductId\r\n }\r\n }\r\n }\r\n }\r\n\r\n //Returns the type of value\r\n function typeOf(value) {\r\n return typeof value; \r\n }\r\n\r\n //Functions to add AppId and ProductId onto each access item. Used for display purposes on UI side\r\n function prepareAADAccessItem(access) {\r\n access.AppId = aad_application_id;\r\n access.ProductId = 'AAD';\r\n\r\n return access;\r\n }\r\n function prepareAX7AccessItem(access) {\r\n access.AppId = ax7_application_id;\r\n access.ProductId = 'AX7';\r\n\r\n return access;\r\n }\r\n function prepareAX2012AccessItem(access) {\r\n access.AppId = ax_application_id;\r\n access.ProductId = 'AX';\r\n\r\n return access;\r\n }\r\n function prepareORAccessItem(access) {\r\n access.AppId = oracle_application_id;\r\n access.ProductId = 'OR';\r\n\r\n return access;\r\n }\r\n function prepareORFCAccessItem(access) {\r\n access.AppId = oracleCloud_application_id;\r\n access.ProductId = 'ORFC';\r\n\r\n return access;\r\n }\r\n function prepareNSAccessItem(access) {\r\n access.AppId = netsuite_application_id;\r\n access.ProductId = 'NS';\r\n\r\n return access;\r\n }\r\n function prepareUniversalAccessItem(access, productName) {\r\n access.AppId = universalProduct_application_id;\r\n access.ProductId = productName;\r\n return access;\r\n }\r\n function prepareSAPAccessItem(access) {\r\n access.AppId = sap_application_id;\r\n\r\n return access;\r\n }\r\n function prepareNAVAccessItem(access) {\r\n access.AppId = nav_application_id;\r\n access.ProductId = 'NAV';\r\n\r\n return access;\r\n }\r\n function prepareGPAccessItem(access) {\r\n access.AppId = gp_application_id;\r\n access.ProductId = 'GP';\r\n\r\n return access;\r\n }\r\n function prepareD365SAccessItem(access) {\r\n access.AppId = d365s_application_id;\r\n access.ProductId = 'D365S';\r\n\r\n return access;\r\n }\r\n function preparePSAccessItem(access) {\r\n access.AppId = ps_application_id;\r\n access.ProductId = 'PS';\r\n\r\n return access;\r\n }\r\n function prepareSalesforceAccessItem(access) {\r\n access.AppId = salesforce_application_id;\r\n access.ProductId = 'SF';\r\n\r\n return access;\r\n }\r\n this.searchByKey = function (obj, key) {\r\n for (var i in obj) {\r\n if (obj[i].Key == key) {\r\n return obj[i].Value;\r\n }\r\n }\r\n return 0;\r\n };\r\n}\r\n\r\nconst appMap = [{\r\n key: \"AadUser\",\r\n id: aad_application_id\r\n}, {\r\n key: \"Ax7User\",\r\n id: ax7_application_id\r\n}, {\r\n key: \"AxUser\",\r\n id: ax_application_id\r\n}, {\r\n key: \"D365SUser\",\r\n id: d365s_application_id\r\n}, {\r\n key: \"EbsUser\",\r\n id: oracle_application_id\r\n}, {\r\n key: \"GPUser\",\r\n id: gp_application_id\r\n}, {\r\n key: \"NavUser\",\r\n id: nav_application_id\r\n}, {\r\n key: \"NetSuiteUser\",\r\n id: netsuite_application_id\r\n}, {\r\n key: \"OrfcUser\",\r\n id: oracleCloud_application_id\r\n}, {\r\n key: \"PsUserRequest\",\r\n id: ps_application_id\r\n}, {\r\n key: \"SfUserRequest\",\r\n id: salesforce_application_id\r\n}, {\r\n key: \"SapUser\",\r\n id: sap_application_id\r\n}, {\r\n key: \"UvUser\",\r\n id: universalProduct_application_id\r\n}];\r\n\r\nfunction setVisibleAndSelectedApps(data, app) {\r\n let map = appMap.find(item => item.id === app.Id),\r\n appData = data[map.key],\r\n isArray = Array.isArray(appData),\r\n errors = data.Errors,\r\n subApp;\r\n\r\n if (appData && !isArray) {\r\n app.selected = true;\r\n app.Visible = true;\r\n } else if (!isArray) {\r\n app.Visible = false;\r\n } else if (isArray && appData.length) {\r\n subApp = appData.find(application => application.ProductId === app.ProductID);\r\n\r\n if (subApp) {\r\n app.Visible = true;\r\n app.selected = true;\r\n } else {\r\n app.Visible = false;\r\n }\r\n } else {\r\n app.Visible = false;\r\n }\r\n\r\n // If app has errors, make sure it is visible\r\n if (!app.Visible && !isArray) {\r\n app.Visible = errors.some(error => error.ApplicationID === app.Id);\r\n } else if (!app.Visible && subApp) {\r\n app.Visible = errors.some(error => error.ApplicationID === subApp.Id);\r\n }\r\n\r\n return app;\r\n}\r\n","export default /*@ngInject*/ function ($q, RequestManagementNAVService) {\r\n\r\n var self = this;\r\n\r\n this.loadNAV = function ($scope, openRequest) {\r\n //Load Data for Products after search row is selected\r\n var navDfrd = $.Deferred();\r\n\r\n self.loadNAVData($scope);\r\n\r\n try {\r\n self.loadPermissions($scope, openRequest).then(function () {\r\n navDfrd.resolve();\r\n }, function errorCallback(response) {\r\n navDfrd.reject(response);\r\n });\r\n }\r\n catch (e) {\r\n navDfrd.reject(e);\r\n }\r\n\r\n return $.when(navDfrd).done(function () {\r\n }).promise();\r\n\r\n };\r\n\r\n this.loadPermissions = function ($scope) {\r\n let permissionsDfrd = $.Deferred(),\r\n promises = [],\r\n navPermissionSets = [],\r\n navUserGroups = [],\r\n pendingPermissionSets = $scope.vm.User?.NAVUser?.PendingPermissionSets || [],\r\n pendingUserGroups = $scope.vm.User?.NAVUser?.PendingUserGroups || [];\r\n\r\n $scope.vm.ListOfSelectedNAVPermissionSets = [];\r\n $scope.vm.ListOfAvailableNAVPermissionSets = [];\r\n $scope.vm.ListOfSelectedNAVUserGroups = [];\r\n $scope.vm.ListOfAvailableNAVUserGroups = [];\r\n\r\n if ($scope.vm.User.NAVUser != null) {\r\n navPermissionSets = $scope.vm.User.NAVUser.PermissionSets;\r\n navUserGroups = $scope.vm.User.NAVUser.UserGroups;\r\n }\r\n\r\n //Load Available NAV Roles then process existing security\r\n promises.push(\r\n RequestManagementNAVService.getAllPermissionSets().then(response => {\r\n $scope.vm.ListOfAvailableNAVPermissionSets = response.data.filter(applyPending.bind(null, pendingPermissionSets));\r\n })\r\n );\r\n\r\n promises.push(RequestManagementNAVService.getAllCompanies().then(response => {\r\n $scope.vm.ListOfNAVCompanies = response.data;\r\n }));\r\n\r\n promises.push(RequestManagementNAVService.getAllProfiles().then(response => {\r\n $scope.vm.NAVProfileDataSource = response.data;\r\n }));\r\n\r\n promises.push(RequestManagementNAVService.getAllUserGroups().then(response => {\r\n $scope.vm.ListOfAvailableNAVUserGroups = response.data.filter(applyPending.bind(null, pendingUserGroups));\r\n }));\r\n\r\n $q.all(promises).then(function () {\r\n if ($scope.defaultRoleTemplate && $scope.vm.wizardMode === \"New\" && !$scope.vm.requestToEdit) {\r\n let defaultPermissionSets = $scope.defaultRoleTemplate.Roles.filter(role => role.TypeId === \"Permission Set\" && role.ProductType === \"NAV\");\r\n\r\n navPermissionSets = [...defaultPermissionSets];\r\n }\r\n\r\n if (navPermissionSets != null && $scope.vm.ListOfSelectedNAVPermissionSets != null) {\r\n let permissionSetArray = [];\r\n\r\n navPermissionSets.reduce(consolidatePermissionSets, permissionSetArray);\r\n\r\n function consolidatePermissionSets(permissions, item) {\r\n let permission = permissions.find(p => p.Id === item.Id);\r\n\r\n if (permission) {\r\n permission.Companies.push({\r\n Name: item.Company\r\n });\r\n permission.CompanyNames.push(item.Company);\r\n } else {\r\n item = {\r\n Id: item.Id,\r\n Name: item.Name,\r\n Companies: [{\r\n Name: item.Company\r\n }],\r\n CompanyNames: [item.Company]\r\n }\r\n permissions.push(item);\r\n }\r\n\r\n return permissions;\r\n }\r\n\r\n permissionSetArray.forEach(function (role) {\r\n if ($scope.vm.ListOfSelectedNAVPermissionSets.none(selectedRole => selectedRole.Id == role.Id)) {\r\n\r\n $scope.vm.ListOfSelectedNAVPermissionSets.unshift({\r\n Id: role.Id,\r\n Name: role.Name,\r\n IsAssignable: role.IsAssignable,\r\n Identifier: role.Identifier,\r\n Companies: role.Companies,\r\n CompanyNames: role.CompanyNames,\r\n Pending: pendingPermissionSets.some(pendingPermissionSet => pendingPermissionSet.Id === role.Id)\r\n });\r\n\r\n $scope.vm.ListOfAvailableNAVPermissionSets.forEach((row, j) => {\r\n if (row.Id == role.Id) {\r\n $scope.vm.ListOfAvailableNAVPermissionSets.splice(j, 1);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n if (navUserGroups != null && $scope.vm.ListOfSelectedNAVUserGroups != null) {\r\n //Group all the companies for each Permission Set under one single permission set\r\n let userGroupArray = [];\r\n\r\n navUserGroups.reduce(consolidateUserGroups, userGroupArray);\r\n\r\n function consolidateUserGroups(userGroups, item) {\r\n let userGroup = userGroups.find(group => group.Id === item.Id);\r\n\r\n if (userGroup) {\r\n userGroup.Companies.push({\r\n Name: item.Company\r\n });\r\n userGroup.CompanyNames.push(item.Company);\r\n } else {\r\n item = {\r\n Id: item.Id,\r\n Name: item.Name,\r\n PermissionSets: item.PermissionSets,\r\n Companies: [{\r\n Name: item.Company\r\n }],\r\n CompanyNames: [item.Company]\r\n }\r\n userGroups.push(item);\r\n }\r\n\r\n return userGroups;\r\n }\r\n\r\n userGroupArray.forEach(function (userGroup) {\r\n if ($scope.vm.ListOfSelectedNAVUserGroups.none(selectedUserGroup => selectedUserGroup.Id === userGroup.Id)) {\r\n\r\n $scope.vm.ListOfSelectedNAVUserGroups.unshift({\r\n Id: userGroup.Id,\r\n Name: userGroup.Name,\r\n Companies: userGroup.Companies,\r\n CompanyNames: userGroup.CompanyNames,\r\n Pending: pendingUserGroups.some(pendingUserGroup => pendingUserGroup.Id === userGroup.Id)\r\n });\r\n\r\n $scope.vm.ListOfAvailableNAVUserGroups.forEach((row, j) => {\r\n if (row.Id === userGroup.Id) {\r\n $scope.vm.ListOfAvailableNAVUserGroups.splice(j, 1);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n $scope.vm.ListOfAvailableNAVPermissionSets = $scope.vm.ListOfAvailableNAVPermissionSets.filter(permissionSet => permissionSet.IsAssignable);\r\n $scope.navUserLoaded = true;\r\n permissionsDfrd.resolve();\r\n });\r\n\r\n return $.when(permissionsDfrd).done(function () {\r\n }).promise();\r\n\r\n };\r\n\r\n this.loadNAVData = function ($scope) {\r\n if ($scope.vm.User.NAVUser == null) {\r\n $scope.vm.User.NAVUser = {};\r\n $scope.vm.User.NAVUser.State = '0';\r\n }\r\n };\r\n}\r\n\r\nfunction applyPending(pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem.Id === item.Id);\r\n }\r\n\r\n return item;\r\n}","export default /*@ngInject*/ function ($http) {\r\n\r\n this.getNAVLicenseTypes = function () {\r\n\r\n return [\r\n {\r\n Name: 'Full User',\r\n Id: 0\r\n },\r\n {\r\n Name: 'Limited User',\r\n Id: 1\r\n },\r\n {\r\n Name: 'Device Only User',\r\n Id: 2\r\n },\r\n {\r\n Name: 'Windows Group',\r\n Id: 3\r\n },\r\n {\r\n Name: 'External User',\r\n Id: 4\r\n }\r\n ];\r\n };\r\n\r\n\r\n this.getExistingNAVUserSecurity = function (userId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/nav/employees/userid/' + userId + '/'\r\n });\r\n };\r\n\r\n this.getAllPermissionSets = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/nav/permissionsets'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading NAV Permission Sets';\r\n }\r\n };\r\n\r\n this.getAllCompanies = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/nav/companies'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading NAV Companies';\r\n }\r\n };\r\n\r\n this.getAllProfiles = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/nav/profiles'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading NAV Profiles';\r\n }\r\n };\r\n\r\n this.getAllUserGroups = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/nav/usergroups'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading NAV User Groups';\r\n }\r\n };\r\n\r\n this.getClassesBySubsidiary = function (subsidiaryId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/nav/subsidiaries/' + subsidiaryId + '/classes'\r\n });\r\n };\r\n\r\n\r\n}","export default /*@ngInject*/ function ($q, RequestManagementNetSuiteService) {\r\n\r\n var self = this;\r\n\r\n this.loadNetSuite = function ($scope, subsidiaryId, openRequest) {\r\n //Load Data for Products after search row is selected\r\n var netSuiteDfrd = $.Deferred();\r\n\r\n if (subsidiaryId != null) {\r\n self.loadNetSuiteData($scope, subsidiaryId);\r\n }\r\n\r\n try {\r\n self.loadPermissions($scope, openRequest).then(function () {\r\n netSuiteDfrd.resolve();\r\n }, function errorCallback(response) {\r\n netSuiteDfrd.reject(response);\r\n });\r\n }\r\n catch (e) {\r\n netSuiteDfrd.reject(e);\r\n }\r\n\r\n return $.when(netSuiteDfrd).done(function () {\r\n }).promise();\r\n\r\n };\r\n\r\n this.loadPermissions = function ($scope, openRequest) {\r\n let permissionsDfrd = $.Deferred(),\r\n promises = [],\r\n nsRoles = [],\r\n nsPermissions = [],\r\n pendingRoles = $scope.vm.User?.NetSuiteUser?.PendingRoles || [],\r\n pendingPermissions = $scope.vm.User?.NetSuiteUser?.PendingPermissions || [];\r\n\r\n $scope.vm.ListOfSelectedNetSuiteRoles = [];\r\n $scope.vm.ListOfSelectedNetSuitePermissions = [];\r\n\r\n if ($scope.vm.User.NetSuiteUser != null) {\r\n\r\n //If any nsRoles are selected in the request set the nsRoles valid property to true below\r\n $scope.vm.numberOfNetSuiteRolesValid = false;\r\n\r\n nsRoles = $scope.vm.User.NetSuiteUser.Roles;\r\n nsPermissions = $scope.vm.User.NetSuiteUser.Permissions;\r\n\r\n if (nsRoles.length > 0) {\r\n $scope.vm.numberOfNetSuiteRolesValid = true;\r\n }\r\n }\r\n\r\n //Load Available nsRoles then process existing security\r\n promises.push(\r\n RequestManagementNetSuiteService.getAllRoles().then(response => {\r\n $scope.vm.ListOfAvailableNetSuiteRoles = response.data.map(applyPending.bind(null, pendingRoles));\r\n })\r\n );\r\n\r\n //Load Levels list for existing users global nsPermissions. also pre selecting level in the dropdown\r\n promises.push(RequestManagementNetSuiteService.getAllPermissions().then(response => {\r\n $scope.vm.ListOfAvailableNetSuitePermissions = response.data.map(applyPending.bind(null, pendingPermissions));\r\n }));\r\n\r\n promises.push(RequestManagementNetSuiteService.getAllSubsidiaries().then(function (response) {\r\n $scope.vm.NSSubsidaryDataSource = response.data;\r\n }));\r\n\r\n $q.all(promises).then(function () {\r\n if ($scope.defaultRoleTemplate && $scope.vm.wizardMode === \"New\" && !$scope.vm.requestToEdit) {\r\n let defaultRoles = $scope.defaultRoleTemplate.Roles.filter(role => role.TypeId === \"Role\" && role.ProductType === \"NS\");\r\n\r\n if (defaultRoles.length) {\r\n $scope.vm.numberOfNetSuiteRolesValid = true;\r\n }\r\n\r\n $scope.vm.ListOfSelectedNetSuiteRoles = [...defaultRoles];\r\n $scope.vm.ListOfAvailableNetSuiteRoles = $scope.vm.ListOfAvailableNetSuiteRoles.filter(availableRole => {\r\n let selectedRole = $scope.vm.ListOfSelectedNetSuiteRoles.find(selectedRole => selectedRole.Identifier === availableRole.Identifier);\r\n\r\n if (selectedRole) {\r\n selectedRole = Object.merge(selectedRole, availableRole);\r\n }\r\n\r\n return !selectedRole;\r\n });\r\n } else if (nsRoles != null && $scope.vm.ListOfSelectedNetSuiteRoles != null) {\r\n nsRoles.forEach(function (role) {\r\n if ($scope.vm.ListOfSelectedNetSuiteRoles.none(selectedRole => selectedRole.Id === role.Id)) {\r\n\r\n $scope.vm.ListOfSelectedNetSuiteRoles.unshift({\r\n Id: role.Id,\r\n Name: role.Name,\r\n IsAssignable: role.IsAssignable,\r\n Identifier: role.Identifier,\r\n Pending: pendingRoles.find(pendingRole => pendingRole.Id === role.Id)\r\n });\r\n }\r\n\r\n if ($scope.vm.ListOfAvailableNetSuiteRoles.some(availableRole => {\r\n return availableRole.Id === role.Id;\r\n })) {\r\n $scope.vm.ListOfAvailableNetSuiteRoles.forEach(function (row, j) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableNetSuiteRoles.splice(j, 1);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n //Global Permissions\r\n var foundItemArray = [];\r\n foundItemArray = [];\r\n\r\n var availPermission = null;\r\n var level = null;\r\n var globalPermissionAccess = null;\r\n\r\n //Load user's existing permissions\r\n if (nsPermissions != null && $scope.vm.ListOfAvailableNetSuitePermissions != null) {\r\n nsPermissions.forEach(function (globalPermission) {\r\n\r\n availPermission = $scope.vm.ListOfAvailableNetSuitePermissions.filter(e => e.Id == globalPermission.Id)[0];\r\n\r\n if (globalPermission.EventType == \"Revoke\") {\r\n //Dont add the item to the selected list\r\n }\r\n else {\r\n if (availPermission != null && availPermission.Levels != null) {\r\n level = availPermission.Levels.filter(e => e.Id == globalPermission.Levels[0].Id)[0];\r\n\r\n //Only add it to the list if it's not already there\r\n if ($scope.vm.ListOfSelectedNetSuitePermissions != null && $scope.vm.ListOfSelectedNetSuitePermissions.none(role => role.Id == globalPermission.Id)) {\r\n //Do not modify the lists if the global permission is in the request access list\r\n if ($scope.vm.reqAccesses == null || $scope.vm.reqAccesses != null && $scope.vm.reqAccesses.none(raGlobalPermission => JSON.parse(raGlobalPermission.Access.Id) == globalPermission.Id)) {\r\n $scope.vm.ListOfSelectedNetSuitePermissions.unshift({\r\n Id: globalPermission.Id,\r\n Name: globalPermission.Name,\r\n Levels: availPermission.Levels,\r\n selectedLevel: level,\r\n Pending: pendingPermissions.find(pendingPermission => pendingPermission.Id === globalPermission.Id)\r\n });\r\n\r\n $scope.vm.existingGlobalPermissions.unshift({\r\n Id: globalPermission.Id,\r\n Name: globalPermission.Name,\r\n Levels: availPermission.Levels,\r\n selectedLevel: level,\r\n Pending: pendingPermissions.find(pendingPermission => pendingPermission.Id === globalPermission.Id)\r\n });\r\n\r\n $scope.vm.ListOfAvailableNetSuitePermissions.forEach(function (row, j) {\r\n if (row.Id == globalPermission.Id) {\r\n $scope.vm.ListOfAvailableNetSuitePermissions.splice(j, 1);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n $scope.vm.ListOfAvailableNetSuiteRoles = $scope.vm.ListOfAvailableNetSuiteRoles.filter(role => role.IsAssignable);\r\n $scope.netSuiteUserLoaded = true;\r\n permissionsDfrd.resolve();\r\n });\r\n\r\n return $.when(permissionsDfrd).done(function () {\r\n }).promise();\r\n\r\n };\r\n\r\n this.loadNetSuiteData = function ($scope, subsidiaryId) {\r\n RequestManagementNetSuiteService.getDepartmentsBySubsidiary(subsidiaryId).then(function (response) {\r\n $scope.vm.NSDepartmentDataSource = response.data;\r\n });\r\n\r\n RequestManagementNetSuiteService.getClassesBySubsidiary(subsidiaryId).then(function (response) {\r\n $scope.vm.NSClassDataSource = response.data;\r\n });\r\n\r\n RequestManagementNetSuiteService.getLocationsBySubsidiary(subsidiaryId).then(function (response) {\r\n $scope.vm.NSLocationDataSource = response.data;\r\n });\r\n };\r\n}\r\n\r\nfunction applyPending(pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem.Id === item.Id);\r\n }\r\n\r\n return item;\r\n}","export default /*@ngInject*/ function ($http) {\r\n\r\n this.getExistingNetSuiteUserSecurity = function (userId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ns/employees/userid/' + userId + '/'\r\n });\r\n };\r\n\r\n this.getAllRoles = function () {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ns/roles'\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading NetSuite Roles';\r\n }\r\n };\r\n\r\n this.getAllPermissions = function (userId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ns/permissions'\r\n });\r\n };\r\n\r\n this.getAllSubsidiaries = function (userId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ns/subsidiaries'\r\n });\r\n };\r\n\r\n this.getDepartmentsBySubsidiary = function (subsidiaryId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ns/subsidiaries/' + subsidiaryId + '/departments'\r\n });\r\n };\r\n\r\n this.getClassesBySubsidiary = function (subsidiaryId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ns/subsidiaries/' + subsidiaryId + '/classes'\r\n });\r\n };\r\n\r\n this.getLocationsBySubsidiary = function (subsidiaryId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ns/subsidiaries/' + subsidiaryId + '/locations'\r\n });\r\n };\r\n\r\n}","export default /*@ngInject*/ function (RequestManagementOracleCloudService) {\r\n //Load Oracle Cloud roles, if an Oracle Cloud user exists move their roles into the selected list\r\n this.loadOracleCloud = function ($scope) {\r\n var orDfrd = $.Deferred();\r\n\r\n $scope.vm.ListOfAvailableOracleCloudRolesIsLoading = true;\r\n\r\n RequestManagementOracleCloudService.getOracleCloudRoles().then(response => {\r\n let pendingRoles = $scope.vm.User?.OracleCloudUser?.PendingRoles || [];\r\n\r\n $scope.vm.ListOfAvailableOracleCloudRoles = [];\r\n $scope.vm.ListOfSelectedOracleCloudRoles = [];\r\n\r\n $scope.vm.ListOfAvailableOracleCloudRoles = response.data.filter(applyPending.bind(null, pendingRoles));\r\n\r\n $scope.vm.ListOfAvailableOracleCloudRolesIsLoading = false;\r\n\r\n if ($scope.defaultRoleTemplate && $scope.vm.wizardMode === \"New\" && !$scope.vm.requestToEdit) {\r\n let defaultRoles = $scope.defaultRoleTemplate.Roles.filter(role => role.TypeId === \"Role\" && role.ProductType === \"ORFC\");\r\n\r\n $scope.vm.User.OracleCloudUser.Roles = [...defaultRoles];\r\n }\r\n\r\n if ($scope.vm.User.OracleCloudUser != null && $scope.vm.User.OracleCloudUser.Roles != null) {\r\n $scope.vm.User.OracleCloudUser.Roles.forEach(role => {\r\n var oracleCloudRole = null;\r\n if ($scope.vm.ListOfAvailableOracleCloudRoles != null) {\r\n //Get role information from the available roles list\r\n oracleCloudRole = $scope.vm.ListOfAvailableOracleCloudRoles.find(object => object.RoleID === role.RoleID);\r\n // Add already selected Roles\r\n if (oracleCloudRole != null) {\r\n $scope.vm.ListOfSelectedOracleCloudRoles.unshift({\r\n RoleID: oracleCloudRole.RoleID,\r\n Id: oracleCloudRole.Id,\r\n IsAssignable: oracleCloudRole.IsAssignable,\r\n Identifier: oracleCloudRole.Identifier,\r\n RoleName: oracleCloudRole.RoleName,\r\n DisplayName: oracleCloudRole.DisplayName,\r\n Description: oracleCloudRole.Description,\r\n ProductId: oracleCloudRole.ProductId,\r\n Pending: pendingRoles.find(pendingRole => pendingRole.RoleID === oracleCloudRole.RoleID)\r\n });\r\n // Remove them from Available list\r\n $scope.vm.ListOfAvailableOracleCloudRoles.forEach(function (row, j) {\r\n if (row.RoleID == oracleCloudRole.RoleID) {\r\n $scope.vm.ListOfAvailableOracleCloudRoles.splice(j, 1);\r\n }\r\n });\r\n }\r\n\r\n oracleCloudRole = null;\r\n\r\n $scope.vm.numberOfOracleCloudRolesValid = true;\r\n }\r\n });\r\n\r\n $scope.oracleCloudUserLoaded = true;\r\n }\r\n\r\n $scope.vm.ListOfAvailableOracleCloudRoles = $scope.vm.ListOfAvailableOracleCloudRoles.filter(role => role.IsAssignable);\r\n orDfrd.resolve();\r\n });\r\n\r\n return $.when(orDfrd).done(function () {\r\n }).promise();\r\n };\r\n}\r\n\r\nfunction applyPending(pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem.RoleID === item.RoleID);\r\n }\r\n\r\n return item;\r\n}","export default /*@ngInject*/ function ($http) {\r\n\r\n this.getPasswordExpirationTypes = function () {\r\n return [\r\n 'Days',\r\n 'Accesses',\r\n 'None'\r\n ];\r\n };\r\n\r\n this.getOracleCloudRoles = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/orfc/roles'\r\n });\r\n };\r\n\r\n}","export default /*@ngInject*/ function (RequestManagementOracleService) {\r\n //Load Oracle responsibilities, if an Oracle user exists move their roles into the selected list\r\n this.loadOracle = async function ($scope) {\r\n var orDfrd = $.Deferred();\r\n\r\n $scope.vm.ORRBACEnabled = JSON.parse(localStorage.getItem('ConfigurationValues'))['OR_RBACEnabled'] === '1' ? true : false;\r\n\r\n RequestManagementOracleService.getOracleResponsibilities().then(function (response) {\r\n let pendingResponsibilities = $scope.vm.User?.OracleUser?.PendingResponsibilities || [];\r\n\r\n $scope.vm.ListOfAvailableOracleResponsibilities = [];\r\n $scope.vm.ListOfSelectedOracleResponsibilities = [];\r\n\r\n $scope.vm.ListOfAvailableOracleResponsibilities = response.data.filter(applyPending.bind(null, pendingResponsibilities));\r\n\r\n if ($scope.defaultRoleTemplate && $scope.vm.wizardMode === \"New\") {\r\n let defaultResponsibilities = $scope.defaultRoleTemplate.Roles.filter(role => role.TypeId === \"Responsibility\" && role.ProductType === \"OR\");\r\n\r\n $scope.vm.User.OracleUser = {\r\n Responsibilities: [...defaultResponsibilities]\r\n }\r\n }\r\n\r\n if ($scope.vm.User.OracleUser != null && $scope.vm.User.OracleUser.Responsibilities != null) {\r\n $scope.vm.User.OracleUser.Responsibilities.forEach(responsibility => {\r\n var oracleResponsibility = null;\r\n if ($scope.vm.ListOfAvailableOracleResponsibilities != null) {\r\n //Get the responsibility information from the available oracleResponsibilities list\r\n oracleResponsibility = $scope.vm.ListOfAvailableOracleResponsibilities.find(object => object.Id === responsibility.Id && object.ApplicationId === responsibility.ApplicationId);\r\n\r\n if (oracleResponsibility != null) {\r\n $scope.vm.ListOfSelectedOracleResponsibilities.unshift({\r\n Id: oracleResponsibility.Id,\r\n Name: oracleResponsibility.Name,\r\n IsAssignable: oracleResponsibility.IsAssignable,\r\n Identifier: oracleResponsibility.Identifier,\r\n ApplicationId: oracleResponsibility.ApplicationId,\r\n ApplicationShortName: oracleResponsibility.ApplicationShortName,\r\n Key: oracleResponsibility.Key,\r\n Pending: pendingResponsibilities.find(pendingResponsibility => pendingResponsibility.Id === oracleResponsibility.Id)\r\n });\r\n\r\n $scope.vm.ListOfAvailableOracleResponsibilities.forEach(function (row, j) {\r\n if (row.Id == oracleResponsibility.Id) {\r\n $scope.vm.ListOfAvailableOracleResponsibilities.splice(j, 1);\r\n }\r\n });\r\n }\r\n\r\n oracleResponsibility = null;\r\n\r\n $scope.vm.numberOfOracleResponsibilitiesValid = true;\r\n }\r\n });\r\n\r\n $scope.oracleUserLoaded = true;\r\n }\r\n\r\n $scope.vm.ListOfAvailableOracleResponsibilities = $scope.vm.ListOfAvailableOracleResponsibilities.filter(responsibility => responsibility.IsAssignable);\r\n orDfrd.resolve();\r\n });\r\n\r\n if ($scope.vm.ORRBACEnabled) {\r\n RequestManagementOracleService.getOracleRoles().then(function (response) {\r\n let pendingRoles = $scope.vm.User?.OracleUser?.PendingRoles || [];\r\n\r\n $scope.vm.ListOfAvailableOracleRoles = response.data.filter(applyPendingByName.bind(null, pendingRoles));\r\n\r\n if ($scope.vm.User.OracleUser != null && $scope.vm.User.OracleUser.Roles != null) {\r\n $scope.vm.User.OracleUser.Roles.forEach(function (role) {\r\n var oracleRole = null;\r\n if ($scope.vm.ListOfAvailableOracleRoles != null) {\r\n //Get the role information from the available oracleRoles list\r\n oracleRole = $scope.vm.ListOfAvailableOracleRoles.find(object => object.Name === role.Name);\r\n\r\n if (oracleRole) {\r\n $scope.vm.ListOfSelectedOracleRoles.unshift({\r\n DisplayName: oracleRole.DisplayName,\r\n IsAssignable: oracleRole.IsAssignable,\r\n Name: oracleRole.Name,\r\n ProductId: oracleRole.ProductId,\r\n Pending: pendingRoles.find(pendingRole => pendingRole.Name === oracleRole.Name)\r\n });\r\n\r\n $scope.vm.ListOfAvailableOracleRoles.forEach(function (row, j) {\r\n if (row.Name === oracleRole.Name) {\r\n $scope.vm.ListOfAvailableOracleRoles.splice(j, 1);\r\n }\r\n });\r\n }\r\n\r\n oracleRole = null;\r\n\r\n $scope.vm.numberOfOracleResponsibilitiesValid = true;\r\n }\r\n });\r\n\r\n $scope.oracleUserLoaded = true;\r\n }\r\n\r\n $scope.vm.ListOfAvailableOracleRoles = $scope.vm.ListOfAvailableOracleRoles.filter(role => role.IsAssignable);\r\n orDfrd.resolve();\r\n });\r\n }\r\n\r\n return $.when(orDfrd).done(function () {\r\n }).promise();\r\n\r\n };\r\n}\r\n\r\nfunction applyPending(pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem.Id === item.Id);\r\n }\r\n\r\n return item;\r\n}\r\n\r\nfunction applyPendingByName(pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem.Name === item.Name);\r\n }\r\n\r\n return item;\r\n}","export default /*@ngInject*/ function ($http) {\r\n\r\n this.getPasswordExpirationTypes = function () {\r\n return [\r\n 'Days',\r\n 'Accesses',\r\n 'None'\r\n ];\r\n };\r\n\r\n this.getOracleResponsibilities = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/or/responsibilities'\r\n });\r\n };\r\n\r\n this.getOracleRoles = function () {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/or/roles'\r\n });\r\n };\r\n\r\n this.getOracleProductConfig = function () {\r\n return $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/universal/products/or/configuration`\r\n });\r\n };\r\n}","export default /*@ngInject*/ function ($http, $q, RequestManagementSAPService) {\r\n\r\n this.loadSAP = function ($scope, application) {\r\n //Load Data for Products after search row is selected\r\n var sapDfrd = $.Deferred();\r\n\r\n if (!$scope.vm.User.SAPUser) {\r\n // Need to set up the User Objects for each SAP instance\r\n $scope.vm.User.SAPUser = {};\r\n }\r\n\r\n if (!$scope.vm.User.SAPUser[application.ProductName]) {\r\n $scope.vm.User.SAPUser[application.ProductName] = {};\r\n $scope.vm.User.SAPUser[application.ProductName].ProductType = application.ProductType;\r\n }\r\n\r\n loadPermissions($scope, application).done(function () {\r\n sapDfrd.resolve();\r\n });\r\n\r\n return $.when(sapDfrd).done(function () {\r\n }).promise();\r\n };\r\n\r\n this.loadSAPRoleObjects = async function ($scope, application) {\r\n $scope.vm.loadingSAPRoleObjects = true;\r\n let data = [], compositeRoleData, compositeRoleIds, response;\r\n $scope.vm.ListOfSelectedSAPSingleRoles[application.ProductName].forEach(role => data.push(role.Identifier));\r\n // get role ids from composite roles because we can't get tCodes based on Composite Role Identifiers\r\n compositeRoleData = {\r\n ProductId: application.ProductID,\r\n CompositeRoleIds: $scope.vm.ListOfSelectedSAPCompositeRoles[application.ProductName].map(compositeRole => compositeRole.Identifier)\r\n };\r\n compositeRoleIds = await RequestManagementSAPService.getRolesByCompositeRole(compositeRoleData);\r\n // add the ids for the roles that come from the composite roles\r\n data = data.concat(compositeRoleIds.data.map(compRole => compRole.RoleIdentifier));\r\n\r\n response = await $http.post(`${apiUrl}api/universal/securityobjects/securityroles`, data);\r\n response.data = response.data.filter(role => role.SecurityObjectTypeId === \"TCode\");\r\n\r\n $scope.vm.ListOfAvailableSAPRoleObjects[application.ProductName] = response.data;\r\n $scope.vm.ListOfSelectedSAPRoleObjects[application.ProductName] = [];\r\n\r\n $scope.vm.loadingSAPRoleObjects = false;\r\n };\r\n\r\n var loadPermissions = function ($scope, application) {\r\n var permissionsDfrd = $.Deferred(),\r\n promises = [],\r\n sapRoles = [],\r\n sapCompositeRoles = [],\r\n pendingRoles = $scope.vm.User?.SAPUser?.[application.ProductName]?.PendingRoles || [];\r\n\r\n if ($scope.vm.User.SAPUser && $scope.vm.User.SAPUser[application.ProductName] && $scope.vm.User.SAPUser[application.ProductName].ProductName === application.ProductName) {\r\n if ($scope.vm.alternatePath === 'EmergencyAccess') {\r\n $scope.vm.User.SAPUser[application.ProductName].Roles = $scope.vm.User.SAPUser[application.ProductName].Roles.filter(role => role.IsEmergencyAccess);\r\n }\r\n sapRoles = $scope.vm.User.SAPUser[application.ProductName].Roles.filter(role => !role.IsComposite);\r\n sapCompositeRoles = $scope.vm.User.SAPUser[application.ProductName].Roles.filter(compositeRole => compositeRole.IsComposite);\r\n }\r\n\r\n //Load Available sapRoles then process existing security\r\n promises.push(RequestManagementSAPService.getAllRoles(application.ProductID).then(function (response) {\r\n if ($scope.vm.alternatePath === 'EmergencyAccess') {\r\n // filter out roles that aren't emergency access designated\r\n response.data = response.data.filter(role => role.IsEmergencyAccess);\r\n // remove any emergency access roles the user already has from available roles\r\n if (response.data.length > 0 && $scope.vm.User.SAPUser[application.ProductName].Roles.length > 0) {\r\n response.data.forEach((role, index, allRolesArray) => {\r\n if ($scope.vm.User.SAPUser[application.ProductName].Roles.some(r => r.Identifier === role.Identifier)) {\r\n allRolesArray.splice(index, 1);\r\n }\r\n });\r\n }\r\n }\r\n // filter out composite roles to create a list of single roles\r\n $scope.vm.ListOfAvailableSAPSingleRoles[application.ProductName] = response.data.filter(item => !item.IsComposite).map(applyPending.bind(null, pendingRoles));\r\n $scope.vm.ListOfSelectedSAPSingleRoles[application.ProductName] = [];\r\n\r\n // filter out single roles to create a list of composite roles\r\n $scope.vm.ListOfAvailableSAPCompositeRoles[application.ProductName] = response.data.filter(item => item.IsComposite).map(applyPending.bind(null, pendingRoles));\r\n\r\n $scope.vm.ListOfSelectedSAPCompositeRoles[application.ProductName] = [];\r\n\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n\r\n $q.all(promises).then(function () {\r\n if ($scope.defaultRoleTemplate && $scope.vm.wizardMode === \"New\" && !$scope.vm.requestToEdit) {\r\n let defaultRoles = $scope.defaultRoleTemplate.Roles.filter(role => role.TypeId === \"Role\" && role.ProductType === application.ProductType);\r\n\r\n sapRoles = [...defaultRoles];\r\n sapCompositeRoles = [...defaultRoles];\r\n\r\n $scope.vm.User.SAPUser = {\r\n [application.ProductName]: {\r\n Roles: sapRoles\r\n }\r\n }\r\n }\r\n\r\n // Single Roles\r\n if (sapRoles.length > 0 && $scope.vm.alternatePath !== 'EmergencyAccess') {\r\n if ($scope.vm.User.SAPUser[application.ProductName] && $scope.vm.User.SAPUser[application.ProductName].Roles) {\r\n $scope.vm.User.SAPUser[application.ProductName].Roles.forEach(role => {\r\n var sapRole = null;\r\n\r\n if ($scope.vm.ListOfAvailableSAPSingleRoles[application.ProductName]) {\r\n //Get the role information from the available sapRoles list\r\n sapRole = $scope.vm.ListOfAvailableSAPSingleRoles[application.ProductName].find(object => object.Id === role.Id);\r\n\r\n if (sapRole) {\r\n $scope.vm.ListOfSelectedSAPSingleRoles[application.ProductName].unshift({\r\n Id: sapRole.Id,\r\n Name: sapRole.Name,\r\n IsAssignable: sapRole.IsAssignable,\r\n Identifier: sapRole.Identifier,\r\n IsComposite: sapRole.IsComposite,\r\n Pending: pendingRoles.some(pendingRole => pendingRole.Id === sapRole.Id && !sapRole.IsComposite)\r\n });\r\n\r\n $scope.vm.ListOfAvailableSAPSingleRoles[application.ProductName].forEach(function (row, j) {\r\n if (row.Id === sapRole.Id) {\r\n $scope.vm.ListOfAvailableSAPSingleRoles[application.ProductName].splice(j, 1);\r\n }\r\n });\r\n }\r\n\r\n sapRole = null;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // Composite Roles\r\n if (sapCompositeRoles.length > 0 && $scope.vm.alternatePath !== 'EmergencyAccess') {\r\n if ($scope.vm.User.SAPUser[application.ProductName] && $scope.vm.User.SAPUser[application.ProductName].Roles) {\r\n $scope.vm.User.SAPUser[application.ProductName].Roles.forEach(function (role) {\r\n\r\n var sapCompositeRole = null;\r\n\r\n if ($scope.vm.ListOfAvailableSAPCompositeRoles[application.ProductName]) {\r\n //Get the role information from the available sapCompositeRoles list\r\n sapCompositeRole = $scope.vm.ListOfAvailableSAPCompositeRoles[application.ProductName].find(object => object.Id === role.Id);\r\n\r\n if (sapCompositeRole) {\r\n $scope.vm.ListOfSelectedSAPCompositeRoles[application.ProductName].unshift({\r\n Id: sapCompositeRole.Id,\r\n Name: sapCompositeRole.Name,\r\n IsAssignable: sapCompositeRole.IsAssignable,\r\n IsComposite: sapCompositeRole.IsComposite,\r\n Pending: pendingRoles.some(pendingRole => pendingRole.Id === sapCompositeRole.Id && sapCompositeRole.IsComposite)\r\n });\r\n\r\n\r\n $scope.vm.ListOfAvailableSAPCompositeRoles[application.ProductName].forEach(function (row, j) {\r\n if (row.Id === sapCompositeRole.Id) {\r\n $scope.vm.ListOfAvailableSAPCompositeRoles[application.ProductName].splice(j, 1);\r\n }\r\n });\r\n }\r\n\r\n sapCompositeRole = null;\r\n }\r\n });\r\n }\r\n }\r\n\r\n $scope.vm.ListOfAvailableSAPSingleRoles[application.ProductName] = $scope.vm.ListOfAvailableSAPSingleRoles?.[application.ProductName]?.filter(role => role.IsAssignable) || [];\r\n $scope.vm.ListOfAvailableSAPCompositeRoles[application.ProductName] = $scope.vm.ListOfAvailableSAPCompositeRoles?.[application.ProductName]?.filter(compositeRole => compositeRole.IsAssignable) || [];\r\n $scope.sapUserLoaded = true;\r\n permissionsDfrd.resolve();\r\n });\r\n\r\n return $.when(permissionsDfrd).done(function () {\r\n }).promise();\r\n };\r\n}\r\n\r\nfunction applyPending(pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem.Id === item.Id);\r\n }\r\n\r\n return item;\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n\r\n this.getSAPUserTypes = function () {\r\n\r\n return [\r\n {\r\n Name: 'Dialog',\r\n Id: \"A\"\r\n },\r\n {\r\n Name: 'System',\r\n Id: \"B\"\r\n },\r\n {\r\n Name: 'Communications Data',\r\n Id: \"C\"\r\n },\r\n {\r\n Name: 'Reference (Logon not possible)',\r\n Id: \"L\"\r\n },\r\n {\r\n Name: 'Service',\r\n Id: \"S\"\r\n }\r\n ];\r\n };\r\n\r\n this.getSAPUserData = function (productId, userId) {\r\n if (userID != null) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/sap/' + productId + '/users/' + userId\r\n });\r\n }\r\n };\r\n\r\n this.getAllRoles = function (productId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/sap/' + productId + '/roles'\r\n });\r\n };\r\n\r\n this.getRolesByCompositeRole = function (data) {\r\n return $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/identitymanager/sap/' + data.ProductId + '/roles/bycomposites',\r\n data: data\r\n })\r\n .catch(function (response) {\r\n errorsDataService.catch(response);\r\n });\r\n }\r\n\r\n this.getCollectionUsageSchedule = function (productId) {\r\n return $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/sap/' + productId + '/collectusageschedules'\r\n });\r\n }\r\n\r\n this.setCollectionUsageSchedule = async (productId, data) => {\r\n try {\r\n return await $http.post(`${apiUrl}api/identitymanager/sap/${productId}/collectusageschedules`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n this.deleteCollectionUsageSchedule = async (productId) => {\r\n try {\r\n return await $http.delete(`${apiUrl}api/identitymanager/sap/${productId}/collectusageschedules`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($q, RequestManagementUPService) {\r\n const vm = this;\r\n\r\n this.loadUP = function ($scope, application) {\r\n //Load Data for Products after search row is selected\r\n var upDfrd = $.Deferred();\r\n\r\n try {\r\n vm.loadPermissions($scope, application).then(function () {\r\n upDfrd.resolve();\r\n }, function errorCallback(response) {\r\n upDfrd.reject(response);\r\n });\r\n }\r\n catch (e) {\r\n upDfrd.reject(e);\r\n }\r\n\r\n return $.when(upDfrd).done(function () {\r\n }).promise();\r\n\r\n };\r\n\r\n this.loadPermissions = function ($scope, application) {\r\n var permissionsDfrd = $.Deferred(),\r\n promises = [],\r\n upRoles = [],\r\n pendingRoles = $scope.vm.User?.UPUser?.[application.ProductName]?.PendingRoles || [];\r\n\r\n $scope.vm.ListOfSelectedUPRoles[application.ProductName] = [];\r\n $scope.vm.ListOfAvailableUPRoles[application.ProductName] = [];\r\n\r\n if ($scope.vm.User?.UPUser?.[application.ProductName].ProductName === application.ProductName) {\r\n //If any upRoles are selected in the request set the upRoles valid property to true below\r\n if (!$scope.vm.numberOfUPRolesValid) {\r\n $scope.vm.numberOfUPRolesValid = [];\r\n $scope.vm.numberOfUPRolesValid[application.ProductName] = null;\r\n }\r\n $scope.vm.numberOfUPRolesValid[application.ProductName] = null;\r\n upRoles = $scope.vm.User.UPUser[application.ProductName].Roles;\r\n\r\n if (upRoles.length > 0) {\r\n $scope.vm.numberOfUPRolesValid[application.ProductName] = true;\r\n }\r\n }\r\n\r\n //Load Available upRoles then process existing security\r\n promises.push(\r\n RequestManagementUPService.getAllRoles(application.ProductID).then(function (response) {\r\n $scope.vm.ListOfAvailableUPRoles[application.ProductName] = response.data.filter(applyPending.bind(null, pendingRoles));\r\n $scope.vm.ListOfSelectedUPRoles[application.ProductName] = [];\r\n })\r\n );\r\n\r\n promises.push(RequestManagementUPService.getAllCompanies(application.ProductID).then(function (response) {\r\n $scope.vm.ListOfUPCompanies[application.ProductName] = response.data;\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n $q.all(promises).then(function () {\r\n if ($scope.defaultRoleTemplate && $scope.vm.wizardMode === \"New\" && !$scope.vm.requestToEdit) {\r\n let defaultRoles = $scope.defaultRoleTemplate.Roles.filter(role => role.TypeId === \"Role\" && role.ProductName === application.ProductName);\r\n\r\n upRoles = [...defaultRoles];\r\n\r\n if (upRoles.length) {\r\n $scope.vm.numberOfUPRolesValid = {\r\n [application.ProductName]: true\r\n };\r\n }\r\n\r\n $scope.vm.User.UPUser = {\r\n [application.ProductName]: {\r\n Roles: upRoles.map(role => {\r\n role.Role = role;\r\n\r\n return role;\r\n })\r\n }\r\n }\r\n }\r\n if (upRoles.length > 0 && $scope.vm.User.UPUser[application.ProductName] && $scope.vm.User.UPUser[application.ProductName].Roles) {\r\n $scope.vm.User.UPUser[application.ProductName].Roles.forEach(role => {\r\n let upRole = null,\r\n selectedUpRole = null,\r\n selectedCompany = null;\r\n\r\n if ($scope.vm.ListOfAvailableUPRoles[application.ProductName]) {\r\n //Get the role information from the available upRoles list\r\n upRole = $scope.vm.ListOfAvailableUPRoles[application.ProductName].find(object => object.Id === role.Role.Id);\r\n\r\n //Check if the company Id has been set for the current role company\r\n if (role.Company != null) {\r\n selectedCompany = $scope.vm.ListOfUPCompanies[application.ProductName].find(object => object.CompanyId.toUpperCase() === role.Company.Id.toUpperCase());\r\n }\r\n\r\n //Check if the role already exists in the selected list\r\n selectedUpRole = $scope.vm.ListOfSelectedUPRoles[application.ProductName].find(object => object.Id.toUpperCase() === role.Role.Id.toUpperCase());\r\n //If the role already exists add the current company information to the company list\r\n if (selectedUpRole != null && selectedCompany != null) {\r\n if (selectedUpRole.Companies == null) {\r\n selectedUpRole.Companies = [];\r\n }\r\n if (selectedUpRole.Companies.none(company => company.CompanyId === selectedCompany.CompanyId)) {\r\n selectedUpRole.Companies.push(selectedCompany);\r\n }\r\n }\r\n\r\n if (upRole) {\r\n $scope.vm.ListOfSelectedUPRoles[application.ProductName].unshift({\r\n Id: upRole.Id,\r\n Name: upRole.Name,\r\n IsAssignable: upRole.IsAssignable,\r\n Identifier: upRole.Identifier,\r\n Companies: selectedCompany === null ? null : [selectedCompany],\r\n Pending: upRole.Pending\r\n });\r\n\r\n $scope.vm.ListOfAvailableUPRoles[application.ProductName].forEach(function (row, j) {\r\n if (row.Id === upRole.Id) {\r\n $scope.vm.ListOfAvailableUPRoles[application.ProductName].splice(j, 1);\r\n }\r\n });\r\n }\r\n\r\n upRole = null;\r\n $scope.vm.numberOfUPRolesValid[application.ProductName] = true;\r\n }\r\n });\r\n }\r\n\r\n $scope.vm.ListOfAvailableUPRoles[application.ProductName] = $scope.vm.ListOfAvailableUPRoles[application.ProductName].filter(role => role.IsAssignable);\r\n $scope.upUserLoaded = true;\r\n permissionsDfrd.resolve();\r\n });\r\n\r\n return $.when(permissionsDfrd).done(function () {\r\n }).promise();\r\n };\r\n}\r\n\r\nfunction applyPending(pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem.Id === item.Id);\r\n }\r\n return item;\r\n}","export default /*@ngInject*/ function ($http) {\r\n\r\n this.getAllRoles = function (productId) {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/identitymanager/uv/roles/product/${productId}`\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading GP Roles';\r\n }\r\n };\r\n\r\n this.getAllCompanies = function (productId) {\r\n try {\r\n return $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/identitymanager/uv/companies/product/${productId}`\r\n });\r\n }\r\n catch (ex) {\r\n throw 'Error loading GP Companies';\r\n }\r\n };\r\n\r\n}","export default /*@ngInject*/ function (salesforceService) {\r\n this.loadSalesforce = async function ($scope) {\r\n let { data } = await salesforceService.getPermissionSets(),\r\n pendingPermissions = $scope.vm.User?.SalesforceUser?.PendingPermissionSets || [],\r\n licenseId = $scope.vm.User?.SalesforceUser?.Profile?.UserLicenseId,\r\n pendingLicenseId = $scope.vm.User?.SalesforceUser?.PendingProfile?.UserLicenseId,\r\n permission;\r\n\r\n $scope.vm.assignedSalesforcePermissionSets = [];\r\n $scope.vm.assignedSalesforceLicenseId = licenseId;\r\n $scope.vm.assignedSalesforceEmail = $scope.vm.User?.SalesforceUser?.Email;\r\n $scope.vm.showSalesforceLicenseChangeMessage = false;\r\n $scope.vm.salesforceLicensePending = pendingLicenseId && licenseId !== pendingLicenseId;\r\n // Needa master list to handle when User License Changes\r\n $scope.vm.ListOfAllSalesforcePermissionSets = data.filter(applyPending.bind(null, pendingPermissions));\r\n $scope.vm.ListOfAvailableSalesforcePermissionSets = data.filter(applyPending.bind(null, pendingPermissions));\r\n\r\n if ($scope.vm.User.SalesforceUser != null && $scope.vm.User.SalesforceUser.PermissionSets != null) {\r\n $scope.vm.User.SalesforceUser.PermissionSets.forEach(permissionSet => {\r\n permission = $scope.vm.ListOfAvailableSalesforcePermissionSets.find(existingPermission => existingPermission.Id === permissionSet.Id);\r\n\r\n if (permission) {\r\n let selectedPermission = {\r\n Id: permission.Id,\r\n Name: permission.Name,\r\n Label: permission.Label,\r\n IsAssignable: permission.IsAssignable,\r\n Pending: pendingPermissions.find(pendingPermission => pendingPermission.Id === permission.Id)\r\n };\r\n\r\n $scope.vm.ListOfSelectedSalesforcePermissionSets.unshift(selectedPermission);\r\n\r\n $scope.vm.assignedSalesforcePermissionSets.unshift(selectedPermission);\r\n\r\n $scope.vm.ListOfAvailableSalesforcePermissionSets = $scope.vm.ListOfAvailableSalesforcePermissionSets.filter(availablePermission => availablePermission.Id !== permission.Id);\r\n }\r\n\r\n $scope.vm.numberOfSalesforcePermissionSetsValid = true;\r\n });\r\n\r\n }\r\n\r\n $scope.vm.ListOfAvailableSalesforcePermissionSets = $scope.vm.ListOfAvailableSalesforcePermissionSets.filter(permissionSet => permissionSet.IsAssignable);\r\n\r\n $scope.vm.ListOfAllSalesforcePermissionSets = angular.copy($scope.vm.ListOfAvailableSalesforcePermissionSets);\r\n $scope.salesforceUserLoaded = true;\r\n };\r\n}\r\n\r\nfunction applyPending(pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem.Id === item.Id);\r\n }\r\n\r\n return item;\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getUsers,\r\n getPermissionSets,\r\n getCountries,\r\n getUserLicenses,\r\n getProfiles,\r\n getRoles\r\n };\r\n\r\n return service;\r\n\r\n //GET Requests\r\n async function getUsers(search, field) {\r\n try {\r\n return await $http.get(`${apiUrl}api/identitymanager/sf/users?search=${search}&field=${field}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getPermissionSets() {\r\n try {\r\n return await $http.get(`${apiUrl}api/identitymanager/sf/permission-sets`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getCountries() {\r\n try {\r\n return await $http.get(`${apiUrl}api/identitymanager/sf/countries`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getUserLicenses(params) {\r\n try {\r\n return await $http.get(`${apiUrl}api/identitymanager/sf/profiles/user-licenses`, {params: params});\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getProfiles() {\r\n try {\r\n return await $http.get(`${apiUrl}api/identitymanager/sf/profiles`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getRoles() {\r\n try {\r\n return await $http.get(`${apiUrl}api/identitymanager/sf/profiles/user-roles`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http) {\r\n\r\n //AX 7 HTTP Calls\r\n this.getAllAADRoles = function () {\r\n return $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/identitymanager/aad/roles`\r\n });\r\n };\r\n\r\n this.getAllAADGroups = function () {\r\n return $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/identitymanager/aad/groups`\r\n });\r\n };\r\n\r\n this.getAllAADLicenses = function () {\r\n return $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/identitymanager/aad/licenses`\r\n });\r\n };\r\n\r\n this.getAADUserData = function (userId) {\r\n return $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/identitymanager/aad/users/${userId}`\r\n });\r\n };\r\n}","export default /*@ngInject*/ function ($q, RequestManagementAADService) {\r\n\r\n this.loadAAD = function ($scope) {\r\n var adDfrd = $.Deferred();\r\n\r\n loadAADPermissions($scope).done(function () {\r\n adDfrd.resolve();\r\n });\r\n\r\n return $.when(adDfrd).done(function () {\r\n }).promise();\r\n };\r\n\r\n this.loadAADLoadPermisssions = function ($scope) {\r\n return loadAADPermissions($scope);\r\n };\r\n //Load the AAD permissions, after that completes and if there is an existing AAD user load their permissions\r\n function loadAADPermissions($scope) {\r\n let permissionsDfrd = $.Deferred(),\r\n promises = [],\r\n aadRoles = [],\r\n aadGroups = [],\r\n aadLicenses = [],\r\n pendingRoles = $scope.vm.User?.AadUser?.PendingUserRoles || [],\r\n pendingGroups = $scope.vm.User?.AadUser?.PendingUserGroups || [],\r\n pendingLicenses = $scope.vm.User?.AadUser?.PendingLicenses || [];\r\n\r\n $scope.vm.ListOfSelectedAADRoles = [];\r\n $scope.vm.ListOfAvailableAADRoles = [];\r\n $scope.vm.ListOfSelectedAADGroups = [];\r\n $scope.vm.ListOfAvailableAADGroups = [];\r\n $scope.vm.ListOfSelectedAADLicenses = [];\r\n $scope.vm.ListOfAvailableAADLicenses = [];\r\n\r\n if ($scope.vm.User.AadUser != null) {\r\n aadRoles = $scope.vm.User.AadUser.UserRoles || [];\r\n aadGroups = $scope.vm.User.AadUser.UserGroups || [];\r\n aadLicenses = $scope.vm.User.AadUser.AssignedLicenses || [];\r\n }\r\n\r\n //Load Available aadRoles then process existing security\r\n promises.push(RequestManagementAADService.getAllAADRoles().then(function (response) {\r\n $scope.vm.ListOfAvailableAADRoles = response.data.map(applyPendingByKey.bind(null, pendingRoles, \"Id\"));\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n promises.push(RequestManagementAADService.getAllAADGroups().then(function (response) {\r\n $scope.vm.ListOfAvailableAADGroups = response.data.map(applyPendingByKey.bind(null, pendingGroups, \"Id\"));\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n promises.push(RequestManagementAADService.getAllAADLicenses().then(function (response) {\r\n $scope.vm.ListOfAvailableAADLicenses = response.data.map(applyPendingByKey.bind(null, pendingLicenses, \"SkuId\"));\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n $q.all(promises).then(function () {\r\n if ($scope.vm.User === null) {\r\n $scope.vm.User = {};\r\n }\r\n if ($scope.vm.User.AadUser === null) {\r\n $scope.vm.User.AadUser = {};\r\n }\r\n\r\n //Modify Available and Selected roles lists to reflect users current security\r\n if (aadRoles != null && $scope.vm.ListOfAvailableAADRoles != null) {\r\n aadRoles.forEach(role => {\r\n if ($scope.vm.ListOfSelectedAADRoles.none(selectedRole => selectedRole.Id === role.Id)) {\r\n\r\n role.Pending = pendingRoles.some(pendingRole => pendingRole.Id === role.Id);\r\n\r\n $scope.vm.ListOfSelectedAADRoles.unshift(role);\r\n\r\n $scope.vm.ListOfAvailableAADRoles.forEach((row, j) => {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableAADRoles.splice(j, 1);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n //Modify Available and Selected group lists to reflect users current security\r\n if (aadGroups != null && $scope.vm.ListOfAvailableAADGroups != null) {\r\n if ($scope.defaultRoleTemplate && $scope.vm.wizardMode === \"New\" && !$scope.vm.requestToEdit) {\r\n let defaultRoles = $scope.defaultRoleTemplate.Roles.filter(role => role.TypeId === \"Group\" && role.ProductType === \"AAD\");\r\n\r\n $scope.vm.ListOfSelectedAADGroups = [...defaultRoles];\r\n $scope.vm.ListOfAvailableAADGroups = $scope.vm.ListOfAvailableAADGroups.filter(availableGroup => {\r\n let selectedGroup = $scope.vm.ListOfSelectedAADGroups.find(selectedGroup => selectedGroup.Id === availableGroup.Id);\r\n\r\n if (selectedGroup) {\r\n selectedGroup = Object.merge(selectedGroup, availableGroup);\r\n }\r\n\r\n return !selectedGroup;\r\n });\r\n } else {\r\n aadGroups.forEach(group => {\r\n if ($scope.vm.ListOfSelectedAADGroups.none(selectedGroup => selectedGroup.Id === group.Id)) {\r\n\r\n group.Pending = pendingGroups.some(pendingGroup => pendingGroup.Id === group.Id);\r\n\r\n $scope.vm.ListOfSelectedAADGroups.unshift(group);\r\n\r\n $scope.vm.ListOfAvailableAADGroups.forEach((row, j) => {\r\n if (row.Id === group.Id) {\r\n $scope.vm.ListOfAvailableAADGroups.splice(j, 1);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n //Modify Available and Selected license lists to refect users current security\r\n if (aadLicenses != null && $scope.vm.ListOfAvailableAADLicenses != null) {\r\n aadLicenses.forEach(license => {\r\n if ($scope.vm.ListOfSelectedAADLicenses.none(selectedLicense => selectedLicense.SkuId === license.SkuId)) {\r\n\r\n license.Pending = pendingLicenses.some(pendingLicense => pendingLicense.SkuId === license.SkuId);\r\n\r\n $scope.vm.ListOfSelectedAADLicenses.unshift(license);\r\n\r\n $scope.vm.ListOfAvailableAADLicenses.forEach((row, j) => {\r\n if (row.SkuId === license.SkuId) {\r\n $scope.vm.ListOfAvailableAADLicenses.splice(j, 1);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n $scope.aadUserLoaded = true;\r\n permissionsDfrd.resolve();\r\n\r\n });\r\n\r\n return $.when(permissionsDfrd).done(function () {\r\n }).promise();\r\n }\r\n}\r\n\r\nfunction applyPendingByKey(pendingItems, key, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.find(pendingItem => pendingItem[key] === item[key]);\r\n }\r\n\r\n return item;\r\n}","export default /*@ngInject*/ function ($http) {\r\n\r\n //PeopleSoft HTTP Calls\r\n this.getAllPSRoles = function () {\r\n return $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/identitymanager/ps/roles`\r\n });\r\n };\r\n\r\n this.getPSPermissionLists = function () {\r\n return $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/identitymanager/ps/permissionlists`\r\n });\r\n };\r\n\r\n this.getPSEmailTypes = function () {\r\n return [\r\n {\r\n DisplayValue: \"Work\",\r\n Value: 'WORK'\r\n },\r\n {\r\n DisplayValue: \"Home\",\r\n Value: 'HOME'\r\n },\r\n {\r\n DisplayValue: \"Other\",\r\n Value: 'OTH'\r\n },\r\n {\r\n DisplayValue: \"Business\",\r\n Value: 'BUS'\r\n },\r\n {\r\n DisplayValue: \"Blackberry\",\r\n Value: 'BB'\r\n },\r\n ];\r\n }\r\n}","export default /*@ngInject*/ function ($q, RequestManagementPSService, $filter) {\r\n\r\n this.loadPS = function ($scope) {\r\n var psDfrd = $.Deferred();\r\n\r\n loadPSPermissions($scope).done(function () {\r\n psDfrd.resolve();\r\n });\r\n\r\n return $.when(psDfrd).done(function () {\r\n }).promise();\r\n };\r\n\r\n this.loadPSLoadPermisssions = function ($scope) {\r\n return loadPSPermissions($scope);\r\n };\r\n //Load the PS permissions, after that completes and if there is an existing PS user load their permissions\r\n function loadPSPermissions($scope) {\r\n let permissionsDfrd = $.Deferred(),\r\n promises = [],\r\n pendingRoles = $scope.vm.User?.PSUser?.PendingRoles || [];\r\n\r\n $scope.vm.ListOfSelectedPSRoles = [];\r\n $scope.vm.ListOfAvailablePSRoles = [];\r\n\r\n //Load Available psRoles then process existing security\r\n promises.push(RequestManagementPSService.getAllPSRoles().then(function (response) {\r\n $scope.vm.ListOfAvailablePSRoles = response.data.filter(applyPending.bind(null, pendingRoles));\r\n }, function errorCallback(response) {\r\n permissionsDfrd.reject();\r\n }));\r\n\r\n $q.all(promises).then(function () {\r\n if ($scope.defaultRoleTemplate && $scope.vm.wizardMode === \"New\" && !$scope.vm.requestToEdit) {\r\n let defaultRoles = $scope.defaultRoleTemplate.Roles.filter(role => role.TypeId === \"Role\" && role.ProductType === \"PS\");\r\n\r\n $scope.vm.User.PSUser.Roles = [...defaultRoles];\r\n }\r\n //Load PS user roles\r\n if ($scope.vm.User.PSUser.Roles != null) {\r\n $scope.vm.User.PSUser.Roles.forEach(Role => {\r\n\r\n var psRole = null;\r\n\r\n //Get the role information from the available psRoles list\r\n psRole = $scope.vm.ListOfAvailablePSRoles.find(object => object.Name === Role.Name);\r\n\r\n if (psRole != null) {\r\n $scope.vm.ListOfSelectedPSRoles.unshift({\r\n Name: psRole.Name,\r\n IsAssignable: psRole.IsAssignable,\r\n Pending: pendingRoles.find(pendingRole => pendingRole.Name === psRole.Name)\r\n });\r\n\r\n $scope.vm.ListOfAvailablePSRoles.forEach((row, j) => {\r\n if (row.Name === psRole.Name) {\r\n $scope.vm.ListOfAvailablePSRoles.splice(j, 1);\r\n }\r\n });\r\n }\r\n\r\n psRole = null;\r\n\r\n $scope.vm.numberOfPSRolesValid = true;\r\n });\r\n }\r\n $scope.vm.ListOfAvailablePSRoles = $scope.vm.ListOfAvailablePSRoles.filter(role => role.IsAssignable);\r\n\r\n $scope.psUserLoaded = true;\r\n permissionsDfrd.resolve();\r\n });\r\n\r\n return $.when(permissionsDfrd).done(function () {\r\n }).promise();\r\n }\r\n}\r\n\r\nfunction applyPending(pendingItems, item) {\r\n if (pendingItems.length) {\r\n item.Pending = pendingItems.some(pendingItem => pendingItem.Name === item.Name);\r\n }\r\n\r\n return item;\r\n}","import angular from 'angular';\r\nimport RequestManagementAXLoadDataService from '../Components/RequestManagement/RequestManagementAXLoadDataService';\r\nimport RequestManagementAXService from '../Components/RequestManagement/RequestManagementAXService';\r\nimport RequestManagementBuildRequestService from '../Components/RequestManagement/RequestManagementBuildRequestService';\r\nimport RequestManagementD365SLoadDataService from '../Components/RequestManagement/RequestManagementD365SLoadDataService';\r\nimport RequestManagementD365SService from '../Components/RequestManagement/RequestManagementD365SService';\r\nimport RequestManagementEffectiveDateService from '../Components/RequestManagement/RequestManagementEffectiveDateService';\r\nimport RequestManagementGPLoadDataService from '../Components/RequestManagement/RequestManagementGPLoadDataService';\r\nimport RequestManagementGPService from '../Components/RequestManagement/RequestManagementGPService';\r\nimport RequestManagementLoadDataService from '../Components/RequestManagement/RequestManagementLoadDataService';\r\nimport RequestManagementNAVLoadDataService from '../Components/RequestManagement/RequestManagementNAVLoadDataService';\r\nimport RequestManagementNAVService from '../Components/RequestManagement/RequestManagementNAVService';\r\nimport RequestManagementNetSuiteLoadDataService from '../Components/RequestManagement/RequestManagementNetSuiteLoadDataService';\r\nimport RequestManagementNetSuiteService from '../Components/RequestManagement/RequestManagementNetSuiteService';\r\nimport RequestManagementOracleCloudLoadDataService from '../Components/RequestManagement/RequestManagementOracleCloudLoadDataService';\r\nimport RequestManagementOracleCloudService from '../Components/RequestManagement/RequestManagementOracleCloudService';\r\nimport RequestManagementOracleLoadDataService from '../Components/RequestManagement/RequestManagementOracleLoadDataService';\r\nimport RequestManagementOracleService from '../Components/RequestManagement/RequestManagementOracleService';\r\nimport RequestManagementSAPLoadDataService from '../Components/RequestManagement/RequestManagementSAPLoadDataService';\r\nimport RequestManagementSAPService from '../Components/RequestManagement/RequestManagementSAPService';\r\nimport RequestManagementShowStepsService from '../Components/RequestManagement/RequestManagementShowStepsService';\r\nimport RequestManagementStepDefinitions from '../Components/RequestManagement/RequestManagementStepDefinitions';\r\nimport RequestManagementWizardController from '../Components/RequestManagement/RequestManagementWizardController';\r\nimport RequestManagementUPLoadDataService from '../Components/RequestManagement/RequestManagementUPLoadDataService';\r\nimport RequestManagementUPService from '../Components/RequestManagement/RequestManagementUPService';\r\nimport salesforceLoadData from '../Components/RequestManagement/salesforceLoadData';\r\nimport salesforceService from '../Components/RequestManagement/salesforceDataService.factory';\r\nimport RequestManagementAADService from '../Components/RequestManagement/RequestManagementAADService';\r\nimport RequestManagementAADLoadDataService from '../Components/RequestManagement/RequestManagementAADLoadDataService';\r\nimport RequestManagementPSService from '../Components/RequestManagement/RequestManagementPSService';\r\nimport RequestManagementPSLoadDataService from '../Components/RequestManagement/RequestManagementPSLoadDataService';\r\n\r\nexport default angular\r\n .module('app.identityManager.requestManagement.services', [])\r\n .service('RequestManagementUPLoadDataService', RequestManagementUPLoadDataService)\r\n .service('RequestManagementUPService', RequestManagementUPService)\r\n .service('RequestManagementAADService', RequestManagementAADService)\r\n .service('salesforceLoadData', salesforceLoadData)\r\n .service('salesforceService', salesforceService)\r\n .service('RequestManagementAADLoadDataService', RequestManagementAADLoadDataService)\r\n .service('RequestManagementAXLoadDataService', RequestManagementAXLoadDataService)\r\n .service('RequestManagementAXService', RequestManagementAXService)\r\n .service('RequestManagementBuildRequestService', RequestManagementBuildRequestService)\r\n .service('RequestManagementD365SLoadDataService', RequestManagementD365SLoadDataService)\r\n .service('RequestManagementD365SService', RequestManagementD365SService)\r\n .service('RequestManagementEffectiveDateService', RequestManagementEffectiveDateService)\r\n .service('RequestManagementGPLoadDataService', RequestManagementGPLoadDataService)\r\n .service('RequestManagementGPService', RequestManagementGPService)\r\n .service('RequestManagementLoadDataService', RequestManagementLoadDataService)\r\n .service('RequestManagementNAVLoadDataService', RequestManagementNAVLoadDataService)\r\n .service('RequestManagementNAVService', RequestManagementNAVService)\r\n .service('RequestManagementNetSuiteLoadDataService', RequestManagementNetSuiteLoadDataService)\r\n .service('RequestManagementNetSuiteService', RequestManagementNetSuiteService)\r\n .service('RequestManagementOracleCloudLoadDataService', RequestManagementOracleCloudLoadDataService)\r\n .service('RequestManagementOracleCloudService', RequestManagementOracleCloudService)\r\n .service('RequestManagementOracleLoadDataService', RequestManagementOracleLoadDataService)\r\n .service('RequestManagementOracleService', RequestManagementOracleService)\r\n .service('RequestManagementPSLoadDataService', RequestManagementPSLoadDataService)\r\n .service('RequestManagementPSService', RequestManagementPSService)\r\n .service('RequestManagementSAPLoadDataService', RequestManagementSAPLoadDataService)\r\n .service('RequestManagementSAPService', RequestManagementSAPService)\r\n .service('RequestManagementShowStepsService', RequestManagementShowStepsService)\r\n .service('RequestManagementStepDefinitions', RequestManagementStepDefinitions)\r\n .service('RequestManagementWizardController', RequestManagementWizardController)\r\n .name;","export default function () {\r\n //Convert User and Role start/end dates to Date type\r\n this.convertRequestDates = function (request) {\r\n convertRequestDatesHelper(request);\r\n };\r\n //Helper function that finds all Start/End Dates in the request and converts them to a Date type\r\n function convertRequestDatesHelper(obj) {\r\n for (var property in obj) {\r\n if (obj.hasOwnProperty(property)) {\r\n if (typeof obj[property] === \"object\") {\r\n convertRequestDatesHelper(obj[property]);\r\n }\r\n else {\r\n if (property === \"StartDate\" && obj[property] != null) {\r\n obj[property] = new Date(obj[property]);\r\n }\r\n if (property === \"EndDate\" && obj[property] != null) {\r\n obj[property] = new Date(obj[property]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n //Convert User and Role dates to local time\r\n this.convertDatesToLocal = function (request) {\r\n convertDatesToLocalHelper(request);\r\n };\r\n //Helper function that loops thru request and finds all Start/End dates and convert them to local time\r\n function convertDatesToLocalHelper(obj) {\r\n for (var property in obj) {\r\n if (obj.hasOwnProperty(property)) {\r\n if (typeof obj[property] === \"object\")\r\n { convertDatesToLocalHelper(obj[property]); }\r\n else {\r\n if (property === \"StartDate\" && obj[property] != null) {\r\n obj[property] = convertTolocalISOTime(obj[property]);\r\n }\r\n if (property === \"EndDate\" && obj[property] != null) {\r\n obj[property] = convertTolocalISOTime(obj[property]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n //Helper function to convert UTC dates to local date time\r\n var convertTolocalISOTime = function (date) {\r\n var tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds\r\n var localISOTime = (new Date(new Date(date) - tzoffset)).toISOString().slice(0, -1);\r\n\r\n return localISOTime;\r\n };\r\n}","export default function () {\r\n\r\n //If App is selected the child steps are set to true else false\r\n function toggleVisibleAppSteps (steps, stepIsVisible, parentStep) {\r\n steps.forEach(step => {\r\n if (step.parent === parentStep) {\r\n step.visible = stepIsVisible;\r\n }\r\n });\r\n }\r\n\r\n this.createCustomSteps = function (application, steps) {\r\n let customSteps = [];\r\n const baseProductName = steps.find(step => step.parent !== application.ProductName && step.parent === application.Name).parent;\r\n const firstBaseIndex = steps.findIndex(step => step.parent !== application.ProductName && step.parent === application.Name);\r\n const customStepBase = steps.filter(step => step.parent !== application.ProductName && step.parent === application.Name);\r\n\r\n customStepBase.forEach(step => {\r\n let newCustomStep = Object.assign({}, step);\r\n if (application.Name === 'Universal') {\r\n newCustomStep.title = application.ProductName + ' ' + newCustomStep.title;\r\n newCustomStep.productId = application.ProductID;\r\n } else {\r\n newCustomStep.title = step.title.replace(application.Name, application.ProductName);\r\n }\r\n newCustomStep.parent = application.ProductName;\r\n newCustomStep.isCustom = true;\r\n customSteps.push(newCustomStep);\r\n });\r\n\r\n // See where the steps need to go order-wise\r\n if (baseProductName < application.ProductName) {\r\n // Custom Product Name is after parent product steps alpha so they follow them\r\n steps.splice(firstBaseIndex + customStepBase.length, 0, ...customSteps);\r\n } else {\r\n // Custom Product Name is before parent product steps alpha so they precede them\r\n steps.splice(firstBaseIndex, 0, ...customSteps);\r\n }\r\n\r\n return steps;\r\n };\r\n\r\n function checkIfApplicationIsSelectedAndMatches (availableApplications, steps, applicationName) {\r\n var appSelected = false;\r\n\r\n availableApplications.forEach(application => {\r\n if (application.ProductName === applicationName) {\r\n toggleVisibleAppSteps(steps, application.selected, applicationName);\r\n appSelected = application.selected;\r\n } else {\r\n toggleVisibleAppSteps(steps, application.selected, application.ProductName);\r\n }\r\n });\r\n\r\n return appSelected;\r\n };\r\n\r\n //NetSuite Selected\r\n this.setNetSuiteStepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'NetSuite');\r\n };\r\n\r\n //SAP Selected\r\n this.setSAPStepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'SAP');\r\n };\r\n\r\n //AAD Selected\r\n this.setAADStepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'Azure Active Directory');\r\n };\r\n\r\n //AX7 Selected\r\n this.setAX7StepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'Dynamics 365 for Finance and Operations');\r\n };\r\n\r\n //AX2012 Selected\r\n this.setAX2012StepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'Dynamics AX');\r\n };\r\n\r\n //Oracle Selected\r\n this.setOracleStepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'Oracle EBS');\r\n };\r\n\r\n //Oracle Cloud Selected\r\n this.setOracleCloudStepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'Oracle Cloud');\r\n };\r\n\r\n //GP Selected\r\n this.setGPStepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'Dynamics GP');\r\n };\r\n\r\n //NAV Selected\r\n this.setNAVStepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'Dynamics NAV');\r\n };\r\n\r\n //D365S Selected\r\n this.setD365SStepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'Dynamics 365 Customer Engagement');\r\n };\r\n\r\n //PeopleSoft Selected\r\n this.setPSStepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'PeopleSoft');\r\n };\r\n\r\n //Salesforce Selected\r\n this.setSalesforceStepsToVisible = function (availableApplications, steps) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, 'Salesforce');\r\n };\r\n\r\n //Custom Product Selected\r\n this.setCustomStepsToVisible = function (availableApplications, steps, application) {\r\n return checkIfApplicationIsSelectedAndMatches(availableApplications, steps, application.ProductName);\r\n };\r\n}","export default /*@ngInject*/ function () {\r\n\r\n this.getListOfSteps = function (wizardMode, alternatePath, requestToEdit) {\r\n var steps = [];\r\n if (wizardMode === 'New' || wizardMode === 'Modify' && requestToEdit) {\r\n steps = [\r\n SelectApplicationsStep,\r\n UniversalProductUserInformationStep,\r\n UniversalProductRolesStep,\r\n AX2012UserInformationStep,\r\n AX2012RolesStep,\r\n AX2012UserGroupsStep,\r\n D365SUserInformationStep,\r\n D365SRolesStep,\r\n D365STeamsStep,\r\n AX7UserInformationStep,\r\n AX7RolesStep,\r\n AX7UserGroupsStep,\r\n AADUserInformationStep,\r\n AADGroupsStep,\r\n AADLicensesStep,\r\n AADRolesStep,\r\n SalesforceUserInformationStep,\r\n SalesforceUserProfilesStep,\r\n SalesforceUserPermissionsStep,\r\n GPUserInformationStep,\r\n GPCompaniesStep,\r\n GPRolesStep,\r\n NAVUserInformationStep,\r\n NAVPermissionSetsStep,\r\n NAVUserGroupsStep,\r\n NetSuiteUserInformationStep,\r\n NetSuiteRolesStep,\r\n NetSuiteGlobalPermissionsStep,\r\n OracleUserInformationStep,\r\n OracleRolesStep,\r\n OracleResponsibilitiesStep,\r\n OracleCloudUserInformationStep,\r\n OracleCloudRolesStep,\r\n PeopleSoftUserInformationStep,\r\n PeopleSoftRolesStep,\r\n SAPUserInformationStep,\r\n SAPSingleRolesStep,\r\n SAPCompositeRolesStep,\r\n EffectiveDatesStep,\r\n RiskAnalysisStep,\r\n RequestNotesStep,\r\n SummaryStep\r\n ];\r\n } else if (wizardMode === 'Modify' && alternatePath === 'SelfService' && !requestToEdit) {\r\n steps = [\r\n SelectApplicationsStep,\r\n UniversalProductUserInformationStep,\r\n UniversalProductRolesStep,\r\n AX2012UserInformationStep,\r\n AX2012RolesStep,\r\n AX2012UserGroupsStep,\r\n D365SUserInformationStep,\r\n D365SRolesStep,\r\n D365STeamsStep,\r\n AX7UserInformationStep,\r\n AX7RolesStep,\r\n AX7UserGroupsStep,\r\n AADUserInformationStep,\r\n AADGroupsStep,\r\n AADLicensesStep,\r\n AADRolesStep,\r\n SalesforceUserInformationStep,\r\n SalesforceUserProfilesStep,\r\n SalesforceUserPermissionsStep,\r\n GPUserInformationStep,\r\n GPCompaniesStep,\r\n GPRolesStep,\r\n NAVUserInformationStep,\r\n NAVPermissionSetsStep,\r\n NAVUserGroupsStep,\r\n NetSuiteUserInformationStep,\r\n NetSuiteRolesStep,\r\n NetSuiteGlobalPermissionsStep,\r\n OracleUserInformationStep,\r\n OracleRolesStep,\r\n OracleResponsibilitiesStep,\r\n OracleCloudUserInformationStep,\r\n OracleCloudRolesStep,\r\n PeopleSoftUserInformationStep,\r\n PeopleSoftRolesStep,\r\n SAPUserInformationStep,\r\n SAPSingleRolesStep,\r\n SAPCompositeRolesStep,\r\n EffectiveDatesStep,\r\n RiskAnalysisStep,\r\n RequestNotesStep,\r\n SummaryStep\r\n ];\r\n } else if (wizardMode === 'Modify' && alternatePath === 'EmergencyAccess' && !requestToEdit) {\r\n steps = [\r\n SelectApplicationsStep,\r\n SAPSingleRolesStep,\r\n SAPCompositeRolesStep,\r\n EmergencyAccessUsageStep,\r\n EffectiveDatesStep,\r\n RequestNotesStep,\r\n SummaryStep\r\n ];\r\n } else if (wizardMode === 'Modify' && !requestToEdit) {\r\n steps = [\r\n SearchExistingUsersStep,\r\n SelectApplicationsStep,\r\n UniversalProductUserInformationStep,\r\n UniversalProductRolesStep,\r\n AX2012UserInformationStep,\r\n AX2012RolesStep,\r\n AX2012UserGroupsStep,\r\n D365SUserInformationStep,\r\n D365SRolesStep,\r\n D365STeamsStep,\r\n AX7UserInformationStep,\r\n AX7RolesStep,\r\n AX7UserGroupsStep,\r\n AADUserInformationStep,\r\n AADGroupsStep,\r\n AADLicensesStep,\r\n AADRolesStep,\r\n SalesforceUserInformationStep,\r\n SalesforceUserProfilesStep,\r\n SalesforceUserPermissionsStep,\r\n GPUserInformationStep,\r\n GPCompaniesStep,\r\n GPRolesStep,\r\n NAVUserInformationStep,\r\n NAVPermissionSetsStep,\r\n NAVUserGroupsStep,\r\n NetSuiteUserInformationStep,\r\n NetSuiteRolesStep,\r\n NetSuiteGlobalPermissionsStep,\r\n OracleUserInformationStep,\r\n OracleRolesStep,\r\n OracleResponsibilitiesStep,\r\n OracleCloudUserInformationStep,\r\n OracleCloudRolesStep,\r\n PeopleSoftUserInformationStep,\r\n PeopleSoftRolesStep,\r\n SAPUserInformationStep,\r\n SAPSingleRolesStep,\r\n SAPCompositeRolesStep,\r\n EffectiveDatesStep,\r\n RiskAnalysisStep,\r\n RequestNotesStep,\r\n SummaryStep\r\n ];\r\n } else if (wizardMode === 'Terminate' && !requestToEdit) {\r\n steps = [\r\n SearchExistingUsersStep,\r\n SelectApplicationsStep,\r\n RequestNotesStep,\r\n SummaryStep\r\n ];\r\n } else if (wizardMode === 'Terminate' && requestToEdit) {\r\n steps = [\r\n SelectApplicationsStep,\r\n RequestNotesStep,\r\n SummaryStep\r\n ];\r\n }\r\n //removes reference from array\r\n var copySteps = angular.copy(steps);\r\n return copySteps;\r\n };\r\n\r\n var SearchExistingUsersStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Universal/SearchExistingUsers.html',\r\n title: 'Search Existing Users',\r\n visible: true,\r\n parent: null\r\n };\r\n var SelectApplicationsStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Universal/SelectApplications.html',\r\n title: 'Select Applications',\r\n visible: true,\r\n parent: null\r\n };\r\n var UniversalProductUserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/UniversalProduct/UPUserInformation.html',\r\n title: 'User Information',\r\n visible: false,\r\n parent: 'Universal'\r\n }\r\n var UniversalProductRolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/UniversalProduct/UPRoles.html',\r\n title: 'Roles',\r\n visible: false,\r\n parent: 'Universal'\r\n }\r\n var AX2012UserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/AX2012/AXUserInformation.html',\r\n title: 'Dynamics AX User Information',\r\n visible: false,\r\n parent: 'Dynamics AX'\r\n };\r\n var AX2012RolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/AX2012/AXRoles.html',\r\n title: 'Dynamics AX Roles',\r\n visible: false,\r\n parent: 'Dynamics AX'\r\n };\r\n var AX2012UserGroupsStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/AX2012/AXUserGroups.html',\r\n title: 'Dynamics AX User Groups',\r\n visible: false,\r\n parent: 'Dynamics AX'\r\n };\r\n var D365SUserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/D365S/D365SUserInformation.html',\r\n title: 'Dynamics 365 Customer Engagement User Information',\r\n visible: false,\r\n parent: 'Dynamics 365 Customer Engagement'\r\n };\r\n var D365SRolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/D365S/D365SRoles.html',\r\n title: 'Dynamics 365 Customer Engagement Roles',\r\n visible: false,\r\n parent: 'Dynamics 365 Customer Engagement'\r\n };\r\n var D365STeamsStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/D365S/D365STeams.html',\r\n title: 'Dynamics 365 Customer Engagement Teams',\r\n visible: false,\r\n parent: 'Dynamics 365 Customer Engagement'\r\n };\r\n var AX7UserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/AX7/AXUserInformation.html',\r\n title: 'Dynamics 365 for Finance and Supply Chain User Information',\r\n visible: false,\r\n parent: 'Dynamics 365 for Finance and Supply Chain'\r\n };\r\n var AX7RolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/AX7/AXRoles.html',\r\n title: 'Dynamics 365 for Finance and Supply Chain Roles',\r\n visible: false,\r\n parent: 'Dynamics 365 for Finance and Supply Chain'\r\n };\r\n var AX7UserGroupsStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/AX7/AXUserGroups.html',\r\n title: 'Dynamics 365 for Finance and Supply Chain User Groups',\r\n visible: false,\r\n parent: 'Dynamics 365 for Finance and Supply Chain'\r\n };\r\n var AADUserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/AAD/AADUserInformation.html',\r\n title: 'Entra ID User Information',\r\n visible: false,\r\n parent: 'Entra ID'\r\n };\r\n var AADRolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/AAD/AADRoles.html',\r\n title: 'Entra ID Roles',\r\n visible: false,\r\n parent: 'Entra ID'\r\n };\r\n var AADGroupsStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/AAD/AADGroups.html',\r\n title: 'Entra ID Groups',\r\n visible: false,\r\n parent: 'Entra ID'\r\n };\r\n var AADLicensesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/AAD/AADLicenses.html',\r\n title: 'Entra ID Licenses',\r\n visible: false,\r\n parent: 'Entra ID'\r\n };\r\n var SalesforceUserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Salesforce/salesforceUserForm.tmpl.html',\r\n title: 'Salesforce User Information',\r\n visible: false,\r\n parent: 'Salesforce'\r\n };\r\n var SalesforceUserProfilesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Salesforce/salesforceProfileForm.tmpl.html',\r\n title: 'Salesforce Profiles',\r\n visible: false,\r\n parent: 'Salesforce'\r\n };\r\n var SalesforceUserPermissionsStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Salesforce/salesforcePermissionSets.tmpl.html',\r\n title: 'Salesforce Permission Sets',\r\n visible: false,\r\n parent: 'Salesforce'\r\n };\r\n var GPUserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/GP/GPUserInformation.html',\r\n title: 'Dynamics GP User Information',\r\n visible: false,\r\n parent: 'Dynamics GP'\r\n };\r\n var GPRolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/GP/GPRoles.html',\r\n title: 'Dynamics GP Roles',\r\n visible: false,\r\n parent: 'Dynamics GP'\r\n };\r\n var GPCompaniesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/GP/GPCompanies.html',\r\n title: 'Dynamics GP Companies',\r\n visible: false,\r\n parent: 'Dynamics GP'\r\n };\r\n var NAVUserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/NAV/NAVUserInformation.html',\r\n title: 'Dynamics NAV User Information',\r\n visible: false,\r\n parent: 'Dynamics NAV'\r\n };\r\n var NAVPermissionSetsStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/NAV/NAVPermissionSets.html',\r\n title: 'Dynamics NAV Permission Sets',\r\n visible: false,\r\n parent: 'Dynamics NAV'\r\n };\r\n var NAVUserGroupsStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/NAV/NAVUserGroups.html',\r\n title: 'Dynamics NAV User Groups',\r\n visible: false,\r\n parent: 'Dynamics NAV'\r\n };\r\n var NetSuiteUserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/NetSuite/NSUserInformation.html',\r\n title: 'NetSuite User Information',\r\n visible: false,\r\n parent: 'NetSuite'\r\n };\r\n var NetSuiteRolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/NetSuite/NSRoles.html',\r\n title: 'NetSuite Roles',\r\n visible: false,\r\n parent: 'NetSuite'\r\n };\r\n var NetSuiteGlobalPermissionsStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/NetSuite/NSGlobalPermissions.html',\r\n title: 'NetSuite Global Permissions',\r\n visible: false,\r\n parent: 'NetSuite'\r\n };\r\n var OracleUserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Oracle/ORUserInformation.html',\r\n title: 'Oracle EBS User Information',\r\n visible: false,\r\n parent: 'Oracle EBS'\r\n };\r\n var OracleRolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Oracle/ORRoles.html',\r\n title: 'Oracle EBS Roles',\r\n visible: false,\r\n parent: 'Oracle EBS'\r\n };\r\n var OracleResponsibilitiesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Oracle/ORResponsibilities.html',\r\n title: 'Oracle EBS Responsibilities',\r\n visible: false,\r\n parent: 'Oracle EBS'\r\n };\r\n var OracleCloudUserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/OracleCloud/ORCloudUserInformation.html',\r\n title: 'Oracle Cloud User Information',\r\n visible: false,\r\n parent: 'Oracle Cloud'\r\n };\r\n var OracleCloudRolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/OracleCloud/ORCloudRoles.html',\r\n title: 'Oracle Cloud Roles',\r\n visible: false,\r\n parent: 'Oracle Cloud'\r\n };\r\n var PeopleSoftUserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/PeopleSoft/PSUserInformation.html',\r\n title: 'PeopleSoft User Information',\r\n visible: false,\r\n parent: 'PeopleSoft'\r\n };\r\n var PeopleSoftRolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/PeopleSoft/PSRoles.html',\r\n title: 'PeopleSoft Roles',\r\n visible: false,\r\n parent: 'PeopleSoft'\r\n };\r\n var SAPUserInformationStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/SAP/SAPUserInformation.html',\r\n title: 'SAP User Information',\r\n visible: false,\r\n parent: 'SAP'\r\n };\r\n var SAPSingleRolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/SAP/SAPRoles.html',\r\n title: 'SAP Single Roles',\r\n visible: false,\r\n parent: 'SAP'\r\n };\r\n var SAPCompositeRolesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/SAP/SAPCompositeRoles.html',\r\n title: 'SAP Composite Roles',\r\n visible: false,\r\n parent: 'SAP'\r\n };\r\n var EmergencyAccessUsageStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/SAP/emergencyAccess.html',\r\n title: 'SAP Emergency Access Usage',\r\n visible: false,\r\n parent: 'SAP'\r\n };\r\n var EffectiveDatesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Universal/EffectiveDates.html',\r\n title: 'Access Effective Dates',\r\n visible: true,\r\n parent: 'Summary'\r\n };\r\n var RiskAnalysisStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Universal/RiskAnalysis.html',\r\n title: 'Risk Analysis',\r\n visible: true,\r\n parent: 'Summary'\r\n };\r\n var RequestNotesStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Universal/RequestNotes.html',\r\n title: 'Request Notes',\r\n visible: true,\r\n parent: 'Summary'\r\n };\r\n var SummaryStep = {\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Universal/Summary.html',\r\n title: 'Summary',\r\n visible: true,\r\n parent: 'Summary'\r\n };\r\n\r\n}","export default function () {\r\n\r\n this.stepDisabled = function (title, wizardInstance, $scope) {\r\n\r\n var enabledSteps = wizardInstance.getEnabledSteps(),\r\n positionInArray = null,\r\n steps = $scope.steps;\r\n\r\n enabledSteps.forEach(function (row, i) {\r\n if (title === row.title) {\r\n positionInArray = i;\r\n }\r\n });\r\n\r\n if ($scope.vm?.salesforceLicensePending && (title === \"Salesforce Profiles\" || title === \"Salesforce Permission Sets\")) {\r\n return true;\r\n }\r\n\r\n if (positionInArray === 0) {\r\n return false;\r\n }\r\n\r\n var firstVisibleNotValidStep = null;\r\n\r\n for (var i = 0; i < enabledSteps.length; i++) {\r\n if (enabledSteps[i].canexit === false && steps[i].visible === true) {\r\n firstVisibleNotValidStep = i;\r\n break;\r\n } if (steps[i].visible === true) {\r\n firstVisibleNotValidStep = positionInArray + 1;\r\n }\r\n }\r\n\r\n if (positionInArray > firstVisibleNotValidStep) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n this.setParentStepToActive = function (parent, wizardInstance, steps) {\r\n var stepIndex = wizardInstance.currentStepNumber() - 1;\r\n\r\n if (stepIndex != -1) {\r\n if (steps[stepIndex].parent === parent) {\r\n return true;\r\n } else { return false; }\r\n } else { return false; }\r\n };\r\n\r\n this.atLeastOneAppSelected = function (availableApplications, wizardMode) {\r\n var validAppsSelected = null;\r\n for (var i = 0; i < availableApplications.length; i++) {\r\n\r\n if (wizardMode != null && wizardMode == 'Terminate' && availableApplications[i].selected == true) {\r\n validAppsSelected = false;\r\n } else if (availableApplications[i].selected == true) {\r\n validAppsSelected = true;\r\n }\r\n }\r\n return validAppsSelected;\r\n };\r\n\r\n this.goToNextVisiblePage = function (steps, wizardInstance) {\r\n for (var i = wizardInstance.currentStepNumber(); i < steps.length; i++) {\r\n var step = steps[i];\r\n if (step.visible == true) {\r\n return step;\r\n }\r\n }\r\n };\r\n\r\n this.goToPreviousVisiblePage = function (steps, wizardInstance) {\r\n for (var i = wizardInstance.currentStepNumber() - 2; i > -1; i--) {\r\n var step = steps[i];\r\n if (step.visible == true) {\r\n return step;\r\n }\r\n }\r\n };\r\n\r\n this.getCurrentStepsTitle = function (wizardInstance) {\r\n if (wizardInstance.currentStep()) {\r\n return wizardInstance.currentStep().title;\r\n }\r\n };\r\n\r\n}","import swal from \"sweetalert2\";\r\n\r\nexport default /*@ngInject*/ function ($scope, helperService) {\r\n\r\n $scope.applyCompanyRestrictionsToAllSelectedRoles = applyCompanyRestrictionsToAllSelectedRoles;\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n var RoleCompany = function (params) {\r\n this.RoleId = params.RoleId;\r\n this.CompanyId = params.CompanyId;\r\n this.RoleName = params.RoleName;\r\n this.CompanyName = params.CompanyName;\r\n this.AllCompanies = params.AllCompanies;\r\n };\r\n\r\n $scope.AllCompanies = false;\r\n\r\n $scope.addRoleToList = function (role) {\r\n $scope.vm.ListOfAvailableAX2012Roles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableAX2012Roles.splice(i, 1);\r\n $scope.vm.ListOfSelectedAX2012Roles.push(role);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedRole = function (role) {\r\n $scope.vm.ListOfSelectedAX2012Roles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfSelectedAX2012Roles.splice(i, 1);\r\n if (role.IsAssignable) {\r\n $scope.vm.ListOfAvailableAX2012Roles.push(row);\r\n }\r\n }\r\n });\r\n\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteExcludedRole = function (role) {\r\n $scope.vm.ListOfExcludedAX2012Roles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfExcludedAX2012Roles.splice(i, 1);\r\n $scope.vm.ListOfAvailableAX2012Roles.push(row);\r\n }\r\n });\r\n\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.addRoleCompany = function (company, selected) {\r\n $scope.vm.ListOfSelectedAX2012Roles.forEach(function (row, i) {\r\n if (row.Id === $scope.selectedRole.Id) {\r\n\r\n if (!row.CompanyId || selected === false) {\r\n $scope.vm.AXRoleCompanyList.splice(i, 1);\r\n }\r\n if (selected === true) {\r\n $scope.vm.AXRoleCompanyList.push(\r\n new RoleCompany({\r\n RoleId: row.RoleId,\r\n CompanyId: company.CompanyId,\r\n RoleName: row.RoleName,\r\n CompanyName: company.CompanyName,\r\n AllCompanies: false\r\n }));\r\n }\r\n\r\n }\r\n });\r\n };\r\n\r\n $scope.updateSelectedRoleCompanies = function (selectedRole, prop, value, applyToAll) {\r\n if (applyToAll) {\r\n $scope.vm.ListOfSelectedAX2012Roles.forEach(role => {\r\n role[prop] = value;\r\n })\r\n } else {\r\n selectedRole[prop] = value;\r\n }\r\n };\r\n\r\n\r\n async function applyCompanyRestrictionsToAllSelectedRoles(selectedRole) {\r\n try {\r\n await swal(helperService.areYouSureParams('Apply Company Restrictions to all Selected Roles', `Are you sure you want to apply the Company Restrictions for Role ${selectedRole.Name} to all currently Selected Roles?`, 'Apply'));\r\n $scope.vm.ListOfSelectedAX2012Roles.forEach(role => {\r\n role['Companies'] = selectedRole.Companies;\r\n });\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n $scope.selectedRole = null;\r\n\r\n $scope.setSelectedRoleTemplates = function (selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n}","export default /*@ngInject*/ function ($scope, $uibModal, $http, RequestManagementAXService, existingUserCheckService, errorsDataService) {\r\n\r\n //General User\r\n $scope.vm.axUserFromDateObject = null;\r\n $scope.vm.axUserToDateObject = null;\r\n $scope.vm.axUserMaxDate = new Date();\r\n var axUserMinDate = new Date();\r\n axUserMinDate.setHours(0, 0, 0, 0);\r\n\r\n $scope.vm.axUserMinDate = axUserMinDate;\r\n if (!$scope.vm.User.AX2012User) {\r\n $scope.vm.User.AX2012User = {};\r\n }\r\n if ($scope.vm.wizardMode === 'New') {\r\n $scope.vm.User.AX2012User.Enabled = true;\r\n }\r\n $scope.vm.User.AX2012User.ProductType = 'AX';\r\n\r\n activate();\r\n\r\n async function activate() {\r\n $scope.showDepartmentControl = await getProductConfig();\r\n createCompanyDropdown();\r\n }\r\n\r\n async function getProductConfig() {\r\n // check for the tishman config value and use it to determine whether to display the department control when a person record has been selected\r\n try {\r\n const response = await $http.get(`${apiUrl}api/universal/products/ax/configuration/IM_TishmanDepartmentCustomization`);\r\n if (response.data.Value === '1') {\r\n await createDepartmentDropdown();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } catch (error) {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n async function createDepartmentDropdown() {\r\n const response = await $http.get(`${apiUrl}api/identitymanager/ax/departments`);\r\n $scope.vm.axDepartments = response.data;\r\n }\r\n\r\n function createCompanyDropdown() {\r\n $scope.vm.axCompanyDropdownOptions = {\r\n valuePrimitive: true,\r\n template: `\r\n {{dataItem.CompanyName}} | {{dataItem.CompanyId}}\r\n `,\r\n filter: \"contains\",\r\n autoBind: true,\r\n minLength: 3,\r\n optionLabel: '-- Select Company --'\r\n };\r\n\r\n $scope.vm.axCompanyDropdownDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: options => {\r\n\r\n options.success($scope.vm.ListOfAX2012Companies);\r\n }\r\n }\r\n });\r\n }\r\n\r\n $scope.axUserFromDateChanged = function () {\r\n var date;\r\n if ($scope.vm.User.AX2012User.StartDate == '') {\r\n date = new Date();\r\n } else {\r\n date = new Date($scope.vm.User.AX2012User.StartDate);\r\n }\r\n\r\n $scope.vm.axUserMinDate = date;\r\n $scope.vm.nsMinDate = date;\r\n $scope.vm.fromMinDate = date;\r\n if ($scope.vm.User.AX2012User == null) {\r\n $scope.vm.User.AX2012User = {};\r\n }\r\n };\r\n\r\n $scope.axUserToDateChanged = function () {\r\n $scope.vm.axUserMaxDate = new Date($scope.vm.User.AX2012User.EndDate);\r\n $scope.vm.nsMaxDate = new Date($scope.vm.User.AX2012User.EndDate);\r\n $scope.vm.fromMaxDate = new Date($scope.vm.User.AX2012User.StartDate);\r\n if ($scope.vm.User.AX2012User == null) {\r\n $scope.vm.User.AX2012User = {};\r\n }\r\n };\r\n\r\n $scope.clearWindowsUser = function () {\r\n $scope.vm.User.AX2012User.SID = null;\r\n $scope.vm.User.AX2012User.NetworkDomain = null;\r\n $scope.vm.User.AX2012User.NetworkAlias = null;\r\n $scope.vm.User.AX2012User.UserName = null;\r\n $scope.vm.User.AX2012User.DisplayUserId = null;\r\n };\r\n\r\n //Watch for AX UserId updates the display value of the user Id by removing the partiion\r\n $scope.$watch('vm.User.AX2012User', function (newVal) {\r\n if ($scope.vm.User != null && $scope.vm.User.AX2012User != null && $scope.vm.User.AX2012User.UserId != null) {\r\n $scope.vm.User.AX2012User.DisplayUserId = $scope.vm.User.AX2012User.UserId.slice($scope.vm.User.AX2012User.UserId.indexOf('|') + 1, $scope.vm.User.AX2012User.UserId.length);\r\n }\r\n }, true);\r\n\r\n $scope.openModal = function () {\r\n $scope.vm.ExistingWindowsUserSearchString = null;\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Universal/SearchWindowsUsersModal.html',\r\n controller: 'SearchAXWindowsUsersController',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n $scope.$watch('vm.User.AX2012User.Partition', function (newVal) {\r\n if ($scope.vm.User != null && $scope.vm.User.AX2012User != null && $scope.vm.User.AX2012User.Partition != null) {\r\n $scope.partitionChange();\r\n }\r\n }, true);\r\n\r\n $scope.partitionChange = function () {\r\n if ($scope.vm.User.AX2012User.Partition != null) {\r\n RequestManagementAXService.getAllAX2012Companies($scope.vm.User.AX2012User.Partition.Key).then(function (response) {\r\n $scope.vm.ListOfAX2012Companies = response.data;\r\n $scope.vm.axCompanyDropdownDataSource.read();\r\n }, function errorCallback(response) {\r\n //permissionsDfrd.reject();\r\n });\r\n }\r\n };\r\n\r\n $scope.existingUserCheck = function (userId, partitionId) {\r\n existingUserCheckService.checkAX(userId, partitionId)\r\n .then(response => {\r\n if (response.data === true) {\r\n $scope.userExists = true;\r\n $scope.wizardForm.AXuserId.$setValidity(\"AXuserId\", false);\r\n }\r\n else {\r\n $scope.userExists = false;\r\n $scope.wizardForm.AXuserId.$setValidity(\"AXuserId\", true);\r\n }\r\n\r\n })\r\n .catch(error => {\r\n errorsDataService.catch(error);\r\n });\r\n };\r\n\r\n $scope.$watchGroup([\"vm.User.AX2012User.Partition\", \"vm.User.AX2012User.DisplayUserId\"], () => {\r\n if ($scope.vm.User.AX2012User.DisplayUserId && $scope.vm.User.AX2012User.Partition && $scope.vm.wizardMode === 'New') {\r\n $scope.existingUserCheck($scope.vm.User.AX2012User.DisplayUserId, $scope.vm.User.AX2012User.Partition.Key);\r\n }\r\n });\r\n\r\n $scope.setPersonName = function (personObject) {\r\n $scope.vm.User.AX2012User.Person = {\r\n PartyNumber: personObject.PartyNumber,\r\n PersonNameAlias: personObject.PersonNameAlias,\r\n PersonName: personObject.PersonName,\r\n PersonPrimaryEmail: personObject.PersonPrimaryEmail\r\n };\r\n\r\n $scope.personSelected = true;\r\n }\r\n}","export default /*@ngInject*/ function ($scope, configurationDataService) {\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await setRoleDescConfigValue();\r\n await setOrgHierarchiesConfigValue();\r\n }\r\n\r\n async function setRoleDescConfigValue() {\r\n let response = await configurationDataService.getProductConfigurationValueByName('ax7', 'IM_ShowRoleDescription');\r\n $scope.roleDesc = response.data.Value === '1';\r\n }\r\n\r\n async function setOrgHierarchiesConfigValue() {\r\n let response = await configurationDataService.getProductConfigurationValueByName('ax7', 'IM_EnableOrgHierarchies');\r\n $scope.vm.orgHierarchiesEnabled = response.data.Value === '1';\r\n }\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n var RoleCompany = function (params) {\r\n this.RoleId = params.RoleId;\r\n this.CompanyId = params.CompanyId;\r\n this.RoleName = params.RoleName;\r\n this.CompanyName = params.CompanyName;\r\n this.AllCompanies = params.AllCompanies;\r\n };\r\n\r\n $scope.AllCompanies = false;\r\n $scope.validateNumberOfAXRoles = validateNumberOfAXRoles;\r\n\r\n function validateNumberOfAXRoles() {\r\n $scope.vm.numberOfAXRolesValid = null;\r\n if ($scope.vm.ListOfSelectedAX7Roles.length > 0) {\r\n $scope.vm.numberOfAXRolesValid = true;\r\n }\r\n if ($scope.vm.ListOfExcludedAX7Roles.length > 0) {\r\n $scope.vm.numberOfAXRolesValid = true;\r\n }\r\n }\r\n\r\n $scope.addRoleToList = function (role) {\r\n $scope.vm.ListOfAvailableAX7Roles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableAX7Roles.splice(i, 1);\r\n $scope.vm.ListOfSelectedAX7Roles.push(role);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfAXRoles();\r\n };\r\n\r\n $scope.deleteSelectedRole = function (role) {\r\n $scope.vm.ListOfSelectedAX7Roles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfSelectedAX7Roles.splice(i, 1);\r\n if (role.IsAssignable) {\r\n $scope.vm.ListOfAvailableAX7Roles.push(row);\r\n }\r\n }\r\n });\r\n\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfAXRoles();\r\n };\r\n\r\n $scope.deleteExcludedRole = function (role) {\r\n $scope.vm.ListOfExcludedAX7Roles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfExcludedAX7Roles.splice(i, 1);\r\n $scope.vm.ListOfAvailableAX7Roles.push(row);\r\n }\r\n });\r\n\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfAXRoles();\r\n };\r\n\r\n $scope.addRoleCompany = function (company, selected) {\r\n $scope.vm.ListOfSelectedAX7Roles.forEach(function (row, i) {\r\n if (row.Id === $scope.selectedRole.Id) {\r\n\r\n if (!row.CompanyId || selected === false) {\r\n $scope.vm.AX7RoleCompanyList.splice(i, 1);\r\n }\r\n if (selected === true) {\r\n $scope.vm.AX7RoleCompanyList.push(\r\n new RoleCompany({\r\n RoleId: row.RoleId,\r\n CompanyId: company.CompanyId,\r\n RoleName: row.RoleName,\r\n CompanyName: company.CompanyName,\r\n AllCompanies: false\r\n }));\r\n }\r\n\r\n }\r\n });\r\n };\r\n\r\n $scope.updateSelectedRoleCompanies = function (selectedRole, prop, value, applyToAll) {\r\n if (applyToAll) {\r\n $scope.vm.ListOfSelectedAX7Roles.forEach(role => {\r\n role[prop] = value;\r\n })\r\n } else {\r\n selectedRole[prop] = value;\r\n }\r\n };\r\n\r\n $scope.setSelectedRoleTemplates = function (selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n\r\n $scope.selectedRole = null;\r\n\r\n}","export default /*@ngInject*/ function ($scope, existingUserCheckService, errorsDataService, configurationDataService, $http) {\r\n\r\n //General User\r\n $scope.vm.axUserFromDateObject = null;\r\n $scope.vm.axUserToDateObject = null;\r\n $scope.vm.axUserMaxDate = new Date();\r\n var axUserMinDate = new Date();\r\n axUserMinDate.setHours(0, 0, 0, 0);\r\n\r\n $scope.vm.selectADUser = selectADUser;\r\n\r\n $scope.vm.axUserMinDate = axUserMinDate;\r\n\r\n if (!$scope.vm.User.AX7User) {\r\n $scope.vm.User.AX7User = {};\r\n }\r\n $scope.vm.User.AX7User.ProductType = \"AX7\";\r\n\r\n activate();\r\n\r\n function activate() {\r\n if ($scope.vm.ListOfAX7Companies && $scope.vm.ListOfAX7Companies.length > 0) { \r\n setAADFieldRestrictionConfig();\r\n if (!$scope.vm.User.AX7User.NetworkDomain) {\r\n getProvider();\r\n }\r\n\r\n createCompanyDropdown();\r\n }\r\n }\r\n\r\n async function setAADFieldRestrictionConfig() {\r\n try {\r\n const response = await configurationDataService.getProductConfigurationValueByName('ax7', 'IM_DisableAADUserFields');\r\n $scope.disableAADFields = response.data.Value === '1';\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n async function getProvider() {\r\n let response = await $http.get(`${apiUrl}api/universal/products/AX7/configuration/im_provider`);\r\n $scope.vm.User.AX7User.NetworkDomain = response.data.Value;\r\n }\r\n\r\n function createCompanyDropdown() {\r\n $scope.vm.axCompanyDropdownOptions = {\r\n valuePrimitive: true,\r\n template: `\r\n {{dataItem.CompanyName}} | {{dataItem.CompanyId}}\r\n `,\r\n filter: \"contains\",\r\n autoBind: true,\r\n minLength: 3,\r\n optionLabel: '-- Select Company --',\r\n filtering: item => {\r\n var filterValue = item.filter != undefined ? item.filter.value : \"\";\r\n item.preventDefault();\r\n\r\n item.sender.dataSource.filter({\r\n logic: \"or\",\r\n filters: [\r\n {\r\n field: \"CompanyName\",\r\n operator: \"contains\",\r\n value: filterValue\r\n },\r\n {\r\n field: \"CompanyId\",\r\n operator: \"contains\",\r\n value: filterValue\r\n }\r\n ]\r\n });\r\n }\r\n };\r\n\r\n $scope.vm.axCompanyDropdownDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: options => {\r\n // Only allow Legal Entity Companies to be assigned as Default Company\r\n options.success($scope.vm.ListOfAX7Companies.filter(company => company.CompanyType === 'LegalEntity'));\r\n }\r\n }\r\n });\r\n }\r\n if ($scope.vm.wizardMode === 'New') {\r\n $scope.vm.User.AX7User.Enabled = true;\r\n }\r\n if (!$scope.vm.User.AX7User.PersonUser) {\r\n $scope.vm.User.AX7User.PersonUser = {};\r\n }\r\n\r\n $scope.axUserFromDateChanged = function () {\r\n var date;\r\n if ($scope.vm.User.AX7User.StartDate === '') {\r\n date = new Date();\r\n } else {\r\n date = new Date($scope.vm.User.AX7User.StartDate);\r\n }\r\n\r\n $scope.vm.axUserMinDate = date;\r\n $scope.vm.nsMinDate = date;\r\n $scope.vm.fromMinDate = date;\r\n if ($scope.vm.User.AX7User == null) {\r\n $scope.vm.User.AX7User = {};\r\n }\r\n };\r\n\r\n $scope.axUserToDateChanged = function () {\r\n $scope.vm.axUserMaxDate = new Date($scope.vm.User.AX7User.EndDate);\r\n $scope.vm.nsMaxDate = new Date($scope.vm.User.AX7User.EndDate);\r\n $scope.vm.fromMaxDate = new Date($scope.vm.User.AX7User.StartDate);\r\n if ($scope.vm.User.AX7User == null) {\r\n $scope.vm.User.AX7User = {};\r\n }\r\n };\r\n\r\n $scope.existingUserCheck = function (userId) {\r\n existingUserCheckService.checkAX7(userId)\r\n .then(response => {\r\n if (response.data === true) {\r\n $scope.userExists = true;\r\n $scope.wizardForm.AX7userId.$setValidity(\"AX7userId\", false);\r\n }\r\n else {\r\n $scope.userExists = false;\r\n $scope.wizardForm.AX7userId.$setValidity(\"AX7userId\", true);\r\n }\r\n })\r\n .catch(error => {\r\n errorsDataService.catch(error);\r\n });\r\n };\r\n\r\n $scope.$watch(\"vm.User.AX7User.UserId\", () => {\r\n if ($scope.vm.User?.AX7User?.UserId && $scope.vm.wizardMode === 'New') {\r\n $scope.existingUserCheck($scope.vm.User.AX7User.UserId);\r\n }\r\n });\r\n\r\n $scope.$watch(\"vm.ListOfAX7Companies\", () => {\r\n activate();\r\n });\r\n\r\n $scope.setPersonName = function (personObject) {\r\n $scope.vm.User.AX7User.PersonUser = {\r\n PartyNumber: personObject.PartyNumber,\r\n PersonNameAlias: personObject.PersonNameAlias,\r\n PersonName: personObject.PersonName,\r\n PersonPrimaryEmail: personObject.PersonPrimaryEmail\r\n };\r\n\r\n $scope.personSelected = true;\r\n }\r\n\r\n function selectADUser(user) {\r\n $scope.vm.User.AX7User = user;\r\n if (user.UserType !== 'Guest') {\r\n getProvider();\r\n }\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n $scope.addRoleToList = addRoleToList;\r\n $scope.deleteSelectedRole = deleteSelectedRole;\r\n $scope.setSelectedRoleTemplates = setSelectedRoleTemplates;\r\n\r\n function addRoleToList(role) {\r\n $scope.vm.ListOfAvailableD365SRoles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableD365SRoles.splice(i, 1);\r\n $scope.vm.ListOfSelectedD365SRoles.push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfD365SRoles();\r\n }\r\n\r\n function deleteSelectedRole(role) {\r\n $scope.vm.ListOfSelectedD365SRoles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfSelectedD365SRoles.splice(i, 1);\r\n if (role.IsAssignable) {\r\n $scope.vm.ListOfAvailableD365SRoles.push(row);\r\n }\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfD365SRoles();\r\n }\r\n\r\n function validateNumberOfD365SRoles() {\r\n $scope.vm.numberOfD365SRolesValid = null;\r\n if ($scope.vm.ListOfSelectedD365SRoles.length > 0) {\r\n $scope.vm.numberOfD365SRolesValid = true;\r\n }\r\n }\r\n\r\n function setSelectedRoleTemplates(selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n $scope.addTeamToList = addTeamToList;\r\n $scope.deleteSelectedTeam = deleteSelectedTeam;\r\n\r\n function addTeamToList(team) {\r\n $scope.vm.ListOfAvailableD365STeams.forEach(function (row, i) {\r\n if (row.Id === team.Id) {\r\n $scope.vm.ListOfAvailableD365STeams.splice(i, 1);\r\n $scope.vm.ListOfSelectedD365STeams.push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfD365STeams();\r\n }\r\n\r\n function deleteSelectedTeam(team) {\r\n $scope.vm.ListOfSelectedD365STeams.forEach(function (row, i) {\r\n if (row.Id === team.Id) {\r\n $scope.vm.ListOfSelectedD365STeams.splice(i, 1);\r\n $scope.vm.ListOfAvailableD365STeams.push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfD365STeams();\r\n }\r\n\r\n function validateNumberOfD365STeams() {\r\n $scope.vm.numberOf365STeamsValid = null;\r\n if ($scope.vm.ListOfSelectedD365STeams.length > 0) {\r\n $scope.vm.numberOf365STeamsValid = true;\r\n }\r\n }\r\n}","export default /*@ngInject*/ function ($scope, $filter, RequestManagementD365SService, helperService) {\r\n\r\n var vm = this;\r\n vm.licenseTypeDisabled = true;\r\n vm.getLicenseTypes = getLicenseTypes;\r\n vm.businessUnitDropdownChange = businessUnitDropdownChange;\r\n $scope.vm.selectADUser = selectADUser;\r\n if (!$scope.vm.User.D365SUser) {\r\n $scope.vm.User.D365SUser = {};\r\n }\r\n $scope.vm.User.D365SUser.ProductType = 'D365S';\r\n\r\n $scope.$on('im-request-d365s-getlicenseTypes', (event, args) => getLicenseTypes());\r\n\r\n function activate() {\r\n vm.businessUnitsDropdownLoading = true;\r\n vm.usersDropdownLoading = true;\r\n vm.territoryDropdownLoading = true;\r\n vm.siteDropdownLoading = true;\r\n vm.incomingMailDropdownLoading = true;\r\n vm.outgoingMailDropdownLoading = true;\r\n vm.accessModeDropdownLoading = true;\r\n\r\n RequestManagementD365SService.getAllUsers().then(response => {\r\n response.data = $filter('orderBy')(response.data, 'FullName');\r\n vm.D365SUserDataSource = response.data;\r\n vm.usersDropdownLoading = false;\r\n });\r\n\r\n RequestManagementD365SService.getAllBusinessUnits().then(response => {\r\n vm.D365SBusinessUnitDataSource = response.data;\r\n vm.businessUnitsDropdownLoading = false;\r\n });\r\n\r\n RequestManagementD365SService.getAllTerritories().then(response => {\r\n vm.D365STerritoryDataSource = response.data;\r\n vm.territoryDropdownLoading = false;\r\n });\r\n\r\n RequestManagementD365SService.getAllSites().then(response => {\r\n vm.D365SSiteDataSource = response.data;\r\n vm.siteDropdownLoading = false;\r\n });\r\n\r\n RequestManagementD365SService.getAllIncomingMailMethods().then(response => {\r\n vm.D365SIncomingMailMethodsDataSource = response.data.lstOptions;\r\n vm.incomingMailDropdownLoading = false;\r\n });\r\n\r\n RequestManagementD365SService.getAllOutgoingMailMethods().then(response => {\r\n vm.D365SOutgoingMailMethodsDataSource = response.data.lstOptions;\r\n vm.outgoingMailDropdownLoading = false;\r\n });\r\n\r\n RequestManagementD365SService.getAllAccessModes().then(response => {\r\n response.data.lstOptions = $filter('orderBy')(response.data.lstOptions, 'Label');\r\n vm.D365SAccessModeDataSource = response.data.lstOptions;\r\n vm.accessModeDropdownLoading = false;\r\n });\r\n\r\n }\r\n\r\n //activate();\r\n\r\n function getLicenseTypes() {\r\n if ($scope.vm.User.D365SUser.AccessMode !== null) {\r\n vm.licenseTypeDropdownLoading = true;\r\n RequestManagementD365SService.getLicenseTypesByAccessModeId($scope.vm.User.D365SUser.AccessMode).then(response => {\r\n response.data.lstOptions = $filter('orderBy')(response.data.lstOptions, 'Label');\r\n vm.D365SLicenseTypeDataSource = response.data.lstOptions;\r\n vm.licenseTypeDropdownLoading = false;\r\n vm.licenseTypeDisabled = false;\r\n }).catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n vm.licenseTypeDropdownLoading = false;\r\n });\r\n } else {\r\n vm.licenseTypeDisabled = true;\r\n vm.D365SLicenseTypeDataSource = null;\r\n }\r\n }\r\n\r\n function businessUnitDropdownChange() {\r\n $scope.vm.ListOfSelectedD365SRoles = [];\r\n $scope.vm.ListOfSelectedD365STeams = [];\r\n\r\n RequestManagementD365SService.getRolesByBusinessUnitId($scope.vm.User.D365SUser.BusinessUnitId).then(response => {\r\n response.data = response.data.filter(role => role.IsAssignable);\r\n $scope.vm.ListOfAvailableD365SRoles = response.data;\r\n });\r\n\r\n RequestManagementD365SService.getTeamsByBusinessUnitId($scope.vm.User.D365SUser.BusinessUnitId).then(response => {\r\n $scope.vm.ListOfAvailableD365STeams = response.data;\r\n });\r\n }\r\n\r\n function selectADUser(user) {\r\n $scope.vm.User.D365SUser = user;\r\n }\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.addCompanyToList = function (company) {\r\n $scope.vm.ListOfAvailableGPCompanies.forEach(function (row, i) {\r\n if (row.Id === company.Id) {\r\n $scope.vm.ListOfAvailableGPCompanies.splice(i, 1);\r\n $scope.vm.ListOfSelectedGPCompanies.push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedCompany = function (company) {\r\n $scope.vm.ListOfSelectedGPCompanies.forEach(function (row, i) {\r\n if (row.Id === company.Id) {\r\n $scope.vm.ListOfSelectedGPCompanies.splice(i, 1);\r\n $scope.vm.ListOfAvailableGPCompanies.push(row);\r\n\r\n $scope.vm.ListOfStoredGPRoles = $scope.vm.ListOfStoredGPRoles.filter(selectedRole => selectedRole.Company.Id !== company.Id);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n}","export default /*@ngInject*/ function ($scope, configurationDataService) {\r\n\r\n getRoleDescConfigValue();\r\n\r\n async function getRoleDescConfigValue() {\r\n let response = await configurationDataService.getProductConfigurationValueByName('gp', 'IM_ShowRoleDescription');\r\n $scope.vm.roleDesc = response.data.Value;\r\n }\r\n\r\n if (!$scope.vm.ListOfStoredGPRoles) $scope.vm.ListOfStoredGPRoles = [];\r\n\r\n $scope.addRoleToList = function (role) {\r\n $scope.vm.ListOfAvailableGPRoles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableGPRoles.splice(i, 1);\r\n if (!$scope.vm.ListOfStoredGPRoles) $scope.vm.ListOfStoredGPRoles = [];\r\n $scope.vm.ListOfStoredGPRoles.push({ Role: row, Company: $scope.vm.selectedCompany });\r\n $scope.vm.ListOfSelectedGPRoles.push({ Role: row, Company: $scope.vm.selectedCompany });\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedRole = function (role) {\r\n $scope.vm.ListOfSelectedGPRoles.forEach(function (row, i) {\r\n if (row.Role.Id === role.Role.Id && row.Company.Id === role.Company.Id) {\r\n\r\n $scope.vm.ListOfSelectedGPRoles.splice(i, 1);\r\n //This company is for display purposes on the Summary page\r\n row.Role.Company = row.Company;\r\n if (role.Role.IsAssignable) {\r\n $scope.vm.ListOfAvailableGPRoles.push(row.Role);\r\n }\r\n }\r\n });\r\n $scope.vm.ListOfStoredGPRoles.forEach(function (row, i) {\r\n if (row.Role.Id === role.Role.Id && row.Company.Id === role.Company.Id) {\r\n $scope.vm.ListOfStoredGPRoles.splice(i, 1);\r\n }\r\n });\r\n\r\n\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.addNewCompany = function () {\r\n var newCompany = angular.copy($scope.vm.selectedCompany);\r\n $scope.vm.User.GPUser.Companies.push({ AltModProfile: $scope.vm.currentAltModProfile, Company: newCompany });\r\n };\r\n\r\n $scope.companyDropdownChange = function () {\r\n $scope.refreshLists();\r\n };\r\n\r\n $scope.profileDropdownChange = function () {\r\n //Set the AltModProfile on the company\r\n if (!$scope.vm.User.GPUser.Companies) {\r\n $scope.vm.User.GPUser.Companies = [];\r\n }\r\n\r\n var foundCompany = $scope.vm.User.GPUser.Companies.find(function (company) {\r\n return company.Company.Id === $scope.vm.selectedCompany.Id;\r\n });\r\n\r\n if (foundCompany) {\r\n foundCompany.AltModProfile = $scope.vm.currentAltModProfile;\r\n } else {\r\n $scope.addNewCompany();\r\n }\r\n };\r\n\r\n $scope.refreshLists = function () {\r\n //Sets the AltModProfile for the selected company if there is an existing user\r\n if ($scope.vm.selectedCompany && $scope.vm.User.GPUser && $scope.vm.User.GPUser.Companies) {\r\n let foundCompany = $scope.vm.User.GPUser.Companies.find(company => company?.Company?.Id === $scope.vm.selectedCompany.Id);\r\n\r\n if (foundCompany) {\r\n if (foundCompany.AltModProfile !== \"\") {\r\n var altModProfileId = foundCompany.AltModProfile.Id ? foundCompany.AltModProfile.Id : foundCompany.AltModProfile;\r\n $scope.vm.currentAltModProfile = $scope.vm.GPAltModProfileDataSource.find(profile => profile.Id === altModProfileId);\r\n }\r\n else {\r\n foundCompany.AltModProfile = $scope.vm.GPAltModProfileDataSource[0];\r\n $scope.vm.currentAltModProfile = $scope.vm.GPAltModProfileDataSource[0];\r\n }\r\n } else {\r\n $scope.vm.currentAltModProfile = $scope.vm.GPAltModProfileDataSource[0];\r\n $scope.addNewCompany();\r\n }\r\n } else {\r\n if (!$scope.vm.User.GPUser.Companies) {\r\n $scope.vm.User.GPUser.Companies = [];\r\n }\r\n $scope.vm.currentAltModProfile = $scope.vm.GPAltModProfileDataSource[0];\r\n $scope.addNewCompany();\r\n }\r\n\r\n if (!$scope.vm.selectedCompany) {\r\n $scope.vm.ListOfAvailableGPRoles = [];\r\n $scope.vm.currentAltModProfile = null;\r\n }\r\n\r\n $scope.vm.ListOfSelectedGPRoles = [];\r\n\r\n //Load the Roles for the selected company\r\n if ($scope.vm.selectedCompany) {\r\n $scope.vm.ListOfAvailableGPRoles = angular.copy($scope.vm.ListOfAllAvailableGPRoles);\r\n if ($scope.defaultRoleTemplate && $scope.vm.wizardMode === \"New\" && !$scope.vm.requestToEdit) { \r\n let defaultRoles = $scope.defaultRoleTemplate.Roles.filter(role => role.TypeId === \"Role\" && role.ProductType === \"GP\");\r\n\r\n defaultRoles.forEach(role => {\r\n $scope.addRoleToList(role);\r\n });\r\n } else if ($scope.vm.ListOfStoredGPRoles) {\r\n $scope.vm.ListOfStoredGPRoles.forEach(roleCompany => {\r\n if (roleCompany.Company.Id.toString() === $scope.vm.selectedCompany.Id.toString()) {\r\n\r\n roleCompany.Pending = $scope.vm.PendingGpRoleCompanies.some(pendingRole => pendingRole.Role.Id === roleCompany.Role.Id && pendingRole.Company.Id === roleCompany.Company.Id);\r\n\r\n $scope.vm.ListOfSelectedGPRoles.push(roleCompany);\r\n\r\n $scope.vm.ListOfAvailableGPRoles.forEach(function (row, i) {\r\n if (row.Id === roleCompany.Role.Id) {\r\n $scope.vm.ListOfAvailableGPRoles.splice(i, 1);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n // Remove Pending Roles by Company Here\r\n $scope.vm.ListOfAvailableGPRoles = $scope.vm.ListOfAvailableGPRoles.map(availableItem => {\r\n availableItem.Pending = $scope.vm?.PendingGpRoleCompanies?.find(byCompanyAndRole.bind(null, $scope.vm.selectedCompany, availableItem));\r\n\r\n return availableItem;\r\n });\r\n }\r\n };\r\n\r\n $scope.setSelectedRoleTemplates = function (selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n}\r\n\r\nfunction byCompanyAndRole(selectedCompany, availableItem, pendingItem) {\r\n return availableItem.Id === pendingItem.Role.Id && selectedCompany.Id === pendingItem.Company.Id;\r\n}","export default /*@ngInject*/ function ($scope, $rootScope, $filter, $uibModal, RequestManagementGPService, errorsDataService, existingUserCheckService) {\r\n\r\n var vm = $scope.vm;\r\n vm.GPUserExists = null;\r\n\r\n if (!$scope.vm.User.GPUser) {\r\n $scope.vm.User.GPUser = {};\r\n }\r\n $scope.vm.User.GPUser.ProductType = 'GP';\r\n\r\n function getLoginTypes() {\r\n $scope.vm.GPLoginTypesDataSource = RequestManagementGPService.getGPLoginTypes();\r\n }\r\n function getUserTypes() {\r\n\r\n $scope.vm.GPUserTypesDataSource = RequestManagementGPService.getGPUserTypes();\r\n\r\n //If version is less than GP 2015, remove Self Service user type\r\n if ($rootScope.ConfigurationValues.GP_Version < 5) {\r\n $scope.vm.GPUserTypesDataSource = $filter('filter')($scope.vm.GPUserTypesDataSource, { Id: '!' + 3 });\r\n }\r\n }\r\n function getStatuses() {\r\n $scope.vm.GPStatusesDataSource = RequestManagementGPService.getGPStatuses();\r\n }\r\n\r\n getLoginTypes();\r\n getUserTypes();\r\n getStatuses();\r\n\r\n //General User\r\n vm.gpUserFromDateObject = null;\r\n vm.gpUserToDateObject = null;\r\n vm.gpUserMnsDate = new Date();\r\n var gpUserMinDate = new Date();\r\n gpUserMinDate.setHours(0, 0, 0, 0);\r\n\r\n vm.gpUserMinDate = gpUserMinDate;\r\n vm.gpUserFromDateChanged = function () {\r\n var date;\r\n if ($scope.vm.User.GPUser.StartDate === '') {\r\n date = new Date();\r\n } else {\r\n date = new Date($scope.vm.User.GPUser.StartDate);\r\n }\r\n\r\n $scope.vm.gpUserMinDate = date;\r\n $scope.vm.gpMinDate = date;\r\n $scope.vm.fromMinDate = date;\r\n if ($scope.vm.User.GPUser == null) {\r\n $scope.vm.User.GPUser = {};\r\n }\r\n };\r\n vm.gpUserToDateChanged = function () {\r\n $scope.vm.gpUserMnsDate = new Date($scope.vm.User.GPUser.EndDate);\r\n $scope.vm.gpMnsDate = new Date($scope.vm.User.GPUser.EndDate);\r\n $scope.vm.fromMnsDate = new Date($scope.vm.User.GPUser.StartDate);\r\n if ($scope.vm.User.GPUser == null) {\r\n $scope.vm.User.GPUser = {};\r\n }\r\n };\r\n\r\n vm.clearWindowsUser = function () {\r\n if (vm.User != null && vm.User.GPUser != null) {\r\n vm.User.GPUser.WindowsUserId = null;\r\n vm.User.GPUser.NetBiosName = null;\r\n vm.User.GPUser.ADUserId = null;\r\n\r\n vm.User.GPUser.Id = null;\r\n vm.User.GPUser.UserName = null;\r\n\r\n vm.GPUserExists = null;\r\n }\r\n };\r\n\r\n $scope.existingUserCheck = function (userId) {\r\n existingUserCheckService.checkGP(userId)\r\n .then(response => {\r\n $scope.vm.GPUserExists = response.data;\r\n if (response.data === true) {\r\n $scope.wizardForm.GPuserId.$setValidity(\"GPuserId\", false);\r\n } else {\r\n $scope.wizardForm.GPuserId.$setValidity(\"GPuserId\", true);\r\n }\r\n }).catch(error => {\r\n errorsDataService.catch(error);\r\n });\r\n };\r\n\r\n $scope.$watch(\"vm.User.GPUser.Id\", () => {\r\n if (vm.User.GPUser.Id && vm.wizardMode === 'New') {\r\n $scope.existingUserCheck(vm.User.GPUser.Id);\r\n }\r\n });\r\n\r\n}\r\n","export default /*@ngInject*/ function ($scope, configurationDataService) {\r\n\r\n getRoleDescConfigValue();\r\n\r\n async function getRoleDescConfigValue() {\r\n let response = await configurationDataService.getProductConfigurationValueByName('nav', 'IM_ShowRoleDescription');\r\n $scope.roleDesc = response.data.Value;\r\n }\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n var RoleCompany = function (params) {\r\n this.RoleId = params.RoleId;\r\n this.CompanyId = params.CompanyId;\r\n this.RoleName = params.RoleName;\r\n this.CompanyName = params.CompanyName;\r\n this.AllCompanies = params.AllCompanies;\r\n };\r\n\r\n $scope.AllCompanies = false;\r\n\r\n $scope.handleNavPermissionCompany = function (permissionSet) {\r\n permissionSet.Companies = permissionSet.CompanyNames.map(name => {\r\n return { Name: name };\r\n });\r\n };\r\n\r\n $scope.addRoleToList = function (role) {\r\n $scope.vm.ListOfAvailableNAVPermissionSets.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableNAVPermissionSets.splice(i, 1);\r\n $scope.vm.ListOfSelectedNAVPermissionSets.push(role);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedRole = function (role) {\r\n $scope.vm.ListOfSelectedNAVPermissionSets.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfSelectedNAVPermissionSets.splice(i, 1);\r\n if (role.IsAssignable) {\r\n $scope.vm.ListOfAvailableNAVPermissionSets.push(row);\r\n }\r\n }\r\n });\r\n\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.addRoleCompany = function (company, selected) {\r\n $scope.vm.ListOfSelectedNAVPermissionSets.forEach(function (row, i) {\r\n if (row.Id === $scope.selectedRole.Id) {\r\n\r\n if (!row.CompanyId || selected === false) {\r\n $scope.vm.NAVRoleCompanyList.splice(i, 1);\r\n }\r\n if (selected === true) {\r\n $scope.vm.NAVRoleCompanyList.push(\r\n new RoleCompany({\r\n RoleId: row.RoleId,\r\n CompanyId: company.CompanyId,\r\n RoleName: row.RoleName,\r\n CompanyName: company.CompanyName,\r\n AllCompanies: false\r\n }));\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.selectedRole = null;\r\n\r\n $scope.setSelectedRoleTemplates = function (selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.changeClass = function(userGroup){\r\n $scope.vm.ListOfAvailableNAVUserGroups.forEach(function (group) {\r\n group.isSelected = false;\r\n });\r\n userGroup.isSelected = true;\r\n };\r\n\r\n var RoleCompany = function (params) {\r\n this.RoleId = params.RoleId;\r\n this.CompanyId = params.CompanyId;\r\n this.RoleName = params.RoleName;\r\n this.CompanyName = params.CompanyName;\r\n this.AllCompanies = params.AllCompanies;\r\n };\r\n\r\n $scope.AllCompanies = false;\r\n\r\n $scope.handleNavGroupCompany = function (group) {\r\n group.Companies = group.CompanyNames.map(name => {\r\n return { Name: name };\r\n });\r\n };\r\n\r\n $scope.addRoleToList = function (role) {\r\n $scope.vm.ListOfAvailableNAVUserGroups.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableNAVUserGroups.splice(i, 1);\r\n $scope.vm.ListOfSelectedNAVUserGroups.push(role);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedRole = function (role) {\r\n $scope.vm.ListOfSelectedNAVUserGroups.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfSelectedNAVUserGroups.splice(i, 1);\r\n $scope.vm.ListOfAvailableNAVUserGroups.push(row);\r\n }\r\n });\r\n\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.addRoleCompany = function (company, selected) {\r\n $scope.vm.ListOfSelectedNAVUserGroups.forEach(function (row, i) {\r\n if (row.Id === $scope.selectedRole.Id) {\r\n\r\n if (row.CompanyId == null || selected == false) {\r\n $scope.vm.NAVRoleCompanyList.splice(i, 1);\r\n }\r\n if (selected == true) {\r\n $scope.vm.NAVRoleCompanyList.push(\r\n new RoleCompany({\r\n RoleId: row.RoleId,\r\n CompanyId: company.CompanyId,\r\n RoleName: row.RoleName,\r\n CompanyName: company.CompanyName,\r\n AllCompanies: false\r\n }));\r\n }\r\n\r\n }\r\n });\r\n };\r\n\r\n $scope.selectedRole = null;\r\n\r\n}","export default /*@ngInject*/ function ($scope, $uibModal, RequestManagementNAVService) {\r\n $scope.testing = {};\r\n\r\n function getNAVLicenseTypes() {\r\n $scope.vm.NAVLicenseTypeDataSource = RequestManagementNAVService.getNAVLicenseTypes();\r\n }\r\n\r\n if (!$scope.vm.User.NAVUser) {\r\n $scope.vm.User.NAVUser = {};\r\n }\r\n $scope.vm.User.NAVUser.ProductType = 'NAV';\r\n $scope.vm.User.NAVUser.State = '0';\r\n\r\n getNAVLicenseTypes();\r\n \r\n //General User\r\n $scope.vm.nsUserFromDateObject = null;\r\n $scope.vm.nsUserToDateObject = null;\r\n $scope.vm.nsUserMnsDate = new Date();\r\n var nsUserMinDate = new Date();\r\n nsUserMinDate.setHours(0, 0, 0, 0);\r\n\r\n $scope.vm.nsUserMinDate = nsUserMinDate;\r\n\r\n $scope.nsUserFromDateChanged = function () {\r\n var date;\r\n if ($scope.vm.User.NAVUser.StartDate == '') {\r\n date = new Date();\r\n } else {\r\n date = new Date($scope.vm.User.NAVUser.StartDate);\r\n }\r\n\r\n $scope.vm.nsUserMinDate = date;\r\n $scope.vm.nsMinDate = date;\r\n $scope.vm.fromMinDate = date;\r\n if ($scope.vm.User.NAVUser == null) {\r\n $scope.vm.User.NAVUser = {};\r\n $scope.vm.User.NAVUser.State = 0;\r\n }\r\n };\r\n\r\n $scope.nsUserToDateChanged = function () {\r\n $scope.vm.nsUserMnsDate = new Date($scope.vm.User.NAVUser.EndDate);\r\n $scope.vm.nsMnsDate = new Date($scope.vm.User.NAVUser.EndDate);\r\n $scope.vm.fromMnsDate = new Date($scope.vm.User.NAVUser.StartDate);\r\n if ($scope.vm.User.NAVUser == null) {\r\n $scope.vm.User.NAVUser = {};\r\n $scope.vm.User.NAVUser.State = 0;\r\n }\r\n };\r\n\r\n}\r\n\r\n","import { standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, data, helperService) {\r\n\r\n var vm = $scope.vm = {};\r\n\r\n //Search Existing Users\r\n var getDuplicateGridColumns = function () {\r\n return [\r\n { field: \"FirstName\", title: \"First Name\", filterable: false },\r\n { field: \"LastName\", title: \"Last Name\", filterable: false },\r\n { field: \"Email\", title: \"Email\", filterable: false }\r\n ];\r\n };\r\n\r\n vm.DuplicateUserGridOptions = helperService.setMainGridOptions(getDuplicateGridColumns(), 350);\r\n vm.DuplicateUserGridOptions.autoBind = true;\r\n\r\n $scope.DuplicateNetSuiteUserGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n data: data.NetSuiteUsers\r\n });\r\n\r\n vm.changeSelectedUser = function (kendoEvent) {\r\n\r\n var grid = kendoEvent.sender;\r\n var selectedExistingUser = grid.dataItem(grid.select());\r\n\r\n var User = {};\r\n User.Applications = [];\r\n User.UserMaster = data.UserMasterRecord;\r\n\r\n User.NetSuiteUser = selectedExistingUser;\r\n $uibModalInstance.close(User);\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.addNSPermissionToList = function (permission) {\r\n\r\n $scope.vm.ListOfAvailableNetSuitePermissions.forEach(function (row, i) {\r\n if (row.Id === permission.Id) {\r\n $scope.vm.ListOfAvailableNetSuitePermissions.splice(i, 1);\r\n row.selectedLevel = null;\r\n $scope.vm.ListOfSelectedNetSuitePermissions.push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedPermission = function (selectedPermission) {\r\n $scope.vm.ListOfSelectedNetSuitePermissions.forEach(function (row, i) {\r\n if (row.Id === selectedPermission.Id) {\r\n $scope.vm.ListOfSelectedNetSuitePermissions.splice(i, 1);\r\n $scope.vm.ListOfAvailableNetSuitePermissions.push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n \r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.validateNumberOfNetSuiteRoles = validateNumberOfNetSuiteRoles;\r\n\r\n function validateNumberOfNetSuiteRoles() {\r\n $scope.vm.numberOfNetSuiteRolesValid = null;\r\n if ($scope.vm.wizardMode === 'Modify') {\r\n $scope.vm.numberOfNetSuiteRolesValid = true;\r\n } else {\r\n if ($scope.vm.ListOfSelectedNetSuiteRoles.length > 0) {\r\n $scope.vm.numberOfNetSuiteRolesValid = true;\r\n }\r\n }\r\n }\r\n\r\n $scope.addRoleToList = function (role) {\r\n $scope.vm.ListOfAvailableNetSuiteRoles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableNetSuiteRoles.splice(i, 1);\r\n $scope.vm.ListOfSelectedNetSuiteRoles.push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfNetSuiteRoles();\r\n };\r\n\r\n $scope.deleteSelectedRole = function (role) {\r\n $scope.vm.ListOfSelectedNetSuiteRoles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfSelectedNetSuiteRoles.splice(i, 1);\r\n if (role.IsAssignable) {\r\n $scope.vm.ListOfAvailableNetSuiteRoles.push(row);\r\n }\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfNetSuiteRoles();\r\n };\r\n\r\n $scope.setSelectedRoleTemplates = function (selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n}","import { standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, RequestManagementNetSuiteService, manageDataDataService, $http) {\r\n\r\n if (!$scope.vm.User.NetSuiteUser) {\r\n $scope.vm.User.NetSuiteUser = {};\r\n }\r\n\r\n $scope.vm.selectUser = selectUser;\r\n $scope.vm.User.NetSuiteUser.ProductType = \"NS\";\r\n setFieldConfigurationValues();\r\n\r\n $scope.vm.subsidiaryDropdownChange = function (netSuiteUser) {\r\n getDepartments(netSuiteUser);\r\n getClasses(netSuiteUser);\r\n getLocations(netSuiteUser);\r\n };\r\n\r\n function getDepartments(netSuiteUser) {\r\n //If the user is not passed in try the $scope to get the data\r\n if (netSuiteUser == null) {\r\n netSuiteUser = $scope.vm.User.NetSuiteUser;\r\n }\r\n\r\n if (netSuiteUser.Subsidiary) {\r\n RequestManagementNetSuiteService.getDepartmentsBySubsidiary(netSuiteUser.Subsidiary.Id).then(function (response) {\r\n $scope.vm.NSDepartmentDataSource = response.data;\r\n });\r\n }\r\n }\r\n\r\n function getClasses(netSuiteUser) {\r\n //If the user is not passed in try the $scope to get the data\r\n if (netSuiteUser == null) {\r\n netSuiteUser = $scope.vm.User.NetSuiteUser;\r\n }\r\n\r\n if (netSuiteUser.Subsidiary) {\r\n RequestManagementNetSuiteService.getClassesBySubsidiary(netSuiteUser.Subsidiary.Id).then(function (response) {\r\n $scope.vm.NSClassDataSource = response.data;\r\n });\r\n }\r\n }\r\n\r\n function getLocations(netSuiteUser) {\r\n //If the user is not passed in try the $scope to get the data\r\n if (netSuiteUser == null) {\r\n netSuiteUser = $scope.vm.User.NetSuiteUser;\r\n }\r\n\r\n if (netSuiteUser.Subsidiary) {\r\n RequestManagementNetSuiteService.getLocationsBySubsidiary(netSuiteUser.Subsidiary.Id).then(function (response) {\r\n $scope.vm.NSLocationDataSource = response.data;\r\n });\r\n }\r\n }\r\n\r\n $scope.vm.clearNSUser = function () {\r\n $scope.vm.User.NetSuiteUser = null;\r\n $scope.vm.NSDepartmentDataSource = null;\r\n $scope.vm.NSLocationDataSource = null;\r\n $scope.vm.NSClassDataSource = null;\r\n };\r\n\r\n //General User\r\n $scope.vm.nsUserFromDateObject = null;\r\n $scope.vm.nsUserToDateObject = null;\r\n $scope.vm.nsUserMnsDate = new Date();\r\n var nsUserMinDate = new Date();\r\n nsUserMinDate.setHours(0, 0, 0, 0);\r\n\r\n $scope.vm.nsUserMinDate = nsUserMinDate;\r\n\r\n $scope.nsUserFromDateChanged = function () {\r\n var date;\r\n if ($scope.vm.User.NetSuiteUser.StartDate === '') {\r\n date = new Date();\r\n } else {\r\n date = new Date($scope.vm.User.NetSuiteUser.StartDate);\r\n }\r\n\r\n $scope.vm.nsUserMinDate = date;\r\n $scope.vm.nsMinDate = date;\r\n $scope.vm.fromMinDate = date;\r\n if ($scope.vm.User.NetSuiteUser == null) {\r\n $scope.vm.User.NetSuiteUser = {};\r\n }\r\n };\r\n\r\n $scope.nsUserToDateChanged = function () {\r\n $scope.vm.nsUserMnsDate = new Date($scope.vm.User.NetSuiteUser.EndDate);\r\n $scope.vm.nsMnsDate = new Date($scope.vm.User.NetSuiteUser.EndDate);\r\n $scope.vm.fromMnsDate = new Date($scope.vm.User.NetSuiteUser.StartDate);\r\n if ($scope.vm.User.NetSuiteUser == null) {\r\n $scope.vm.User.NetSuiteUser = {};\r\n }\r\n };\r\n\r\n $scope.openModal = function () {\r\n $scope.vm.ExistingWindowsUserSearchString = null;\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Universal/SearchWindowsUsersModal.html',\r\n controller: SearchNonNSUsersController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n };\r\n\r\n async function setFieldConfigurationValues() {\r\n $scope.vm.showADUserLookup = $scope.vm.config.find(config => config.Name === 'AD_Active').Value === '1';\r\n $scope.vm.showAADUserLookup = $scope.vm.config.find(config => config.Name === 'AAD_Active').Value === '1';\r\n let response = await manageDataDataService.getConfigurationByProductId('NS');\r\n $scope.vm.disableADUserFields = response.data.find(config => config.Name === 'IM_DisableADUserFields').Value === '1' && $scope.vm.showADUserLookup;\r\n $scope.vm.disableAADUserFields = response.data.find(config => config.Name === 'IM_DisableAADUserFields').Value === '1' && $scope.vm.showAADUserLookup;\r\n }\r\n\r\n function selectUser(user) {\r\n $scope.vm.User.NetSuiteUser = user;\r\n if (user.UserType !== 'Guest') {\r\n setProvider();\r\n }\r\n }\r\n\r\n async function setProvider() {\r\n const { data } = await $http.get(`${apiUrl}api/universal/products/NS/configuration/im_provider`);\r\n $scope.vm.User.NetSuiteUser.NetworkDomain = data.Value;\r\n }\r\n\r\n}\r\n\r\nfunction SearchNonNSUsersController($scope, $rootScope, $filter, $http, $uibModalInstance, helperService) {\r\n\r\n var vm = $scope.vm;\r\n $scope.selectedUser = null;\r\n $scope.modalTitle = 'Search for Existing NetSuite Employee';\r\n vm.ExistingWindowsUserSearchString = '';\r\n\r\n //Search Existing Users\r\n var getExistingUserGridColumns = function () {\r\n return [\r\n { field: \"FirstName\", title: \"First Name\", filterable: false },\r\n { field: \"LastName\", title: \"Last Name\", filterable: false },\r\n { field: \"Email\", title: \"Email\", filterable: false }\r\n ];\r\n };\r\n\r\n $scope.doneSearchingUsers = function (vm) {\r\n $rootScope.IMSelectedExistingUser = null;\r\n\r\n if (vm.ExistingWindowsUserSearchString === '' || vm.ExistingWindowsUserSearchString == null) {\r\n\r\n var raw = vm.ExistingusersGridDataSource.data();\r\n var length = raw.length;\r\n\r\n var item, i;\r\n for (i = length - 1; i >= 0; i--) {\r\n\r\n item = raw[i];\r\n vm.ExistingusersGridDataSource.remove(item);\r\n\r\n }\r\n } else {\r\n if (vm.wizardMode === 'Terminate') {\r\n vm.ExistingusersGridDataSource.read();\r\n } else {\r\n vm.ExistingusersGridDataSource.read();\r\n }\r\n }\r\n };\r\n\r\n vm.ExistingUsersGridOptions = helperService.setMainGridOptions(getExistingUserGridColumns(), 350);\r\n vm.ExistingUsersGridOptions.autoBind = false;\r\n vm.ExistingUsersGridOptions.pageable = false;\r\n\r\n vm.ExistingusersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http({\r\n method: 'GET',\r\n url: `${apiUrl}api/identitymanager/ns/employees/search`,\r\n params: { searchStr: vm.ExistingWindowsUserSearchString }\r\n }).then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'UserName');\r\n options.success(response.data);\r\n }, function errorCallback(response) {\r\n options.error();\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n vm.searchKeyDown = function () {\r\n vm.SearchExistingUserSelected = null;\r\n };\r\n\r\n vm.changeExistingUserRowSelected = function (kendoEvent) {\r\n var grid = kendoEvent.sender;\r\n $scope.selectedUser = grid.dataItem(grid.select());\r\n };\r\n\r\n $scope.selectUser = function () {\r\n if ($scope.selectedUser != null) {\r\n if (vm.User.NetSuiteUserUser == null) {\r\n vm.User.NetSuiteUserUser = {};\r\n }\r\n\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/ns/employees/' + $scope.selectedUser.Id\r\n\r\n }).then(function (response) {\r\n\r\n vm.User.NetSuiteUser = response.data;\r\n vm.ListOfSelectedNetSuiteRoles = response.data.Roles;\r\n updateListOfAvailableRoles();\r\n vm.subsidiaryDropdownChange();\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n\r\n }\r\n vm.ExistingWindowsUserSearchString = null;\r\n\r\n $uibModalInstance.close();\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n function updateListOfAvailableRoles() {\r\n vm.ListOfSelectedNetSuiteRoles.forEach(function (role) {\r\n vm.ListOfAvailableNetSuiteRoles.forEach(function (availableRole, j) {\r\n if (availableRole.Id === role.Id) {\r\n vm.ListOfAvailableNetSuiteRoles.splice(j, 1);\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n $scope.vm.validateNumberOfOracleResponsibilities = validateNumberOfOracleResponsibilities;\r\n\r\n function validateNumberOfOracleResponsibilities() {\r\n $scope.vm.numberOfOracleResponsibilitiesValid = null;\r\n if ($scope.vm.ORRBACEnabled) {\r\n if ($scope.vm.ListOfSelectedOracleResponsibilities.length > 0 || $scope.vm.ListOfSelectedOracleRoles.length > 0) {\r\n $scope.vm.numberOfOracleResponsibilitiesValid = true;\r\n }\r\n }\r\n if ($scope.vm.ListOfSelectedOracleResponsibilities.length > 0) {\r\n $scope.vm.numberOfOracleResponsibilitiesValid = true;\r\n }\r\n }\r\n\r\n $scope.addResponsibilityToList = function (responsibility) {\r\n $scope.vm.ListOfAvailableOracleResponsibilities.forEach(function (row, i) {\r\n if (row.Id === responsibility.Id) {\r\n $scope.vm.ListOfAvailableOracleResponsibilities.splice(i, 1);\r\n $scope.vm.ListOfSelectedOracleResponsibilities.push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfOracleResponsibilities();\r\n };\r\n\r\n $scope.deleteSelectedResponsibility = function (responsibility) {\r\n $scope.vm.ListOfSelectedOracleResponsibilities.forEach(function (row, i) {\r\n if (row.Id === responsibility.Id) {\r\n $scope.vm.ListOfSelectedOracleResponsibilities.splice(i, 1);\r\n if (responsibility.IsAssignable) {\r\n $scope.vm.ListOfAvailableOracleResponsibilities.push(row);\r\n }\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfOracleResponsibilities();\r\n };\r\n\r\n $scope.setSelectedRoleTemplates = function (selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.addRoleToList = function (role) {\r\n $scope.vm.ListOfAvailableOracleRoles.forEach(function (row, i) {\r\n if (row.Name === role.Name) {\r\n $scope.vm.ListOfAvailableOracleRoles.splice(i, 1);\r\n $scope.vm.ListOfSelectedOracleRoles.push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n $scope.vm.validateNumberOfOracleResponsibilities();\r\n };\r\n\r\n $scope.deleteSelectedRole = function (role) {\r\n $scope.vm.ListOfSelectedOracleRoles.forEach(function (row, i) {\r\n if (row.Name === role.Name) {\r\n $scope.vm.ListOfSelectedOracleRoles.splice(i, 1);\r\n if (role.IsAssignable) {\r\n $scope.vm.ListOfAvailableOracleRoles.push(row);\r\n }\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n $scope.vm.validateNumberOfOracleResponsibilities();\r\n };\r\n}","export default /*@ngInject*/ function ($scope, RequestManagementOracleService, existingUserCheckService, errorsDataService, manageDataDataService, $http) {\r\n\r\n $scope.vm.PasswordExpirationOptions = RequestManagementOracleService.getPasswordExpirationTypes();\r\n\r\n //General User\r\n $scope.vm.userFromDateObject = null;\r\n $scope.vm.userToDateObject = null;\r\n $scope.vm.userMinDate = new Date();\r\n if (!$scope.vm.User.OracleUser) {\r\n $scope.vm.User.OracleUser = {};\r\n }\r\n $scope.vm.selectUser = selectUser;\r\n $scope.vm.User.OracleUser.ProductType = \"OR\";\r\n setFieldConfigurationValues();\r\n var userMinDate = new Date();\r\n userMinDate.setHours(0, 0, 0, 0);\r\n\r\n $scope.vm.userMinDate = userMinDate;\r\n\r\n $scope.userFromDateChanged = function () {\r\n var date;\r\n if ($scope.vm.User.OracleUser.StartDate == '') {\r\n date = new Date();\r\n } else {\r\n date = new Date($scope.vm.User.OracleUser.StartDate);\r\n }\r\n\r\n $scope.vm.userMinDate = date;\r\n $scope.vm.minDate = date;\r\n $scope.vm.fromMinDate = date;\r\n if ($scope.vm.User.OracleUser == null) {\r\n $scope.vm.User.OracleUser = {};\r\n }\r\n };\r\n\r\n $scope.userToDateChanged = function () {\r\n $scope.vm.userMinDate = new Date($scope.vm.User.OracleUser.EndDate);\r\n $scope.vm.minDate = new Date($scope.vm.User.OracleUser.EndDate);\r\n $scope.vm.fromMinDate = new Date($scope.vm.User.OracleUser.StartDate);\r\n if ($scope.vm.User.OracleUser == null) {\r\n $scope.vm.User.OracleUser = {};\r\n }\r\n };\r\n\r\n async function existingUserCheck(username) {\r\n try {\r\n const res = await existingUserCheckService.checkOR(username);\r\n if (res.data === true) {\r\n $scope.wizardForm.ORusername.$setValidity(\"ORusername\", false);\r\n $scope.vm.userExists = true;\r\n }\r\n else {\r\n $scope.wizardForm.ORusername.$setValidity(\"ORusername\", true);\r\n $scope.vm.userExists = false;\r\n }\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n };\r\n\r\n $scope.$watch(\"vm.User.OracleUser.Name\", () => {\r\n if ($scope.vm.User.OracleUser.Name && $scope.vm.wizardMode === 'New') {\r\n existingUserCheck($scope.vm.User.OracleUser.Name)\r\n }\r\n });\r\n\r\n async function setFieldConfigurationValues() {\r\n $scope.vm.showADUserLookup = $scope.vm.config.find(config => config.Name === 'AD_Active').Value === '1';\r\n $scope.vm.showAADUserLookup = $scope.vm.config.find(config => config.Name === 'AAD_Active').Value === '1';\r\n let response = await manageDataDataService.getConfigurationByProductId('OR');\r\n $scope.vm.disableADUserFields = response.data.find(config => config.Name === 'IM_DisableADUserFields').Value === '1' && $scope.vm.showADUserLookup;\r\n $scope.vm.disableAADUserFields = response.data.find(config => config.Name === 'IM_DisableAADUserFields').Value === '1' && $scope.vm.showAADUserLookup;\r\n }\r\n\r\n function selectUser(user) {\r\n $scope.vm.User.OracleUser = user;\r\n if (user.UserType !== 'Guest') {\r\n setProvider();\r\n }\r\n }\r\n\r\n async function setProvider() {\r\n const { data } = await $http.get(`${apiUrl}api/universal/products/NS/configuration/im_provider`);\r\n $scope.vm.User.OracleUser.NetworkDomain = data.Value;\r\n }\r\n}","export default /*@ngInject*/ function ($scope, configurationDataService) {\r\n\r\n getRoleDescConfigValue();\r\n\r\n async function getRoleDescConfigValue() {\r\n let response = await configurationDataService.getProductConfigurationValueByName('orfc', 'IM_ShowRoleDescription');\r\n $scope.roleDesc = response.data.Value;\r\n }\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.addRoleToList = function (role) {\r\n $scope.vm.ListOfAvailableOracleCloudRoles.forEach(function (row, i) {\r\n if (row.RoleID === role.RoleID) {\r\n $scope.vm.ListOfAvailableOracleCloudRoles.splice(i, 1);\r\n $scope.vm.ListOfStoredOracleCloudRoles.push({ Role: row });\r\n $scope.vm.ListOfSelectedOracleCloudRoles.push(role);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedRole = function (role) {\r\n\r\n $scope.vm.ListOfSelectedOracleCloudRoles.forEach(function (row, i) {\r\n if (row.RoleID === role.RoleID) {\r\n $scope.vm.ListOfSelectedOracleCloudRoles.splice(i, 1);\r\n if (role.IsAssignable) {\r\n $scope.vm.ListOfAvailableOracleCloudRoles.push(role);\r\n }\r\n }\r\n });\r\n $scope.vm.ListOfStoredOracleCloudRoles.forEach(function (row, j) {\r\n if (row.RoleID === role.RoleID) {\r\n $scope.vm.ListOfStoredOracleCloudRoles.splice(j, 1);\r\n }\r\n });\r\n\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.setSelectedRoleTemplates = function (selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n\r\n}","export default /*@ngInject*/ function ($scope, manageDataDataService, $http) {\r\n var orfcUserMinDate = new Date();\r\n orfcUserMinDate.setHours(0, 0, 0, 0);\r\n\r\n $scope.vm.selectUser = selectUser;\r\n\r\n setFieldConfigurationValues();\r\n\r\n if (!$scope.vm.User.OracleCloudUser) {\r\n $scope.vm.User.OracleCloudUser = {};\r\n }\r\n $scope.vm.User.OracleCloudUser.ProductType = \"ORFC\";\r\n\r\n $scope.vm.orfcUserMinDate = orfcUserMinDate;\r\n if (!$scope.vm.User.OracleCloudUser) {\r\n $scope.vm.User.OracleCloudUser = {};\r\n }\r\n\r\n\r\n $scope.orfcUserFromDateChanged = function () {\r\n var date;\r\n if ($scope.vm.User.OracleCloudUser.StartDate === '') {\r\n date = new Date();\r\n } else {\r\n date = new Date($scope.vm.User.OracleCloudUser.StartDate);\r\n }\r\n\r\n $scope.vm.orfcUserMinDate = date;\r\n $scope.vm.orfcMinDate = date;\r\n $scope.vm.fromMinDate = date;\r\n if ($scope.vm.User.OracleCloudUser == null) {\r\n $scope.vm.User.OracleCloudUser = {};\r\n }\r\n };\r\n\r\n $scope.orfcUserToDateChanged = function () {\r\n $scope.vm.orfcUserMinDate = new Date($scope.vm.User.OracleCloudUser.EndDate);\r\n $scope.vm.orfcMinDate = new Date($scope.vm.User.OracleCloudUser.EndDate);\r\n $scope.vm.fromMinDate = new Date($scope.vm.User.OracleCloudUser.StartDate);\r\n if ($scope.vm.User.OracleCloudUser == null) {\r\n $scope.vm.User.OracleCloudUser = {};\r\n }\r\n };\r\n\r\n async function setFieldConfigurationValues() {\r\n $scope.vm.showADUserLookup = $scope.vm.config.find(config => config.Name === 'AD_Active').Value === '1';\r\n $scope.vm.showAADUserLookup = $scope.vm.config.find(config => config.Name === 'AAD_Active').Value === '1';\r\n let response = await manageDataDataService.getConfigurationByProductId('ORFC');\r\n $scope.vm.disableADUserFields = response.data.find(config => config.Name === 'IM_DisableADUserFields').Value === '1' && $scope.vm.showADUserLookup;\r\n $scope.vm.disableAADUserFields = response.data.find(config => config.Name === 'IM_DisableAADUserFields').Value === '1' && $scope.vm.showAADUserLookup;\r\n }\r\n\r\n function selectUser(user) {\r\n $scope.vm.User.OracleCloudUser = user;\r\n if (user.UserType !== 'Guest') {\r\n setProvider();\r\n }\r\n }\r\n\r\n async function setProvider() {\r\n const { data } = await $http.get(`${apiUrl}api/universal/products/ORFC/configuration/im_provider`);\r\n $scope.vm.User.OracleCloudUser.NetworkDomain = data.Value;\r\n }\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n $scope.validateNumberOfSAPRoleObjects = validateNumberOfSAPRoleObjects;\r\n\r\n $scope.addRoleObjectToList = function (roleObject, productName) {\r\n $scope.vm.ListOfAvailableSAPRoleObjects[productName].forEach(function (row, i) {\r\n if (row.Id === roleObject.Id) {\r\n $scope.vm.ListOfAvailableSAPRoleObjects[productName].splice(i, 1);\r\n $scope.vm.ListOfSelectedSAPRoleObjects[productName].push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfSAPRoleObjects(productName);\r\n };\r\n\r\n $scope.deleteSelectedRoleObject = function (roleObject, productName) {\r\n $scope.vm.ListOfSelectedSAPRoleObjects[productName].forEach(function (row, i) {\r\n if (row.Id === roleObject.Id) {\r\n $scope.vm.ListOfSelectedSAPRoleObjects[productName].splice(i, 1);\r\n $scope.vm.ListOfAvailableSAPRoleObjects[productName].push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfSAPRoleObjects(productName);\r\n };\r\n\r\n function validateNumberOfSAPRoleObjects(productName) {\r\n if (!$scope.vm.numberOfSAPRoleObjectsValid) {\r\n $scope.vm.numberOfSAPRoleObjectsValid = [];\r\n }\r\n $scope.vm.numberOfSAPRoleObjectsValid[productName] = null;\r\n if ($scope.vm.ListOfSelectedSAPRoleObjects[productName].length > 0) {\r\n $scope.vm.numberOfSAPRoleObjectsValid[productName] = true;\r\n }\r\n }\r\n}","export default /*@ngInject*/ function ($scope, configurationDataService) {\r\n\r\n getRoleDescConfigValue();\r\n\r\n async function getRoleDescConfigValue() {\r\n let response = await configurationDataService.getProductConfigurationValueByName('sap', 'IM_ShowRoleDescription');\r\n $scope.roleDesc = response.data.Value;\r\n }\r\n\r\n $scope.addSingleRoleToList = function (role, productName) {\r\n $scope.vm.ListOfAvailableSAPSingleRoles[productName].forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableSAPSingleRoles[productName].splice(i, 1);\r\n $scope.vm.ListOfSelectedSAPSingleRoles[productName].push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedSingleRole = function (role, productName) {\r\n $scope.vm.ListOfSelectedSAPSingleRoles[productName].forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfSelectedSAPSingleRoles[productName].splice(i, 1);\r\n if (role.IsAssignable) {\r\n $scope.vm.ListOfAvailableSAPSingleRoles[productName].push(row);\r\n }\r\n if (role.IsEmergencyAccess) {\r\n // Clear out selected TCodes\r\n $scope.vm.ListOfAvailableSAPRoleObjects[productName] = null;\r\n $scope.vm.ListOfSelectedSAPRoleObjects[productName] = null;\r\n }\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.setSelectedRoleTemplates = function (selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n}","export default /*@ngInject*/ function ($scope, RequestManagementSAPService, passwordCriteriaDataService, manageDataDataService) {\r\n $scope.vm.selectUser = selectUser;\r\n\r\n function getUserTypes() {\r\n $scope.vm.SAPUserTypeDataSource = RequestManagementSAPService.getSAPUserTypes();\r\n }\r\n\r\n getUserTypes();\r\n\r\n if (!$scope.vm.User.SAPUser) {\r\n $scope.vm.User.SAPUser = {};\r\n }\r\n\r\n //General User\r\n $scope.vm.sapUserFromDateObject = null;\r\n $scope.vm.sapUserToDateObject = null;\r\n $scope.vm.sapUserMaxDate = new Date();\r\n var sapUserMinDate = new Date();\r\n sapUserMinDate.setHours(0, 0, 0, 0);\r\n\r\n $scope.vm.sapUserMinDate = sapUserMinDate;\r\n setFieldConfigurationValues();\r\n\r\n $scope.sapUserFromDateChanged = function () {\r\n var date;\r\n if ($scope.vm.User.SAPUser.StartDate === '') {\r\n date = new Date();\r\n } else {\r\n date = new Date($scope.vm.User.SAPUser.StartDate);\r\n }\r\n\r\n $scope.vm.sapUserMinDate = date;\r\n $scope.vm.nsMinDate = date;\r\n $scope.vm.fromMinDate = date;\r\n if ($scope.vm.User.SAPUser == null) {\r\n $scope.vm.User.SAPUser = {};\r\n }\r\n };\r\n\r\n $scope.sapUserToDateChanged = function () {\r\n $scope.vm.sapUserMaxDate = new Date($scope.vm.User.SAPUser.EndDate);\r\n $scope.vm.nsMaxDate = new Date($scope.vm.User.SAPUser.EndDate);\r\n $scope.vm.fromMaxDate = new Date($scope.vm.User.SAPUser.StartDate);\r\n if ($scope.vm.User.SAPUser == null) {\r\n $scope.vm.User.SAPUser = {};\r\n }\r\n };\r\n\r\n async function setFieldConfigurationValues() {\r\n $scope.vm.showADUserLookup = $scope.vm.config.find(config => config.Name === 'AD_Active').Value === '1';\r\n $scope.vm.showAADUserLookup = $scope.vm.config.find(config => config.Name === 'AAD_Active').Value === '1';\r\n let response = await manageDataDataService.getConfigurationByProductId('SAP');\r\n $scope.vm.disableADUserFields = response.data.find(config => config.Name === 'IM_DisableADUserFields').Value === '1' && $scope.vm.showADUserLookup && $scope.vm.wizardMode === 'New';\r\n $scope.vm.disableAADUserFields = response.data.find(config => config.Name === 'IM_DisableAADUserFields').Value === '1' && $scope.vm.showAADUserLookup && $scope.vm.wizardMode === 'New';\r\n }\r\n\r\n function selectUser(user, product) {\r\n $scope.vm.User.SAPUser[product] = user;\r\n }\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n $scope.invalidEmergencyAccessEndDate = false;\r\n\r\n if ($scope.vm.alternatePath === \"EmergencyAccess\") {\r\n $scope.emergencyAccessPeriod = Number(JSON.parse(localStorage.getItem(\"ConfigurationValues\")).MaxFirefighterAccessPeriod);\r\n $scope.maxEndDate = new Date();\r\n $scope.maxEndDate.setTime($scope.maxEndDate.getTime() + ($scope.emergencyAccessPeriod * 60 * 60 * 1000));\r\n }\r\n\r\n $scope.clearEffectiveDates = function (dataItem) {\r\n dataItem.StartDate = null;\r\n dataItem.EndDate = null;\r\n\r\n $scope.vm.fromDateString = '';\r\n $scope.vm.toDateString = '';\r\n\r\n $scope.setSelectedEffectiveDates(null, null, dataItem);\r\n };\r\n\r\n $scope.vm.fromDateString = '';\r\n $scope.vm.fromDateObject;\r\n $scope.vm.toDateString = '';\r\n $scope.vm.toDateObject;\r\n $scope.vm.maxDate = new Date();\r\n $scope.vm.minDate = new Date(2000, 0, 1, 0, 0, 0);\r\n $scope.vm.fromMinDate = Date();\r\n\r\n $scope.vm.nsMaxDate = new Date(2900, 0, 1, 0, 0, 0);\r\n $scope.vm.nsMinDate = new Date();\r\n\r\n $scope.fromDateChanged = function (access) {\r\n access.MinDate = access.StartDate;\r\n if ($scope.vm.alternatePath === 'EmergencyAccess') {\r\n $scope.maxEndDate = new Date(access.StartDate);\r\n $scope.maxEndDate.setTime($scope.maxEndDate.getTime() + ($scope.emergencyAccessPeriod * 60 * 60 * 1000));\r\n }\r\n $scope.rebindEffectiveDates = $scope.rebindEffectiveDates === 0 ? 1 : 0;\r\n };\r\n\r\n $scope.toDateChanged = function (access) {\r\n var date;\r\n\r\n if ($scope.isDate(access.EndDate)) {\r\n date = new Date(access.EndDate);\r\n } else {\r\n date = new Date();\r\n access.EndDate = null;\r\n }\r\n\r\n $scope.vm.fromMinDate = date;\r\n\r\n if ($scope.vm.alternatePath === 'EmergencyAccess') {\r\n if (access.EndDate > $scope.maxEndDate) {\r\n access.invalidEmergencyAccessEndDate = true;\r\n } else {\r\n access.invalidEmergencyAccessEndDate = false;\r\n }\r\n }\r\n $scope.rebindEffectiveDates = $scope.rebindEffectiveDates === 0 ? 1 : 0;\r\n };\r\n\r\n $scope.generalStartDateChanged = function (accessChanges, startDate) {\r\n accessChanges.forEach(access => access.StartDate = startDate);\r\n };\r\n\r\n $scope.generalEndDateChanged = function (accessChanges, endDate) {\r\n if ($scope.vm.alternatePath === 'EmergencyAccess') {\r\n if (endDate > $scope.maxEndDate) {\r\n $scope.invalidEmergencyAccessEndDate = true;\r\n } else {\r\n $scope.invalidEmergencyAccessEndDate = false;\r\n }\r\n }\r\n accessChanges.forEach(access => access.EndDate = endDate);\r\n };\r\n\r\n $scope.isDate = function (x) {\r\n return x instanceof Date;\r\n };\r\n\r\n $scope.validate = function (event) {\r\n event.preventDefault();\r\n\r\n if ($scope.vm.toDateObject < $scope.vm.fromDateObject) {\r\n $scope.validationMessage = 'End Date cannot come before Start Date';\r\n }\r\n };\r\n\r\n $scope.getUserStartDate = function (access) {\r\n var startDate;\r\n\r\n if (access && $scope.vm.wizardMode === 'New') {\r\n if (access.ProductId === 'NS') {\r\n startDate = $scope.vm.User.NetSuiteUser.StartDate;\r\n }\r\n if (access.ProductId === 'OR') {\r\n startDate = $scope.vm.User.OracleUser.StartDate;\r\n }\r\n if (access.ProductId === 'ORFC') {\r\n startDate = $scope.vm.User.OracleCloudUser.StartDate;\r\n }\r\n if (access.ProductId === 'AX7') {\r\n startDate = $scope.vm.User.AX7User.StartDate;\r\n }\r\n if (access.ProductId === 'AX') {\r\n startDate = $scope.vm.User.AX2012User.StartDate;\r\n }\r\n if (access.ProductId === 'PS') {\r\n startDate = $scope.vm.User.PSUser.StartDate;\r\n }\r\n if (access.ProductType === 'SAP') {\r\n const availableSAPApps = $scope.vm.availableApplications.filter(application => application.ProductType === 'SAP');\r\n availableSAPApps.forEach(app => startDate = $scope.vm.User.SAPUser[app.ProductName].StartDate);\r\n }\r\n if (access.ProductId === 'SF') {\r\n startDate = $scope.vm.User.SalesforceUser.StartDate;\r\n }\r\n }\r\n\r\n if (!startDate) {\r\n startDate = new Date();\r\n }\r\n\r\n if (access) {\r\n if (new Date(access.StartDate) > new Date(startDate)) {\r\n access.MinDate = access.StartDate;\r\n }\r\n else {\r\n access.MinDate = startDate;\r\n }\r\n }\r\n\r\n return startDate;\r\n };\r\n\r\n $scope.getUserEndDate = function (access) {\r\n\r\n if ($scope.invalidEmergencyAccessEndDate) {\r\n $scope.invalidEmergencyAccessEndDate = false;\r\n }\r\n var endDate;\r\n\r\n if ($scope.vm.alternatePath === 'EmergencyAccess' && !access.EndDate) {\r\n endDate = $scope.maxEndDate;\r\n access.EndDate = endDate;\r\n }\r\n\r\n if ($scope.vm.wizardMode === 'New') {\r\n if (access.ProductId === 'NS') {\r\n endDate = $scope.vm.User.NetSuiteUser.EndDate;\r\n }\r\n if (access.ProductId === 'OR') {\r\n endDate = $scope.vm.User.OracleUser.EndDate;\r\n }\r\n if (access.ProductId === 'ORFC') {\r\n endDate = $scope.vm.User.OracleCloudUser.EndDate;\r\n }\r\n if (access.ProductId === 'AX7') {\r\n endDate = $scope.vm.User.AX7User.EndDate;\r\n }\r\n if (access.ProductId === 'AX') {\r\n endDate = $scope.vm.User.AX2012User.EndDate;\r\n }\r\n if (access.ProductType === 'SAP') {\r\n $scope.vm.availableApplications.forEach(app => endDate = $scope.vm.User.SAPUser[app.ProductName].EndDate);\r\n }\r\n if (access.ProductId === 'SF') {\r\n endDate = $scope.vm.User.SalesforceUser.EndDate;\r\n }\r\n }\r\n\r\n if (!endDate) {\r\n endDate = new Date(2900, 0, 1, 0, 0, 0);\r\n }\r\n\r\n access.MaxDate = endDate;\r\n\r\n return endDate;\r\n };\r\n\r\n $scope.applyAllDatesChanged = function (accessChanges) {\r\n if ($scope.invalidEmergencyAccessEndDate) {\r\n $scope.invalidEmergencyAccessEndDate = false;\r\n }\r\n let endDate;\r\n\r\n if ($scope.vm.alternatePath === 'EmergencyAccess' && !$scope.generalEndDate && $scope.vm.applyAllDates) {\r\n endDate = $scope.maxEndDate;\r\n $scope.generalEndDate = endDate;\r\n accessChanges.forEach(access => access.EndDate = endDate);\r\n }\r\n };\r\n\r\n $scope.clearAllEffectiveDates = function (accessChanges) {\r\n accessChanges.forEach(access => access.StartDate = null);\r\n accessChanges.forEach(access => access.EndDate = null);\r\n $scope.generalStartDate = null;\r\n $scope.generalEndDate = null;\r\n };\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, $filter, $timeout, helperService, $http, row, grid, statusDataService) {\r\n\r\n const vm = this;\r\n\r\n $scope.originalMitigation = $scope.riskToMitigate.MitigationID;\r\n $scope.originalStatus = $scope.riskToMitigate.StatusID;\r\n $scope.originalMitigationNotes = $scope.riskToMitigate.MitigationNotes;\r\n\r\n function activate() {\r\n\r\n getItemPillLabels();\r\n getStandardMitigations();\r\n getMitigations();\r\n setupAdditionalMitigationsObject();\r\n getAdditionalCompaniesDataSource();\r\n\r\n if (row.RequestMitigation === 'Edit') {\r\n populateModalFieldsWithEditedMitigationRequestData();\r\n } else {\r\n setupDefaultModalFields();\r\n }\r\n }\r\n\r\n activate();\r\n\r\n function getStandardMitigations() {\r\n $http.get(apiUrl + 'api/core/configuration/ARM_StandardMitigations').then(function (response) {\r\n $scope.standardMitigations = response.data;\r\n });\r\n }\r\n\r\n function getControlLibrary() {\r\n $scope.controlsLoading = true;\r\n return $http.get(apiUrl + 'api/arm/controls').then(function (response) {\r\n $scope.controlLibrary = response.data;\r\n $scope.controlsLoading = false;\r\n });\r\n }\r\n\r\n function setupControls() {\r\n $scope.selectedControls = new Array();\r\n $scope.originalControls = new Array();\r\n return;\r\n }\r\n\r\n function getStatuses() {\r\n statusDataService.getStatuses().then(function (response) {\r\n response.data = $filter('filter')(response.data, { CanCurrentUserAccess: true });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $scope.statuses = response.data;\r\n });\r\n }\r\n\r\n function populateModalFieldsWithEdits() {\r\n\r\n $scope.UserMitigations.some(mitigation => {\r\n\r\n if (row.RiskId === mitigation.RiskId && row.CompanyMasterID === mitigation.CompanyMasterId) {\r\n\r\n if (mitigation.Controls && mitigation.Controls.length > 0) {\r\n $scope.selectedControls = new Array();\r\n mitigation.Controls.forEach(control => {\r\n $scope.controlLibrary.forEach(option => {\r\n if (option.Identifier === control) {\r\n $scope.selectedControls.push(option);\r\n }\r\n });\r\n });\r\n $scope.controlsLoading = false;\r\n }\r\n\r\n if (mitigation.MitigationId && mitigation.MitigationId !== null) {\r\n $scope.riskToMitigate.MitigationID = mitigation.MitigationId;\r\n }\r\n $scope.riskToMitigate.StatusID = mitigation.StatusId;\r\n $scope.riskToMitigate.MitigationNotes = mitigation.MitigationNotes;\r\n // Request Mitigation in additional companies is not populated.\r\n }\r\n });\r\n }\r\n\r\n function setupDefaultModalFields() {\r\n getControlLibrary().then(_ => setupControls()).then(_ => getStatuses());\r\n }\r\n\r\n function populateModalFieldsWithEditedMitigationRequestData() {\r\n getControlLibrary().then(_ => setupControls()).then(_ => getStatuses()).then(_ => populateModalFieldsWithEdits());\r\n }\r\n\r\n function getAdditionalCompaniesDataSource() {\r\n\r\n $scope.mitigateAddtionalDataSource = [];\r\n\r\n grid.forEach(item => {\r\n if (item.RiskId === row.RiskId && item.CompanyName !== row.CompanyName) {\r\n $scope.mitigateAddtionalDataSource.push(item);\r\n }\r\n });\r\n }\r\n\r\n function getItemPillLabels() {\r\n $http.get(apiUrl + 'api/arm/risks/' + $scope.riskToMitigate.RiskId).then(function (response) {\r\n $scope.riskObjects = response.data;\r\n });\r\n }\r\n\r\n function getMitigations() {\r\n $http.get(apiUrl + 'api/arm/mitigations').then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $scope.mitigations = response.data;\r\n });\r\n }\r\n\r\n function setupAdditionalMitigationsObject() {\r\n $scope.mitigatedRisk = {\r\n selectedMitigateAddtional: '',\r\n companyIds: ''\r\n };\r\n }\r\n\r\n $scope.requestRiskMitigation = function (event) {\r\n\r\n\r\n let userMitigation = {\r\n \"RequestMitigationId\": $scope.riskToMitigate.RequestMitigationId,\r\n \"CompanyMasterId\": $scope.riskToMitigate.CompanyMasterID,\r\n \"RiskId\": $scope.riskToMitigate.RiskId,\r\n \"MitigationId\": $scope.riskToMitigate.MitigationID,\r\n \"MitigationNotes\": $scope.riskToMitigate.MitigationNotes,\r\n \"StatusId\": $scope.riskToMitigate.StatusID,\r\n \"Controls\": $scope.selectedControls.map(x => x.Identifier)\r\n };\r\n\r\n if ($scope.riskToMitigate.MitigationID) {\r\n userMitigation.Controls = null;\r\n } else if ($scope.selectedControls) {\r\n userMitigation.MitigationId = null;\r\n }\r\n\r\n $scope.riskToMitigate.updateInProgress = new createSpinner();\r\n\r\n $scope.UserMitigations.forEach(mitigation => {\r\n // Remove previous mitigation request for this risk.\r\n if (row.RequestMitigation === 'Edit' && mitigation.RiskId === userMitigation.RiskId && mitigation.CompanyMasterId === userMitigation.CompanyMasterId) {\r\n $scope.UserMitigations.remove(mitigation);\r\n }\r\n });\r\n\r\n grid.forEach(item => {\r\n // Create status for new request.\r\n if (item.RiskId === userMitigation.RiskId && item.CompanyMasterID === userMitigation.CompanyMasterId) {\r\n item.RequestMitigation = 'Edit';\r\n }\r\n });\r\n\r\n // Push new request to UserMitigations array.\r\n $scope.UserMitigations.push(userMitigation);\r\n\r\n //Remove $timeout when additional companies are mitigated.\r\n $timeout(function () {\r\n $scope.killModal = true;\r\n helperService.successfulSaveButton($scope.riskToMitigate.updateInProgress).then(function (result) {\r\n $scope.riskToMitigate.updateInProgress.loadingValue = false;\r\n $scope.mitigateInAdditionalCompanies();\r\n $uibModalInstance.close();\r\n $scope.$parent.userRisksGridDataSource.read();\r\n });\r\n }, 1000);\r\n }, function errorCallback(response) {\r\n $scope.riskToMitigate.updateInProgress.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n };\r\n\r\n $scope.mitigateInAdditionalCompanies = function () {\r\n if ($scope.mitigatedRisk !== null && $scope.mitigatedRisk.additionalCompanies !== null) {\r\n if ($scope.mitigatedRisk.additionalCompanies && $scope.mitigatedRisk.additionalCompanies.length > 0) {\r\n mitigateRisk();\r\n }\r\n }\r\n function mitigateRisk() {\r\n $scope.mitigatedRisk.additionalCompanies.forEach(company => {\r\n\r\n let additionalUserMitigation = {\r\n \"RequestMitigationId\": $scope.riskToMitigate.RequestMitigationId,\r\n \"CompanyMasterId\": company.CompanyMasterID,\r\n \"RiskId\": $scope.riskToMitigate.RiskId,\r\n \"MitigationId\": $scope.riskToMitigate.MitigationID,\r\n \"MitigationNotes\": $scope.riskToMitigate.MitigationNotes,\r\n \"StatusId\": $scope.riskToMitigate.StatusID,\r\n \"Controls\": $scope.selectedControls.map(x => x.Identifier)\r\n };\r\n\r\n if ($scope.riskToMitigate.MitigationID) {\r\n additionalUserMitigation.Controls = null;\r\n } else if ($scope.selectedControls) {\r\n additionalUserMitigation.MitigationId = null;\r\n }\r\n\r\n grid.forEach(item => {\r\n $scope.UserMitigations.forEach(mitigation => {\r\n // Remove previous mitigation request for this risk.\r\n if (item.RequestMitigation === 'Edit' && mitigation.RiskId === additionalUserMitigation.RiskId && mitigation.CompanyMasterId === additionalUserMitigation.CompanyMasterId) {\r\n $scope.UserMitigations.remove(mitigation);\r\n }\r\n });\r\n // Create status for new request.\r\n if (item.RiskId === additionalUserMitigation.RiskId && item.CompanyMasterID === additionalUserMitigation.CompanyMasterId) {\r\n item.RequestMitigation = 'Edit';\r\n }\r\n });\r\n // Push new request to UserMitigations array.\r\n $scope.UserMitigations.push(additionalUserMitigation);\r\n });\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}\r\n","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\nimport riskAnalysisUserRisksMitigationModalController from \"./riskAnalysisUserRisksMitigationModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, helperService, $rootScope, $uibModal) {\r\n //Show Summary screen by default\r\n\r\n var vm = $scope.vm;\r\n\r\n vm.requestRiskMitigation = requestRiskMitigation;\r\n\r\n $scope.showSummary = true;\r\n $scope.showUserRiskDetails = false;\r\n $scope.showBusinessProcessDetails = false;\r\n\r\n //Watch for role change and update navigation and user security object lists\r\n $scope.$on('broadcast-im-wizardstepchange', function (event, args) {\r\n if (args != null && args.toStep === 'Risk Analysis') {\r\n $scope.showSummary = true;\r\n }\r\n $scope.showUserRiskDetails = false;\r\n $scope.showBusinessProcessDetails = false;\r\n });\r\n\r\n $scope.showBPSummary = function () {\r\n\r\n var hasBP = false;\r\n //Check to see if any of the selected applications require the Business Process section on Risk Analysis\r\n if ($scope.vm.availableApplications != null) {\r\n\r\n $scope.vm.availableApplications.forEach(function (app) {\r\n if (app.selected) {\r\n var product = $rootScope.availableProductsForUser.find(function (product) {\r\n if (app.Name === 'Universal') {\r\n return product.Name === app.ProductName;\r\n } else {\r\n return product.Name === app.Name;\r\n }\r\n });\r\n if (product != null) {\r\n hasBP = true;\r\n }\r\n }\r\n });\r\n }\r\n return hasBP;\r\n };\r\n\r\n $scope.toggleScreen = function (screen) {\r\n\r\n $scope.showSummary = false;\r\n $scope.showUserRiskDetails = false;\r\n $scope.showBusinessProcessDetails = false;\r\n\r\n if (screen == 'UserRiskDetails') {\r\n $scope.showUserRiskDetails = true;\r\n }\r\n if (screen == 'BusinessProcessDetails') {\r\n $scope.showBusinessProcessDetails = true;\r\n }\r\n if (screen == 'Summary') {\r\n $scope.showSummary = true;\r\n }\r\n };\r\n\r\n var columnsFromVMUserRisks = [\r\n { field: \"Comparison\", width: 100, template: '{{dataItem.Comparison}}' },\r\n { field: \"RequestMitigation\", title: \"Request Mitigation\", template: \"{{dataItem.RequestMitigation}}\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"CompanyName\", title: \"Company\", width: 180, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 110, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 110, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 110, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationControls\", title: \"Mitigation Controls\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationStatus\", title: \"Mitigation Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"ProductID\", title: \"ProductID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityRoleID\", title: \"Security Role ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectTypeID\", title: \"Security ObjectType ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectID\", title: \"Security Object ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"AccessTypeID\", title: \"Access Type ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true }\r\n ];\r\n\r\n var columnsFromVMBusinessProcess = [\r\n { field: \"CompanyName\", title: \"Company\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"ProductName\", title: \"Product\", width: 150, filterable: customAutoCompleteFilter },\r\n { field: \"SecurityObjectAltName\", title: \"Security Object\", width: 180, filterable: customAutoCompleteFilter, hidden: $scope.disableObjectLevelRiskAnalysis },\r\n { field: \"SecurityObjectTypeName\", title: \"Security Object Type\", width: 180, filterable: customAutoCompleteFilter, hidden: $scope.disableObjectLevelRiskAnalysis },\r\n { field: \"ObjectComparison\", width: 125, groupHeaderTemplate: \"#= value #\", template: '{{dataItem.ObjectComparison}}', hidden: $scope.disableObjectLevelRiskAnalysis },\r\n { field: \"AccessLevelName\", title: \"Access Level\", width: 150, filterable: customAutoCompleteFilter, hidden: $scope.disableObjectLevelRiskAnalysis },\r\n { field: \"AccessTypeName\", title: \"Access Type\", width: 150, filterable: customAutoCompleteFilter, hidden: $scope.disableObjectLevelRiskAnalysis },\r\n { field: \"BusinessProcessGroupName\", title: \"Group\", width: 180, filterable: customAutoCompleteFilter, groupHeaderTemplate: \"#= value #\" },\r\n { field: \"GroupComparison\", width: 125, template: '{{dataItem.GroupComparison}}' }\r\n ];\r\n\r\n $scope.userRisksGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n data: $scope.UserRisksDataSource,\r\n sort: { field: \"Comparison\", dir: \"asc\" },\r\n schema: {\r\n model: {\r\n fields: {\r\n RiskId: { type: \"number\" }\r\n }\r\n }\r\n }\r\n });\r\n\r\n $scope.userRisksGridOptions = helperService.setMainGridOptions(columnsFromVMUserRisks, 500);\r\n $scope.userRisksGridOptions.autoBind = true;\r\n if (!$scope.disableObjectLevelRiskAnalysis) {\r\n $scope.userRisksGridOptions.detailTemplate = kendo.template($(\"#risksTemplate\").html());\r\n }\r\n $scope.userRisksGridOptions.columnMenu = true;\r\n\r\n $scope.businessProcessGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n data: $scope.BusinessProcessDataSource,\r\n group: [{ field: \"BusinessProcessGroupName\", dir: \"asc\" }, { field: \"ObjectComparison\", dir: \"asc\" }]\r\n });\r\n\r\n $scope.businessProcessGridOptions = helperService.setMainGridOptions(columnsFromVMBusinessProcess, 500);\r\n $scope.businessProcessGridOptions.autoBind = true;\r\n\r\n vm.expandDetails = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/RequestDetailsModal.html',\r\n controller: riskDetailsModalController,\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n disableObjectData: () => $scope.disableObjectLevelRiskAnalysis\r\n }\r\n });\r\n };\r\n\r\n function openRequestMitigationModal(dataItem, dataGrid) {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Universal/riskAnalysisUserRisksMitigationModal.html',\r\n controller: riskAnalysisUserRisksMitigationModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n row: () => dataItem,\r\n grid: () => dataGrid\r\n }\r\n });\r\n }\r\n\r\n function requestRiskMitigation(dataItem) {\r\n $scope.riskToMitigate = angular.copy(dataItem);\r\n openRequestMitigationModal(dataItem, $scope.UserRisksDataSource);\r\n }\r\n\r\n}\r\n\r\nfunction riskDetailsModalController($scope, $uibModalInstance, helperService, disableObjectData) {\r\n\r\n var vm = $scope.vm;\r\n\r\n var RisksColumns = [\r\n { field: \"CompanyName\", title: \"Company\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskId\", title: \"Risk ID\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskName\", title: \"Risk Name\", width: 190, filterable: customAutoCompleteFilter, groupHeaderTemplate: \"#= value #\" },\r\n { field: \"BusinessCycle\", title: \"Business Cycle\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"RiskLevel\", title: \"Risk Level\", width: 110, filterable: customAutoCompleteFilter },\r\n { field: \"Policy\", title: \"Policy\", width: 110, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"RiskTypeName\", title: \"Risk Type\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Mitigation\", title: \"Mitigation\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationStatus\", title: \"Mitigation Status\", width: 130, filterable: customAutoCompleteFilter },\r\n { field: \"MitigationNotes\", title: \"Mitigation Notes\", width: 190, filterable: customAutoCompleteFilter },\r\n { field: \"Comparison\", width: 100, template: '{{dataItem.Comparison}}' },\r\n { field: \"ProductID\", title: \"ProductID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityRoleID\", title: \"Security Role ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectTypeID\", title: \"Security ObjectType ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"SecurityObjectID\", title: \"Security Object ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"AccessTypeID\", title: \"Access Type ID\", width: 150, filterable: customAutoCompleteFilter, hidden: true }\r\n ];\r\n\r\n vm.RisksOptions = helperService.setMainGridOptions(RisksColumns, null);\r\n if (!disableObjectData) {\r\n vm.RisksOptions.detailTemplate = kendo.template($(\"#risksTemplate\").html());\r\n }\r\n vm.RisksOptions.selectable = false;\r\n vm.RisksOptions.columnMenu = true;\r\n vm.RisksOptions.filterable = {\r\n mode: \"row\",\r\n operators: {\r\n string: {\r\n contains: \"Contains\",\r\n doesnotcontain: \"Does not contain\",\r\n eq: \"Equal to\",\r\n neq: \"Not equal to\"\r\n }\r\n }\r\n };\r\n\r\n vm.RisksDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n data: $scope.UserRisksDataSource,\r\n schema: {\r\n model: {\r\n fields: {\r\n RiskId: { type: \"number\" }\r\n }\r\n }\r\n },\r\n pageable: false\r\n });\r\n\r\n vm.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport swal from \"sweetalert2\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $filter, $http, helperService) {\r\n\r\n var vm = $scope.vm;\r\n $scope.vm.wizardClass = \"wizard-nav-container\";\r\n\r\n //Search Existing Users\r\n var getExistingUserGridColumns = function () {\r\n return [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"PrimarySystemUserId\", title: \"User ID\", filterable: customAutoCompleteFilter },\r\n { field: \"Email\", title: \"Email\", filterable: customAutoCompleteFilter },\r\n { field: \"PendingRequest\", title: \"Pending Request\", filterable: customAutoCompleteFilter },\r\n { field: \"Products\", title: \"Products\", filterable: customAutoCompleteFilter }\r\n ];\r\n };\r\n\r\n $scope.doneSearchingUsers = function (vm) {\r\n $rootScope.IMSelectedExistingUser = null;\r\n\r\n if (vm.ExistingUserSearchString === '' || !vm.ExistingUserSearchString) {\r\n\r\n var raw = vm.ExistingusersGridDataSource.data();\r\n var length = raw.length;\r\n\r\n var item, i;\r\n for (i = length - 1; i >= 0; i--) {\r\n\r\n item = raw[i];\r\n vm.ExistingusersGridDataSource.remove(item);\r\n\r\n }\r\n } else {\r\n if (vm.wizardMode === 'Terminate') {\r\n vm.ExistingusersGridDataSource.read();\r\n } else {\r\n vm.ExistingusersGridDataSource.read();\r\n }\r\n }\r\n };\r\n\r\n vm.ExistingUsersGridOptions = helperService.setMainGridOptions(getExistingUserGridColumns(), 350);\r\n vm.ExistingUsersGridOptions.autoBind = false;\r\n\r\n vm.ExistingusersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/users',\r\n params: {\r\n searchString: vm.ExistingUserSearchString\r\n }\r\n\r\n }).then(function (response) {\r\n\r\n response.data.forEach(function (row, i) {\r\n if (response.data[i].PendingRequest !== null) {\r\n response.data[i].PendingRequest = response.data[i].PendingRequest.toString();\r\n }\r\n });\r\n\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n }, function errorCallback(response) {\r\n options.error();\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n }\r\n });\r\n\r\n vm.searchKeyDown = function () {\r\n vm.SearchExistingUserSelected = null;\r\n $scope.vm.wizardClass = \"wizard-nav-container disabledDiv\";\r\n };\r\n\r\n vm.changeExistingUserRowSelected = function (kendoEvent) {\r\n var grid = kendoEvent.sender,\r\n isTerminate = vm.wizardMode === \"Terminate\",\r\n canModify = false,\r\n canTerminate = false,\r\n selectedUser;\r\n\r\n $rootScope.IMSelectedExistingUser = grid.dataItem(grid.select());\r\n $rootScope.IMSelectedExistingUser.HasERPDataLoaded = false;\r\n\r\n $scope.vm.wizardClass = \"wizard-nav-container\";\r\n selectedUser = grid.dataItem(grid.select());\r\n\r\n canModify = !selectedUser?.PendingTerminateRequest && !isTerminate;\r\n // selectedUser.PendingRequest gets converted to a string for display in grid\r\n canTerminate = selectedUser?.PendingRequest === \"false\" && isTerminate;\r\n\r\n if (canModify || canTerminate) {\r\n if (vm.User.SalesforceUser) {\r\n // deselect SF app when switching between users - logic in Profiles step needs to be run again\r\n const salesforceApp = vm.availableApplications.find(app => app.ProductType === 'SF');\r\n salesforceApp.selected = false;\r\n vm.appSelectedChange(salesforceApp);\r\n }\r\n vm.SearchExistingUserSelected = true;\r\n $scope.vm.User = {};\r\n $scope.vm.validAppsSelected = null;\r\n } else if (!canModify || !canTerminate) {\r\n alertUser(isTerminate);\r\n }\r\n else {\r\n vm.SearchExistingUserSelected = null;\r\n }\r\n };\r\n\r\n function alertUser(isTerminate) {\r\n let message;\r\n\r\n if (isTerminate) {\r\n message = \"Users with pending requests may not be terminated\"\r\n } else {\r\n message = \"Users with pending termination requests may not be modified\"\r\n }\r\n\r\n swal(\"Alert\", message, \"warning\");\r\n }\r\n\r\n function stopGridLoading(data) {\r\n //Reset grid after search completes\r\n var unlockGrid = true;\r\n if (data) {\r\n if (data === \"Error\") {\r\n unlockGrid = false;\r\n }\r\n }\r\n var usersGrid = $(\"#ExistingusersGrid\");\r\n kendo.ui.progress(usersGrid, false);\r\n if (unlockGrid) {\r\n $scope.vm.wizardClass = \"wizard-nav-container\";\r\n }\r\n }\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, userMappingOptions) {\r\n\r\n const vm = this;\r\n\r\n vm.saveUserMapping = saveUserMapping;\r\n vm.dismiss = dismiss;\r\n\r\n activate();\r\n\r\n function activate() {\r\n vm.userMappingOptions = userMappingOptions;\r\n }\r\n\r\n function saveUserMapping() {\r\n $uibModalInstance.close(vm.selectedItem);\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport selectUserMappingModalController from \"./selectUserMappingModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, $location, $uibModal, RequestManagementLoadDataService, errorsDataService, $http) {\r\n\r\n const vm = this;\r\n\r\n activate();\r\n\r\n function activate() {\r\n securePaths();\r\n }\r\n\r\n vm.selectWizardMode = selectWizardMode;\r\n vm.executeAlternateWizardPath = executeAlternateWizardPath;\r\n\r\n function selectWizardMode(wizardMode) {\r\n $location.path('/IdentityManager/Place/RequestManagement/' + wizardMode);\r\n }\r\n\r\n async function securePaths() {\r\n let security = JSON.parse(localStorage.getItem('UserSecurityObjects'));\r\n let products = await $http.get(apiUrl + 'api/identitymanager/applications');\r\n\r\n vm.showNew = security.find(o => o.ObjectID === 11402);\r\n vm.showModify = security.find(o => o.ObjectID === 11403);\r\n vm.showTerminate = security.find(o => o.ObjectID === 11404);\r\n vm.showSelfService = security.find(o => o.ObjectID === 11405);\r\n vm.showEmergencyAccess = security.find(o => o.ObjectID === 11406) && products.data.some(p => p.ProductType === 'SAP');\r\n\r\n }\r\n\r\n async function executeAlternateWizardPath(wizardMode, requestType) {\r\n try {\r\n $rootScope.IMSelectedExistingUser = await RequestManagementLoadDataService.getSelfServiceMapping();\r\n let userMappingArray = $rootScope.IMSelectedExistingUser.length > 1 ? $rootScope.IMSelectedExistingUser : null;\r\n\r\n $rootScope.IMSelectedExistingUser.forEach(user => {\r\n if (user.PendingRequest) {\r\n user.HasERPDataLoaded = false;\r\n }\r\n });\r\n\r\n if ($rootScope.IMSelectedExistingUser.length > 1) {\r\n try {\r\n await openSelectUserMappingModal(userMappingArray);\r\n } catch (error) {\r\n throw error;\r\n }\r\n } else {\r\n $rootScope.IMSelectedExistingUser = $rootScope.IMSelectedExistingUser[0];\r\n }\r\n\r\n switch (requestType) {\r\n case 'SelfService':\r\n $location.path('/IdentityManager/Place/RequestManagement/' + wizardMode).search({ selfservice: 'true' });\r\n break;\r\n case 'EmergencyAccess':\r\n $location.path('/IdentityManager/Place/RequestManagement/' + wizardMode).search({ emergencyaccess: 'true' });\r\n break;\r\n }\r\n } catch (error) {\r\n if (error.status === 404) {\r\n // Custom error message for non mapped system users trying to create a Self-Service or Emergency Access Request\r\n let message =\r\n `
\r\n Your Fastpath user is not mapped to a system user so you cannot start any ${requestType} requests.\r\n
\r\n
\r\n Your Fastpath user will need to be mapped to a system user on the Maintain System Users page in the System Configuration module.\r\n
`;\r\n swal({ title: 'Error', html: message, type: 'warning' });\r\n } else {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n }\r\n\r\n async function openSelectUserMappingModal(options) {\r\n let selectUserMappingModal = $uibModal.open({\r\n templateUrl: '/App/Components/RequestManagement/selectUserMappingModal.html',\r\n controller: selectUserMappingModalController,\r\n controllerAs: 'summvm',\r\n backdrop: 'static',\r\n resolve: {\r\n userMappingOptions: () => options\r\n }\r\n });\r\n\r\n try {\r\n $rootScope.IMSelectedExistingUser = await selectUserMappingModal.result;\r\n } catch (error) { throw error; }\r\n }\r\n\r\n}","import createSpinner from \"../../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, linkedTicketsArray, helperService) {\r\n\r\n var modalVm = $scope.modalVm = {};\r\n\r\n modalVm.linkCustomTicket = async function () {\r\n modalVm.saving = new createSpinner();\r\n let linkedCustomTicket = {};\r\n\r\n linkedCustomTicket.TicketId = modalVm.customTicketId;\r\n linkedCustomTicket.TicketProvider = 'Custom';\r\n\r\n linkedTicketsArray.push(linkedCustomTicket);\r\n\r\n $scope.$parent.customTicketLinked = true;\r\n await helperService.successfulSaveButton(modalVm.saving);\r\n $uibModalInstance.close();\r\n };\r\n\r\n $scope.cancel = function () { $uibModalInstance.close(); };\r\n}","import { customAutoCompleteFilterEqualToOnly, customAutoCompleteFilter, customDatePickerFilter } from \"../../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, helperService, $http, linkedTicketsArray) {\r\n\r\n var modalVm = $scope.modalVm = {};\r\n var statusTemplate = \"{{dataItem.Status}}\";\r\n\r\n var columnsFromVM = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n {\r\n title: ' ', width: 90, template: `Link\r\n Unlink`\r\n }\r\n ];\r\n\r\n $scope.$evalAsync(function () {\r\n modalVm.gridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n modalVm.gridOptions.selectable = false;\r\n modalVm.gridOptions.pageable = false;\r\n modalVm.gridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n });\r\n\r\n modalVm.createZendeskLink = function (dataItem) {\r\n\r\n let linkedZendeskTicket = {};\r\n\r\n linkedZendeskTicket.TicketId = dataItem.Id;\r\n linkedZendeskTicket.TicketProvider = 'Zendesk';\r\n\r\n linkedTicketsArray.push(linkedZendeskTicket);\r\n\r\n dataItem.isLinked = true;\r\n modalVm.ticketLinked = true;\r\n $scope.$parent.zendeskTicketLinked = true;\r\n\r\n $uibModalInstance.close();\r\n };\r\n\r\n modalVm.gridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n var sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n var postBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n\r\n\r\n $http.post(apiUrl + 'api/core/tickets/zendesk/search/', postBody).then(function (response) {\r\n modalVm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n }, function (response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n $scope.cancel = function () { $uibModalInstance.close(); };\r\n}","import { customAutoCompleteFilterEqualToOnly, customAutoCompleteFilter, customDatePickerFilter } from \"../../../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, helperService, $http, linkedTicketsArray) {\r\n\r\n var modalVm = $scope.modalVm = {};\r\n var statusTemplate = \"{{dataItem.Status}}\";\r\n\r\n var columnsFromVM = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n {\r\n title: ' ', width: 90, template: `Link\r\n Unlink`\r\n }\r\n ];\r\n\r\n $scope.$evalAsync(function () {\r\n modalVm.gridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n modalVm.gridOptions.selectable = false;\r\n modalVm.gridOptions.pageable = false;\r\n modalVm.gridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n });\r\n\r\n modalVm.createLink = function (dataItem) {\r\n\r\n let linkedTicket = {};\r\n\r\n linkedTicket.TicketId = dataItem.Id;\r\n linkedTicket.TicketProvider = 'ServiceNow';\r\n\r\n linkedTicketsArray.push(linkedTicket);\r\n\r\n dataItem.isLinked = true;\r\n modalVm.ticketLinked = true;\r\n $scope.$parent.serviceNowTicketLinked = true;\r\n\r\n $uibModalInstance.close();\r\n };\r\n\r\n modalVm.gridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n var sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n var postBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n\r\n\r\n $http.post(apiUrl + 'api/core/tickets/servicenow/search/', postBody).then(function (response) {\r\n modalVm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n }, function (response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n $scope.cancel = function () { $uibModalInstance.close(); };\r\n\r\n}","import { customAutoCompleteFilterEqualToOnly, customAutoCompleteFilter, customDatePickerFilter } from \"../../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, helperService, $http, linkedTicketsArray) {\r\n\r\n var modalVm = $scope.modalVm = {};\r\n var statusTemplate = \"{{dataItem.Status}}\";\r\n\r\n var columnsFromVM = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n {\r\n title: ' ', width: 90, template: `Link\r\n Unlink`\r\n }\r\n ];\r\n\r\n $scope.$evalAsync(function () {\r\n modalVm.gridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n modalVm.gridOptions.selectable = false;\r\n modalVm.gridOptions.pageable = false;\r\n modalVm.gridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n });\r\n\r\n modalVm.createJiraLink = function (dataItem) {\r\n\r\n let linkedJiraTicket = {};\r\n\r\n linkedJiraTicket.TicketId = dataItem.Id;\r\n linkedJiraTicket.TicketProvider = 'Jira';\r\n\r\n linkedTicketsArray.push(linkedJiraTicket);\r\n\r\n dataItem.isLinked = true;\r\n modalVm.ticketLinked = true;\r\n $scope.$parent.jiraTicketLinked = true;\r\n\r\n $uibModalInstance.close();\r\n };\r\n\r\n modalVm.gridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n var sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n var postBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n\r\n\r\n $http.post(apiUrl + 'api/core/tickets/jira/search/', postBody).then(function (response) {\r\n modalVm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n }, function (response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n $scope.cancel = function () { $uibModalInstance.close(); };\r\n\r\n}","import { customAutoCompleteFilterEqualToOnly, customAutoCompleteFilter, customDatePickerFilter } from \"../../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModalInstance, helperService, $http, linkedTicketsArray) {\r\n\r\n var modalVm = $scope.modalVm = {};\r\n var statusTemplate = \"{{dataItem.Status}}\";\r\n\r\n var columnsFromVM = [\r\n { field: \"Status\", title: \"Status\", template: statusTemplate, filterable: false },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilterEqualToOnly },\r\n { field: \"Subject\", title: \"Subject\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", template: \"{{ dataItem.Description }}\", filterable: customAutoCompleteFilter }, // use template to handle possible issues with characters in description field\r\n { field: \"CreatedDate\", title: \"Date Created\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n {\r\n title: ' ', width: 90, template: `Link\r\n Unlink`\r\n }\r\n ];\r\n\r\n $scope.$evalAsync(function () {\r\n modalVm.gridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n modalVm.gridOptions.selectable = false;\r\n modalVm.gridOptions.pageable = false;\r\n modalVm.gridOptions.filterable = {\r\n mode: 'row',\r\n operators: {\r\n string: {\r\n contains: \"Contains\"\r\n }\r\n }\r\n };\r\n });\r\n\r\n modalVm.createFreshServiceLink = function (dataItem) {\r\n\r\n let linkedFreshServiceTicket = {};\r\n\r\n linkedFreshServiceTicket.TicketId = dataItem.Id;\r\n linkedFreshServiceTicket.TicketProvider = 'Freshservice';\r\n\r\n linkedTicketsArray.push(linkedFreshServiceTicket);\r\n\r\n dataItem.isLinked = true;\r\n modalVm.ticketLinked = true;\r\n $scope.$parent.freshServiceTicketLinked = true;\r\n\r\n $uibModalInstance.close();\r\n };\r\n\r\n modalVm.gridDataSource = new kendo.data.DataSource({\r\n serverFiltering: true,\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: function (options) {\r\n var sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n var postBody = {\r\n \"Criteria\": sortsAndFilters.Filters\r\n };\r\n\r\n\r\n $http.post(apiUrl + 'api/core/tickets/freshservice/search/', postBody).then(function (response) {\r\n modalVm.TotalTicketCount = response.data.Count;\r\n options.success(response.data.Tickets);\r\n }, function (response) {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n\r\n $scope.cancel = function () { $uibModalInstance.close(); };\r\n\r\n}","import IMRequestCustomTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestCustomTicketModal.controller\";\r\nimport IMRequestZendeskTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestZendeskTicketModal.controller\";\r\nimport IMRequestServiceNowTicketModalController from \"./WizardSteps/Universal/linkTickets/ServiceNow/IMRequestServiceNowTicketModal.controller\";\r\nimport IMRequestJiraTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestJiraTicketModal.controller\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport { ax7_application_id, netsuite_application_id, sap_application_id, ax_application_id, oracle_application_id, oracleCloud_application_id, gp_application_id, nav_application_id, d365s_application_id, universalProduct_application_id, aad_application_id, ps_application_id, salesforce_application_id } from \"../../Shared/GlobalVariables/applicationIdVariables\";\r\nimport IMRequestFreshServiceTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestFreshServiceTicketModal.controller\";\r\nimport swal from \"sweetalert2\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, $filter, RequestManagementShowStepsService, RequestManagementStepDefinitions, RequestManagementWizardController, RequestManagementUPLoadDataService, RequestManagementAXLoadDataService, RequestManagementAADLoadDataService, RequestManagementSAPLoadDataService, RequestManagementNetSuiteLoadDataService, RequestManagementOracleLoadDataService, RequestManagementNAVLoadDataService, RequestManagementGPLoadDataService, RequestManagementD365SLoadDataService, RequestManagementPSLoadDataService, RequestManagementBuildRequestService, RequestManagementEffectiveDateService, RequestManagementLoadDataService, controlLibraryDataService, FileSaver, WizardHandler, $rootScope, objectIdDataService, $http, $q, $location, helperService, RequestManagementOracleCloudLoadDataService, salesforceLoadData, passwordCriteriaDataService, manageDataDataService, configurationDataService) {\r\n\r\n //Page initialization\r\n var vm = $scope.vm = {},\r\n salesforceEmailMessage = \"To ensure system security, the owner of the new email address must verify this change. When you click OK, an email will be sent to the specified address with directions on confirming this change. Click Cancel if you do not want to make this change.\"\r\n\r\n $scope.vmh = helperService;\r\n $scope.helperService = helperService;\r\n $scope.updatePending = {};\r\n $scope.UserMitigations = [];\r\n vm.existingFilesDataSource = [];\r\n vm.AccessChanges = [];\r\n vm.hasCompany = false;\r\n $scope.hasAX = false;\r\n vm.RequestNotes = '';\r\n var locationPath = $location.path().split(\"/\");\r\n vm.wizardMode = locationPath[4];\r\n\r\n $scope.requireTickets = false;\r\n $scope.disableObjectLevelRiskAnalysis = false;\r\n\r\n\r\n //Common Functions - duplicate functions on each path\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n activate();\r\n\r\n async function activate() {\r\n var { data: config } = await configurationDataService.getConfigurationValues()\r\n vm.config = config;\r\n $scope.requireTickets = config.some(item => item.Name === \"IM_RequireTicketAssociation\" && item?.Value === \"1\");\r\n vm.bypassRiskAnalysis = config.some(item => item.Name === \"IM_BypassRiskAnalysis\" && item?.Value === \"1\");\r\n $scope.disableObjectLevelRiskAnalysis = config.some(item => item.Name === \"IM_DisableObjectLevelRiskAnalysis\" && item?.Value === \"1\");\r\n vm.roleTemplatesOnlyEnabled = config.some(item => item.Name === \"IM_RoleTemplatesOnlyEnabled\" && item?.Value === \"1\");\r\n\r\n securityCheck();\r\n getApplications();\r\n }\r\n\r\n function securityCheck() {\r\n let security = JSON.parse(localStorage.getItem('UserSecurityObjects'));\r\n\r\n if ($location.url().includes('selfservice=true')) {\r\n if (security.find(o => o.ObjectID === 11405)) vm.alternatePath = 'SelfService';\r\n else $location.path('/403');\r\n } else if ($location.url().includes('emergencyaccess=true')) {\r\n if (security.find(o => o.ObjectID === 11406)) vm.alternatePath = 'EmergencyAccess';\r\n } else {\r\n if (security.find(o => o.ObjectID === 11403)) return;\r\n else $location.path('/403');\r\n }\r\n }\r\n\r\n async function calculateExpirationDate() {\r\n let numberOfDaysToAdd = Number(vm.config.find(configuration => configuration.Name === 'IM_DefaultExpirationDays').Value);\r\n\r\n if (numberOfDaysToAdd) {\r\n vm.ExpirationDate = new Date();\r\n vm.ExpirationDate.setDate(vm.ExpirationDate.getDate() + numberOfDaysToAdd);\r\n }\r\n }\r\n\r\n async function getAdditionalRequestDetails() {\r\n const response = await $http.get(`${apiUrl}api/identitymanager/requests/${$scope.requestToEdit.Id}/version/${$scope.requestToEdit.Version}`);\r\n vm.existingFilesDataSource = response.data.Attachments;\r\n $scope.vm.ExpirationDate = response.data.ExpirationDate ? new Date(response.data.ExpirationDate) : null;\r\n }\r\n\r\n $scope.getApplicationName = (applicationId) => $scope.vmh.getApplicationName(applicationId, vm.availableApplications);\r\n\r\n $scope.getProductName = (productId) => $scope.vmh.getProductName(productId, vm.availableApplications);\r\n //--End Common Page Functions\r\n\r\n async function getAX7UserGroupConfigValue() {\r\n let response = await manageDataDataService.getConfigurationByProductId('AX7');\r\n const ax7UserGroupConfigValue = response.data.find(config => config.Name === 'IM_EnableUserGroups');\r\n\r\n vm.EnableAX7UserGroups = ax7UserGroupConfigValue.Value === '1' ? true : false;\r\n }\r\n\r\n $scope.resetUserValues = function () {\r\n $scope.requestUserList = [];\r\n $scope.vm.effectiveDateList = [];\r\n\r\n vm.RiskLevelId = 0;\r\n vm.RiskLevelIdNewOnly = 0;\r\n\r\n //Universal Product Access variables\r\n $scope.vm.ListOfSelectedUPRoles = [];\r\n $scope.vm.ListOfAvailableUPRoles = [];\r\n $scope.vm.ListOfUPCompanies = [];\r\n\r\n //SAP Access variables\r\n $scope.vm.ListOfSelectedSAPSingleRoles = [];\r\n $scope.vm.ListOfAvailableSAPSingleRoles = [];\r\n $scope.vm.ListOfSelectedSAPRoleObjects = [];\r\n $scope.vm.ListOfAvailableSAPRoleObjects = [];\r\n\r\n $scope.vm.ListOfSelectedSAPCompositeRoles = [];\r\n $scope.vm.ListOfAvailableSAPCompositeRoles = [];\r\n\r\n //AAD Access variables\r\n vm.ListOfSelectedAADRoles = [];\r\n vm.ListOfAvailableAADRoles = [];\r\n vm.ListOfSelectedAADGroups = [];\r\n vm.ListOfAvailableAADGroups = [];\r\n vm.ListOfSelectedAADLicenses = [];\r\n vm.ListOfAvailableAADLicenses = [];\r\n\r\n //AX7 Access variables\r\n vm.ListOfSelectedAX7Roles = [];\r\n vm.ListOfExcludedAX7Roles = [];\r\n vm.ListOfAvailableAX7Roles = [];\r\n vm.ListOfAX7Companies = [];\r\n vm.AX7RoleCompanyList = [];\r\n vm.ListOfAvailableAX7UserGroups = [];\r\n vm.ListOfSelectedAX7UserGroups = [];\r\n\r\n //AX2012 Access variables\r\n vm.ListOfSelectedAX2012Roles = [];\r\n vm.ListOfExcludedAX2012Roles = [];\r\n vm.ListOfAvailableAX2012Roles = [];\r\n vm.ListOfAX2012Companies = [];\r\n vm.AX2012RoleCompanyList = [];\r\n vm.ListOfAX2012Partitions = [];\r\n vm.ListOfAvailableAX2012UserGroups = [];\r\n vm.ListOfSelectedAX2012UserGroups = [];\r\n\r\n //NetSuite Access varibles\r\n vm.ListOfSelectedNetSuiteRoles = [];\r\n vm.ListOfAvailableNetSuiteRoles = [];\r\n vm.ListOfSelectedNetSuitePermissions = [];\r\n vm.ListOfAvailableNetSuitePermissions = [];\r\n vm.existingGlobalPermissions = [];\r\n\r\n //Oracle Responsibility variables\r\n vm.ListOfAvailableOracleResponsibilities = [];\r\n vm.ListOfSelectedOracleResponsibilities = [];\r\n vm.ListOfAvailableOracleRoles = [];\r\n vm.ListOfSelectedOracleRoles = [];\r\n\r\n // Oracle Cloud roles variables\r\n vm.ListOfAvailableOracleCloudRoles = [];\r\n vm.ListOfSelectedOracleCloudRoles = [];\r\n vm.ListOfStoredOracleCloudRoles = [];\r\n\r\n // PeopleSoft roles variables\r\n vm.ListOfAvailablePSRoles = [];\r\n vm.ListOfSelectedPSRoles = [];\r\n\r\n //NAV Access varibles\r\n vm.ListOfSelectedNAVRoles = [];\r\n vm.ListOfAvailableNAVRoles = [];\r\n vm.ListOfAvailableNAVPermissionSets = [];\r\n vm.ListOfSelectedNAVPermissionSets = [];\r\n vm.ListOfSelectedNAVUserGroups = [];\r\n vm.ListOfAvailableNAVUserGroups = [];\r\n\r\n //GP Access varibles\r\n vm.ListOfSelectedGPRoles = [];\r\n vm.ListOfAvailableGPRoles = [];\r\n vm.ListOfStoredGPRoles = [];\r\n vm.ListOfSelectedGPCompanies = [];\r\n vm.ListOfAvailableGPCompanies = [];\r\n\r\n //D365S Access varibles\r\n vm.ListOfSelectedD365SRoles = [];\r\n vm.ListOfAvailableD365SRoles = [];\r\n vm.ListOfSelectedD365STeams = [];\r\n vm.ListOfAvailableD365STeams = [];\r\n\r\n //Salesforce Access Variables\r\n vm.ListOfAvailableSalesforcePermissionSets = [];\r\n vm.ListOfSelectedSalesforcePermissionSets = [];\r\n\r\n $scope.vm.User = {};\r\n };\r\n\r\n $scope.resetUserValues();\r\n\r\n function getApplications() {\r\n $http.get(apiUrl + 'api/identitymanager/applications').then(function (response) {\r\n\r\n response.data.forEach(row => {\r\n row.selected = false;\r\n });\r\n if (vm.alternatePath === 'EmergencyAccess') {\r\n response.data = response.data.filter(app => app.ProductType === 'SAP');\r\n }\r\n response.data = $filter('orderBy')(response.data, 'ProductName');\r\n $scope.vm.availableApplications = response.data;\r\n $scope.atLeastOneAppSelected();\r\n\r\n //If the user is modifying an open request load the data after the available applications have populated\r\n if ($rootScope.requestToEdit) {\r\n RequestManagementLoadDataService.loadOpenRequestData($scope);\r\n }\r\n\r\n //Check if custom apps exist\r\n var existingSteps = RequestManagementStepDefinitions.getListOfSteps(vm.wizardMode, vm.alternatePath, $scope.requestToEdit);\r\n $scope.vm.availableApplications.forEach(application => {\r\n $scope.vm.ListOfSelectedSAPSingleRoles[application.ProductName] = [];\r\n $scope.vm.ListOfSelectedSAPCompositeRoles[application.ProductName] = [];\r\n $scope.vm.ListOfSelectedUPRoles[application.ProductName] = [];\r\n if (!existingSteps.some(step => step.parent && step.parent === application.ProductName)) {\r\n $scope.steps = RequestManagementShowStepsService.createCustomSteps(application, existingSteps);\r\n }\r\n });\r\n if (!$scope.steps) {\r\n $scope.steps = RequestManagementStepDefinitions.getListOfSteps(vm.wizardMode, vm.alternatePath, $scope.requestToEdit);\r\n }\r\n\r\n // Remove Risk Analysis Step if Configuration is enabled\r\n if ($scope.vm.bypassRiskAnalysis) {\r\n const riskAnalysisStepIndex = $scope.steps.findIndex(step => step.title === 'Risk Analysis');\r\n $scope.steps.splice(riskAnalysisStepIndex, 1);\r\n }\r\n\r\n if (vm.alternatePath) setupAlternatePath();\r\n });\r\n }\r\n\r\n async function setupAlternatePath() {\r\n await $scope.buildRequest(null, \"Select Applications\");\r\n }\r\n\r\n //Select Application Functions\r\n vm.appSelectedChange = async function (application) {\r\n if (application.selected) {\r\n if (application.Id === netsuite_application_id) {\r\n RequestManagementNetSuiteLoadDataService.loadNetSuite($scope, null, null, null);\r\n }\r\n\r\n if (application.Id === sap_application_id) {\r\n RequestManagementSAPLoadDataService.loadSAP($scope, application, null);\r\n //Load SAP Password Criteria\r\n passwordCriteriaDataService.getPasswordCriteria(application.ProductID).then(function (response) {\r\n $scope.vm.sapPasswordCriteria = {};\r\n $scope.vm.sapPasswordCriteria[application.ProductName] = response.data;\r\n });\r\n }\r\n\r\n if (application.Id == aad_application_id) {\r\n RequestManagementAADLoadDataService.loadAAD($scope, null);\r\n //Load AAD Password Criteria\r\n passwordCriteriaDataService.getPasswordCriteria(application.ProductID).then(function (response) {\r\n $scope.vm.aadPasswordCriteria = {};\r\n $scope.vm.aadPasswordCriteria = response.data;\r\n });\r\n\r\n\r\n }\r\n\r\n if (application.Id == ps_application_id) {\r\n RequestManagementPSLoadDataService.loadPS($scope, null);\r\n //Load PS Password Criteria\r\n passwordCriteriaDataService.getPasswordCriteria(application.ProductID).then(function (response) {\r\n $scope.vm.psPasswordCriteria = {};\r\n $scope.vm.psPasswordCriteria = response.data;\r\n }).catch(function (response) {\r\n $scope.vm.psPasswordCriteria = {};\r\n });\r\n }\r\n\r\n if (application.Id === ax7_application_id) {\r\n RequestManagementAXLoadDataService.loadAX7($scope, null);\r\n }\r\n\r\n if (application.Id === ax_application_id) {\r\n RequestManagementAXLoadDataService.loadAX2012($scope, null);\r\n }\r\n\r\n if (application.Id === oracle_application_id) {\r\n await RequestManagementOracleLoadDataService.loadOracle($scope, null);\r\n }\r\n\r\n if (application.Id === oracleCloud_application_id) {\r\n RequestManagementOracleCloudLoadDataService.loadOracleCloud($scope, null);\r\n }\r\n\r\n if (application.Id === gp_application_id) {\r\n RequestManagementGPLoadDataService.loadGP($scope, null);\r\n }\r\n\r\n if (application.Id === nav_application_id) {\r\n RequestManagementNAVLoadDataService.loadNAV($scope, null);\r\n }\r\n\r\n if (application.Id === d365s_application_id) {\r\n RequestManagementD365SLoadDataService.loadD365S($scope, null);\r\n }\r\n\r\n if (application.Id === universalProduct_application_id) {\r\n RequestManagementUPLoadDataService.loadUP($scope, application, null);\r\n }\r\n\r\n if (application.Id === salesforce_application_id) {\r\n salesforceLoadData.loadSalesforce($scope);\r\n }\r\n }\r\n\r\n $scope.atLeastOneAppSelected();\r\n\r\n $scope.loadERPSpecificSteps(application);\r\n };\r\n\r\n $scope.loadERPSpecificSteps = async function (application) {\r\n switch (application.ProductType) {\r\n case 'OR':\r\n if (!vm.ORRBACEnabled) {\r\n const rolesStepIndex = $scope.steps.findIndex(step => step.title === 'Oracle EBS Roles');\r\n if (rolesStepIndex > -1) {\r\n $scope.steps.splice(rolesStepIndex, 1);\r\n }\r\n }\r\n RequestManagementShowStepsService.setOracleStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'SAP':\r\n if (application.ProductName === 'SAP') {\r\n RequestManagementShowStepsService.setSAPStepsToVisible(vm.availableApplications, $scope.steps);\r\n } else {\r\n RequestManagementShowStepsService.setCustomStepsToVisible(vm.availableApplications, $scope.steps, application);\r\n }\r\n break;\r\n case 'NS':\r\n RequestManagementShowStepsService.setNetSuiteStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'AAD':\r\n RequestManagementShowStepsService.setAADStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'AX7':\r\n await getAX7UserGroupConfigValue();\r\n if (!vm.EnableAX7UserGroups) {\r\n const userGroupsStepIndex = $scope.steps.findIndex(step => step.title === 'Dynamics 365 for Finance and Supply Chain User Groups');\r\n if (userGroupsStepIndex > -1) {\r\n $scope.steps.splice(userGroupsStepIndex, 1);\r\n }\r\n }\r\n RequestManagementShowStepsService.setAX7StepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'AX':\r\n RequestManagementShowStepsService.setAX2012StepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'GP':\r\n RequestManagementShowStepsService.setGPStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'NAV':\r\n RequestManagementShowStepsService.setNAVStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'D365S':\r\n RequestManagementShowStepsService.setD365SStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'PS':\r\n RequestManagementShowStepsService.setPSStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'SF':\r\n if ($scope.vm?.User?.SalesforceUser.IsActive) {\r\n RequestManagementShowStepsService.setSalesforceStepsToVisible(vm.availableApplications, $scope.steps);\r\n application.inactiveUser = false;\r\n } else {\r\n application.selected = false;\r\n application.inactiveUser = true;\r\n }\r\n\r\n break;\r\n default:\r\n RequestManagementShowStepsService.setCustomStepsToVisible(vm.availableApplications, $scope.steps, application);\r\n break;\r\n }\r\n };\r\n\r\n $scope.atLeastOneAppSelected = function () {\r\n vm.validAppsSelected = RequestManagementWizardController.atLeastOneAppSelected(vm.availableApplications);\r\n };\r\n //--End Select Application events\r\n\r\n\r\n $scope.stepDisabled = function (title) {\r\n return RequestManagementWizardController.stepDisabled(title, WizardHandler.wizard(), $scope);\r\n };\r\n\r\n $scope.setParentStepToActive = function (parent) {\r\n return RequestManagementWizardController.setParentStepToActive(parent, WizardHandler.wizard(), $scope.steps);\r\n };\r\n\r\n $scope.goToNextVisiblePage = function () {\r\n var step = RequestManagementWizardController.goToNextVisiblePage($scope.steps, WizardHandler.wizard());\r\n $scope.setActivePage(step.title);\r\n };\r\n\r\n $scope.goToPreviousVisiblePage = function () {\r\n var step = RequestManagementWizardController.goToPreviousVisiblePage($scope.steps, WizardHandler.wizard());\r\n $scope.setActivePage(step.title);\r\n };\r\n\r\n $scope.setCurrentStepToActive = function () {\r\n return RequestManagementWizardController.getCurrentStepsTitle(WizardHandler.wizard());\r\n };\r\n\r\n $scope.setActivePage = function (stepTitle) {\r\n var wizardInstance = WizardHandler.wizard();\r\n var currentStepNumber = wizardInstance.currentStepNumber();\r\n var enabledSteps = wizardInstance.getEnabledSteps();\r\n var step = enabledSteps[currentStepNumber - 1];\r\n if (step.canexit === true) {\r\n $scope.buildRequest(step.title, stepTitle);\r\n }\r\n wizardInstance.goTo(stepTitle);\r\n };\r\n //---End of Wizard Navigation\r\n\r\n $scope.buildRequest = async function (fromStep, toStep) {\r\n\r\n $scope.$broadcast('broadcast-im-wizardstepchange', { fromStep: fromStep, toStep: toStep });\r\n\r\n if (toStep === \"Select Applications\") {\r\n\r\n $scope.selectApplicationsHelpText = 'The following is a list of applications available to this user. Select the application(s) you wish to modify';\r\n //Load data for an existing user\r\n if ($rootScope.IMSelectedExistingUser && !$rootScope.IMSelectedExistingUser.HasERPDataLoaded) {\r\n $scope.resetUserValues();\r\n\r\n $scope.showRMLoadingIcon = true;\r\n $scope.vm.wizardClass = \"wizard-nav-container disabledDiv\";\r\n\r\n var promises = [];\r\n RequestManagementLoadDataService.loadUserMasterERPData($scope, $rootScope.IMSelectedExistingUser, $scope.vm.availableApplications).then(function () {\r\n\r\n vm.availableApplications.forEach(function (application) {\r\n if (application.selected) {\r\n if (application.Id === netsuite_application_id) {\r\n var nsUser = null;\r\n var subsidiaryId = null;\r\n\r\n if ($scope.vm.User.NetSuiteUser) {\r\n nsUser = $scope.vm.User.NetSuiteUser;\r\n subsidiaryId = $scope.vm.User.NetSuiteUser.Subsidiary.Id;\r\n }\r\n promises.push(RequestManagementNetSuiteLoadDataService.loadNetSuite($scope, subsidiaryId, null));\r\n }\r\n\r\n if (application.Id === sap_application_id) {\r\n promises.push(RequestManagementSAPLoadDataService.loadSAP($scope, application, null));\r\n }\r\n\r\n if (application.Id === universalProduct_application_id) {\r\n promises.push(RequestManagementUPLoadDataService.loadUP($scope, application, null));\r\n }\r\n\r\n if (application.Id === aad_application_id) {\r\n promises.push(RequestManagementAADLoadDataService.loadAAD($scope, null));\r\n }\r\n\r\n if (application.Id === ax7_application_id) {\r\n promises.push(RequestManagementAXLoadDataService.loadAX7($scope, null));\r\n }\r\n\r\n if (application.Id === ax_application_id) {\r\n promises.push(RequestManagementAXLoadDataService.loadAX2012($scope, null));\r\n }\r\n\r\n if (application.Id === oracle_application_id) {\r\n promises.push(RequestManagementOracleLoadDataService.loadOracle($scope));\r\n }\r\n\r\n if (application.Id === oracleCloud_application_id) {\r\n promises.push(RequestManagementOracleCloudLoadDataService.loadOracleCloud($scope));\r\n }\r\n\r\n if (application.Id === gp_application_id) {\r\n promises.push(RequestManagementGPLoadDataService.loadGP($scope));\r\n }\r\n\r\n if (application.Id === nav_application_id) {\r\n promises.push(RequestManagementNAVLoadDataService.loadNAV($scope));\r\n }\r\n\r\n if (application.Id === d365s_application_id) {\r\n promises.push(RequestManagementD365SLoadDataService.loadD365S($scope));\r\n }\r\n\r\n if (application.Id === ps_application_id) {\r\n promises.push(RequestManagementPSLoadDataService.loadPS($scope));\r\n }\r\n\r\n if (application.Id === salesforce_application_id) {\r\n promises.push(salesforceLoadData.loadSalesforce($scope));\r\n }\r\n\r\n $scope.loadERPSpecificSteps(application);\r\n }\r\n });\r\n\r\n $q.all(promises).then(function () {\r\n //Check if an application is selected and load ERP steps\r\n $scope.atLeastOneAppSelected();\r\n $rootScope.IMSelectedExistingUser.HasERPDataLoaded = true;\r\n $scope.showRMLoadingIcon = false;\r\n $scope.vm.wizardClass = \"wizard-nav-container\";\r\n if (fromStep === 'Search Existing Users' && $scope.vm.availableApplications.length === 1) {\r\n $scope.goToNextVisiblePage();\r\n }\r\n }, function errorCallback(response) {\r\n $scope.showRMLoadingIcon = false;\r\n $scope.vm.wizardClass = \"wizard-nav-container\";\r\n helperService.showErrorMessage(response);\r\n });\r\n }, function errorCallback(response) {\r\n $scope.showRMLoadingIcon = false;\r\n $scope.vm.wizardClass = \"wizard-nav-container\";\r\n helperService.showErrorMessage(response);\r\n }\r\n );\r\n\r\n }\r\n }\r\n vm.builtRequest = RequestManagementBuildRequestService.buildRequest(vm, false);\r\n\r\n if (toStep.includes('Emergency Access Usage')) {\r\n vm.availableApplications.forEach(function (application) {\r\n if (application.selected && application.ProductType === 'SAP' && (!vm.ListOfSelectedSAPRoleObjects[application.ProductName] || vm.ListOfSelectedSAPRoleObjects[application.ProductName].length === 0)) {\r\n RequestManagementSAPLoadDataService.loadSAPRoleObjects($scope, application);\r\n }\r\n });\r\n }\r\n\r\n if (toStep === \"Access Effective Dates\" || toStep === \"Summary\") {\r\n\r\n $scope.loadingIcon = true;\r\n $scope.minimumExpirationDate = new Date();\r\n if (vm.config.find(config => config.Name === 'IM_DefaultExpirationEnabled').Value === '1') {\r\n calculateExpirationDate();\r\n }\r\n\r\n RequestManagementBuildRequestService.executeRequest(vm.builtRequest).then(function (response) {\r\n vm.ReturnedRequest = response.data;\r\n\r\n RequestManagementLoadDataService.loadRequestData(toStep, fromStep, vm, $scope, vm.ReturnedRequest).done(function () {\r\n $scope.loadingIcon = false;\r\n });\r\n\r\n //Check if AX roles have been selected. Changes screens on Access Effective Dates and Summary page\r\n if (vm.ListOfSelectedAX7Roles && vm.ListOfSelectedAX7Roles.length > 0 || vm.ListOfSelectedAX2012Roles && vm.ListOfSelectedAX2012Roles.length > 0) {\r\n $scope.hasAX = true;\r\n } else {\r\n $scope.hasAX = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n if (toStep === \"Risk Analysis\") {\r\n\r\n vm.buildReviewRisksDataSource(vm.builtRequest);\r\n }\r\n\r\n };\r\n\r\n $scope.loadEffectiveDateData = function (request) {\r\n vm.AccessChanges = RequestManagementLoadDataService.findAccessChanges(request, vm.AccessChanges);\r\n\r\n //Show the AX grid if the request contains AX\r\n if (vm.ListOfSelectedAX7Roles.length > 0 || vm.ListOfAvailableAX2012Roles.length > 0) {\r\n $scope.hasAX = true;\r\n } else {\r\n $scope.hasAX = false;\r\n }\r\n };\r\n vm.riskResults = null;\r\n\r\n vm.clearRiskAnalysisResults = function () {\r\n vm.riskResults = null;\r\n\r\n //Assign totals for summary grids\r\n $scope.ucExistingTotal = '';\r\n $scope.ucNewTotal = '';\r\n $scope.ucRemovedTotal = '';\r\n $scope.ucTotal = '';\r\n\r\n $scope.caGroupExistingTotal = '';\r\n $scope.caGroupNewTotal = '';\r\n $scope.caGroupRemovedTotal = '';\r\n $scope.caGroupTotal = '';\r\n\r\n $scope.caObjectExistingTotal = '';\r\n $scope.caObjectNewTotal = '';\r\n $scope.caObjectRemovedTotal = '';\r\n $scope.caObjectTotal = '';\r\n\r\n $scope.bpGroupExistingTotal = '';\r\n $scope.bpGroupNewTotal = '';\r\n $scope.bpGroupRemovedTotal = '';\r\n $scope.bpGroupTotal = '';\r\n\r\n $scope.bpObjectExistingTotal = '';\r\n $scope.bpObjectNewTotal = '';\r\n $scope.bpObjectRemovedTotal = '';\r\n $scope.bpObjectTotal = '';\r\n\r\n //Datasource for Risk Analysis User Risks grid\r\n $scope.UserRisksDataSource = [];\r\n $scope.BusinessProcessDataSource = [];\r\n };\r\n\r\n //Review Risks\r\n vm.buildReviewRisksDataSource = function (request) {\r\n $scope.showReviewRisksLoadingIcon = true;\r\n\r\n vm.clearRiskAnalysisResults();\r\n\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/identitymanager/requests/riskanalysis/v2',\r\n data: request\r\n }).then(function (response) {\r\n\r\n vm.riskResults = response.data;\r\n\r\n\r\n $scope.showSummary = true;\r\n $scope.showUserRiskDetails = false;\r\n $scope.showBusinessProcessDetails = false;\r\n\r\n //Assign totals for summary grids\r\n $scope.ucExistingTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.UserRiskAnalysis.CountByComparison, 'Existing');\r\n $scope.ucNewTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.UserRiskAnalysis.CountByComparison, 'Added');\r\n $scope.ucRemovedTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.UserRiskAnalysis.CountByComparison, 'Deleted');\r\n $scope.ucTotal = $scope.ucExistingTotal + $scope.ucNewTotal;\r\n\r\n $scope.bpGroupExistingTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.GroupCountByComparison, 'Existing');\r\n $scope.bpGroupNewTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.GroupCountByComparison, 'Added');\r\n $scope.bpGroupRemovedTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.GroupCountByComparison, 'Deleted');\r\n $scope.bpGroupTotal = $scope.bpGroupExistingTotal + $scope.bpGroupNewTotal;\r\n\r\n $scope.bpObjectExistingTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.ObjectCountByComparison, 'Existing');\r\n $scope.bpObjectNewTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.ObjectCountByComparison, 'Added');\r\n $scope.bpObjectRemovedTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.ObjectCountByComparison, 'Deleted');\r\n $scope.bpObjectTotal = $scope.bpObjectExistingTotal + $scope.bpObjectNewTotal;\r\n\r\n //Datasource for Risk Analysis User Risks grid\r\n\r\n $scope.UserRisksDataSource = response.data.UserRisks;\r\n updateUserRisksDetailedViewGridIfMitigationRequestsExist();\r\n\r\n function updateUserRisksDetailedViewGridIfMitigationRequestsExist() {\r\n $scope.UserRisksDataSource.forEach(item => {\r\n if ($scope.UserMitigations.length > 0) {\r\n let match = $scope.UserMitigations.some(mitigation => {\r\n return mitigation.RiskId === item.RiskId && mitigation.CompanyMasterId === item.CompanyMasterID;\r\n });\r\n if (match) {\r\n item.RequestMitigation = 'Edit';\r\n }\r\n else if (!match && item.MitigationStatus !== 'New' && item.MitigationStatus) {\r\n return;\r\n }\r\n else {\r\n item.RequestMitigation = 'Request';\r\n }\r\n } else if (item.MitigationStatus === 'New' || !item.MitigationStatus) {\r\n item.RequestMitigation = 'Request';\r\n }\r\n else {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n $scope.BusinessProcessDataSource = response.data.BusinessProcesses;\r\n\r\n var addedList = response.data.UserRisks.filter(e => e.Comparison === 'Added');\r\n var addedPlusCurrentList = response.data.UserRisks.filter(e => e.Comparison === 'Existing' || e.Comparison === 'Added');\r\n\r\n if (addedPlusCurrentList.length > 0) {\r\n vm.RiskLevelId = Math.max.apply(Math, addedPlusCurrentList.map(function (o) { return o.RiskLevelId; }));\r\n } else {\r\n vm.RiskLevelId = 0;\r\n }\r\n\r\n if (addedList.length > 0) {\r\n vm.RiskLevelIdNewOnly = Math.max.apply(Math, addedList.map(function (o) { return o.RiskLevelId; }));\r\n } else {\r\n vm.RiskLevelIdNewOnly = 0;\r\n }\r\n\r\n vm.IsRisksReviewed = true;\r\n $scope.showReviewRisksLoadingIcon = false;\r\n }, function errorCallback(response) {\r\n $scope.showReviewRisksLoadingIcon = false;\r\n });\r\n };\r\n\r\n if ($scope.requestToEdit) {\r\n getAdditionalRequestDetails();\r\n }\r\n\r\n $scope.removeFile = async function (file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n await controlLibraryDataService.deleteAttachment(file.Identifier);\r\n\r\n const index = vm.existingFilesDataSource.findIndex(remainingFile => remainingFile.Identifier === file.Identifier);\r\n vm.existingFilesDataSource.splice(index, 1);\r\n $scope.fileActionPending = false;\r\n } catch {\r\n $scope.fileActionPending = false;\r\n }\r\n };\r\n\r\n $scope.downloadFile = async function (file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n const response = await controlLibraryDataService.downloadAttachment(file.Identifier);\r\n FileSaver.saveAs(response.data, file.FileName);\r\n $scope.fileActionPending = false;\r\n } catch {\r\n $scope.fileActionPending = false;\r\n }\r\n };\r\n\r\n $scope.uploadFiles = async function (files, requestId) {\r\n let fd = new FormData();\r\n\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"ImRequest\");\r\n fd.append(\"DataTypeId\", requestId);\r\n\r\n await controlLibraryDataService.addAttachments(fd);\r\n };\r\n\r\n // Link Ticket logic ========================\r\n\r\n if (!$scope.linkedTickets) $scope.linkedTickets = [];\r\n\r\n $scope.openIMRequestJiraTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestJiraTicketModal.html',\r\n controller: IMRequestJiraTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestFreshServiceTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestFreshServiceTicketModal.html',\r\n controller: IMRequestFreshServiceTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestServiceNowTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/ServiceNow/IMRequestServiceNowTicketModal.html',\r\n controller: IMRequestServiceNowTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestZendeskTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestZendeskTicketModal.html',\r\n controller: IMRequestZendeskTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestCustomTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestCustomTicketModal.html',\r\n controller: IMRequestCustomTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.removeIMRequestTicketLink = function (providerString) {\r\n $scope.linkedTickets = $scope.linkedTickets.filter(ticket => ticket.TicketProvider !== providerString);\r\n\r\n if (providerString === 'Jira') $scope.jiraTicketLinked = false;\r\n else if (providerString === 'ServiceNow') $scope.serviceNowTicketLinked = false;\r\n else if (providerString === 'Zendesk') $scope.zendeskTicketLinked = false;\r\n else if (providerString === 'Custom') $scope.customTicketLinked = false;\r\n };\r\n\r\n //Submit request functions\r\n $scope.finishedWizard = function () {\r\n\r\n // add selected role template names to request notes if restriction is on\r\n if (vm.selectedRoleTemplates?.length && vm.roleTemplatesOnlyEnabled) {\r\n if (!vm.RequestNotes.includes(' Selected Role Templates: ')) {\r\n vm.RequestNotes += \" Selected Role Templates: \"\r\n }\r\n vm.selectedRoleTemplates.forEach(template => {\r\n if (!vm.RequestNotes.includes(template.Name)) {\r\n vm.RequestNotes += template.Name + \" \";\r\n }\r\n });\r\n }\r\n\r\n $scope.updatePending = new createSpinner();\r\n var builtRequest = RequestManagementBuildRequestService.buildRequest(vm, true);\r\n //Make a copy of the request before the dates are changed so the actual data is not affected by converting dates\r\n var builtRequestCopy = angular.copy(builtRequest);\r\n //Convert request dates to Date before sending them to the DB\r\n RequestManagementLoadDataService.addEffectiveDates(builtRequestCopy, vm.AccessChanges);\r\n //Convert request dates to Date before sending them to the DB\r\n RequestManagementEffectiveDateService.convertRequestDates(builtRequestCopy);\r\n builtRequestCopy.UserMitigations = $scope.UserMitigations;\r\n builtRequestCopy.Tickets = $scope.linkedTickets;\r\n builtRequestCopy.ExpirationDate = $scope.vm.ExpirationDate ? new Date($scope.vm.ExpirationDate).toUTCString() : null;\r\n\r\n //Update request if there is currently an open request\r\n if ($scope.requestToEdit) {\r\n $scope.updateExistingRequest(builtRequestCopy);\r\n } else {\r\n $scope.alertUser(builtRequestCopy);\r\n }\r\n };\r\n\r\n $scope.alertUser = async function (request) {\r\n $scope.updatePending = new createSpinner();\r\n if (request.SfRequest?.User?.Email !== $scope.vm.assignedSalesforceEmail) {\r\n try {\r\n await swal(helperService.areYouSureParams(\"Warning\", salesforceEmailMessage, \"OK\", \"Cancel\"));\r\n $scope.submitRequest(request);\r\n } catch {\r\n $scope.updatePending.loadingValue = false;\r\n }\r\n } else {\r\n $scope.submitRequest(request);\r\n }\r\n };\r\n\r\n $scope.submitRequest = async function (request) {\r\n try {\r\n let { data } = await $http.post(apiUrl + 'api/identitymanager/requests', request);\r\n\r\n $scope.updatePending.loadingValue = false;\r\n\r\n if (vm.attachments.flow.files.length > 0) {\r\n const requestId = data;\r\n $scope.uploadFiles(vm.attachments.flow.files, requestId);\r\n }\r\n helperService.showConfirmationMessage(\"Success\", \"Your request has been submitted for approval.\");\r\n $location.path('/IdentityManager/Place/RequestManagement').search({});\r\n } catch (error) {\r\n $scope.updatePending.loadingValue = false;\r\n helperService.showErrorMessage(error.data);\r\n }\r\n }\r\n\r\n\r\n $scope.updateExistingRequest = function (request) {\r\n $scope.updatePending = new createSpinner();\r\n\r\n\r\n $http.put(apiUrl + 'api/identitymanager/requests/' + $scope.requestToEdit.Id + '/version/' + $scope.requestToEdit.Version, request).then(function (response) {\r\n\r\n if (vm.attachments?.flow?.files?.length > 0) {\r\n $scope.uploadFiles(vm.attachments.flow.files, $scope.requestToEdit.Id);\r\n }\r\n\r\n helperService.showConfirmationMessage(\"Success\", \"Your request has been updated.\");\r\n $location.path('/IdentityManager/Place/RequestManagement').search({});\r\n }, function errorCallback(response) {\r\n $scope.updatePending.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport IMRequestJiraTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestJiraTicketModal.controller\";\r\nimport IMRequestServiceNowTicketModalController from \"./WizardSteps/Universal/linkTickets/ServiceNow/IMRequestServiceNowTicketModal.controller\";\r\nimport IMRequestZendeskTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestZendeskTicketModal.controller\";\r\nimport IMRequestCustomTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestCustomTicketModal.controller\";\r\nimport { ax7_application_id, ax_application_id, oracle_application_id, oracleCloud_application_id, gp_application_id, nav_application_id, d365s_application_id, sap_application_id, netsuite_application_id, universalProduct_application_id, aad_application_id, ps_application_id, salesforce_application_id } from \"../../Shared/GlobalVariables/applicationIdVariables\";\r\nimport { standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport IMRequestFreshServiceTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestFreshServiceTicketModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, RequestManagementBuildRequestService, manageDataDataService, RequestManagementShowStepsService, RequestManagementStepDefinitions, RequestManagementWizardController, RequestManagementGPLoadDataService, RequestManagementOracleLoadDataService, RequestManagementEffectiveDateService, RequestManagementLoadDataService, RequestManagementAXLoadDataService, RequestManagementSAPLoadDataService, RequestManagementNetSuiteLoadDataService, RequestManagementNAVLoadDataService, RequestManagementD365SLoadDataService, RequestManagementUPLoadDataService, RequestManagementAADLoadDataService, RequestManagementPSLoadDataService, salesforceLoadData, WizardHandler, $rootScope, objectIdDataService, $http, $filter, $location, helperService, RequestManagementOracleCloudLoadDataService, passwordCriteriaDataService, controlLibraryDataService, FileSaver, configurationDataService) {\r\n\r\n var vm = $scope.vm = {};\r\n $scope.vmh = helperService;\r\n $scope.helperService = helperService;\r\n $scope.UserMitigations = [];\r\n vm.existingFilesDataSource = [];\r\n $scope.requireTickets = false;\r\n $scope.disableObjectLevelRiskAnalysis = false;\r\n\r\n //Common path functions\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n activate();\r\n\r\n async function activate() {\r\n var { data: config } = await configurationDataService.getConfigurationValues(),\r\n defaultTemplateEnabled = config.some(item => item.Name === \"IM_DefaultRoleTemplateForNewUserRequestsEnabled\" && item?.Value === \"1\"),\r\n { Value: defaultTemplateId } = config.find(item => item.Name === \"IM_DefaultRoleTemplateForNewUserRequests\"),\r\n roleTemplates;\r\n\r\n vm.config = config;\r\n vm.showExistingUserExpansion = true;\r\n vm.toggleExistingUserExpansion = false;\r\n\r\n\r\n vm.bypassRiskAnalysis = config.some(item => item.Name === \"IM_BypassRiskAnalysis\" && item?.Value === \"1\")\r\n $scope.requireTickets = config.find(item => item.Name === \"IM_RequireTicketAssociation\").Value === '1';\r\n vm.roleTemplatesOnlyEnabled = config.some(item => item.Name === \"IM_RoleTemplatesOnlyEnabled\" && item.Value === \"1\");\r\n $scope.disableObjectLevelRiskAnalysis = config.some(item => item.Name === \"IM_DisableObjectLevelRiskAnalysis\" && item?.Value === \"1\");\r\n\r\n if (defaultTemplateEnabled) {\r\n roleTemplates = await $http.get(`${apiUrl}api/universal/roletemplates`);\r\n $scope.defaultRoleTemplate = roleTemplates.data.find(template => template.Id === defaultTemplateId);\r\n }\r\n\r\n securityCheck();\r\n getApplications();\r\n }\r\n\r\n function securityCheck() {\r\n let security = JSON.parse(localStorage.getItem('UserSecurityObjects'));\r\n if (security.find(o => o.ObjectID === 11402)) return;\r\n else $location.path('/403');\r\n }\r\n\r\n async function calculateExpirationDate() {\r\n let numberOfDaysToAdd = Number(vm.config.find(configuration => configuration.Name === 'IM_DefaultExpirationDays').Value);\r\n\r\n if (numberOfDaysToAdd) {\r\n vm.ExpirationDate = new Date();\r\n vm.ExpirationDate.setDate(vm.ExpirationDate.getDate() + numberOfDaysToAdd);\r\n }\r\n }\r\n\r\n async function getAdditionalRequestDetails() {\r\n const response = await $http.get(`${apiUrl}api/identitymanager/requests/${$scope.requestToEdit.Id}/version/${$scope.requestToEdit.Version}`);\r\n vm.existingFilesDataSource = response.data.Attachments;\r\n $scope.vm.ExpirationDate = response.data.ExpirationDate ? new Date(response.data.ExpirationDate) : null;\r\n }\r\n\r\n $scope.getApplicationName = function (applicationId) {\r\n return $scope.vmh.getApplicationName(applicationId, vm.availableApplications);\r\n };\r\n\r\n $scope.getProductName = function (productId) {\r\n return $scope.vmh.getProductName(productId, vm.availableApplications);\r\n };\r\n //--end common path functions\r\n\r\n async function getAX7UserGroupConfigValue() {\r\n let response = await manageDataDataService.getConfigurationByProductId('AX7');\r\n const ax7UserGroupConfigValue = response.data.find(config => config.Name === 'IM_EnableUserGroups');\r\n\r\n vm.EnableAX7UserGroups = ax7UserGroupConfigValue.Value === '1' ? true : false;\r\n }\r\n\r\n $scope.loadingIcon = false;\r\n\r\n vm.BuiltRequest = null;\r\n vm.ReturnedRequest = null;\r\n\r\n vm.RiskLevelId = 0;\r\n vm.RiskLevelIdNewOnly = 0;\r\n\r\n $scope.hasAX = false;\r\n vm.availableApplications = [];\r\n vm.AccessChanges = [];\r\n\r\n //Universal Product Access variables\r\n $scope.vm.ListOfSelectedUPRoles = [];\r\n $scope.vm.ListOfAvailableUPRoles = [];\r\n $scope.vm.ListOfUPCompanies = [];\r\n\r\n\r\n //SAP Access variables\r\n $scope.vm.ListOfSelectedSAPSingleRoles = [];\r\n $scope.vm.ListOfAvailableSAPSingleRoles = [];\r\n\r\n $scope.vm.ListOfSelectedSAPCompositeRoles = [];\r\n $scope.vm.ListOfAvailableSAPCompositeRoles = [];\r\n\r\n //AAD Access variables\r\n vm.ListOfSelectedAADRoles = [];\r\n vm.ListOfAvailableAADRoles = [];\r\n vm.ListOfSelectedAADGroups = [];\r\n vm.ListOfAvailableAADGroups = [];\r\n vm.ListOfSelectedAADLicenses = [];\r\n vm.ListOfAvailableAADLicenses = [];\r\n\r\n //AX7 Access variables\r\n vm.ListOfSelectedAX7Roles = [];\r\n vm.ListOfExcludedAX7Roles = [];\r\n vm.ListOfAvailableAX7Roles = [];\r\n vm.ListOfAX7Companies = [];\r\n vm.AX7RoleCompanyList = [];\r\n vm.ListOfAvailableAX7UserGroups = [];\r\n vm.ListOfSelectedAX7UserGroups = [];\r\n\r\n //AX2012 Access variables\r\n vm.ListOfSelectedAX2012Roles = [];\r\n vm.ListOfExcludedAX2012Roles = [];\r\n vm.ListOfAvailableAX2012Roles = [];\r\n vm.ListOfAX2012Companies = [];\r\n vm.AX2012RoleCompanyList = [];\r\n vm.ListOfAX2012Partitions = [];\r\n vm.ListOfAvailableAX2012UserGroups = [];\r\n vm.ListOfSelectedAX2012UserGroups = [];\r\n\r\n //NetSuite Access varibles\r\n vm.ListOfSelectedNetSuiteRoles = [];\r\n vm.ListOfAvailableNetSuiteRoles = [];\r\n vm.ListOfSelectedNetSuitePermissions = [];\r\n vm.ListOfAvailableNetSuitePermissions = [];\r\n vm.existingGlobalPermissions = [];\r\n vm.netSuiteRequireExistingEmployee = false;\r\n\r\n //Oracle Responsibility variables\r\n vm.ListOfAvailableOracleResponsibilities = [];\r\n vm.ListOfSelectedOracleResponsibilities = [];\r\n vm.ListOfAvailableOracleRoles = [];\r\n vm.ListOfSelectedOracleRoles = [];\r\n\r\n // Oracle Cloud roles variables\r\n vm.ListOfAvailableOracleCloudRoles = [];\r\n vm.ListOfSelectedOracleCloudRoles = [];\r\n vm.ListOfStoredOracleCloudRoles = [];\r\n\r\n // PeopleSoft roles variables\r\n vm.ListOfAvailablePSRoles = [];\r\n vm.ListOfSelectedPSRoles = [];\r\n\r\n //NAV Access varibles\r\n vm.ListOfSelectedNAVRoles = [];\r\n vm.ListOfAvailableNAVRoles = [];\r\n vm.ListOfAvailableNAVPermissionSets = [];\r\n vm.ListOfSelectedNAVPermissionSets = [];\r\n vm.ListOfSelectedNAVUserGroups = [];\r\n vm.ListOfAvailableNAVUserGroups = [];\r\n\r\n //GP Access varibles\r\n vm.ListOfSelectedGPRoles = [];\r\n vm.ListOfAvailableGPRoles = [];\r\n\r\n vm.ListOfStoredGPRoles = [];\r\n\r\n vm.ListOfSelectedGPCompanies = [];\r\n vm.ListOfAvailableGPCompanies = [];\r\n\r\n //D365S Access varibles\r\n vm.ListOfSelectedD365SRoles = [];\r\n vm.ListOfAvailableD365SRoles = [];\r\n vm.ListOfSelectedD365STeams = [];\r\n vm.ListOfAvailableD365STeams = [];\r\n\r\n //Salesforce Access Variables\r\n vm.ListOfAvailableSalesforcePermissionSets = [];\r\n vm.ListOfSelectedSalesforcePermissionSets = [];\r\n\r\n vm.RequestNotes = '';\r\n\r\n //Provided default values\r\n $scope.vm.User = {};\r\n\r\n $scope.updatePending = {};\r\n\r\n var locationPath = $location.path().split(\"/\");\r\n vm.wizardMode = locationPath[4];\r\n\r\n function getApplications() {\r\n $http.get(apiUrl + 'api/identitymanager/applications').then(function (response) {\r\n\r\n response.data.forEach(function (row, i) {\r\n row.selected = false;\r\n });\r\n response.data = $filter('orderBy')(response.data, 'ProductName');\r\n $scope.vm.availableApplications = response.data;\r\n $scope.atLeastOneAppSelected();\r\n\r\n //If the user is modifying an open request load the data after the available applications have populated\r\n if ($rootScope.requestToEdit) {\r\n RequestManagementLoadDataService.loadOpenRequestData($scope);\r\n }\r\n\r\n //Check if custom apps exist\r\n var existingSteps = RequestManagementStepDefinitions.getListOfSteps(vm.wizardMode, vm.alternatePath, $rootScope.requestToEdit);\r\n $scope.vm.availableApplications.forEach(application => {\r\n $scope.vm.ListOfSelectedSAPSingleRoles[application.ProductName] = [];\r\n $scope.vm.ListOfSelectedSAPCompositeRoles[application.ProductName] = [];\r\n $scope.vm.ListOfSelectedUPRoles[application.ProductName] = [];\r\n if (!existingSteps.some(step => step.parent && step.parent === application.ProductName)) {\r\n $scope.steps = RequestManagementShowStepsService.createCustomSteps(application, existingSteps);\r\n }\r\n });\r\n if (!$scope.steps) {\r\n $scope.steps = RequestManagementStepDefinitions.getListOfSteps(vm.wizardMode, vm.alternatePath, $rootScope.requestToEdit);\r\n }\r\n\r\n // Remove Risk Analysis Step if Configuration is enabled\r\n if ($scope.vm.bypassRiskAnalysis) {\r\n const riskAnalysisStepIndex = $scope.steps.findIndex(step => step.title === 'Risk Analysis');\r\n $scope.steps.splice(riskAnalysisStepIndex, 1);\r\n }\r\n });\r\n }\r\n\r\n $scope.selectApplicationsHelpText = 'Select the application(s) the user will access';\r\n\r\n vm.linkedUserChange = function (linkedUser) {\r\n $scope.vm.linkedUser = linkedUser;\r\n };\r\n\r\n vm.disabledAppSelection = function (application) {\r\n const appName = helperService.removeSpaces(application.Name);\r\n if (vm.linkedUser) {\r\n if (vm.linkedUser[appName]) {\r\n application.selected = false;\r\n }\r\n return vm.linkedUser[appName];\r\n }\r\n return false;\r\n }\r\n\r\n vm.linkedUserCheck = function() {\r\n if (!vm.toggleExistingUserExpansion) {\r\n vm.linkedUserChange(null);\r\n }\r\n }\r\n\r\n //Application\r\n vm.appSelectedChange = async function (application) {\r\n vm.IsRisksReviewed = null;\r\n if (application.selected) {\r\n if (application.Id == netsuite_application_id) {\r\n RequestManagementNetSuiteLoadDataService.loadNetSuite($scope, null, null, null);\r\n $scope.getNsRequireExistingEmployee().then(function (requireExisting) {\r\n return vm.netSuiteRequireExistingEmployee = requireExisting;\r\n });\r\n }\r\n\r\n if (application.Id == sap_application_id) {\r\n RequestManagementSAPLoadDataService.loadSAP($scope, application, null);\r\n //Load SAP Password Criteria\r\n passwordCriteriaDataService.getPasswordCriteria(application.ProductID).then(function (response) {\r\n $scope.vm.sapPasswordCriteria = {};\r\n $scope.vm.sapPasswordCriteria[application.ProductName] = response.data;\r\n }).catch(function (response) {\r\n $scope.vm.sapPasswordCriteria = {};\r\n });\r\n }\r\n\r\n if (application.Id == aad_application_id) {\r\n RequestManagementAADLoadDataService.loadAAD($scope, null);\r\n //Load AAD Password Criteria\r\n passwordCriteriaDataService.getPasswordCriteria(application.ProductID).then(function (response) {\r\n $scope.vm.aadPasswordCriteria = {};\r\n $scope.vm.aadPasswordCriteria = response.data;\r\n }).catch(function (response) {\r\n $scope.vm.aadPasswordCriteria = {};\r\n });\r\n }\r\n\r\n if (application.Id == ps_application_id) {\r\n RequestManagementPSLoadDataService.loadPS($scope, null);\r\n //Load PS Password Criteria\r\n passwordCriteriaDataService.getPasswordCriteria(application.ProductID).then(function (response) {\r\n $scope.vm.psPasswordCriteria = {};\r\n $scope.vm.psPasswordCriteria = response.data;\r\n }).catch(function (response) {\r\n $scope.vm.psPasswordCriteria = {};\r\n });\r\n }\r\n\r\n if (application.Id == ax7_application_id) {\r\n RequestManagementAXLoadDataService.loadAX7($scope, null);\r\n }\r\n\r\n if (application.Id == ax_application_id) {\r\n RequestManagementAXLoadDataService.loadAX2012($scope, null);\r\n }\r\n\r\n if (application.Id == oracle_application_id) {\r\n await RequestManagementOracleLoadDataService.loadOracle($scope, null);\r\n }\r\n\r\n if (application.Id == oracleCloud_application_id) {\r\n RequestManagementOracleCloudLoadDataService.loadOracleCloud($scope, null);\r\n }\r\n\r\n if (application.Id == gp_application_id) {\r\n RequestManagementGPLoadDataService.loadGP($scope, null);\r\n }\r\n\r\n if (application.Id == nav_application_id) {\r\n RequestManagementNAVLoadDataService.loadNAV($scope, null);\r\n }\r\n\r\n if (application.Id === d365s_application_id) {\r\n RequestManagementD365SLoadDataService.loadD365S($scope, null);\r\n }\r\n\r\n if (application.Id === universalProduct_application_id) {\r\n RequestManagementUPLoadDataService.loadUP($scope, application, null);\r\n }\r\n\r\n if (application.Id === salesforce_application_id) {\r\n salesforceLoadData.loadSalesforce($scope, application, null);\r\n }\r\n }\r\n\r\n $scope.atLeastOneAppSelected();\r\n\r\n $scope.loadERPSpecificSteps(application);\r\n };\r\n\r\n $scope.loadERPSpecificSteps = async function (application) {\r\n switch (application.ProductType) {\r\n case 'OR':\r\n if (!vm.ORRBACEnabled) {\r\n const rolesStepIndex = $scope.steps.findIndex(step => step.title === 'Oracle EBS Roles');\r\n if (rolesStepIndex > -1) {\r\n $scope.steps.splice(rolesStepIndex, 1);\r\n }\r\n }\r\n RequestManagementShowStepsService.setOracleStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'SAP':\r\n if (application.ProductName === 'SAP') {\r\n RequestManagementShowStepsService.setSAPStepsToVisible(vm.availableApplications, $scope.steps);\r\n } else {\r\n RequestManagementShowStepsService.setCustomStepsToVisible(vm.availableApplications, $scope.steps, application);\r\n }\r\n break;\r\n case 'NS':\r\n RequestManagementShowStepsService.setNetSuiteStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'AAD':\r\n RequestManagementShowStepsService.setAADStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'AX7':\r\n await getAX7UserGroupConfigValue();\r\n if (!vm.EnableAX7UserGroups) {\r\n const userGroupsStepIndex = $scope.steps.findIndex(step => step.title === 'Dynamics 365 for Finance and Supply Chain User Groups');\r\n if (userGroupsStepIndex > -1) {\r\n $scope.steps.splice(userGroupsStepIndex, 1);\r\n }\r\n }\r\n RequestManagementShowStepsService.setAX7StepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'AX':\r\n RequestManagementShowStepsService.setAX2012StepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'GP':\r\n RequestManagementShowStepsService.setGPStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'NAV':\r\n RequestManagementShowStepsService.setNAVStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'D365S':\r\n RequestManagementShowStepsService.setD365SStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'PS':\r\n RequestManagementShowStepsService.setPSStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'SF':\r\n RequestManagementShowStepsService.setSalesforceStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n default:\r\n RequestManagementShowStepsService.setCustomStepsToVisible(vm.availableApplications, $scope.steps, application);\r\n break;\r\n }\r\n };\r\n\r\n $scope.atLeastOneAppSelected = function () {\r\n vm.validAppsSelected = RequestManagementWizardController.atLeastOneAppSelected(vm.availableApplications);\r\n };\r\n\r\n $scope.getNsRequireExistingEmployee = function () {\r\n return $http.get(apiUrl + 'api/core/configuration/NS_ImRequireExistingEmployee').then(function (response) {\r\n return response.data === 1;\r\n });\r\n };\r\n\r\n //Wizard Navigation\r\n $scope.stepDisabled = function (title) {\r\n return RequestManagementWizardController.stepDisabled(title, WizardHandler.wizard(), $scope);\r\n };\r\n\r\n $scope.setParentStepToActive = function (parent) {\r\n return RequestManagementWizardController.setParentStepToActive(parent, WizardHandler.wizard(), $scope.steps);\r\n };\r\n\r\n $scope.goToNextVisiblePage = function () {\r\n var step = RequestManagementWizardController.goToNextVisiblePage($scope.steps, WizardHandler.wizard());\r\n $scope.setActivePage(step.title);\r\n };\r\n\r\n $scope.goToPreviousVisiblePage = function () {\r\n var step = RequestManagementWizardController.goToPreviousVisiblePage($scope.steps, WizardHandler.wizard());\r\n $scope.setActivePage(step.title);\r\n };\r\n\r\n $scope.setCurrentStepToActive = function () {\r\n return RequestManagementWizardController.getCurrentStepsTitle(WizardHandler.wizard());\r\n };\r\n\r\n $scope.setActivePage = function (stepTitle) {\r\n var wizardInstance = WizardHandler.wizard();\r\n var currentStepNumber = wizardInstance.currentStepNumber();\r\n var enabledSteps = wizardInstance.getEnabledSteps();\r\n var step = enabledSteps[currentStepNumber - 1];\r\n if (step.canexit == true) {\r\n $scope.buildRequest(step.title, stepTitle);\r\n }\r\n wizardInstance.goTo(stepTitle);\r\n };\r\n //---End of Wizard Navigation\r\n\r\n $scope.buildRequest = async function (fromStep, toStep) {\r\n\r\n vm.builtRequest = RequestManagementBuildRequestService.buildRequest(vm, false);\r\n $scope.$broadcast('broadcast-im-wizardstepchange', { fromStep: fromStep, toStep: toStep });\r\n\r\n if (fromStep == \"Access Effective Dates\") {\r\n if (vm.AccessChanges != null) {\r\n vm.AccessChanges.forEach(function (access) {\r\n //Loop thru AX roles and update start/end dates set on effective dates page\r\n if (access.Company != null) {\r\n if (access.Companies != null) {\r\n vm.ListOfSelectedAX7Roles.forEach(function (role) {\r\n\r\n if (role.Companies != null) {\r\n var company = role.Companies.find(function (company) {\r\n return company.CompanyId == access.Company.CompanyId;\r\n });\r\n company.StartDate = access.StartDate;\r\n company.EndDate = access.EndDate;\r\n }\r\n });\r\n }\r\n }\r\n //Loop thru Oracle Cloud roles and update start/end dates set on effective dates page\r\n if (access.ProductId === 'ORFC' && vm.ListOfSelectedOracleCloudRoles.length > 0) {\r\n vm.ListOfSelectedOracleCloudRoles.forEach(r => {\r\n if (r.RoleID === access.RoleID) {\r\n r.StartDate = access.StartDate;\r\n r.EndDate = access.EndDate;\r\n }\r\n });\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n if (toStep == \"Access Effective Dates\" || toStep == \"Summary\") {\r\n\r\n if (toStep == \"Summary\") {\r\n //Display loading icon on the summary page while build is working\r\n $scope.loadingIcon = true;\r\n $scope.rebindEffectiveDates = $scope.rebindEffectiveDates == 0 ? 1 : 0;\r\n //Default value check property = default, set minimum date property\r\n $scope.minimumExpirationDate = new Date();\r\n if (vm.config.find(config => config.Name === 'IM_DefaultExpirationEnabled').Value === '1') {\r\n calculateExpirationDate();\r\n }\r\n }\r\n\r\n RequestManagementBuildRequestService.executeRequest(vm.builtRequest).then(function (response) {\r\n vm.ReturnedRequest = response.data;\r\n\r\n RequestManagementLoadDataService.loadRequestData(toStep, fromStep, vm, $scope, vm.ReturnedRequest).done(function () {\r\n $scope.loadingIcon = false;\r\n });\r\n\r\n //Check if AX roles have been selected. Changes screens on Access Effective Dates and Summary page\r\n if (vm.ListOfSelectedAX7Roles != null && vm.ListOfSelectedAX7Roles.length > 0 || vm.ListOfSelectedAX2012Roles != null && vm.ListOfSelectedAX2012Roles.length > 0) {\r\n $scope.hasAX = true;\r\n } else {\r\n $scope.hasAX = false;\r\n }\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n if (toStep == \"Risk Analysis\") {\r\n vm.buildReviewRisksDataSource(vm.builtRequest);\r\n }\r\n\r\n };\r\n\r\n $scope.organizationEnabled = false;\r\n\r\n // Link Ticket logic ========================\r\n\r\n if (!$scope.linkedTickets) $scope.linkedTickets = [];\r\n\r\n $scope.openIMRequestJiraTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestJiraTicketModal.html',\r\n controller: IMRequestJiraTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestFreshServiceTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestFreshServiceTicketModal.html',\r\n controller: IMRequestFreshServiceTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestServiceNowTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/ServiceNow/IMRequestServiceNowTicketModal.html',\r\n controller: IMRequestServiceNowTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestZendeskTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestZendeskTicketModal.html',\r\n controller: IMRequestZendeskTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestCustomTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestCustomTicketModal.html',\r\n controller: IMRequestCustomTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.removeIMRequestTicketLink = function (providerString) {\r\n $scope.linkedTickets = $scope.linkedTickets.filter(ticket => ticket.TicketProvider !== providerString);\r\n\r\n if (providerString === 'Jira') $scope.jiraTicketLinked = false;\r\n else if (providerString === 'ServiceNow') $scope.serviceNowTicketLinked = false;\r\n else if (providerString === 'Zendesk') $scope.zendeskTicketLinked = false;\r\n else if (providerString === 'Custom') $scope.customTicketLinked = false;\r\n };\r\n\r\n // Attachments logic\r\n\r\n if ($scope.requestToEdit) {\r\n getAdditionalRequestDetails();\r\n }\r\n\r\n $scope.removeFile = async function (file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n await controlLibraryDataService.deleteAttachment(file.Identifier);\r\n\r\n const index = vm.existingFilesDataSource.findIndex(remainingFile => remainingFile.Identifier === file.Identifier);\r\n vm.existingFilesDataSource.splice(index, 1);\r\n $scope.fileActionPending = false;\r\n } catch {\r\n $scope.fileActionPending = false;\r\n }\r\n };\r\n\r\n $scope.downloadFile = async function (file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n const response = await controlLibraryDataService.downloadAttachment(file.Identifier);\r\n FileSaver.saveAs(response.data, file.FileName);\r\n $scope.fileActionPending = false;\r\n } catch {\r\n $scope.fileActionPending = false;\r\n }\r\n };\r\n\r\n $scope.uploadFiles = async function (files, requestId) {\r\n let fd = new FormData();\r\n\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"ImRequest\");\r\n fd.append(\"DataTypeId\", requestId);\r\n\r\n await controlLibraryDataService.addAttachments(fd);\r\n };\r\n\r\n //Build requests for finished wizard\r\n $scope.createNewRequest = function (request) {\r\n\r\n $scope.updatePending = new createSpinner();\r\n\r\n $http.post(apiUrl + 'api/identitymanager/requests', request).then(async function (response) {\r\n if (vm.attachments.flow.files.length > 0) {\r\n const requestId = response.data;\r\n $scope.uploadFiles(vm.attachments.flow.files, requestId);\r\n }\r\n helperService.showConfirmationMessage(\"Success\", \"Your request has been submitted for approval.\");\r\n $location.path('/IdentityManager/Place/RequestManagement').search({});\r\n\r\n },\r\n function errorCallback(response) {\r\n $scope.updatePending.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n\r\n $scope.updateExistingRequest = function (request) {\r\n $scope.updatePending = new createSpinner();\r\n\r\n $http.put(apiUrl + 'api/identitymanager/requests/' + $scope.requestToEdit.Id + '/version/' + $scope.requestToEdit.Version, request).then(function (response) {\r\n\r\n if (vm.attachments.flow.files.length > 0) {\r\n $scope.uploadFiles(vm.attachments.flow.files, $scope.requestToEdit.Id);\r\n }\r\n\r\n helperService.showConfirmationMessage(\"Success\", \"Your request has been updated.\");\r\n $location.path('/IdentityManager/Place/RequestManagement').search({});\r\n }, function errorCallback(response) {\r\n $scope.updatePending.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $scope.finishedWizard = function () {\r\n\r\n // add selected role template names to request notes if restrction is on\r\n if (vm.selectedRoleTemplates?.length && vm.roleTemplatesOnlyEnabled) {\r\n if (!vm.RequestNotes.includes(' Selected Role Templates: ')) {\r\n vm.RequestNotes += \" Selected Role Templates: \"\r\n }\r\n vm.selectedRoleTemplates.forEach(template => {\r\n if (!vm.RequestNotes.includes(template.Name)) {\r\n vm.RequestNotes += template.Name + \" \";\r\n }\r\n });\r\n }\r\n\r\n $scope.updatePending = new createSpinner();\r\n var builtRequest = RequestManagementBuildRequestService.buildRequest(vm, true);\r\n //Make a copy of the request before the dates are changed so the actual data is not affected by converting dates\r\n var builtRequestCopy = angular.copy(builtRequest);\r\n builtRequestCopy.UserMitigations = $scope.UserMitigations;\r\n builtRequestCopy.Tickets = $scope.linkedTickets;\r\n builtRequestCopy.ExpirationDate = $scope.vm.ExpirationDate ? new Date($scope.vm.ExpirationDate).toUTCString() : null;\r\n builtRequestCopy.UserMasterID = $scope.vm.linkedUser?.id ?? null;\r\n //Convert request dates to Date before sending them to the DB\r\n RequestManagementLoadDataService.addEffectiveDates(builtRequestCopy, vm.AccessChanges);\r\n //Convert request dates to Date before sending them to the DB\r\n RequestManagementEffectiveDateService.convertRequestDates(builtRequestCopy);\r\n\r\n //Update request if there is currently an open request\r\n if ($scope.requestToEdit) {\r\n $scope.updateExistingRequest(builtRequestCopy);\r\n } else {\r\n $scope.createNewRequest(builtRequestCopy);\r\n }\r\n };\r\n\r\n $scope.loadEffectiveDateData = function (request) {\r\n vm.AccessChanges = RequestManagementLoadDataService.findAccessChanges(request, vm.AccessChanges);\r\n\r\n $scope.RequestAccessListDataSource = new kendo.data.DataSource({\r\n data: vm.AccessChanges\r\n });\r\n\r\n //Show the AX grid if the request contains AX\r\n if (vm.ListOfSelectedAX7Roles.length > 0 || vm.ListOfSelectedAX2012Roles.length > 0) {\r\n $scope.hasAX = true;\r\n } else {\r\n $scope.hasAX = false;\r\n }\r\n };\r\n\r\n vm.clearRiskAnalysisResults = function () {\r\n vm.riskResults = null;\r\n\r\n //Assign totals for summary grids\r\n $scope.ucExistingTotal = '';\r\n $scope.ucNewTotal = '';\r\n $scope.ucRemovedTotal = '';\r\n $scope.ucTotal = '';\r\n\r\n $scope.caGroupExistingTotal = '';\r\n $scope.caGroupNewTotal = '';\r\n $scope.caGroupRemovedTotal = '';\r\n $scope.caGroupTotal = '';\r\n\r\n $scope.caObjectExistingTotal = '';\r\n $scope.caObjectNewTotal = '';\r\n $scope.caObjectRemovedTotal = '';\r\n $scope.caObjectTotal = '';\r\n\r\n $scope.bpGroupExistingTotal = '';\r\n $scope.bpGroupNewTotal = '';\r\n $scope.bpGroupRemovedTotal = '';\r\n $scope.bpGroupTotal = '';\r\n\r\n $scope.bpObjectExistingTotal = '';\r\n $scope.bpObjectNewTotal = '';\r\n $scope.bpObjectRemovedTotal = '';\r\n $scope.bpObjectTotal = '';\r\n\r\n //Datasource for Risk Analysis User Risks grid\r\n $scope.UserRisksDataSource = [];\r\n $scope.BusinessProcessDataSource = [];\r\n };\r\n\r\n //Review Risks\r\n vm.buildReviewRisksDataSource = function (request) {\r\n $scope.showReviewRisksLoadingIcon = true;\r\n request.UserMasterId = $scope.vm.linkedUser?.id ?? null;\r\n vm.clearRiskAnalysisResults();\r\n\r\n $scope.reviewRisksGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/identitymanager/requests/riskanalysis/v2',\r\n data: request\r\n }).then(function (response) {\r\n\r\n vm.riskResults = response.data;\r\n\r\n //Assign totals for summary grids\r\n $scope.ucExistingTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.UserRiskAnalysis.CountByComparison, 'Existing');\r\n $scope.ucNewTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.UserRiskAnalysis.CountByComparison, 'Added');\r\n $scope.ucRemovedTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.UserRiskAnalysis.CountByComparison, 'Deleted');\r\n $scope.ucTotal = $scope.ucExistingTotal + $scope.ucNewTotal;\r\n\r\n $scope.bpGroupExistingTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.GroupCountByComparison, 'Existing');\r\n $scope.bpGroupNewTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.GroupCountByComparison, 'Added');\r\n $scope.bpGroupRemovedTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.GroupCountByComparison, 'Deleted');\r\n $scope.bpGroupTotal = $scope.bpGroupExistingTotal + $scope.bpGroupNewTotal;\r\n\r\n $scope.bpObjectExistingTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.ObjectCountByComparison, 'Existing');\r\n $scope.bpObjectNewTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.ObjectCountByComparison, 'Added');\r\n $scope.bpObjectRemovedTotal = RequestManagementLoadDataService.searchByKey(vm.riskResults.BusinessProcessAnalysis.ObjectCountByComparison, 'Deleted');\r\n $scope.bpObjectTotal = $scope.bpObjectExistingTotal + $scope.bpObjectNewTotal;\r\n\r\n\r\n //Datasource for Risk Analysis User Risks grid\r\n $scope.UserRisksDataSource = response.data.UserRisks;\r\n updateUserRisksDetailedViewGridIfMitigationRequestsExist();\r\n\r\n function updateUserRisksDetailedViewGridIfMitigationRequestsExist() {\r\n $scope.UserRisksDataSource.forEach(item => {\r\n if ($scope.UserMitigations.length > 0) {\r\n let match = $scope.UserMitigations.some(mitigation => {\r\n return mitigation.RiskId === item.RiskId && mitigation.CompanyMasterId === item.CompanyMasterID;\r\n });\r\n if (match) {\r\n item.RequestMitigation = 'Edit';\r\n }\r\n else if (!match && item.MitigationStatus !== 'New' && item.MitigationStatus) {\r\n return;\r\n }\r\n else {\r\n item.RequestMitigation = 'Request';\r\n }\r\n } else if (item.MitigationStatus === 'New' || !item.MitigationStatus) {\r\n item.RequestMitigation = 'Request';\r\n }\r\n else {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n $scope.BusinessProcessDataSource = response.data.BusinessProcesses;\r\n\r\n //Return the highest RiskId from the data\r\n var addedList = response.data.UserRisks.filter(e => e.Comparison == 'Added');\r\n var addedPlusCurrentList = response.data.UserRisks.filter(e => e.Comparison == 'Existing' || e.Comparison == 'Added');\r\n\r\n if (addedPlusCurrentList.length > 0) {\r\n vm.RiskLevelId = Math.max.apply(Math, addedPlusCurrentList.map(function (o) { return o.RiskLevelId; }));\r\n } else {\r\n vm.RiskLevelId = 0;\r\n }\r\n\r\n if (addedList.length > 0) {\r\n vm.RiskLevelIdNewOnly = Math.max.apply(Math, addedList.map(function (o) { return o.RiskLevelId; }));\r\n } else {\r\n vm.RiskLevelIdNewOnly = 0;\r\n }\r\n\r\n vm.IsRisksReviewed = true;\r\n $scope.showReviewRisksLoadingIcon = false;\r\n }, function errorCallback(response) {\r\n vm.IsRisksReviewed = true;\r\n $scope.showReviewRisksLoadingIcon = false;\r\n options.error();\r\n });\r\n }\r\n },\r\n sort: { field: \"Comparison\", dir: \"asc\" }\r\n });\r\n\r\n $scope.reviewRisksGridDataSource.read();\r\n };\r\n\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport IMRequestJiraTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestJiraTicketModal.controller\";\r\nimport IMRequestServiceNowTicketModalController from \"./WizardSteps/Universal/linkTickets/ServiceNow/IMRequestServiceNowTicketModal.controller\";\r\nimport IMRequestZendeskTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestZendeskTicketModal.controller\";\r\nimport IMRequestCustomTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestCustomTicketModal.controller\";\r\nimport { ax7_application_id, sap_application_id, netsuite_application_id, ax_application_id, oracle_application_id, oracleCloud_application_id, gp_application_id, nav_application_id, d365s_application_id, universalProduct_application_id, aad_application_id, ps_application_id, salesforce_application_id } from \"../../Shared/GlobalVariables/applicationIdVariables\";\r\nimport IMRequestFreshServiceTicketModalController from \"./WizardSteps/Universal/linkTickets/IMRequestFreshServiceTicketModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, RequestManagementShowStepsService, RequestManagementStepDefinitions, RequestManagementWizardController, RequestManagementLoadDataService, RequestManagementBuildRequestService, WizardHandler, $rootScope, objectIdDataService, $http, $q, $location, helperService, controlLibraryDataService, FileSaver, userRolesDataService) {\r\n\r\n //Page initialization\r\n var vm = $scope.vm = {};\r\n $scope.vmh = helperService;\r\n $scope.helperService = helperService;\r\n $scope.updatePending = {};\r\n var locationPath = $location.path().split(\"/\");\r\n vm.wizardMode = locationPath[4];\r\n vm.availableApplications = [];\r\n vm.existingFilesDataSource = [];\r\n var RiskLevelId = 0;\r\n var RiskLevelIdNewOnly = 0;\r\n var selectedExistingUser = null;\r\n $scope.vm.nsMaxDate = new Date(2900, 0, 1, 0, 0, 0);\r\n $scope.vm.nsMinDate = new Date();\r\n\r\n $scope.requireTickets = false;\r\n helperService.getConfigurationValue('IM_RequireTicketAssociation').then(function (data) {\r\n $scope.requireTickets = data === \"1\" ? true : false;\r\n });\r\n\r\n //Common Functions - duplicate functions on each pathon\r\n objectIdDataService.getObjectID().then(function (objectId) {\r\n $scope.ObjectId = objectId;\r\n\r\n var securityObject = helperService.getSecurityObjectDetailsFromObjectId($scope.ObjectId);\r\n $scope.pageInfo = securityObject;\r\n $scope.pageDescription = securityObject.HelpLink;\r\n $scope.reportName = securityObject.Name;\r\n\r\n });\r\n\r\n activate();\r\n\r\n function activate() {\r\n securityCheck();\r\n }\r\n\r\n function securityCheck() {\r\n let security = JSON.parse(localStorage.getItem('UserSecurityObjects'));\r\n if (security.find(o => o.ObjectID === 11404)) return;\r\n else $location.path('/403');\r\n }\r\n\r\n async function calculateExpirationDate() {\r\n let numberOfDaysToAdd = Number(vm.config.find(configuration => configuration.Name === 'IM_DefaultExpirationDays').Value);\r\n\r\n if (numberOfDaysToAdd) {\r\n vm.ExpirationDate = new Date();\r\n vm.ExpirationDate.setDate(vm.ExpirationDate.getDate() + numberOfDaysToAdd);\r\n }\r\n }\r\n\r\n async function getAdditionalRequestDetails() {\r\n const response = await $http.get(`${apiUrl}api/identitymanager/requests/${$scope.requestToEdit.Id}/version/${$scope.requestToEdit.Version}`);\r\n vm.existingFilesDataSource = response.data.Attachments;\r\n $scope.vm.ExpirationDate = response.data.ExpirationDate ? new Date(response.data.ExpirationDate) : null;\r\n }\r\n\r\n $scope.getApplicationName = function (applicationId) {\r\n return $scope.vmh.getApplicationName(applicationId, vm.availableApplications);\r\n };\r\n\r\n $scope.getProductName = function (productId) {\r\n return $scope.vmh.getProductName(productId, vm.availableApplications);\r\n };\r\n //--End Common Page Functions\r\n\r\n\r\n $scope.resetUserValues = function () {\r\n $scope.requestUserList = [];\r\n $scope.vm.effectiveDateList = [];\r\n\r\n vm.RiskLevelId = 0;\r\n vm.RiskLevelIdNewOnly = 0;\r\n\r\n var selectedExistingUser = null;\r\n var editRequestExistingUser = {};\r\n\r\n //Universal Product Access variables\r\n $scope.vm.ListOfSelectedUPRoles = [];\r\n $scope.vm.ListOfAvailableUPRoles = [];\r\n $scope.vm.ListOfUPCompanies = [];\r\n\r\n //SAP Access variables\r\n vm.ListOfSelectedSAPSingleRoles = [];\r\n vm.ListOfAvailableSAPSingleRoles = [];\r\n vm.ListOfSelectedSAPCompositeRoles = [];\r\n vm.ListOfAvailableSAPCompositeRoles = [];\r\n\r\n //AAD Access variables\r\n vm.ListOfSelectedAADRoles = [];\r\n vm.ListOfAvailableAADRoles = [];\r\n vm.ListOfSelectedAADGroups = [];\r\n vm.ListOfAvailableAADGroups = [];\r\n vm.ListOfSelectedAADLicenses = [];\r\n vm.ListOfAvailableAADLicenses = [];\r\n\r\n //AX7 Access variables\r\n vm.ListOfSelectedAX7Roles = [];\r\n vm.ListOfExcludedAX7Roles = [];\r\n vm.ListOfAvailableAX7Roles = [];\r\n vm.ListOfAX7Companies = [];\r\n vm.AX7RoleCompanyList = [];\r\n\r\n //AX2012 Access variables\r\n vm.ListOfSelectedAX2012Roles = [];\r\n vm.ListOfExcludedAX2012Roles = [];\r\n vm.ListOfAvailableAX2012Roles = [];\r\n vm.ListOfAX2012Companies = [];\r\n vm.AX2012RoleCompanyList = [];\r\n vm.ListOfAX2012Partitions = [];\r\n\r\n //NetSuite Access varibles\r\n vm.ListOfSelectedNetSuiteRoles = [];\r\n vm.ListOfAvailableNetSuiteRoles = [];\r\n vm.ListOfSelectedNetSuitePermissions = [];\r\n vm.ListOfAvailableNetSuitePermissions = [];\r\n vm.existingGlobalPermissions = [];\r\n\r\n //Oracle Responsibility variables\r\n vm.ListOfAvailableOracleResponsibilities = [];\r\n vm.ListOfSelectedOracleResponsibilities = [];\r\n\r\n // Oracle Cloud roles variables\r\n vm.ListOfAvailableOracleCloudRoles = [];\r\n vm.ListOfSelectedOracleCloudRoles = [];\r\n vm.ListOfStoredOracleCloudRoles = [];\r\n\r\n // PeopleSoft roles variables\r\n vm.ListOfAvailablePSRoles = [];\r\n vm.ListOfSelectedPSRoles = [];\r\n\r\n //NAV Access varibles\r\n vm.ListOfSelectedNAVRoles = [];\r\n vm.ListOfAvailableNAVRoles = [];\r\n vm.ListOfAvailableNAVPermissionSets = [];\r\n vm.ListOfSelectedNAVPermissionSets = [];\r\n vm.ListOfSelectedNAVUserGroups = [];\r\n vm.ListOfAvailableNAVUserGroups = [];\r\n\r\n //GP Access varibles\r\n vm.ListOfSelectedGPRoles = [];\r\n vm.ListOfAvailableGPRoles = [];\r\n vm.ListOfStoredGPRoles = [];\r\n vm.ListOfSelectedGPCompanies = [];\r\n vm.ListOfAvailableGPCompanies = [];\r\n\r\n //D365S Access varibles\r\n vm.ListOfSelectedD365SRoles = [];\r\n vm.ListOfAvailableD365SRoles = [];\r\n vm.ListOfSelectedD365STeams = [];\r\n vm.ListOfAvailableD365STeams = [];\r\n\r\n //Salesforce Access Variables\r\n vm.ListOfAvailableSalesforcePermissionSets = [];\r\n vm.ListOfSelectedSalesforcePermissionSets = [];\r\n\r\n $scope.vm.User = [];\r\n };\r\n\r\n $scope.resetUserValues();\r\n\r\n\r\n //--Select Application Functions\r\n vm.appSelectedChange = function (application) {\r\n\r\n if (!application.selected && $scope.vm.UserChanges) {\r\n var index = $scope.vm.UserChanges.findIndex(change => change.ProductId === application.ProductID);\r\n if (index > -1) {\r\n $scope.vm.UserChanges.splice(index, 1);\r\n }\r\n }\r\n\r\n $scope.atLeastOneAppSelected();\r\n $scope.loadERPSpecificSteps(application);\r\n };\r\n\r\n $scope.loadERPSpecificSteps = function (application) {\r\n switch (application.ProductType) {\r\n case 'OR':\r\n RequestManagementShowStepsService.setOracleStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'SAP':\r\n RequestManagementShowStepsService.setSAPStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'AAD':\r\n RequestManagementShowStepsService.setAADStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'NS':\r\n RequestManagementShowStepsService.setNetSuiteStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'AX7':\r\n RequestManagementShowStepsService.setAX7StepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'AX':\r\n RequestManagementShowStepsService.setAX2012StepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'GP':\r\n RequestManagementShowStepsService.setGPStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'NAV':\r\n RequestManagementShowStepsService.setNAVStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'D365S':\r\n RequestManagementShowStepsService.setD365SStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'PS':\r\n RequestManagementShowStepsService.setPSStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n case 'SF':\r\n RequestManagementShowStepsService.setSalesforceStepsToVisible(vm.availableApplications, $scope.steps);\r\n break;\r\n default:\r\n RequestManagementShowStepsService.setCustomStepsToVisible(vm.availableApplications, $scope.steps, application);\r\n break;\r\n }\r\n };\r\n\r\n $scope.atLeastOneAppSelected = function () {\r\n vm.validAppsSelected = RequestManagementWizardController.atLeastOneAppSelected(vm.availableApplications, vm.wizardMode);\r\n };\r\n\r\n $scope.vm.applicationTerminationEffectiveDate = function (application, value) {\r\n if (application.Id == universalProduct_application_id) {\r\n $scope.vm.User.UPUser[application.ProductName].StartDate = new Date(value);\r\n }\r\n if (application.Id == sap_application_id) {\r\n $scope.vm.User.SAPUser[application.ProductName].StartDate = new Date(value);\r\n }\r\n if (application.Id == netsuite_application_id) {\r\n $scope.vm.User.NetSuiteUser.StartDate = new Date(value);\r\n }\r\n if (application.Id == aad_application_id) {\r\n $scope.vm.User.AadUser.StartDate = new Date(value);\r\n }\r\n if (application.Id == ax7_application_id) {\r\n $scope.vm.User.AX7User.StartDate = new Date(value);\r\n }\r\n if (application.Id == ax_application_id) {\r\n $scope.vm.User.AX2012User.StartDate = new Date(value);\r\n }\r\n if (application.Id == oracle_application_id) {\r\n $scope.vm.User.OracleUser.StartDate = new Date(value);\r\n }\r\n if (application.Id == oracleCloud_application_id) {\r\n $scope.vm.User.OracleCloudUser.StartDate = new Date(value);\r\n }\r\n if (application.Id == gp_application_id) {\r\n $scope.vm.User.GPUser.StartDate = new Date(value);\r\n }\r\n if (application.Id == nav_application_id) {\r\n $scope.vm.User.NAVUser.StartDate = new Date(value);\r\n }\r\n if (application.Id == d365s_application_id) {\r\n $scope.vm.User.D365SUser.StartDate = new Date(value);\r\n }\r\n if (application.Id == ps_application_id) {\r\n $scope.vm.User.PSUser.StartDate = new Date(value);\r\n }\r\n if (application.Id === salesforce_application_id) {\r\n $scope.vm.User.SalesforceUser.StartDate = new Date(value);\r\n }\r\n };\r\n //--End Select Application events\r\n\r\n\r\n //Wizard Navigation\r\n $scope.steps = RequestManagementStepDefinitions.getListOfSteps(vm.wizardMode, vm.alternatePath, $rootScope.requestToEdit);\r\n\r\n $scope.stepDisabled = function (title) {\r\n return RequestManagementWizardController.stepDisabled(title, WizardHandler.wizard(), $scope);\r\n };\r\n\r\n $scope.setParentStepToActive = function (parent) {\r\n return RequestManagementWizardController.setParentStepToActive(parent, WizardHandler.wizard(), $scope.steps);\r\n };\r\n\r\n $scope.goToNextVisiblePage = function () {\r\n var step = RequestManagementWizardController.goToNextVisiblePage($scope.steps, WizardHandler.wizard());\r\n $scope.setActivePage(step.title);\r\n };\r\n\r\n $scope.goToPreviousVisiblePage = function () {\r\n var step = RequestManagementWizardController.goToPreviousVisiblePage($scope.steps, WizardHandler.wizard());\r\n $scope.setActivePage(step.title);\r\n };\r\n\r\n $scope.setCurrentStepToActive = function () {\r\n return RequestManagementWizardController.getCurrentStepsTitle(WizardHandler.wizard());\r\n };\r\n\r\n $scope.setActivePage = function (stepTitle) {\r\n var wizardInstance = WizardHandler.wizard();\r\n var currentStepNumber = wizardInstance.currentStepNumber();\r\n var enabledSteps = wizardInstance.getEnabledSteps();\r\n var step = enabledSteps[currentStepNumber - 1];\r\n if (step.canexit == true) {\r\n $scope.buildRequest(step.title, stepTitle);\r\n }\r\n $scope.helpText = null;\r\n wizardInstance.goTo(stepTitle);\r\n };\r\n //---End of Wizard Navigation\r\n\r\n // Attachments logic\r\n\r\n if ($scope.requestToEdit) {\r\n getAdditionalRequestDetails();\r\n }\r\n\r\n $scope.removeFile = async function (file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n await controlLibraryDataService.deleteAttachment(file.Identifier);\r\n\r\n const index = vm.existingFilesDataSource.findIndex(remainingFile => remainingFile.Identifier === file.Identifier);\r\n vm.existingFilesDataSource.splice(index, 1);\r\n $scope.fileActionPending = false;\r\n } catch {\r\n $scope.fileActionPending = false;\r\n }\r\n };\r\n\r\n $scope.downloadFile = async function (file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n const response = await controlLibraryDataService.downloadAttachment(file.Identifier);\r\n FileSaver.saveAs(response.data, file.FileName);\r\n $scope.fileActionPending = false;\r\n } catch {\r\n $scope.fileActionPending = false;\r\n }\r\n };\r\n\r\n $scope.uploadFiles = async function (files, requestId) {\r\n let fd = new FormData();\r\n\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n fd.append(\"DataType\", \"ImRequest\");\r\n fd.append(\"DataTypeId\", requestId);\r\n\r\n await controlLibraryDataService.addAttachments(fd);\r\n };\r\n\r\n // Link Ticket logic ========================\r\n\r\n if (!$scope.linkedTickets) $scope.linkedTickets = [];\r\n\r\n $scope.openIMRequestJiraTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestJiraTicketModal.html',\r\n controller: IMRequestJiraTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestFreshServiceTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestFreshServiceTicketModal.html',\r\n controller: IMRequestFreshServiceTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestServiceNowTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/ServiceNow/IMRequestServiceNowTicketModal.html',\r\n controller: IMRequestServiceNowTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestZendeskTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestZendeskTicketModal.html',\r\n controller: IMRequestZendeskTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.openIMRequestCustomTicketModal = function () {\r\n\r\n $uibModal.open({\r\n templateUrl: 'App/Components/RequestManagement/WizardSteps/Universal/linkTickets/IMRequestCustomTicketModal.html',\r\n controller: IMRequestCustomTicketModalController,\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n linkedTicketsArray: () => $scope.linkedTickets\r\n }\r\n });\r\n };\r\n\r\n $scope.removeIMRequestTicketLink = function (providerString) {\r\n $scope.linkedTickets = $scope.linkedTickets.filter(ticket => ticket.TicketProvider !== providerString);\r\n\r\n if (providerString === 'Jira') $scope.jiraTicketLinked = false;\r\n else if (providerString === 'ServiceNow') $scope.serviceNowTicketLinked = false;\r\n else if (providerString === 'Zendesk') $scope.zendeskTicketLinked = false;\r\n else if (providerString === 'Custom') $scope.customTicketLinked = false;\r\n };\r\n\r\n\r\n $scope.buildRequest = async function (fromStep, toStep) {\r\n\r\n $scope.$broadcast('broadcast-im-wizardstepchange', { fromStep: fromStep, toStep: toStep });\r\n\r\n if (toStep == \"Select Applications\" && fromStep == \"Search Existing Users\") {\r\n $scope.selectApplicationsHelpText = 'The following is a list of applications available to this user. Select the application(s) you wish to terminate and enter the corresponding effective date (if applicable)';\r\n\r\n //Load data for an existing user\r\n if ($rootScope.IMSelectedExistingUser != null && $rootScope.IMSelectedExistingUser.HasERPDataLoaded === false) {\r\n $scope.resetUserValues();\r\n\r\n $scope.showRMLoadingIcon = true;\r\n $scope.vm.wizardClass = \"wizard-nav-container disabledDiv\";\r\n\r\n var promises = [];\r\n RequestManagementLoadDataService.loadUserMasterERPData($scope, $rootScope.IMSelectedExistingUser, $scope.vm.availableApplications).then(function () {\r\n\r\n vm.availableApplications.forEach(function (application) {\r\n if (application.selected) {\r\n\r\n if (application.Id == netsuite_application_id) {\r\n var nsUser = null;\r\n var subsidiaryId = null;\r\n\r\n if ($scope.vm.User.NetSuiteUser != null) {\r\n nsUser = $scope.vm.User.NetSuiteUser;\r\n subsidiaryId = $scope.vm.User.NetSuiteUser.Subsidiary.Id;\r\n }\r\n }\r\n\r\n //Reverse the selected so user must toggle on the tile instead of toggle it off\r\n application.selected = !application.selected;\r\n }\r\n });\r\n\r\n $q.all(promises).then(function () {\r\n //Check if an application is selected and load ERP steps\r\n $scope.atLeastOneAppSelected();\r\n $scope.vm.availableApplications.forEach(application => $scope.loadERPSpecificSteps(application));\r\n $rootScope.IMSelectedExistingUser.HasERPDataLoaded = true;\r\n $scope.showRMLoadingIcon = false;\r\n $scope.vm.wizardClass = \"wizard-nav-container\";\r\n }, function errorCallback(response) {\r\n $scope.showRMLoadingIcon = false;\r\n $scope.vm.wizardClass = \"wizard-nav-container\";\r\n helperService.showErrorMessage(response);\r\n });\r\n }, function errorCallback(response) {\r\n $scope.showRMLoadingIcon = false;\r\n $scope.vm.wizardClass = \"wizard-nav-container\";\r\n helperService.showErrorMessage(response);\r\n }\r\n );\r\n\r\n\r\n }\r\n }\r\n vm.builtRequest = RequestManagementBuildRequestService.buildRequest(vm, false);\r\n\r\n if (toStep == \"Summary\") {\r\n\r\n $scope.loadingIcon = true;\r\n $scope.minimumExpirationDate = new Date();\r\n if (await helperService.getConfigurationValue('IM_DefaultExpirationEnabled') === '1') {\r\n calculateExpirationDate();\r\n }\r\n\r\n function checkSelected(product) {\r\n if (Array.isArray(product)) {\r\n Object.keys(product).forEach(key => {\r\n const currentObject = product[key];\r\n if ($scope.vm.availableApplications.find(app => app.ProductID === currentObject.ProductId)?.selected) {\r\n currentObject.Action = 'Delete';\r\n changeList.push(currentObject);\r\n }\r\n });\r\n } else {\r\n if ($scope.vm.availableApplications.find(app => app.ProductID === product.ProductId)?.selected) {\r\n product.Action = 'Delete';\r\n changeList.push(product);\r\n }\r\n }\r\n };\r\n\r\n var changeList = [];\r\n if ($scope.vm.User.NetSuiteUser != null) {\r\n checkSelected($scope.vm.User.NetSuiteUser);\r\n }\r\n if ($scope.vm.User.AadUser != null) {\r\n checkSelected($scope.vm.User.AadUser);\r\n }\r\n if ($scope.vm.User.AX7User != null) {\r\n checkSelected($scope.vm.User.AX7User);\r\n }\r\n if ($scope.vm.User.AX2012User != null) {\r\n checkSelected($scope.vm.User.AX2012User);\r\n }\r\n if ($scope.vm.User.UPUser != null) {\r\n checkSelected($scope.vm.User.UPUser);\r\n }\r\n if ($scope.vm.User.SAPUser != null) {\r\n checkSelected($scope.vm.User.SAPUser);\r\n }\r\n if ($scope.vm.User.OracleUser != null) {\r\n checkSelected($scope.vm.User.OracleUser);\r\n }\r\n if ($scope.vm.User.OracleCloudUser != null) {\r\n checkSelected($scope.vm.User.OracleCloudUser);\r\n }\r\n if ($scope.vm.User.GPUser != null) {\r\n checkSelected($scope.vm.User.GPUser);\r\n }\r\n if ($scope.vm.User.NAVUser != null) {\r\n checkSelected($scope.vm.User.NAVUser);\r\n }\r\n if ($scope.vm.User.D365SUser != null) {\r\n checkSelected($scope.vm.User.D365SUser);\r\n }\r\n if ($scope.vm.User.PSUser != null) {\r\n checkSelected($scope.vm.User.PSUser);\r\n }\r\n\r\n if ($scope.vm.User.SalesforceUser != null) {\r\n checkSelected($scope.vm.User.SalesforceUser);\r\n }\r\n\r\n vm.UserChanges = changeList;\r\n\r\n let terminatedProducts = vm.UserChanges.map(uc => uc.ProductId);\r\n\r\n let { data: userRoles } = await userRolesDataService.getRolesByUserMasterId($scope.vm.User.UserMaster.Id || $scope.vm.User.UserMaster.ID);\r\n userRoles = userRoles.filter(ur => terminatedProducts.filter(p => p == ur.ProductID).length);\r\n $scope.vm.currentAccess = userRoles.reduce((accessAccumulator, currentRole) => {\r\n const role = {\r\n Product: $scope.getProductName(currentRole.ProductID),\r\n AccessType: currentRole.TypeID,\r\n Access: currentRole.Name\r\n };\r\n if (currentRole.Companies.length) {\r\n $scope.vm.hasCompany = true;\r\n let roleCompanies = [];\r\n currentRole.Companies.forEach(company => {\r\n roleCompanies.push({ ...role, Company: company.Name });\r\n })\r\n return accessAccumulator.concat(roleCompanies);\r\n }\r\n else {\r\n accessAccumulator.push(role);\r\n return accessAccumulator;\r\n }\r\n }, []);\r\n\r\n $scope.loadingIcon = false;\r\n }\r\n\r\n };\r\n\r\n $http.get(apiUrl + 'api/identitymanager/applications').then(function (response) {\r\n\r\n response.data.forEach(function (row, i) {\r\n row.selected = false;\r\n });\r\n\r\n $scope.vm.availableApplications = response.data;\r\n\r\n $scope.atLeastOneAppSelected();\r\n\r\n //If the user is modifying an open request load the data after the available applications have populated\r\n if ($rootScope.requestToEdit) {\r\n $scope.LoadOpenRequestData($scope);\r\n }\r\n });\r\n\r\n //-------------------------------\r\n $scope.LoadOpenRequestData = function () {\r\n if ($rootScope.requestToEdit) {\r\n $scope.requestToEdit = $rootScope.requestToEdit;\r\n\r\n vm.requestToEdit = $scope.requestToEdit;\r\n\r\n delete $rootScope.requestToEdit;\r\n $scope.reportDetailsComplete = false;\r\n\r\n //Get Request data based on request Id and version from the database\r\n $http.get(apiUrl + 'api/identitymanager/requests/edit/' + $scope.requestToEdit.Id + '/version/' + $scope.requestToEdit.Version).then(function (response) {\r\n\r\n var requestData = response.data;\r\n\r\n $scope.linkedTickets = response.data.Tickets;\r\n\r\n $scope.jiraTicketLinked = $scope.linkedTickets.some(ticket => ticket.TicketProvider === 'Jira');\r\n $scope.zendeskTicketLinked = $scope.linkedTickets.some(ticket => ticket.TicketProvider === 'Zendesk');\r\n $scope.customTicketLinked = $scope.linkedTickets.some(ticket => ticket.TicketProvider === 'Custom');\r\n\r\n $http.get(apiUrl + 'api/identitymanager/applications').then(function (response) {\r\n\r\n var applications = response.data;\r\n\r\n applications.forEach(function (row, i) {\r\n row.selected = false;\r\n });\r\n\r\n //Hide any applications that the user doesn't have access to\r\n var nsApp = applications.find(function (app) {\r\n return app.Id == netsuite_application_id;\r\n });\r\n if (!userHasApplication(requestData.Applications, netsuite_application_id) && nsApp != null) {\r\n nsApp.Visible = false;\r\n }\r\n\r\n //SAP application setup\r\n var sapApp = applications.find(function (app) {\r\n return app.Id == sap_application_id;\r\n });\r\n if (!userHasApplication(requestData.Applications, sap_application_id) && sapApp != null) {\r\n sapApp.Visible = false;\r\n }\r\n\r\n //AAD application setup\r\n var aadApp = applications.find(function (app) {\r\n return app.Id == aad_application_id;\r\n });\r\n if (!userHasApplication(requestData.Applications, aad_application_id) && aadApp != null) {\r\n aadApp.Visible = false;\r\n }\r\n\r\n //AX application setup\r\n var axApp = applications.find(function (app) {\r\n return app.Id == ax_application_id;\r\n });\r\n if (!userHasApplication(requestData.Applications, ax_application_id) && axApp != null) {\r\n axApp.Visible = false;\r\n }\r\n\r\n //EBS application setup\r\n var oracleApp = applications.find(function (app) {\r\n return app.Id == oracle_application_id;\r\n });\r\n if (!userHasApplication(requestData.Applications, oracle_application_id) && oracleApp != null) {\r\n oracleApp.Visible = false;\r\n }\r\n\r\n //Oracle Cloud application setup\r\n var oracleCloudApp = applications.find(function (app) {\r\n return app.Id == oracleCloud_application_id;\r\n });\r\n if (!userHasApplication(requestData.Applications, oracleCloud_application_id) && oracleCloudApp != null) {\r\n oracleCloudApp.Visible = false;\r\n }\r\n\r\n //GP application setup\r\n var gpApp = applications.find(function (app) {\r\n return app.Id == gp_application_id;\r\n });\r\n if (!userHasApplication(requestData.Applications, gp_application_id) && gpApp != null) {\r\n gpApp.Visible = false;\r\n }\r\n\r\n //NAV application setup\r\n var navApp = applications.find(function (app) {\r\n return app.Id == nav_application_id;\r\n });\r\n if (!userHasApplication(requestData.Applications, nav_application_id) && navApp != null) {\r\n navApp.Visible = false;\r\n }\r\n\r\n //D365S application setup\r\n var d365sApp = applications.find(function (app) {\r\n return app.Id == d365s_application_id;\r\n });\r\n if (!userHasApplication(requestData.Applications, d365s_application_id) && d365sApp != null) {\r\n d365sApp.Visible = false;\r\n }\r\n\r\n //PS application setup\r\n var psApp = applications.find(function (app) {\r\n return app.Id == ps_application_id;\r\n });\r\n\r\n if (!userHasApplication(requestData.Applications, ps_application_id) && psApp != null) {\r\n psApp.Visible = false;\r\n }\r\n\r\n var salesforceApp = applications.find(app => app.Id == salesforce_application_id);\r\n\r\n if (!userHasApplication(requestData.Applications, salesforce_application_id) && salesforceApp != null) {\r\n salesforceApp.Visible = false;\r\n }\r\n\r\n $scope.vm.availableApplications = applications;\r\n\r\n\r\n //Load End date and selected values for open request\r\n var user = {};\r\n $scope.vm.User = {};\r\n\r\n $scope.vm.User.UserMaster = requestData.GeneralUser;\r\n\r\n //NetSuite application setup\r\n var nsApp = $scope.vm.availableApplications.find(function (app) {\r\n return app.Id == netsuite_application_id;\r\n });\r\n if (requestData.NetSuiteUser != null) {\r\n $scope.vm.User.NetSuiteUser = requestData.NetSuiteUser;\r\n nsApp.selected = true;\r\n nsApp.StartDate = new Date(requestData.NetSuiteUser.StartDate);\r\n }\r\n\r\n //Universal application setup\r\n var uvApps = $scope.vm.availableApplications.filter(function (app) {\r\n return app.Id == universalProduct_application_id;\r\n });\r\n if (requestData.UvUser != null) {\r\n $scope.vm.User.UPUser.forEach((user, i) => {\r\n user = requestData.UvUser[i];\r\n uvApps.find(app => app.ProductId === user.ProductID)[selected = true][StartDate = new Date(requestData.UvUser[i].StartDate)];\r\n });\r\n }\r\n\r\n //SAP application setup\r\n var sapApps = $scope.vm.availableApplications.filter(app => app.Id == sap_application_id);\r\n\r\n if (requestData.SapUser != null) {\r\n $scope.vm.User.SAPUser = $scope.vm.User.SAPUser || {};\r\n\r\n sapApps.forEach(sapApp => {\r\n let selectedApp = requestData.SapUser.find(userApp => userApp.ProductId === sapApp.ProductID);\r\n\r\n if (selectedApp) {\r\n sapApp.selected = true;\r\n sapApp.Visible = true;\r\n } else {\r\n sapApp.Visible = false;\r\n }\r\n\r\n sapApp.ProductId = sapApp.ProductID;\r\n $scope.vm.User.SAPUser[sapApp.ProductName] = Object.merge(sapApp, selectedApp);\r\n });\r\n }\r\n\r\n //AAD application setup\r\n var aadApp = $scope.vm.availableApplications.find(function (app) {\r\n return app.Id == aad_application_id;\r\n });\r\n if (requestData.AadUser != null) {\r\n $scope.vm.User.AadUser = requestData.AadUser;\r\n aadApp.selected = true;\r\n aadApp.StartDate = new Date(requestData.AadUser.StartDate);\r\n }\r\n\r\n //AX7 application setup\r\n var ax7App = $scope.vm.availableApplications.find(function (app) {\r\n return app.Id == ax7_application_id;\r\n });\r\n if (requestData.Ax7User != null) {\r\n $scope.vm.User.AX7User = requestData.Ax7User;\r\n ax7App.selected = true;\r\n ax7App.StartDate = new Date(requestData.Ax7User.StartDate);\r\n }\r\n\r\n //AX2012 application setup\r\n var ax2012App = $scope.vm.availableApplications.find(function (app) {\r\n return app.Id == ax_application_id;\r\n });\r\n if (requestData.AxUser != null) {\r\n $scope.vm.User.AX2012User = requestData.AxUser;\r\n\r\n ax2012App.selected = true;\r\n ax2012App.StartDate = new Date(requestData.AxUser.StartDate);\r\n }\r\n\r\n //EBS application setup\r\n var oracleApp = $scope.vm.availableApplications.find(function (app) {\r\n return app.Id == oracle_application_id;\r\n });\r\n if (requestData.EbsUser != null) {\r\n $scope.vm.User.OracleUser = requestData.EbsUser;\r\n oracleApp.selected = true;\r\n oracleApp.StartDate = new Date(requestData.EbsUser.StartDate);\r\n }\r\n\r\n //Oracle Cloud application setup\r\n var oracleCloudApp = $scope.vm.availableApplications.find(function (app) {\r\n return app.Id == oracleCloud_application_id;\r\n });\r\n if (requestData.OrfcUser != null) {\r\n $scope.vm.User.OracleCloudUser = requestData.OrfcUser;\r\n oracleApp.selected = true;\r\n oracleCloudApp.StartDate = new Date(requestData.OrfcUser.StartDate);\r\n }\r\n\r\n //GP application setup\r\n var gpApp = $scope.vm.availableApplications.find(function (app) {\r\n return app.Id == gp_application_id;\r\n });\r\n if (requestData.GPUser != null) {\r\n $scope.vm.User.GPUser = requestData.GPUser;\r\n\r\n gpApp.selected = true;\r\n gpApp.StartDate = new Date(requestData.GPUser.StartDate);\r\n }\r\n\r\n //NAV application setup\r\n var navApp = $scope.vm.availableApplications.find(function (app) {\r\n return app.Id == nav_application_id;\r\n });\r\n if (requestData.NavUser != null) {\r\n $scope.vm.User.NAVUser = requestData.NavUser;\r\n navApp.selected = true;\r\n navApp.StartDate = new Date(requestData.NavUser.StartDate);\r\n }\r\n\r\n //D365S application setup\r\n var d365sApp = $scope.vm.availableApplications.find(function (app) {\r\n return app.Id == d365s_application_id;\r\n });\r\n if (requestData.D365SUser != null) {\r\n $scope.vm.User.D365SUser = requestData.D365SUser;\r\n d365sApp.selected = true;\r\n d365sApp.StartDate = new Date(requestData.D365SUser.StartDate);\r\n }\r\n\r\n //PS application setup\r\n var psApp = $scope.vm.availableApplications.find(function (app) {\r\n return app.Id == ps_application_id;\r\n });\r\n if (requestData.PsUserRequest != null) {\r\n $scope.vm.User.PSUser = requestData.PsUserRequest;\r\n psApp.selected = true;\r\n psApp.StartDate = new Date(requestData.PsUserRequest.StartDate);\r\n }\r\n\r\n var salesforceApp = $scope.vm.availableApplications.find(app => app.Id == salesforce_application_id);\r\n\r\n if (requestData.SfUserRequest != null) {\r\n $scope.vm.User.SalesforceUser = requestData.SfUserRequest;\r\n salesforceApp.selected = true;\r\n salesforceApp.StartDate = new Date(requestData.SfUserRequest.StartDate);\r\n }\r\n\r\n $scope.atLeastOneAppSelected();\r\n $scope.reportDetailsComplete = true;\r\n $scope.stopRequestManagementSpinner = true;\r\n vm.validAppsSelected = true;\r\n });\r\n\r\n }, function (response) {\r\n $scope.reportDetailsComplete = true;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n };\r\n\r\n $scope.createNewRequest = function (request) {\r\n $scope.updatePending = new createSpinner();\r\n\r\n $http.post(apiUrl + 'api/identitymanager/requests', request).then(async function (response) {\r\n\r\n if (vm.attachments.flow.files.length > 0) {\r\n const requestId = response.data;\r\n $scope.uploadFiles(vm.attachments.flow.files, requestId);\r\n }\r\n helperService.showConfirmationMessage(\"Success\", \"Your request has been submitted for approval.\");\r\n $location.path('/IdentityManager/Place/RequestManagement').search({});\r\n },\r\n function errorCallback(response) {\r\n $scope.updatePending.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $scope.updateExistingRequest = function (request) {\r\n $scope.updatePending = new createSpinner();\r\n\r\n $http.put(apiUrl + 'api/identitymanager/requests/' + $scope.requestToEdit.Id + '/version/' + $scope.requestToEdit.Version, request).then(function (response) {\r\n\r\n if (vm.attachments.flow.files.length > 0) {\r\n $scope.uploadFiles(vm.attachments.flow.files, $scope.requestToEdit.Id);\r\n }\r\n\r\n helperService.showConfirmationMessage(\"Success\", \"Your request has been updated.\");\r\n $location.path('/IdentityManager/Place/RequestManagement').search({});\r\n }, function errorCallback(response) {\r\n $scope.updatePending.loadingValue = false;\r\n helperService.showErrorMessage(response.data);\r\n });\r\n };\r\n\r\n $scope.finishedWizard = function () {\r\n\r\n $scope.updatePending = new createSpinner();\r\n vm.builtRequest = RequestManagementBuildRequestService.buildRequest(vm, true);\r\n vm.builtRequest.Tickets = $scope.linkedTickets;\r\n vm.builtRequest.ExpirationDate = $scope.vm.ExpirationDate ? new Date($scope.vm.ExpirationDate).toUTCString() : null;\r\n\r\n //Update request if there is currently an open request\r\n if ($scope.requestToEdit) {\r\n $scope.updateExistingRequest(vm.builtRequest);\r\n } else {\r\n $scope.createNewRequest(vm.builtRequest);\r\n }\r\n };\r\n\r\n var userHasApplication = function (applications, appId) {\r\n var hasApp = false;\r\n\r\n var app = applications.find(function (app) {\r\n return app.Value === appId || app._value === appId;\r\n });\r\n if (app != null) {\r\n hasApp = true;\r\n }\r\n\r\n return hasApp;\r\n };\r\n}","import { standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModalInstance, partitionKey, axVersion, helperService, existingUserSearchService) {\r\n\r\n const vm = this;\r\n\r\n vm.title = 'Person Search';\r\n vm.filterUsersToggle = true;\r\n vm.selectedPerson = null;\r\n\r\n vm.doneSearchingPerson = doneSearchingPerson;\r\n vm.changePersonRowSelected = changePersonRowSelected;\r\n vm.selectPerson = selectPerson;\r\n vm.filterPerson = filterPerson;\r\n vm.cancel = cancel;\r\n\r\n vm.ax7PersonGridColumns = [\r\n { field: \"PersonName\", title: \"Name\", filterable: false },\r\n { field: \"PersonNameAlias\", title: \"Alias\", filterable: false },\r\n { field: \"PartyNumber\", title: \"Party Number\", filterable: false },\r\n { field: \"PersonPrimaryEmail\", title: \"Email\", filterable: false }\r\n ];\r\n\r\n function doneSearchingPerson() {\r\n if (vm.ax7PersonSearchString === '' || vm.ax7PersonSearchString === null) {\r\n\r\n var raw = vm.ax7PersonGridDataSource.data();\r\n var length = raw.length;\r\n\r\n let item, i;\r\n for (i = length - 1; i >= 0; i--) {\r\n\r\n item = raw[i];\r\n vm.ax7PersonGridDataSource.remove(item);\r\n\r\n }\r\n } else {\r\n vm.ax7PersonGridDataSource.read();\r\n }\r\n }\r\n\r\n vm.ax7PersonGridOptions = helperService.setMainGridOptions(vm.ax7PersonGridColumns, 350);\r\n vm.ax7PersonGridOptions.autoBind = false;\r\n\r\n vm.ax7PersonGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n let response;\r\n try {\r\n if (axVersion) {\r\n response = await existingUserSearchService.getFilteredAX2012Person(vm.ax7PersonSearchString, partitionKey);\r\n } else {\r\n response = await existingUserSearchService.getFilteredAX7Person(vm.ax7PersonSearchString);\r\n }\r\n\r\n response.data = $filter('orderBy')(response.data, 'PersonName');\r\n options.success(response.data);\r\n } catch (err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n function changePersonRowSelected(kendoEvent) {\r\n let grid = kendoEvent.sender;\r\n vm.selectedPerson = grid.dataItem(grid.select());\r\n }\r\n\r\n function selectPerson() {\r\n if (vm.selectedPerson) {\r\n vm.personObject = { ...vm.selectedPerson };\r\n }\r\n vm.ax7PersonSearchString = null;\r\n $uibModalInstance.close(vm.personObject);\r\n }\r\n\r\n function filterPerson() {\r\n if (vm.ax7PersonGridDataSource._data.length > 0) {\r\n vm.ax7PersonGridDataSource.read();\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n\r\n}","import AX7PersonSearchController from \"./AX7PersonSearch.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.onClick = onClick;\r\n\r\n async function onClick() {\r\n\r\n let modal = $uibModal.open({\r\n templateUrl: '/App/Components/RequestManagement/AX7Person/ax7PersonSearch.html',\r\n controller: AX7PersonSearchController,\r\n controllerAs: 'axpsvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n partitionKey: () => vm.axPartitionKey,\r\n axVersion: () => vm.axVersion\r\n }\r\n\r\n });\r\n\r\n try {\r\n let personObject = await modal.result;\r\n vm.onUpdatePersonName({ personObject });\r\n }\r\n\r\n catch (_) { return; }\r\n }\r\n\r\n}","import AX7PersonController from \"./AX7Person.controller\";\r\n\r\n/* ax7Person.component.js */\r\n\r\n/**\r\n * @desc component for displaying AX7 Person search and input fields\r\n * @example \r\n */\r\n\r\nconst ax7PersonSearchLink = {\r\n bindings: {\r\n onUpdatePersonName: '&',\r\n axPartitionKey: '<',\r\n axVersion: '<'\r\n },\r\n controller: AX7PersonController,\r\n controllerAs: 'axpvm',\r\n templateUrl: '/App/Components/RequestManagement/AX7Person/ax7Person.tmpl.html'\r\n};\r\n\r\nexport default ax7PersonSearchLink;","export default /*@ngInject*/ function ($scope) {\r\n\r\n if (!$scope.vm.ListOfStoredUPRoles) $scope.vm.ListOfStoredUPRoles = [];\r\n\r\n var RoleCompany = function (params) {\r\n this.RoleId = params.RoleId;\r\n this.CompanyId = params.CompanyId;\r\n this.RoleName = params.RoleName;\r\n this.CompanyName = params.CompanyName;\r\n this.AllCompanies = params.AllCompanies;\r\n };\r\n\r\n $scope.AllCompanies = false;\r\n $scope.validateNumberOfUPRoles = validateNumberOfUPRoles;\r\n\r\n function validateNumberOfUPRoles(productName) {\r\n if (!$scope.vm.numberOfUPRolesValid) {\r\n $scope.vm.numberOfUPRolesValid = [];\r\n }\r\n $scope.vm.numberOfUPRolesValid[productName] = null;\r\n if ($scope.vm.ListOfSelectedUPRoles[productName].length > 0) {\r\n $scope.vm.numberOfUPRolesValid[productName] = true;\r\n }\r\n }\r\n\r\n $scope.addRoleToList = function (role, productName) {\r\n $scope.vm.ListOfAvailableUPRoles[productName].forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableUPRoles[productName].splice(i, 1);\r\n $scope.vm.ListOfSelectedUPRoles[productName].push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfUPRoles(productName)\r\n };\r\n\r\n $scope.deleteSelectedRole = function (role, productName) {\r\n $scope.vm.ListOfSelectedUPRoles[productName].forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfSelectedUPRoles[productName].splice(i, 1);\r\n if (role.IsAssignable) {\r\n $scope.vm.ListOfAvailableUPRoles[productName].push(row);\r\n }\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n validateNumberOfUPRoles(productName);\r\n };\r\n\r\n $scope.updateSelectedRoleCompanies = function (productName, selectedRole, prop, value) {\r\n selectedRole[prop] = value;\r\n if (selectedRole[prop].length === $scope.vm.ListOfUPCompanies[productName].length) {\r\n selectedRole[prop] = null;\r\n }\r\n };\r\n\r\n $scope.setSelectedRoleTemplates = function (selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n}","export default /*@ngInject*/ function ($scope) {\r\n return;\r\n}\r\n","const countryCodes = [\r\n {\r\n \"Code\": \"AF\",\r\n \"Name\": \"Afghanistan\"\r\n },\r\n {\r\n \"Code\": \"AX\",\r\n \"Name\": \"\\u00c5land Islands\"\r\n },\r\n {\r\n \"Code\": \"AL\",\r\n \"Name\": \"Albania\"\r\n },\r\n {\r\n \"Code\": \"DZ\",\r\n \"Name\": \"Algeria\"\r\n },\r\n {\r\n \"Code\": \"AS\",\r\n \"Name\": \"American Samoa\"\r\n },\r\n {\r\n \"Code\": \"AD\",\r\n \"Name\": \"Andorra\"\r\n },\r\n {\r\n \"Code\": \"AO\",\r\n \"Name\": \"Angola\"\r\n },\r\n {\r\n \"Code\": \"AI\",\r\n \"Name\": \"Anguilla\"\r\n },\r\n {\r\n \"Code\": \"AQ\",\r\n \"Name\": \"Antarctica\"\r\n },\r\n {\r\n \"Code\": \"AG\",\r\n \"Name\": \"Antigua and Barbuda\"\r\n },\r\n {\r\n \"Code\": \"AR\",\r\n \"Name\": \"Argentina\"\r\n },\r\n {\r\n \"Code\": \"AM\",\r\n \"Name\": \"Armenia\"\r\n },\r\n {\r\n \"Code\": \"AW\",\r\n \"Name\": \"Aruba\"\r\n },\r\n {\r\n \"Code\": \"AU\",\r\n \"Name\": \"Australia\"\r\n },\r\n {\r\n \"Code\": \"AT\",\r\n \"Name\": \"Austria\"\r\n },\r\n {\r\n \"Code\": \"AZ\",\r\n \"Name\": \"Azerbaijan\"\r\n },\r\n {\r\n \"Code\": \"BS\",\r\n \"Name\": \"Bahamas\"\r\n },\r\n {\r\n \"Code\": \"BH\",\r\n \"Name\": \"Bahrain\"\r\n },\r\n {\r\n \"Code\": \"BD\",\r\n \"Name\": \"Bangladesh\"\r\n },\r\n {\r\n \"Code\": \"BB\",\r\n \"Name\": \"Barbados\"\r\n },\r\n {\r\n \"Code\": \"BY\",\r\n \"Name\": \"Belarus\"\r\n },\r\n {\r\n \"Code\": \"BE\",\r\n \"Name\": \"Belgium\"\r\n },\r\n {\r\n \"Code\": \"BZ\",\r\n \"Name\": \"Belize\"\r\n },\r\n {\r\n \"Code\": \"BJ\",\r\n \"Name\": \"Benin\"\r\n },\r\n {\r\n \"Code\": \"BM\",\r\n \"Name\": \"Bermuda\"\r\n },\r\n {\r\n \"Code\": \"BT\",\r\n \"Name\": \"Bhutan\"\r\n },\r\n {\r\n \"Code\": \"BO\",\r\n \"Name\": \"Bolivia, Plurinational State of\"\r\n },\r\n {\r\n \"Code\": \"BQ\",\r\n \"Name\": \"Bonaire, Sint Eustatius and Saba\"\r\n },\r\n {\r\n \"Code\": \"BA\",\r\n \"Name\": \"Bosnia and Herzegovina\"\r\n },\r\n {\r\n \"Code\": \"BW\",\r\n \"Name\": \"Botswana\"\r\n },\r\n {\r\n \"Code\": \"BV\",\r\n \"Name\": \"Bouvet Island\"\r\n },\r\n {\r\n \"Code\": \"BR\",\r\n \"Name\": \"Brazil\"\r\n },\r\n {\r\n \"Code\": \"IO\",\r\n \"Name\": \"British Indian Ocean Territory\"\r\n },\r\n {\r\n \"Code\": \"BN\",\r\n \"Name\": \"Brunei Darussalam\"\r\n },\r\n {\r\n \"Code\": \"BG\",\r\n \"Name\": \"Bulgaria\"\r\n },\r\n {\r\n \"Code\": \"BF\",\r\n \"Name\": \"Burkina Faso\"\r\n },\r\n {\r\n \"Code\": \"BI\",\r\n \"Name\": \"Burundi\"\r\n },\r\n {\r\n \"Code\": \"KH\",\r\n \"Name\": \"Cambodia\"\r\n },\r\n {\r\n \"Code\": \"CM\",\r\n \"Name\": \"Cameroon\"\r\n },\r\n {\r\n \"Code\": \"CA\",\r\n \"Name\": \"Canada\"\r\n },\r\n {\r\n \"Code\": \"CV\",\r\n \"Name\": \"Cape Verde\"\r\n },\r\n {\r\n \"Code\": \"KY\",\r\n \"Name\": \"Cayman Islands\"\r\n },\r\n {\r\n \"Code\": \"CF\",\r\n \"Name\": \"Central African Republic\"\r\n },\r\n {\r\n \"Code\": \"TD\",\r\n \"Name\": \"Chad\"\r\n },\r\n {\r\n \"Code\": \"CL\",\r\n \"Name\": \"Chile\"\r\n },\r\n {\r\n \"Code\": \"CN\",\r\n \"Name\": \"China\"\r\n },\r\n {\r\n \"Code\": \"CX\",\r\n \"Name\": \"Christmas Island\"\r\n },\r\n {\r\n \"Code\": \"CC\",\r\n \"Name\": \"Cocos (Keeling) Islands\"\r\n },\r\n {\r\n \"Code\": \"CO\",\r\n \"Name\": \"Colombia\"\r\n },\r\n {\r\n \"Code\": \"KM\",\r\n \"Name\": \"Comoros\"\r\n },\r\n {\r\n \"Code\": \"CG\",\r\n \"Name\": \"Congo\"\r\n },\r\n {\r\n \"Code\": \"CD\",\r\n \"Name\": \"Congo, the Democratic Republic of the\"\r\n },\r\n {\r\n \"Code\": \"CK\",\r\n \"Name\": \"Cook Islands\"\r\n },\r\n {\r\n \"Code\": \"CR\",\r\n \"Name\": \"Costa Rica\"\r\n },\r\n {\r\n \"Code\": \"CI\",\r\n \"Name\": \"C\\u00f4te d'Ivoire\"\r\n },\r\n {\r\n \"Code\": \"HR\",\r\n \"Name\": \"Croatia\"\r\n },\r\n {\r\n \"Code\": \"CU\",\r\n \"Name\": \"Cuba\"\r\n },\r\n {\r\n \"Code\": \"CW\",\r\n \"Name\": \"Cura\\u00e7ao\"\r\n },\r\n {\r\n \"Code\": \"CY\",\r\n \"Name\": \"Cyprus\"\r\n },\r\n {\r\n \"Code\": \"CZ\",\r\n \"Name\": \"Czech Republic\"\r\n },\r\n {\r\n \"Code\": \"DK\",\r\n \"Name\": \"Denmark\"\r\n },\r\n {\r\n \"Code\": \"DJ\",\r\n \"Name\": \"Djibouti\"\r\n },\r\n {\r\n \"Code\": \"DM\",\r\n \"Name\": \"Dominica\"\r\n },\r\n {\r\n \"Code\": \"DO\",\r\n \"Name\": \"Dominican Republic\"\r\n },\r\n {\r\n \"Code\": \"EC\",\r\n \"Name\": \"Ecuador\"\r\n },\r\n {\r\n \"Code\": \"EG\",\r\n \"Name\": \"Egypt\"\r\n },\r\n {\r\n \"Code\": \"SV\",\r\n \"Name\": \"El Salvador\"\r\n },\r\n {\r\n \"Code\": \"GQ\",\r\n \"Name\": \"Equatorial Guinea\"\r\n },\r\n {\r\n \"Code\": \"ER\",\r\n \"Name\": \"Eritrea\"\r\n },\r\n {\r\n \"Code\": \"EE\",\r\n \"Name\": \"Estonia\"\r\n },\r\n {\r\n \"Code\": \"ET\",\r\n \"Name\": \"Ethiopia\"\r\n },\r\n {\r\n \"Code\": \"FK\",\r\n \"Name\": \"Falkland Islands (Malvinas)\"\r\n },\r\n {\r\n \"Code\": \"FO\",\r\n \"Name\": \"Faroe Islands\"\r\n },\r\n {\r\n \"Code\": \"FJ\",\r\n \"Name\": \"Fiji\"\r\n },\r\n {\r\n \"Code\": \"FI\",\r\n \"Name\": \"Finland\"\r\n },\r\n {\r\n \"Code\": \"FR\",\r\n \"Name\": \"France\"\r\n },\r\n {\r\n \"Code\": \"GF\",\r\n \"Name\": \"French Guiana\"\r\n },\r\n {\r\n \"Code\": \"PF\",\r\n \"Name\": \"French Polynesia\"\r\n },\r\n {\r\n \"Code\": \"TF\",\r\n \"Name\": \"French Southern Territories\"\r\n },\r\n {\r\n \"Code\": \"GA\",\r\n \"Name\": \"Gabon\"\r\n },\r\n {\r\n \"Code\": \"GM\",\r\n \"Name\": \"Gambia\"\r\n },\r\n {\r\n \"Code\": \"GE\",\r\n \"Name\": \"Georgia\"\r\n },\r\n {\r\n \"Code\": \"DE\",\r\n \"Name\": \"Germany\"\r\n },\r\n {\r\n \"Code\": \"GH\",\r\n \"Name\": \"Ghana\"\r\n },\r\n {\r\n \"Code\": \"GI\",\r\n \"Name\": \"Gibraltar\"\r\n },\r\n {\r\n \"Code\": \"GR\",\r\n \"Name\": \"Greece\"\r\n },\r\n {\r\n \"Code\": \"GL\",\r\n \"Name\": \"Greenland\"\r\n },\r\n {\r\n \"Code\": \"GD\",\r\n \"Name\": \"Grenada\"\r\n },\r\n {\r\n \"Code\": \"GP\",\r\n \"Name\": \"Guadeloupe\"\r\n },\r\n {\r\n \"Code\": \"GU\",\r\n \"Name\": \"Guam\"\r\n },\r\n {\r\n \"Code\": \"GT\",\r\n \"Name\": \"Guatemala\"\r\n },\r\n {\r\n \"Code\": \"GG\",\r\n \"Name\": \"Guernsey\"\r\n },\r\n {\r\n \"Code\": \"GN\",\r\n \"Name\": \"Guinea\"\r\n },\r\n {\r\n \"Code\": \"GW\",\r\n \"Name\": \"Guinea-Bissau\"\r\n },\r\n {\r\n \"Code\": \"GY\",\r\n \"Name\": \"Guyana\"\r\n },\r\n {\r\n \"Code\": \"HT\",\r\n \"Name\": \"Haiti\"\r\n },\r\n {\r\n \"Code\": \"HM\",\r\n \"Name\": \"Heard Island and McDonald Islands\"\r\n },\r\n {\r\n \"Code\": \"VA\",\r\n \"Name\": \"Holy See (Vatican City State)\"\r\n },\r\n {\r\n \"Code\": \"HN\",\r\n \"Name\": \"Honduras\"\r\n },\r\n {\r\n \"Code\": \"HK\",\r\n \"Name\": \"Hong Kong\"\r\n },\r\n {\r\n \"Code\": \"HU\",\r\n \"Name\": \"Hungary\"\r\n },\r\n {\r\n \"Code\": \"IS\",\r\n \"Name\": \"Iceland\"\r\n },\r\n {\r\n \"Code\": \"IN\",\r\n \"Name\": \"India\"\r\n },\r\n {\r\n \"Code\": \"ID\",\r\n \"Name\": \"Indonesia\"\r\n },\r\n {\r\n \"Code\": \"IR\",\r\n \"Name\": \"Iran, Islamic Republic of\"\r\n },\r\n {\r\n \"Code\": \"IQ\",\r\n \"Name\": \"Iraq\"\r\n },\r\n {\r\n \"Code\": \"IE\",\r\n \"Name\": \"Ireland\"\r\n },\r\n {\r\n \"Code\": \"IM\",\r\n \"Name\": \"Isle of Man\"\r\n },\r\n {\r\n \"Code\": \"IL\",\r\n \"Name\": \"Israel\"\r\n },\r\n {\r\n \"Code\": \"IT\",\r\n \"Name\": \"Italy\"\r\n },\r\n {\r\n \"Code\": \"JM\",\r\n \"Name\": \"Jamaica\"\r\n },\r\n {\r\n \"Code\": \"JP\",\r\n \"Name\": \"Japan\"\r\n },\r\n {\r\n \"Code\": \"JE\",\r\n \"Name\": \"Jersey\"\r\n },\r\n {\r\n \"Code\": \"JO\",\r\n \"Name\": \"Jordan\"\r\n },\r\n {\r\n \"Code\": \"KZ\",\r\n \"Name\": \"Kazakhstan\"\r\n },\r\n {\r\n \"Code\": \"KE\",\r\n \"Name\": \"Kenya\"\r\n },\r\n {\r\n \"Code\": \"KI\",\r\n \"Name\": \"Kiribati\"\r\n },\r\n {\r\n \"Code\": \"KP\",\r\n \"Name\": \"Korea, Democratic People's Republic of\"\r\n },\r\n {\r\n \"Code\": \"KR\",\r\n \"Name\": \"Korea, Republic of\"\r\n },\r\n {\r\n \"Code\": \"KW\",\r\n \"Name\": \"Kuwait\"\r\n },\r\n {\r\n \"Code\": \"KG\",\r\n \"Name\": \"Kyrgyzstan\"\r\n },\r\n {\r\n \"Code\": \"LA\",\r\n \"Name\": \"Lao People's Democratic Republic\"\r\n },\r\n {\r\n \"Code\": \"LV\",\r\n \"Name\": \"Latvia\"\r\n },\r\n {\r\n \"Code\": \"LB\",\r\n \"Name\": \"Lebanon\"\r\n },\r\n {\r\n \"Code\": \"LS\",\r\n \"Name\": \"Lesotho\"\r\n },\r\n {\r\n \"Code\": \"LR\",\r\n \"Name\": \"Liberia\"\r\n },\r\n {\r\n \"Code\": \"LY\",\r\n \"Name\": \"Libya\"\r\n },\r\n {\r\n \"Code\": \"LI\",\r\n \"Name\": \"Liechtenstein\"\r\n },\r\n {\r\n \"Code\": \"LT\",\r\n \"Name\": \"Lithuania\"\r\n },\r\n {\r\n \"Code\": \"LU\",\r\n \"Name\": \"Luxembourg\"\r\n },\r\n {\r\n \"Code\": \"MO\",\r\n \"Name\": \"Macao\"\r\n },\r\n {\r\n \"Code\": \"MK\",\r\n \"Name\": \"Macedonia, the Former Yugoslav Republic of\"\r\n },\r\n {\r\n \"Code\": \"MG\",\r\n \"Name\": \"Madagascar\"\r\n },\r\n {\r\n \"Code\": \"MW\",\r\n \"Name\": \"Malawi\"\r\n },\r\n {\r\n \"Code\": \"MY\",\r\n \"Name\": \"Malaysia\"\r\n },\r\n {\r\n \"Code\": \"MV\",\r\n \"Name\": \"Maldives\"\r\n },\r\n {\r\n \"Code\": \"ML\",\r\n \"Name\": \"Mali\"\r\n },\r\n {\r\n \"Code\": \"MT\",\r\n \"Name\": \"Malta\"\r\n },\r\n {\r\n \"Code\": \"MH\",\r\n \"Name\": \"Marshall Islands\"\r\n },\r\n {\r\n \"Code\": \"MQ\",\r\n \"Name\": \"Martinique\"\r\n },\r\n {\r\n \"Code\": \"MR\",\r\n \"Name\": \"Mauritania\"\r\n },\r\n {\r\n \"Code\": \"MU\",\r\n \"Name\": \"Mauritius\"\r\n },\r\n {\r\n \"Code\": \"YT\",\r\n \"Name\": \"Mayotte\"\r\n },\r\n {\r\n \"Code\": \"MX\",\r\n \"Name\": \"Mexico\"\r\n },\r\n {\r\n \"Code\": \"FM\",\r\n \"Name\": \"Micronesia, Federated States of\"\r\n },\r\n {\r\n \"Code\": \"MD\",\r\n \"Name\": \"Moldova, Republic of\"\r\n },\r\n {\r\n \"Code\": \"MC\",\r\n \"Name\": \"Monaco\"\r\n },\r\n {\r\n \"Code\": \"MN\",\r\n \"Name\": \"Mongolia\"\r\n },\r\n {\r\n \"Code\": \"ME\",\r\n \"Name\": \"Montenegro\"\r\n },\r\n {\r\n \"Code\": \"MS\",\r\n \"Name\": \"Montserrat\"\r\n },\r\n {\r\n \"Code\": \"MA\",\r\n \"Name\": \"Morocco\"\r\n },\r\n {\r\n \"Code\": \"MZ\",\r\n \"Name\": \"Mozambique\"\r\n },\r\n {\r\n \"Code\": \"MM\",\r\n \"Name\": \"Myanmar\"\r\n },\r\n {\r\n \"Code\": \"NA\",\r\n \"Name\": \"Namibia\"\r\n },\r\n {\r\n \"Code\": \"NR\",\r\n \"Name\": \"Nauru\"\r\n },\r\n {\r\n \"Code\": \"NP\",\r\n \"Name\": \"Nepal\"\r\n },\r\n {\r\n \"Code\": \"NL\",\r\n \"Name\": \"Netherlands\"\r\n },\r\n {\r\n \"Code\": \"NC\",\r\n \"Name\": \"New Caledonia\"\r\n },\r\n {\r\n \"Code\": \"NZ\",\r\n \"Name\": \"New Zealand\"\r\n },\r\n {\r\n \"Code\": \"NI\",\r\n \"Name\": \"Nicaragua\"\r\n },\r\n {\r\n \"Code\": \"NE\",\r\n \"Name\": \"Niger\"\r\n },\r\n {\r\n \"Code\": \"NG\",\r\n \"Name\": \"Nigeria\"\r\n },\r\n {\r\n \"Code\": \"NU\",\r\n \"Name\": \"Niue\"\r\n },\r\n {\r\n \"Code\": \"NF\",\r\n \"Name\": \"Norfolk Island\"\r\n },\r\n {\r\n \"Code\": \"MP\",\r\n \"Name\": \"Northern Mariana Islands\"\r\n },\r\n {\r\n \"Code\": \"NO\",\r\n \"Name\": \"Norway\"\r\n },\r\n {\r\n \"Code\": \"OM\",\r\n \"Name\": \"Oman\"\r\n },\r\n {\r\n \"Code\": \"PK\",\r\n \"Name\": \"Pakistan\"\r\n },\r\n {\r\n \"Code\": \"PW\",\r\n \"Name\": \"Palau\"\r\n },\r\n {\r\n \"Code\": \"PS\",\r\n \"Name\": \"Palestine, State of\"\r\n },\r\n {\r\n \"Code\": \"PA\",\r\n \"Name\": \"Panama\"\r\n },\r\n {\r\n \"Code\": \"PG\",\r\n \"Name\": \"Papua New Guinea\"\r\n },\r\n {\r\n \"Code\": \"PY\",\r\n \"Name\": \"Paraguay\"\r\n },\r\n {\r\n \"Code\": \"PE\",\r\n \"Name\": \"Peru\"\r\n },\r\n {\r\n \"Code\": \"PH\",\r\n \"Name\": \"Philippines\"\r\n },\r\n {\r\n \"Code\": \"PN\",\r\n \"Name\": \"Pitcairn\"\r\n },\r\n {\r\n \"Code\": \"PL\",\r\n \"Name\": \"Poland\"\r\n },\r\n {\r\n \"Code\": \"PT\",\r\n \"Name\": \"Portugal\"\r\n },\r\n {\r\n \"Code\": \"PR\",\r\n \"Name\": \"Puerto Rico\"\r\n },\r\n {\r\n \"Code\": \"QA\",\r\n \"Name\": \"Qatar\"\r\n },\r\n {\r\n \"Code\": \"RE\",\r\n \"Name\": \"R\\u00e9union\"\r\n },\r\n {\r\n \"Code\": \"RO\",\r\n \"Name\": \"Romania\"\r\n },\r\n {\r\n \"Code\": \"RU\",\r\n \"Name\": \"Russian Federation\"\r\n },\r\n {\r\n \"Code\": \"RW\",\r\n \"Name\": \"Rwanda\"\r\n },\r\n {\r\n \"Code\": \"BL\",\r\n \"Name\": \"Saint Barth\\u00e9lemy\"\r\n },\r\n {\r\n \"Code\": \"SH\",\r\n \"Name\": \"Saint Helena, Ascension and Tristan da Cunha\"\r\n },\r\n {\r\n \"Code\": \"KN\",\r\n \"Name\": \"Saint Kitts and Nevis\"\r\n },\r\n {\r\n \"Code\": \"LC\",\r\n \"Name\": \"Saint Lucia\"\r\n },\r\n {\r\n \"Code\": \"MF\",\r\n \"Name\": \"Saint Martin (French part)\"\r\n },\r\n {\r\n \"Code\": \"PM\",\r\n \"Name\": \"Saint Pierre and Miquelon\"\r\n },\r\n {\r\n \"Code\": \"VC\",\r\n \"Name\": \"Saint Vincent and the Grenadines\"\r\n },\r\n {\r\n \"Code\": \"WS\",\r\n \"Name\": \"Samoa\"\r\n },\r\n {\r\n \"Code\": \"SM\",\r\n \"Name\": \"San Marino\"\r\n },\r\n {\r\n \"Code\": \"ST\",\r\n \"Name\": \"Sao Tome and Principe\"\r\n },\r\n {\r\n \"Code\": \"SA\",\r\n \"Name\": \"Saudi Arabia\"\r\n },\r\n {\r\n \"Code\": \"SN\",\r\n \"Name\": \"Senegal\"\r\n },\r\n {\r\n \"Code\": \"RS\",\r\n \"Name\": \"Serbia\"\r\n },\r\n {\r\n \"Code\": \"SC\",\r\n \"Name\": \"Seychelles\"\r\n },\r\n {\r\n \"Code\": \"SL\",\r\n \"Name\": \"Sierra Leone\"\r\n },\r\n {\r\n \"Code\": \"SG\",\r\n \"Name\": \"Singapore\"\r\n },\r\n {\r\n \"Code\": \"SX\",\r\n \"Name\": \"Sint Maarten (Dutch part)\"\r\n },\r\n {\r\n \"Code\": \"SK\",\r\n \"Name\": \"Slovakia\"\r\n },\r\n {\r\n \"Code\": \"SI\",\r\n \"Name\": \"Slovenia\"\r\n },\r\n {\r\n \"Code\": \"SB\",\r\n \"Name\": \"Solomon Islands\"\r\n },\r\n {\r\n \"Code\": \"SO\",\r\n \"Name\": \"Somalia\"\r\n },\r\n {\r\n \"Code\": \"ZA\",\r\n \"Name\": \"South Africa\"\r\n },\r\n {\r\n \"Code\": \"GS\",\r\n \"Name\": \"South Georgia and the South Sandwich Islands\"\r\n },\r\n {\r\n \"Code\": \"SS\",\r\n \"Name\": \"South Sudan\"\r\n },\r\n {\r\n \"Code\": \"ES\",\r\n \"Name\": \"Spain\"\r\n },\r\n {\r\n \"Code\": \"LK\",\r\n \"Name\": \"Sri Lanka\"\r\n },\r\n {\r\n \"Code\": \"SD\",\r\n \"Name\": \"Sudan\"\r\n },\r\n {\r\n \"Code\": \"SR\",\r\n \"Name\": \"Suriname\"\r\n },\r\n {\r\n \"Code\": \"SJ\",\r\n \"Name\": \"Svalbard and Jan Mayen\"\r\n },\r\n {\r\n \"Code\": \"SZ\",\r\n \"Name\": \"Swaziland\"\r\n },\r\n {\r\n \"Code\": \"SE\",\r\n \"Name\": \"Sweden\"\r\n },\r\n {\r\n \"Code\": \"CH\",\r\n \"Name\": \"Switzerland\"\r\n },\r\n {\r\n \"Code\": \"SY\",\r\n \"Name\": \"Syrian Arab Republic\"\r\n },\r\n {\r\n \"Code\": \"TW\",\r\n \"Name\": \"Taiwan, Province of China\"\r\n },\r\n {\r\n \"Code\": \"TJ\",\r\n \"Name\": \"Tajikistan\"\r\n },\r\n {\r\n \"Code\": \"TZ\",\r\n \"Name\": \"Tanzania, United Republic of\"\r\n },\r\n {\r\n \"Code\": \"TH\",\r\n \"Name\": \"Thailand\"\r\n },\r\n {\r\n \"Code\": \"TL\",\r\n \"Name\": \"Timor-Leste\"\r\n },\r\n {\r\n \"Code\": \"TG\",\r\n \"Name\": \"Togo\"\r\n },\r\n {\r\n \"Code\": \"TK\",\r\n \"Name\": \"Tokelau\"\r\n },\r\n {\r\n \"Code\": \"TO\",\r\n \"Name\": \"Tonga\"\r\n },\r\n {\r\n \"Code\": \"TT\",\r\n \"Name\": \"Trinidad and Tobago\"\r\n },\r\n {\r\n \"Code\": \"TN\",\r\n \"Name\": \"Tunisia\"\r\n },\r\n {\r\n \"Code\": \"TR\",\r\n \"Name\": \"Turkey\"\r\n },\r\n {\r\n \"Code\": \"TM\",\r\n \"Name\": \"Turkmenistan\"\r\n },\r\n {\r\n \"Code\": \"TC\",\r\n \"Name\": \"Turks and Caicos Islands\"\r\n },\r\n {\r\n \"Code\": \"TV\",\r\n \"Name\": \"Tuvalu\"\r\n },\r\n {\r\n \"Code\": \"UG\",\r\n \"Name\": \"Uganda\"\r\n },\r\n {\r\n \"Code\": \"UA\",\r\n \"Name\": \"Ukraine\"\r\n },\r\n {\r\n \"Code\": \"AE\",\r\n \"Name\": \"United Arab Emirates\"\r\n },\r\n {\r\n \"Code\": \"GB\",\r\n \"Name\": \"United Kingdom\"\r\n },\r\n {\r\n \"Code\": \"US\",\r\n \"Name\": \"United States\"\r\n },\r\n {\r\n \"Code\": \"UM\",\r\n \"Name\": \"United States Minor Outlying Islands\"\r\n },\r\n {\r\n \"Code\": \"UY\",\r\n \"Name\": \"Uruguay\"\r\n },\r\n {\r\n \"Code\": \"UZ\",\r\n \"Name\": \"Uzbekistan\"\r\n },\r\n {\r\n \"Code\": \"VU\",\r\n \"Name\": \"Vanuatu\"\r\n },\r\n {\r\n \"Code\": \"VE\",\r\n \"Name\": \"Venezuela, Bolivarian Republic of\"\r\n },\r\n {\r\n \"Code\": \"VN\",\r\n \"Name\": \"Viet Nam\"\r\n },\r\n {\r\n \"Code\": \"VG\",\r\n \"Name\": \"Virgin Islands, British\"\r\n },\r\n {\r\n \"Code\": \"VI\",\r\n \"Name\": \"Virgin Islands, U.S.\"\r\n },\r\n {\r\n \"Code\": \"WF\",\r\n \"Name\": \"Wallis and Futuna\"\r\n },\r\n {\r\n \"Code\": \"EH\",\r\n \"Name\": \"Western Sahara\"\r\n },\r\n {\r\n \"Code\": \"YE\",\r\n \"Name\": \"Yemen\"\r\n },\r\n {\r\n \"Code\": \"ZM\",\r\n \"Name\": \"Zambia\"\r\n },\r\n {\r\n \"Code\": \"ZW\",\r\n \"Name\": \"Zimbabwe\"\r\n }\r\n];\r\n\r\nexport default countryCodes;","import { standardGridPageSize } from \"../../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $http, $uibModalInstance, helperService, requestUserId) {\r\n\r\n var vm = this;\r\n\r\n vm.searchComplete = searchComplete;\r\n vm.searchKeyDown = searchKeyDown;\r\n vm.changeExistingUserRowSelected = changeExistingUserRowSelected;\r\n vm.selectUser = selectUser;\r\n vm.dismiss = dismiss;\r\n\r\n activate();\r\n\r\n function activate() {\r\n const existingUserGridColumns = [\r\n { field: \"DisplayName\", title: \"Name\", filterable: false },\r\n { field: \"UserPrincipalName\", title: \"User Principal Name\", filterable: false }\r\n ];\r\n vm.existingUsersGridOptions = helperService.setMainGridOptions(existingUserGridColumns, 400);\r\n vm.existingUsersGridOptions.autoBind = false;\r\n vm.existingUsersGridOptions.pageable = {\r\n alwaysVisible: false\r\n }\r\n\r\n vm.existingUsersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let response = await $http({\r\n method: 'GET',\r\n url: apiUrl + 'api/identitymanager/aad/users/search',\r\n params: {\r\n criteria: vm.existingUserSearchString,\r\n //includeInactive: false\r\n }\r\n });\r\n // Remove request user from list as they cannot be selected as manager\r\n const requestUserIndex = response.data.findIndex(user => user.Id === requestUserId);\r\n if (requestUserIndex > -1) {\r\n response.data.splice(requestUserIndex, 1);\r\n }\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n } catch (error) {\r\n options.error();\r\n helperService.showErrorMessage(error.data);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function searchComplete() {\r\n if (vm.existingUserSearchString === '' || !vm.existingUserSearchString) {\r\n var raw = vm.existingUsersGridDataSource.data();\r\n var length = raw.length;\r\n\r\n var item, i;\r\n for (i = length - 1; i >= 0; i--) {\r\n item = raw[i];\r\n vm.existingUsersGridDataSource.remove(item);\r\n }\r\n } else {\r\n vm.existingUsersGridDataSource.read();\r\n }\r\n }\r\n\r\n function searchKeyDown () {\r\n vm.SearchExistingUserSelected = null;\r\n }\r\n\r\n function changeExistingUserRowSelected(kendoEvent) {\r\n var grid = kendoEvent.sender;\r\n\r\n vm.selectedManager = grid.dataItem(grid.select());\r\n }\r\n\r\n function selectUser() {\r\n $uibModalInstance.close(vm.selectedManager);\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import countryCodes from \"../../../../Shared/GlobalVariables/countryCodes\";\r\nimport managerSearchController from \"./ManagerSearch/managerSearch.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $http, $uibModal, helperService, existingUserCheckService) {\r\n\r\n $scope.openManagerSearchModal = openManagerSearchModal;\r\n\r\n //General User\r\n $scope.vm.adUserFromDateObject = null;\r\n $scope.vm.adUserToDateObject = null;\r\n $scope.vm.adUserMaxDate = new Date();\r\n var adUserMinDate = new Date();\r\n adUserMinDate.setHours(0, 0, 0, 0);\r\n\r\n $scope.vm.adUserMinDate = adUserMinDate;\r\n\r\n if (!$scope.vm.User.AadUser) {\r\n $scope.vm.User.AadUser = {};\r\n }\r\n if ($scope.vm.User.AadUser.AccountEnabled === undefined) {\r\n $scope.vm.User.AadUser.AccountEnabled = true;\r\n }\r\n $scope.vm.User.AadUser.ProductType = \"AAD\";\r\n $scope.vm.User.AadUser.Enabled = true;\r\n $scope.vm.ListOfCountryCodes = countryCodes;\r\n\r\n $scope.vm.existingUserCheck = existingUserCheck;\r\n\r\n $scope.adUserFromDateChanged = function () {\r\n var date;\r\n if ($scope.vm.User.AadUser.StartDate == '') {\r\n date = new Date();\r\n } else {\r\n date = new Date($scope.vm.User.AadUser.StartDate);\r\n }\r\n\r\n $scope.vm.adUserMinDate = date;\r\n $scope.vm.fromMinDate = date;\r\n if ($scope.vm.User.AadUser == null) {\r\n $scope.vm.User.AadUser = {};\r\n }\r\n };\r\n\r\n $scope.adUserToDateChanged = function () {\r\n $scope.vm.adUserMaxDate = new Date($scope.vm.User.AadUser.EndDate);\r\n if ($scope.vm.User.AadUser == null) {\r\n $scope.vm.User.AadUser = {};\r\n }\r\n };\r\n\r\n activate();\r\n\r\n function activate() {\r\n if ($scope.vm.wizardMode === 'New') {\r\n getDomains();\r\n }\r\n }\r\n\r\n async function existingUserCheck() {\r\n if ($scope.vm.wizardMode === 'New' && $scope.vm.User.AadUser.Domain) {\r\n try {\r\n let response = await existingUserCheckService.checkAAD($scope.vm.User.AadUser.UserPrincipalName);\r\n if (response.data.UserPrincipalName === $scope.vm.User.AadUser.UserPrincipalName + '@' + $scope.vm.User.AadUser.Domain) {\r\n $scope.vm.aadUserExists = true;\r\n $scope.wizardForm.AADUserName.$setValidity(\"AADUserName\", false);\r\n }\r\n } catch (error) {\r\n if (error.status === 404) {\r\n $scope.vm.aadUserExists = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n async function getDomains() {\r\n try {\r\n let response = await $http.get(`${apiUrl}api/identitymanager/aad/domains`);\r\n $scope.vm.ListOfAADDomains = response.data;\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n }\r\n }\r\n\r\n async function openManagerSearchModal() {\r\n let managerSearchModal = $uibModal.open({\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/AAD/ManagerSearch/managerSearch.tmpl.html',\r\n controller: managerSearchController,\r\n controllerAs: 'msmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n requestUserId: () => $scope.vm.User.AadUser.Id\r\n }\r\n });\r\n\r\n try {\r\n let selectedManager = await managerSearchModal.result;\r\n $scope.vm.User.AadUser.Manager = selectedManager;\r\n } catch { return; }\r\n }\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.addRoleToList = function (role) {\r\n $scope.vm.ListOfAvailableAADRoles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfAvailableAADRoles.splice(i, 1);\r\n $scope.vm.ListOfSelectedAADRoles.push(role);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedRole = function (role) {\r\n $scope.vm.ListOfSelectedAADRoles.forEach(function (row, i) {\r\n if (row.Id === role.Id) {\r\n $scope.vm.ListOfSelectedAADRoles.splice(i, 1);\r\n $scope.vm.ListOfAvailableAADRoles.push(row);\r\n }\r\n });\r\n\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.selectedRole = null;\r\n\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.addGroupToList = function (group) {\r\n $scope.vm.ListOfAvailableAADGroups.forEach(function (row, i) {\r\n if (row.Id === group.Id) {\r\n $scope.vm.ListOfAvailableAADGroups.splice(i, 1);\r\n $scope.vm.ListOfSelectedAADGroups.push(group);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedGroup = function (group) {\r\n $scope.vm.ListOfSelectedAADGroups.forEach(function (row, i) {\r\n if (row.Id === group.Id) {\r\n $scope.vm.ListOfSelectedAADGroups.splice(i, 1);\r\n $scope.vm.ListOfAvailableAADGroups.push(row);\r\n }\r\n });\r\n\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.setSelectedRoleTemplates = function (selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.addLicenseToList = function (license) {\r\n $scope.vm.ListOfAvailableAADLicenses.forEach(function (row, i) {\r\n if (row.SkuId === license.SkuId) {\r\n $scope.vm.ListOfAvailableAADLicenses.splice(i, 1);\r\n $scope.vm.ListOfSelectedAADLicenses.push(license);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedLicense = function (license) {\r\n $scope.vm.ListOfSelectedAADLicenses.forEach(function (row, i) {\r\n if (row.SkuId === license.SkuId) {\r\n $scope.vm.ListOfSelectedAADLicenses.splice(i, 1);\r\n $scope.vm.ListOfAvailableAADLicenses.push(row);\r\n }\r\n });\r\n\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n}","import { standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, RequestManagementPSService, manageDataDataService, $http) {\r\n\r\n //General User\r\n $scope.vm.selectUser = selectUser;\r\n $scope.vm.psUserFromDateObject = null;\r\n $scope.vm.psUserToDateObject = null;\r\n $scope.vm.psUserMaxDate = new Date();\r\n var psUserMinDate = new Date();\r\n psUserMinDate.setHours(0, 0, 0, 0);\r\n\r\n $scope.vm.psUserMinDate = psUserMinDate;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getPermissionlists();\r\n await setFieldConfigurationValues();\r\n createPermissionListDropdowns();\r\n $scope.vm.ListOfPSEmailTypes = RequestManagementPSService.getPSEmailTypes();\r\n }\r\n\r\n if (!$scope.vm.User.PSUser) {\r\n $scope.vm.User.PSUser = {};\r\n }\r\n $scope.vm.User.PSUser.ProductType = \"PS\";\r\n\r\n async function getPermissionlists() {\r\n let response = await RequestManagementPSService.getPSPermissionLists()\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n $scope.vm.psPermissionLists = response.data;\r\n }\r\n\r\n function createPermissionListDropdowns() {\r\n $scope.vm.permissionListsDropdownOptions = {\r\n valuePrimitive: true,\r\n template: `\r\n {{dataItem.Id}} | {{dataItem.Name}}\r\n `,\r\n filter: \"contains\",\r\n autoBind: true,\r\n minLength: 3,\r\n optionLabel: '-- Select a Permission List --',\r\n filtering: ev => {\r\n var filterValue = ev.filter != undefined ? ev.filter.value : \"\";\r\n ev.preventDefault();\r\n\r\n ev.sender.dataSource.filter({\r\n logic: \"or\",\r\n filters: [\r\n {\r\n field: \"Name\",\r\n operator: \"contains\",\r\n value: filterValue\r\n },\r\n {\r\n field: \"Id\",\r\n operator: \"contains\",\r\n value: filterValue\r\n }\r\n ]\r\n });\r\n }\r\n };\r\n\r\n\r\n\r\n $scope.vm.psNavPermissionsListsDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: options => {\r\n options.success($scope.vm.psPermissionLists);\r\n }\r\n }\r\n });\r\n\r\n $scope.vm.psPrimaryPermissionsListsDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: options => {\r\n options.success($scope.vm.psPermissionLists);\r\n }\r\n }\r\n });\r\n\r\n $scope.vm.psProcessPermissionsListsDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: options => {\r\n options.success($scope.vm.psPermissionLists);\r\n }\r\n }\r\n });\r\n\r\n $scope.vm.psRowSecurityPermissionsListsDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: options => {\r\n options.success($scope.vm.psPermissionLists);\r\n }\r\n }\r\n });\r\n }\r\n\r\n $scope.psUserFromDateChanged = function () {\r\n var date;\r\n if ($scope.vm.User.PSUser.StartDate === '') {\r\n date = new Date();\r\n } else {\r\n date = new Date($scope.vm.User.PSUser.StartDate);\r\n }\r\n\r\n $scope.vm.psUserMinDate = date;\r\n $scope.vm.nsMinDate = date;\r\n $scope.vm.fromMinDate = date;\r\n if ($scope.vm.User.PSUser == null) {\r\n $scope.vm.User.PSUser = {};\r\n }\r\n };\r\n\r\n $scope.psUserToDateChanged = function () {\r\n $scope.vm.psUserMaxDate = new Date($scope.vm.User.PSUser.EndDate);\r\n $scope.vm.nsMaxDate = new Date($scope.vm.User.PSUser.EndDate);\r\n $scope.vm.fromMaxDate = new Date($scope.vm.User.PSUser.StartDate);\r\n if ($scope.vm.User.PSUser == null) {\r\n $scope.vm.User.PSUser = {};\r\n }\r\n };\r\n\r\n async function setFieldConfigurationValues() {\r\n $scope.vm.showADUserLookup = $scope.vm.config.find(config => config.Name === 'AD_Active').Value === '1';\r\n $scope.vm.showAADUserLookup = $scope.vm.config.find(config => config.Name === 'AAD_Active').Value === '1';\r\n let response = await manageDataDataService.getConfigurationByProductId('PS');\r\n $scope.vm.disableADUserFields = response.data.find(config => config.Name === 'IM_DisableADUserFields').Value === '1' && $scope.vm.showADUserLookup;\r\n $scope.vm.disableAADUserFields = response.data.find(config => config.Name === 'IM_DisableAADUserFields').Value === '1' && $scope.vm.showAADUserLookup;\r\n }\r\n\r\n function selectUser(user) {\r\n $scope.vm.User.PSUser = user;\r\n if (user.UserType !== 'Guest') {\r\n setProvider();\r\n }\r\n }\r\n\r\n async function setProvider() {\r\n const { data } = await $http.get(`${apiUrl}api/universal/products/ORFC/configuration/im_provider`);\r\n $scope.vm.User.PSUser.NetworkDomain = data.Value;\r\n }\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.addRoleToList = function (role) {\r\n $scope.vm.ListOfAvailablePSRoles.forEach(function (row, i) {\r\n if (row.Name === role.Name) {\r\n $scope.vm.ListOfAvailablePSRoles.splice(i, 1);\r\n $scope.vm.ListOfSelectedPSRoles.push(role);\r\n }\r\n });\r\n };\r\n\r\n $scope.deleteSelectedRole = function (role) {\r\n $scope.vm.ListOfSelectedPSRoles.forEach(function (row, i) {\r\n if (row.Name === role.Name) {\r\n $scope.vm.ListOfSelectedPSRoles.splice(i, 1);\r\n if (role.IsAssignable) {\r\n $scope.vm.ListOfAvailablePSRoles.push(row);\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.selectedRole = null;\r\n\r\n $scope.setSelectedRoleTemplates = function (selectedRoleTemplates) {\r\n $scope.vm.selectedRoleTemplates = selectedRoleTemplates;\r\n };\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.addUserGroupToList = addUserGroupToList;\r\n $scope.deleteSelectedUserGroup = deleteSelectedUserGroup;\r\n\r\n function addUserGroupToList(userGroup) {\r\n $scope.vm.ListOfAvailableAX7UserGroups.forEach((row, i) => {\r\n if (row.Id === userGroup.Id) {\r\n $scope.vm.ListOfAvailableAX7UserGroups.splice(i, 1);\r\n $scope.vm.ListOfSelectedAX7UserGroups.push(userGroup);\r\n }\r\n });\r\n };\r\n\r\n\r\n function deleteSelectedUserGroup(userGroup) {\r\n $scope.vm.ListOfSelectedAX7UserGroups.forEach((row, i) => {\r\n if (row.Id === userGroup.Id) {\r\n $scope.vm.ListOfSelectedAX7UserGroups.splice(i, 1);\r\n $scope.vm.ListOfAvailableAX7UserGroups.push(row);\r\n }\r\n });\r\n };\r\n\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n\r\n $scope.addUserGroupToList = addUserGroupToList;\r\n $scope.deleteSelectedUserGroup = deleteSelectedUserGroup;\r\n\r\n function addUserGroupToList(userGroup) {\r\n $scope.vm.ListOfAvailableAX2012UserGroups.forEach((row, i) => {\r\n if (row.Id === userGroup.Id) {\r\n $scope.vm.ListOfAvailableAX2012UserGroups.splice(i, 1);\r\n $scope.vm.ListOfSelectedAX2012UserGroups.push(userGroup);\r\n }\r\n });\r\n };\r\n\r\n\r\n function deleteSelectedUserGroup(userGroup) {\r\n $scope.vm.ListOfSelectedAX2012UserGroups.forEach((row, i) => {\r\n if (row.Id === userGroup.Id) {\r\n $scope.vm.ListOfSelectedAX2012UserGroups.splice(i, 1);\r\n $scope.vm.ListOfAvailableAX2012UserGroups.push(row);\r\n }\r\n });\r\n };\r\n\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n $scope.addCompositeRoleToList = function (compositeRole, productName) {\r\n $scope.vm.ListOfAvailableSAPCompositeRoles[productName].forEach(function (row, i) {\r\n if (row.Id === compositeRole.Id) {\r\n $scope.vm.ListOfAvailableSAPCompositeRoles[productName].splice(i, 1);\r\n $scope.vm.ListOfSelectedSAPCompositeRoles[productName].push(row);\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n\r\n $scope.deleteSelectedCompositeRole = function (compositeRole, productName) {\r\n $scope.vm.ListOfSelectedSAPCompositeRoles[productName].forEach(function (row, i) {\r\n if (row.Id === compositeRole.Id) {\r\n $scope.vm.ListOfSelectedSAPCompositeRoles[productName].splice(i, 1);\r\n if (compositeRole.IsAssignable) {\r\n $scope.vm.ListOfAvailableSAPCompositeRoles[productName].push(row);\r\n }\r\n if (compositeRole.IsEmergencyAccess) {\r\n // Clear out selected TCodes\r\n $scope.vm.ListOfAvailableSAPRoleObjects[productName] = null;\r\n $scope.vm.ListOfSelectedSAPRoleObjects[productName] = null;\r\n }\r\n }\r\n });\r\n $scope.vm.IsRisksReviewed = null;\r\n };\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModalInstance, salesforceService, helperService, requestUserId, type) {\r\n\r\n var vm = this;\r\n\r\n vm.typeDisplay = type.charAt(0).toUpperCase() + type.slice(1)\r\n vm.searchComplete = searchComplete;\r\n vm.searchKeyDown = searchKeyDown;\r\n vm.changeUserRowSelected = changeUserRowSelected;\r\n vm.selectUser = selectUser;\r\n vm.dismiss = dismiss;\r\n\r\n activate();\r\n\r\n function activate() {\r\n // TODO: Verify column names and fields\r\n let columns = [\r\n { field: \"Name\", title: \"Name\", filterable: false },\r\n { field: \"Username\", title: \"Username\", filterable: false }\r\n ];\r\n\r\n vm.usersGridOptions = helperService.setMainGridOptions(columns, 400);\r\n vm.usersGridOptions.autoBind = false;\r\n vm.usersGridOptions.pageable = {\r\n alwaysVisible: false\r\n }\r\n\r\n vm.usersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let { data } = await salesforceService.getUsers(vm.userSearchString, \"name\");\r\n\r\n data.map(user => {\r\n user.Name = `${user.FirstName} ${user.LastName}`\r\n });\r\n\r\n // Remove request user from list as they cannot be selected \r\n data = data.filter(user => user.Id !== requestUserId);\r\n\r\n data = $filter('orderBy')(data, 'FirstName');\r\n options.success(data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function searchComplete() {\r\n if (vm.userSearchString === '' || !vm.userSearchString) {\r\n let data = vm.usersGridDataSource.data();\r\n\r\n data.forEach(item => {\r\n vm.usersGridDataSource.remove(item);\r\n });\r\n } else {\r\n vm.usersGridDataSource.read();\r\n }\r\n }\r\n\r\n function searchKeyDown () {\r\n vm.searchUserSelected = null;\r\n }\r\n\r\n function changeUserRowSelected(kendoEvent) {\r\n var grid = kendoEvent.sender;\r\n\r\n vm.selectedUser = grid.dataItem(grid.select());\r\n }\r\n\r\n function selectUser() {\r\n $uibModalInstance.close(vm.selectedUser);\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import searchController from \"./searchModal/search.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, $uibModal, salesforceService, errorsDataService, manageDataDataService, $http) {\r\n\r\n const salesforceUserMinDate = new Date();\r\n\r\n salesforceUserMinDate.setHours(0, 0, 0, 0);\r\n\r\n if (!$scope.vm.User.SalesforceUser) {\r\n $scope.vm.User.SalesforceUser = {};\r\n }\r\n\r\n $scope.vm.User.SalesforceUser.ProductType = \"SF\";\r\n $scope.vm.openSalesforceSearchModal = openSearchModal;\r\n $scope.vm.existingSalesforceUserCheck = existingUserCheck;\r\n $scope.userFromDateChanged = userFromDateChanged;\r\n $scope.userToDateChanged = userToDateChanged;\r\n $scope.vm.salesforceUserMinDate = salesforceUserMinDate;\r\n $scope.vm.selectUser = selectUser;\r\n $scope.vm.User.SalesforceUser.ProfileId = $scope.vm.User.SalesforceUser?.ProfileId || \"\";\r\n $scope.vm.handleSalesforceCountrySelection = handleCountrySelection;\r\n $scope.vm.clearSalesforceInput = clearInput;\r\n $scope.vm.selectedManager = \"\";\r\n $scope.vm.selectedApprover = \"\";\r\n $scope.vm.salesforceEmailChangeMessage = \"To ensure system security, the owner of the new email address must verify this change. When the request is submitted, an email will be sent to the specified address with directions on confirming this change.\"\r\n\r\n activate();\r\n\r\n async function activate() {\r\n setFieldConfigurationValues();\r\n let { data: countries } = await salesforceService.getCountries();\r\n $scope.vm.salesforceCountriesDatasource = $filter('orderBy')(countries, 'Name');\r\n $scope.vm.salesforceStatesDatasource = $filter('orderBy')(countries.first()?.States || [], 'Name');\r\n if ($scope.vm.User.SalesforceUser.Country) {\r\n handleCountrySelection();\r\n }\r\n }\r\n\r\n async function handleCountrySelection() {\r\n $scope.vm.salesforceStatesDatasource = $scope.vm.salesforceCountriesDatasource.find(country => country.Name === $scope.vm.User.SalesforceUser.Country).States;\r\n }\r\n\r\n async function existingUserCheck(username) {\r\n try {\r\n const { data } = await salesforceService.getUsers(username, \"username\"),\r\n currentId = $scope.vm.User?.SalesforceUser?.Id;\r\n\r\n if (data?.length && data?.first().Id !== currentId) {\r\n $scope.wizardForm.Username.$setValidity(\"Username\", false);\r\n $scope.vm.salesforceUserExists = true;\r\n } else {\r\n $scope.wizardForm.Username.$setValidity(\"Username\", true);\r\n $scope.vm.salesforceUserExists = false;\r\n }\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n };\r\n\r\n $scope.$watch(\"vm.User.SalesforceUser.Username\", () => {\r\n if ($scope.vm.User.SalesforceUser?.Username && $scope.vm.wizardMode === 'New') {\r\n existingUserCheck($scope.vm.User.SalesforceUser.Username)\r\n }\r\n });\r\n\r\n async function openSearchModal(type) {\r\n let searchModal = $uibModal.open({\r\n templateUrl: '/App/Components/RequestManagement/WizardSteps/Salesforce/searchModal/search.tmpl.html',\r\n controller: searchController,\r\n controllerAs: 'svm',\r\n backdrop: 'static',\r\n resolve: {\r\n requestUserId: () => $scope.vm.User.SalesforceUser.Id,\r\n type: () => type\r\n }\r\n });\r\n\r\n try {\r\n let result = await searchModal.result;\r\n\r\n if (type === \"manager\") {\r\n $scope.vm.User.SalesforceUser.ManagerId = result.Id;\r\n $scope.vm.selectedManager = result.Name;\r\n } else {\r\n $scope.vm.User.SalesforceUser.DelegateApproverId = result.Id;\r\n $scope.vm.selectedApprover = result.Name;\r\n }\r\n \r\n } catch { return; }\r\n }\r\n\r\n function clearInput(type) {\r\n if (type === \"Approver\") {\r\n $scope.vm.User.SalesforceUser.DelegateApproverId = null;\r\n $scope.vm.selectedApprover = \"\";\r\n } else {\r\n $scope.vm.User.SalesforceUser.ManagerId = null;\r\n $scope.vm.selectedManager = \"\";\r\n }\r\n }\r\n\r\n function userFromDateChanged () {\r\n var date;\r\n\r\n if ($scope.vm.User.SalesforceUser.StartDate === '') {\r\n date = new Date();\r\n } else {\r\n date = new Date($scope.vm.User.SalesforceUser.StartDate);\r\n }\r\n\r\n $scope.vm.salesforceUserMinDate = date;\r\n $scope.vm.fromMinDate = date;\r\n\r\n if ($scope.vm.User.SalesforceUser == null) {\r\n $scope.vm.User.SalesforceUser = {};\r\n }\r\n };\r\n\r\n function userToDateChanged() {\r\n $scope.vm.salesforceUserMaxDate = new Date($scope.vm.User.SalesforceUser.EndDate);\r\n $scope.vm.fromMaxDate = new Date($scope.vm.User.SalesforceUser.StartDate);\r\n if ($scope.vm.User.SalesforceUser == null) {\r\n $scope.vm.User.SalesforceUser = {};\r\n }\r\n };\r\n\r\n async function setFieldConfigurationValues() {\r\n $scope.vm.showADUserLookup = $scope.vm.config.find(config => config.Name === 'AD_Active').Value === '1';\r\n $scope.vm.showAADUserLookup = $scope.vm.config.find(config => config.Name === 'AAD_Active').Value === '1';\r\n let response = await manageDataDataService.getConfigurationByProductId('SF');\r\n $scope.vm.disableADUserFields = response.data.find(config => config.Name === 'IM_DisableADUserFields').Value === '1' && $scope.vm.showADUserLookup;\r\n $scope.vm.disableAADUserFields = response.data.find(config => config.Name === 'IM_DisableAADUserFields').Value === '1' && $scope.vm.showAADUserLookup;\r\n }\r\n\r\n function selectUser(user) {\r\n $scope.vm.User.SalesforceUser = user;\r\n if (user.UserType !== 'Guest') {\r\n setProvider();\r\n }\r\n }\r\n\r\n async function setProvider() {\r\n const { data } = await $http.get(`${apiUrl}api/universal/products/ORFC/configuration/im_provider`);\r\n $scope.vm.User.SalesforceUser.NetworkDomain = data.Value;\r\n }\r\n}","import swal from \"sweetalert2\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $scope, salesforceService) {\r\n $scope.vm.salesforceProfileHasRoles = false;\r\n\r\n if (!$scope.vm.User.SalesforceUser) {\r\n $scope.vm.User.SalesforceUser = {};\r\n }\r\n\r\n $scope.vm.User.SalesforceUser.ProductType = \"SF\";\r\n $scope.vm.allowSalesforceRoleSelection = $scope.vm.User?.SalesforceUser?.Profile?.UserType === \"Standard\";\r\n $scope.vm.salesforceProfilesDisabled = $scope.vm.User?.SalesforceUser?.PendingProfile;\r\n $scope.vm.handleSalesforceLicenseSelection = handleLicenseSelection;\r\n $scope.vm.handleSalesforceProfileSelection = handleProfileSelection;\r\n $scope.vm.salesforceProfiles = [];\r\n $scope.vm.dropdownOptions = {\r\n template: '{{dataItem.Name}}',\r\n autoBind: true,\r\n dataTextField: \"Name\",\r\n dataValueField: \"Id\",\r\n height: 325\r\n };\r\n\r\n activate();\r\n\r\n function activate() {\r\n getUserLicenses();\r\n getRoles();\r\n getProfiles();\r\n\r\n if (!$scope.vm.User.SalesforceUser?.Profile?.Id) {\r\n $scope.wizardForm.$valid = false;\r\n $scope.wizardForm.$invalid = true;\r\n }\r\n }\r\n\r\n function getUserLicenses() {\r\n $scope.vm.salesforceUserLicensesDatasource = new kendo.data.DataSource({\r\n transport: {\r\n read: async function (options) {\r\n const params = { 'currentLicenseId': $scope.vm.User?.SalesforceUser?.Profile?.UserLicenseId };\r\n let { data } = await salesforceService.getUserLicenses(params);\r\n\r\n options.success($filter('orderBy')(data, 'Name'));\r\n }\r\n }\r\n });\r\n }\r\n\r\n function getProfiles() {\r\n $scope.vm.salesforceProfilesDatasource = new kendo.data.DataSource({\r\n transport: {\r\n read: async function (options) {\r\n let { data: profiles } = await salesforceService.getProfiles(),\r\n profile;\r\n\r\n profiles = $filter('orderBy')(profiles, 'Name');\r\n\r\n // Filter profiles by selected User License Id\r\n if (profiles && $scope.vm.User.SalesforceUser.Profile?.UserLicenseId) {\r\n profiles = profiles.filter(systemProfile => systemProfile.UserLicenseId === $scope.vm.User.SalesforceUser.Profile.UserLicenseId);\r\n }\r\n\r\n // If only one profile found, set it as the user's profile\r\n if (profiles.length === 1) {\r\n profile = profiles.first();\r\n\r\n $scope.vm.User.SalesforceUser.Profile = { ...profile };\r\n $scope.vm.allowSalesforceRoleSelection = profile?.UserType === \"Standard\";\r\n }\r\n\r\n // Set form to invalid to prevent continuing if user is assigned unassignable profile\r\n if ($scope.vm.User.SalesforceUser.Profile && !$scope.vm.User.SalesforceUser.Profile.IsAssignable) {\r\n $scope.wizardForm.$valid = false;\r\n $scope.wizardForm.$invalid = true;\r\n }\r\n\r\n // Filter out profiles that are not assignable\r\n profiles = profiles.filter(profile => profile.IsAssignable);\r\n\r\n if (!$scope.vm.allowSalesforceRoleSelection) {\r\n $scope.vm.User.SalesforceUser.UserRoleId = null;\r\n }\r\n\r\n $scope.vm.salesforceProfiles = profiles;\r\n\r\n options.success(profiles);\r\n\r\n $scope.vm.ListOfAvailableSalesforcePermissionSets = filterPermissons($scope.vm.User.SalesforceUser.Profile?.UserLicenseId, $scope.vm.ListOfAllSalesforcePermissionSets);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function getRoles() {\r\n $scope.vm.salesforceRolesDatasource = new kendo.data.DataSource({\r\n transport: {\r\n read: async function (options) {\r\n let { data } = await salesforceService.getRoles();\r\n\r\n options.success($filter('orderBy')(data, 'Name'));\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function handleLicenseSelection(conflictsReviewed) {\r\n let userId = $scope.vm.User?.SalesforceUser?.Id,\r\n licenseId = $scope.vm.User?.SalesforceUser?.Profile?.UserLicenseId;\r\n\r\n $scope.vm.ListOfSelectedSalesforcePermissionSets = [];\r\n\r\n if (userId && licenseId !== $scope.vm.assignedSalesforceLicenseId) {\r\n //Alert user and set bit used to filter assigned permission sets so they are hidden\r\n alertUser();\r\n } else if (userId) {\r\n // If modify and original license id selected, set to original assigned permission sets to prevent inconsistencies\r\n $scope.vm.ListOfSelectedSalesforcePermissionSets = [...$scope.vm.assignedSalesforcePermissionSets];\r\n $scope.vm.salesforceHideAssignedPermissionSets = false;\r\n } else {\r\n $scope.vm.salesforceHideAssignedPermissionSets = false;\r\n $scope.vm.showSalesforceLicenseChangeMessage = false;\r\n }\r\n\r\n await $scope.vm.salesforceProfilesDatasource.read();\r\n $scope.vm.IsConflictsReviewed = conflictsReviewed;\r\n\r\n handleProfileSelection();\r\n\r\n $scope.vm.ListOfAvailableSalesforcePermissionSets = filterPermissons(licenseId, $scope.vm.ListOfAllSalesforcePermissionSets);\r\n }\r\n\r\n\r\n function alertUser() {\r\n let message = \"Changing this user's license will also remove any permission sets and permission set licenses that are assigned to this user. A welcome email from the community will be sent to new community users, regardless of their preferences.\"\r\n\r\n if (!$scope.vm.showSalesforceLicenseChangeMessage) {\r\n swal(\"Warning\", message, \"warning\");\r\n\r\n $scope.vm.showSalesforceLicenseChangeMessage = true;\r\n $scope.vm.salesforceHideAssignedPermissionSets = true;\r\n }\r\n }\r\n\r\n function handleProfileSelection() {\r\n let profile = $scope.vm.salesforceProfiles.find(profile => $scope.vm.User.SalesforceUser?.Profile.Id === profile.Id);\r\n\r\n if (profile?.Id) {\r\n profile.UserRoleId = null;\r\n $scope.vm.User.SalesforceUser.Profile = { ...profile };\r\n $scope.wizardForm.$valid = true;\r\n $scope.wizardForm.$invalid = false;\r\n } else {\r\n $scope.wizardForm.$valid = false;\r\n $scope.wizardForm.$invalid = true;\r\n }\r\n\r\n $scope.vm.allowSalesforceRoleSelection = profile?.UserType === \"Standard\";\r\n $scope.vm.IsConflictsReviewed = null;\r\n }\r\n}\r\n\r\nfunction filterPermissons(licenseId, permissions = []) {\r\n return permissions.filter(availablePermission => availablePermission.LicenseId === licenseId || !availablePermission.LicenseId);\r\n}","export default /*@ngInject*/ function ($scope) {\r\n\r\n //If $scope variable doesnt exist in child it looks in parent\r\n $scope.addPermission = function (permission) {\r\n $scope.vm.ListOfAvailableSalesforcePermissionSets.forEach((row, i) => {\r\n if (row.Id === permission.Id) {\r\n $scope.vm.ListOfAvailableSalesforcePermissionSets.splice(i, 1);\r\n row.new = true;\r\n $scope.vm.ListOfSelectedSalesforcePermissionSets.push(row);\r\n }\r\n });\r\n $scope.vm.IsConflictsReviewed = null;\r\n };\r\n\r\n $scope.removePermission = function (selectedPermission) {\r\n $scope.vm.ListOfSelectedSalesforcePermissionSets.forEach((row, i) => {\r\n if (row.Id === selectedPermission.Id) {\r\n $scope.vm.ListOfSelectedSalesforcePermissionSets.splice(i, 1);\r\n row.new = false;\r\n $scope.vm.ListOfAvailableSalesforcePermissionSets.push(row);\r\n }\r\n });\r\n };\r\n\r\n $scope.filterSalesforcePermissions = function (permission) {\r\n //Only showing newly added and pending permissions when license has changed\r\n return !$scope.vm.salesforceHideAssignedPermissionSets || permission.new || permission.Pending;\r\n }\r\n}","import angular from 'angular';\r\nimport identityManagerRequestManagementFactoriesModule from './identityManager.requestManagement.factories.module';\r\nimport adUserSearchLink from '../Components/RequestManagement/ADUserLink/aDUser.component';\r\nimport adUserLookup from '../Components/RequestManagement/ADUserLookup/aDUserLookup.component';\r\nimport azureAdUserSearchLink from '../Components/RequestManagement/AzureADUserLink/azureADUser.component';\r\nimport azureAdUserLookup from '../Components/RequestManagement/AzureADUserLookup/azureADUserLookup.component';\r\nimport existingUserExpansion from '../Components/RequestManagement/ExistingUserExpansion/existingUserExpansion.component'\r\nimport identityManagerRequestManagementServicesModule from './identityManager.requestManagement.services.module';\r\nimport AXRolesController from '../Components/RequestManagement/WizardSteps/AX2012/AXRolesController';\r\nimport AXUserInformationController from '../Components/RequestManagement/WizardSteps/AX2012/AXUserInformationController';\r\nimport AX7RolesController from '../Components/RequestManagement/WizardSteps/AX7/AXRolesController';\r\nimport AX7UserInformationController from '../Components/RequestManagement/WizardSteps/AX7/AXUserInformationController';\r\nimport D365SRolesController from '../Components/RequestManagement/WizardSteps/D365S/D365SRolesController';\r\nimport D365STeamsController from '../Components/RequestManagement/WizardSteps/D365S/D365STeamsController';\r\nimport D365SUserInformationController from '../Components/RequestManagement/WizardSteps/D365S/D365SUserInformationController';\r\nimport GPCompaniesController from '../Components/RequestManagement/WizardSteps/GP/GPCompaniesController';\r\nimport GPRolesController from '../Components/RequestManagement/WizardSteps/GP/GPRolesController';\r\nimport GPUserInformationController from '../Components/RequestManagement/WizardSteps/GP/GPUserInformationController';\r\nimport NAVPermissionSetsController from '../Components/RequestManagement/WizardSteps/NAV/NAVPermissionSetsController';\r\nimport NAVUserGroupsController from '../Components/RequestManagement/WizardSteps/NAV/NAVUserGroupsController';\r\nimport NAVUserInformationController from '../Components/RequestManagement/WizardSteps/NAV/NAVUserInformationController';\r\nimport NSDuplicateUserController from '../Components/RequestManagement/WizardSteps/NetSuite/NSDuplicateUserController';\r\nimport NSPermissionsController from '../Components/RequestManagement/WizardSteps/NetSuite/NSPermissionsController';\r\nimport NSRolesController from '../Components/RequestManagement/WizardSteps/NetSuite/NSRolesController';\r\nimport NSUserInformationController from '../Components/RequestManagement/WizardSteps/NetSuite/NSUserInformationController';\r\nimport ORResponsibilitiesController from '../Components/RequestManagement/WizardSteps/Oracle/ORResponsibilitiesController';\r\nimport ORRolesController from '../Components/RequestManagement/WizardSteps/Oracle/ORRoles.controller';\r\nimport ORUserInformationController from '../Components/RequestManagement/WizardSteps/Oracle/ORUserInformationController';\r\nimport ORCloudRolesController from '../Components/RequestManagement/WizardSteps/OracleCloud/ORCloudRolesController';\r\nimport ORCloudUserInformationController from '../Components/RequestManagement/WizardSteps/OracleCloud/ORCloudUserInformationController';\r\nimport emergencyAccessController from '../Components/RequestManagement/WizardSteps/SAP/emergencyAccess.controller';\r\nimport SAPRolesController from '../Components/RequestManagement/WizardSteps/SAP/SAPRolesController';\r\nimport SAPUserInformationController from '../Components/RequestManagement/WizardSteps/SAP/SAPUserInformationController';\r\nimport EffectiveDatesController from '../Components/RequestManagement/WizardSteps/Universal/EffectiveDatesController';\r\nimport RiskAnalysisController from '../Components/RequestManagement/WizardSteps/Universal/RiskAnalysisController';\r\nimport RequestManagementSearchExistingUsers from '../Components/RequestManagement/RequestManagementSearchExistingUsers';\r\nimport RequestManagementSelection from '../Components/RequestManagement/RequestManagementSelection';\r\nimport RequestManagementViewModelModify from '../Components/RequestManagement/RequestManagementViewModelModify';\r\nimport RequestManagementViewModelNew from '../Components/RequestManagement/RequestManagementViewModelNew';\r\nimport RequestManagementViewModelTerminate from '../Components/RequestManagement/RequestManagementViewModelTerminate';\r\nimport ax7PersonSearchLink from '../Components/RequestManagement/AX7Person/AX7Person.component';\r\nimport UPRolesController from '../Components/RequestManagement/WizardSteps/UniversalProduct/UPRolesController';\r\nimport UPUserInformationController from '../Components/RequestManagement/WizardSteps/UniversalProduct/UPUserInformationController';\r\nimport AADUserInformationController from '../Components/RequestManagement/WizardSteps/AAD/AADUserInformationController';\r\nimport AADRolesController from '../Components/RequestManagement/WizardSteps/AAD/AADRolesController';\r\nimport AADGroupsController from '../Components/RequestManagement/WizardSteps/AAD/AADGroupsController';\r\nimport AADLicensesController from '../Components/RequestManagement/WizardSteps/AAD/AADLicensesController';\r\nimport PSUserInformationController from '../Components/RequestManagement/WizardSteps/PeopleSoft/PSUserInformationController';\r\nimport PSRolesController from '../Components/RequestManagement/WizardSteps/PeopleSoft/PSRolesController';\r\nimport AX7UserGroupsController from '../Components/RequestManagement/WizardSteps/AX7/AXUserGroupsController';\r\nimport AXUserGroupsController from '../Components/RequestManagement/WizardSteps/AX2012/AXUserGroupsController';\r\nimport SAPCompositeRolesController from '../Components/RequestManagement/WizardSteps/SAP/SAPCompositeRolesController';\r\nimport salesforceUserFormController from '../Components/RequestManagement/WizardSteps/Salesforce/salesforceUserForm.controller';\r\nimport salesforceProfileFormController from '../Components/RequestManagement/WizardSteps/Salesforce/salesforceProfileForm.controller';\r\nimport salesforcePermissionSetsController from '../Components/RequestManagement/WizardSteps/Salesforce/salesforcePermissionSets.controller';\r\n\r\nexport default angular\r\n .module('app.identityManager.requestManagement', [identityManagerRequestManagementFactoriesModule, identityManagerRequestManagementServicesModule])\r\n .component('adUserSearchLink', adUserSearchLink)\r\n .component('adUserLookup', adUserLookup)\r\n .component('azureAdUserSearchLink', azureAdUserSearchLink)\r\n .component('azureAdUserLookup', azureAdUserLookup)\r\n .component('ax7PersonSearchLink', ax7PersonSearchLink)\r\n .component('existingUserExpansion', existingUserExpansion)\r\n .controller('AADUserInformationController', AADUserInformationController)\r\n .controller('AADRolesController', AADRolesController)\r\n .controller('AADGroupsController', AADGroupsController)\r\n .controller('AADLicensesController', AADLicensesController)\r\n .controller('UPRolesController', UPRolesController)\r\n .controller('UPUserInformationController', UPUserInformationController)\r\n .controller('AX2012RolesController', AXRolesController)\r\n .controller('AX2012UserInformationController', AXUserInformationController)\r\n .controller('AX2012UserGroupsController', AXUserGroupsController)\r\n .controller('AX7RolesController', AX7RolesController)\r\n .controller('AX7UserGroupsController', AX7UserGroupsController)\r\n .controller('AX7UserInformationController', AX7UserInformationController)\r\n .controller('D365SRolesController', D365SRolesController)\r\n .controller('D365STeamsController', D365STeamsController)\r\n .controller('D365SUserInformationController', D365SUserInformationController)\r\n .controller('GPCompaniesController', GPCompaniesController)\r\n .controller('GPRolesController', GPRolesController)\r\n .controller('GPUserInformationController', GPUserInformationController)\r\n .controller('NAVPermissionSetsController', NAVPermissionSetsController)\r\n .controller('NAVUserGroupsController', NAVUserGroupsController)\r\n .controller('NAVUserInformationController', NAVUserInformationController)\r\n .controller('NSDuplicateUserController', NSDuplicateUserController)\r\n .controller('NSPermissionsController', NSPermissionsController)\r\n .controller('NSRolesController', NSRolesController)\r\n .controller('NSUserInformationController', NSUserInformationController)\r\n .controller('ORResponsibilitiesController', ORResponsibilitiesController)\r\n .controller('ORRolesController', ORRolesController)\r\n .controller('ORUserInformationController', ORUserInformationController)\r\n .controller('ORCloudRolesController', ORCloudRolesController)\r\n .controller('ORCloudUserInformationController', ORCloudUserInformationController)\r\n .controller('EmergencyAccessUsageController', emergencyAccessController)\r\n .controller('SAPRolesController', SAPRolesController)\r\n .controller('SAPCompositeRolesController', SAPCompositeRolesController)\r\n .controller('SAPUserInformationController', SAPUserInformationController)\r\n .controller('salesforceUserFormController', salesforceUserFormController)\r\n .controller('salesforceProfileFormController', salesforceProfileFormController)\r\n .controller('salesforcePermissionSetsController', salesforcePermissionSetsController)\r\n .controller('EffectiveDatesController', EffectiveDatesController)\r\n .controller('RiskAnalysisController', RiskAnalysisController)\r\n .controller(\"RequestManagementSearchExistingUsers\", RequestManagementSearchExistingUsers)\r\n .controller(\"requestManagementSelection\", RequestManagementSelection)\r\n .controller(\"requestManagementModifyViewModel\", RequestManagementViewModelModify)\r\n .controller(\"requestManagementNewViewModel\", RequestManagementViewModelNew)\r\n .controller(\"requestManagementTerminateViewModel\", RequestManagementViewModelTerminate)\r\n .controller('PSUserInformationController', PSUserInformationController)\r\n .controller('PSRolesController', PSRolesController)\r\n .name;","import { customDatePickerFilter, customAutoCompleteFilter, standardGridPageSize, customBooleanFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, SavedReportSelectorService, $filter, CustomReportServices, objectIdDataService, $location, helperService, reportsService, reportsDataService, requestHistoryDataService) {\r\n const vm = this,\r\n timeout = 408;\r\n\r\n vm.runSavedReport = runSavedReport;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n vm.deselectSelectedStatus = deselectSelectedStatus;\r\n vm.viewDetails = viewDetails;\r\n vm.openStartDate = openStartDate;\r\n vm.openEndDate = openEndDate;\r\n vm.applySelectedFilter = applySelectedFilter;\r\n vm.clearAllFilters = clearAllFilters;\r\n vm.onReadGrid = onReadGrid;\r\n vm.onApplyFilter = onApplyFilter;\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n\r\n vm.startDatePopup = {\r\n opened: false\r\n }\r\n\r\n vm.endDatePopup = {\r\n opened: false\r\n };\r\n\r\n vm.dateCriteria = [\r\n {\r\n DataType: \"DateTime\",\r\n FieldName: \"Date\",\r\n IsNullable: false\r\n }\r\n ];\r\n\r\n vm.hasDetailedVersion = true;\r\n vm.statusSelectedIds = [];\r\n\r\n //Start Date and End Date picker settings\r\n vm.startDateOptions = {\r\n dateDisabled: disabled,\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n vm.endDateOptions = {\r\n showWeeks: false,\r\n formatYear: 'yy',\r\n maxDate: new Date(),\r\n startingDay: 1\r\n };\r\n\r\n // Set up Grid\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = false;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n vm.filterCriteria.dateQuery = [];\r\n // ---\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if (vm.grid) {\r\n vm.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n activate();\r\n\r\n async function activate() {\r\n if ($location.path().includes('Detailed')) {\r\n vm.isDetailed = true;\r\n vm.urlString = apiUrl + 'api/identitymanager/requests/history/detailed';\r\n vm.requestedDate = { field: \"RequestDate\", dir: \"desc\" }\r\n } else {\r\n vm.isDetailed = false;\r\n vm.urlString = apiUrl + 'api/identitymanager/requests/history';\r\n vm.requestedDate = { field: \"RequestedDate\", dir: \"desc\" }\r\n }\r\n\r\n await setObjectId();\r\n\r\n createRequestHistoryGrid()\r\n await getStatuses();\r\n today();\r\n thirtyDaysAgo();\r\n\r\n await getReportMetadata();\r\n\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n if ($rootScope.loadedSavedReport) {\r\n runSavedReport();\r\n }\r\n }\r\n\r\n async function setObjectId() {\r\n const objectId = await objectIdDataService.getObjectID();\r\n let securityObject = helperService.getSecurityObjectDetailsFromObjectId(objectId);\r\n\r\n vm.ObjectId = objectId;\r\n vm.reportName = securityObject.Name;\r\n vm.reportId = securityObject.ReportID;\r\n vm.filtersDataSource = CustomReportServices.setfiltersDataSource(vm.ObjectId);\r\n }\r\n\r\n function runSavedReport() {\r\n if (vm.gridReady && $rootScope.loadedSavedReport && vm.statusDataSource && vm.filterCriteria.fields) {\r\n $scope.$evalAsync(() => {\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.dateQuery = reportsService.getSavedReportDateFilters();\r\n generateGridWithSelectedValues();\r\n vm.filterCriteria.needsUpdate = true;\r\n });\r\n } else if (vm.gridReady && !$rootScope.loadedSavedReport && vm.statusDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n populateCriteriaModel();\r\n }\r\n };\r\n\r\n async function getStatuses() {\r\n let statuses = await requestHistoryDataService.getStatuses();\r\n\r\n statuses = $filter('orderBy')(statuses.data, 'StatusName');\r\n\r\n vm.allStatusesDropdownObject = { \"StatusName\": \"All Statuses\", \"Id\": 'AllObjectsInMultiSelect' };\r\n statuses.unshift(vm.allStatusesDropdownObject);\r\n\r\n vm.statusDataSource = statuses;\r\n vm.statusSelectedIds = [statuses.first()];\r\n vm.statusSelectedIds = SavedReportSelectorService.checkSavedReportForStatus($rootScope.loadedSavedReport, statuses, vm.statusSelectedIds);\r\n }\r\n\r\n function deselectSelectedStatus() {\r\n vm.statusSelectedIds = helperService.deselectAllObjectsIfOtherIsClicked(vm.statusSelectedIds, vm.allStatusesDropdownObject);\r\n populateCriteriaModel();\r\n };\r\n\r\n function populateCriteriaModel() {\r\n // do not continue if the proper criteria are not loaded\r\n if (!vm.startDate || !vm.endDate || vm.statusSelectedIds === undefined) {\r\n return;\r\n }\r\n\r\n let criteria = [];\r\n\r\n vm.savedStartDate = helperService.setDateToBeginningOfDay(vm.startDate);\r\n vm.savedEndDate = helperService.setDateToEndOfDay(vm.endDate);\r\n\r\n vm.statuses = helperService.returnNullIfAllIsFound(vm.statusSelectedIds.map(el => el.Id));\r\n\r\n criteria.push(CustomReportServices.CreateCriteria(\"StartDate\", 'StartDate', vm.savedStartDate, vm.savedStartDate));\r\n criteria.push(CustomReportServices.CreateCriteria(\"EndDate\", 'EndDate', vm.savedEndDate, vm.savedEndDate));\r\n vm.statusSelectedIds.forEach((row, i) => criteria.push(CustomReportServices.CreateCriteria(\"Statuses\", 'Status', row.StatusName, row.Id)));\r\n\r\n vm.reportDetailsModel = criteria;\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0 && vm.reportName) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n };\r\n\r\n function generateGridWithSelectedValues() {\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.dataSource._filter = null;\r\n vm.grid.dataSource._sort = null;\r\n }\r\n\r\n if (vm.startDate <= vm.endDate) {\r\n populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, vm.grid, true);\r\n\r\n } else {\r\n helperService.showErrorMessage(\"Start Date must be before or equal to End Date\");\r\n }\r\n };\r\n\r\n function createRequestHistoryGrid() {\r\n if (vm.isDetailed === true) {\r\n vm.mainGridColumns = [\r\n { field: \"RequestDate\", title: \"Request Date\", template: \"{{ dataItem.RequestDate | date: 'short'}} \", filterable: customDatePickerFilter, width: 100 },\r\n { field: \"Requestor\", title: \"Requestor\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestAction\", title: \"Request Action\", filterable: customAutoCompleteFilter, width: 100 }, \r\n { field: \"AffectedUser\", title: \"Affected User\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"AffectedUserEmail\", title: \"Affected User Email\", filterable: customAutoCompleteFilter, width: 125 },\r\n { field: \"TicketId\", title: \"Ticket ID\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"StatusID\", title: \"Status ID\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestStatus\", title: \"Request Status\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestUserId\", title: \"Request User ID\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestUserName\", title: \"Request User Name\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestUserEventType\", title: \"Request User Event Type\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestUserProductName\", title: \"Request User Product Name\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"UserStartDate\", title: \"User Start Date\", template: \"{{ dataItem.UserStartDate | date: 'short'}} \", filterable: customDatePickerFilter, width: 100 },\r\n { field: \"UserEndDate\", title: \"User End Date\", template: \"{{ dataItem.UserEndDate | date: 'short'}} \", filterable: customDatePickerFilter, width: 100 },\r\n { field: \"RequestUserStatus\", title: \"Request User Status\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestUserReviewedOn\", title: \"Request User Reviewed On\", template: \"{{ dataItem.RequestUserReviewedOn | date: 'short'}} \", filterable: customDatePickerFilter, width: 100 },\r\n { field: \"RequestUserReviewedByName\", title: \"Request User Reviewed By\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestUserIsApproved\", title: \"Request User Is Approved\", filterable: customBooleanFilter, width: 125 },\r\n { field: \"RequestAccessType\", title: \"Request Access Type\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestAccessUserId\", title: \"Request Access User ID\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"Access\", title: \"Access\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestAccessEventType\", title: \"Request Access Event Type\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestAccessProductName\", title: \"Request Access Product Name\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"AccessStartDate\", title: \"Access Start Date\", template: \"{{ dataItem.AccessStartDate | date: 'short'}} \", filterable: customDatePickerFilter, width: 100 },\r\n { field: \"AccessEndDate\", title: \"Access End Date\", template: \"{{ dataItem.AccessEndDate | date: 'short'}} \", filterable: customDatePickerFilter, width: 100 },\r\n { field: \"RequestAccessStatus\", title: \"Request Access Status\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestAccessReviewedOn\", title: \"Request Access Reviewed On\", template: \"{{ dataItem.RequestAccessReviewedOn | date: 'short'}} \", filterable: customDatePickerFilter, width: 100 },\r\n { field: \"RequestAccessReviewedByName\", title: \"Request Access Reviewed By\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestAccessIsApproved\", title: \"Request Access Is Approved\", filterable: customBooleanFilter, width: 125 },\r\n { field: \"ApprovalNotes\", title: \"Approval Notes\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestorNotes\", title: \"Requestor Notes\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestorEmail\", title: \"Requestor Email\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"CancelledBy\", title: \"Cancelled By\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"CancelledComments\", title: \"Cancelled Comments\", filterable: customAutoCompleteFilter, width: 350 },\r\n { template: 'Details', title: \"\", width: 100 }\r\n ];\r\n } else {\r\n vm.mainGridColumns = [\r\n { field: \"RequestedDate\", title: \"Request Date\", template: \"{{ dataItem.RequestedDate | date: 'short'}} \", filterable: customDatePickerFilter, width: 100 },\r\n { field: \"RequestorName\", title: \"Requestor\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestAction\", title: \"Request Action\", filterable: customAutoCompleteFilter, width: 100 }, \r\n { field: \"AffectedObjectUserName\", title: \"Affected User\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"AffectedUserEmail\", title: \"Affected User Email\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"TicketId\", title: \"Ticket ID\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"Status\", title: \"Status\", filterable: customAutoCompleteFilter, width: 100 },\r\n { template: 'Details', title: \"\", width: 100 }\r\n ];\r\n }\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n RequestedDate: { type: \"date\" },\r\n RequestDate: { type: \"date\" },\r\n UserStartDate: { type: \"date\" },\r\n UserEndDate: { type: \"date\" },\r\n AccessStartDate: { type: \"date\" },\r\n AccessEndDate: { type: \"date\" },\r\n RequestUserIsApproved: { type: \"boolean\" },\r\n RequestAccessIsApproved: { type: \"boolean\" },\r\n RequestUserReviewedOn: { type: \"date\" },\r\n RequestAccessReviewedOn: { type: \"date\" },\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n sort: vm.requestedDate,\r\n transport: {\r\n read: async options => {\r\n delete $rootScope.loadedSavedReport;\r\n let payLoad = {\r\n StartDate: vm.savedStartDate,\r\n EndDate: vm.savedEndDate,\r\n Statuses: vm.statuses\r\n };\r\n\r\n vm.sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n payLoad['QueryInput'] = vm.sortsAndFilters;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n payLoad['QueryInput'].Filters = payLoad['QueryInput'].Filters.concat(vm.filterCriteria.query);\r\n payLoad['QueryInput'].DateFilters = vm.filterCriteria.dateQuery;\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n\r\n try {\r\n let { data } = await requestHistoryDataService.getRequests(vm.urlString, payLoad, { params: { 'pagesize': options.data.pageSize, 'page': options.data.page } }),\r\n reportData = data._embedded.reportData;\r\n\r\n reportData.forEach(row => {\r\n if (row.AffectedObject) {\r\n const AffectedObject = JSON.parse(row.AffectedObject);\r\n if (AffectedObject) {\r\n row[\"AffectedObjectUserName\"] = AffectedObject.Name;\r\n }\r\n }\r\n });\r\n\r\n options.success(data);\r\n vm.enableGrid = true;\r\n } catch (error) {\r\n if (error.status !== timeout) {\r\n helperService.showErrorMessage(error.data);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n setLayout();\r\n }\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.sortable = false;\r\n\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n\r\n function setLayout() {\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout(vm, null);\r\n }\r\n }\r\n\r\n function viewDetails(dataItem) {\r\n const data = JSON.stringify(vm.gridDataSource.data());\r\n if (data) {\r\n localStorage.setItem(\"requestHistoryReportData\", data);\r\n }\r\n $location.path('/IdentityManager/RequestDetails').search({ RequestId: dataItem.RequestId, Version: dataItem.RequestVersion });\r\n }\r\n\r\n //Set Datetime for start and end date time pickers\r\n function today() {\r\n vm.endDate = new Date();\r\n vm.endDate = SavedReportSelectorService.checkSavedReportForDate($rootScope.loadedSavedReport, \"EndDate\", vm.endDate);\r\n }\r\n\r\n function thirtyDaysAgo() {\r\n let newDate = new Date();\r\n\r\n newDate.setDate(newDate.getDate() - 30);\r\n vm.startDate = newDate;\r\n vm.startDate = SavedReportSelectorService.checkSavedReportForDate($rootScope.loadedSavedReport, \"StartDate\", vm.startDate);\r\n };\r\n\r\n function disabled(data) {\r\n let date = data.date,\r\n mode = data.mode;\r\n\r\n return mode === 'day' && date > vm.endDate;\r\n }\r\n\r\n function openStartDate() {\r\n vm.startDatePopup.opened = true;\r\n }\r\n\r\n function openEndDate() {\r\n vm.endDatePopup.opened = true;\r\n }\r\n\r\n function applySelectedFilter() {\r\n helperService.applyFilterCatchError(vm);\r\n }\r\n\r\n // apply filters for Detailed report toolbar\r\n function onApplyFilter(selectedFilter) {\r\n const currentOptions = vm.grid.getOptions();\r\n\r\n if (selectedFilter && selectedFilter.Filters && selectedFilter.Filters.length > 0) {\r\n currentOptions.dataSource.filter = helperService.convertFiltersForGrid(_, selectedFilter.Filters);\r\n try {\r\n vm.grid.dataSource._filter = currentOptions.dataSource.filter;\r\n vm.grid.dataSource.read();\r\n }\r\n catch (err) {\r\n vm.gridDataSource.filter({});\r\n }\r\n }\r\n }\r\n\r\n function clearAllFilters() {\r\n vm.gridDataSource.filter({});\r\n }\r\n\r\n function onReadGrid() {\r\n vm.gridDataSource.read();\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n async function getReportMetadata() {\r\n let data = await reportsDataService.getReportMetadata(vm.reportId);\r\n\r\n vm.reportMetadata = data.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n\r\n return vm.reportMetadata;\r\n }\r\n}\r\n","import controller from \"./requestHistory.controller\";\r\n\r\n/* requestHistory.component.js */\r\n\r\n/**\r\n * @desc component for identity manager request history\r\n * @example \r\n */\r\n\r\nconst requestHistory = {\r\n controller: controller,\r\n controllerAs: 'rhvm',\r\n templateUrl: '/App/Components/requestHistory/requestHistory.tmpl.html'\r\n};\r\n\r\nexport default requestHistory;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, approvalRulesDataService, $filter, helperService) {\r\n\r\n const vm = this;\r\n vm.updatedPriorities = [];\r\n\r\n vm.priorityChanged = priorityChanged;\r\n vm.updateRuleTypes = updateRuleTypes;\r\n vm.dismiss = dismiss;\r\n\r\n activate();\r\n\r\n function activate() {\r\n getApprovalRuleTypes();\r\n }\r\n\r\n async function getApprovalRuleTypes() {\r\n let response = await approvalRulesDataService.getApprovalRuleTypes();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.approvalRuleTypesDataSource = response.data;\r\n }\r\n\r\n function priorityChanged(ruleType) {\r\n if (ruleType.Priority > 0) {\r\n const ruleTypeToUpdate = {\r\n Id: ruleType.Id,\r\n Priority: ruleType.Priority\r\n };\r\n const ruleTypeIndex = vm.updatedPriorities.findIndex(e => e.Id === ruleType.Id);\r\n if (ruleTypeIndex < 0) {\r\n vm.updatedPriorities.push(ruleTypeToUpdate);\r\n } else {\r\n vm.updatedPriorities[ruleTypeIndex] = ruleTypeToUpdate;\r\n }\r\n }\r\n }\r\n\r\n async function updateRuleTypes() {\r\n vm.updateInProgress = new createSpinner();\r\n const ruleTypes = vm.updatedPriorities;\r\n try {\r\n for (const ruleType of ruleTypes) {\r\n await approvalRulesDataService.updateApprovalRuleType(ruleType.Id, ruleType);\r\n }\r\n await helperService.successfulSaveButton(vm.updateInProgress);\r\n cancel();\r\n } catch {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, dataService, manageDataDataService, configurationDataService, requesterGroupsDataService, approvalGroupsDataService, riskLevelsData, $http, helperService, approvalRulesDataService, supervisorRuleDisabled, allCompaniesRuleDisabled, companyTemplatesData, ownershipGroupsDataService, modalType, approvalRule) {\r\n\r\n const vm = this;\r\n\r\n vm.supervisorRuleDisabled = supervisorRuleDisabled;\r\n vm.allCompaniesRuleDisabled = allCompaniesRuleDisabled;\r\n\r\n vm.helperService = helperService;\r\n vm.dismiss = dismiss;\r\n vm.saveApprovalRule = saveApprovalRule;\r\n vm.ruleTypeDropdownChange = ruleTypeDropdownChange;\r\n vm.productDropdownChange = productDropdownChange;\r\n vm.enforceCompanyApprovalRulesChange = enforceCompanyApprovalRulesChange;\r\n vm.userGroupDropdownChange = userGroupDropdownChange;\r\n vm.dropdownChange = dropdownChange;\r\n vm.modalType = modalType;\r\n vm.updateAutoApproveUser = updateAutoApproveUser; \r\n\r\n vm.updateInProgress = false;\r\n vm.configUpdated = false;\r\n vm.dropdownsLoaded = false;\r\n if (modalType === 'Edit') {\r\n vm.disableSaveButton = true;\r\n } else {\r\n vm.disableSaveButton = false;\r\n }\r\n vm.approversList = [];\r\n vm.availableProducts = [];\r\n\r\n\r\n activate();\r\n\r\n async function activate() { \r\n vm.ruleTypesLoading = true;\r\n vm.approversLoading = true;\r\n vm.usersLoading = true;\r\n vm.hideApproverSection = false;\r\n vm.saveEnforceApprovalRulesConfig = false;\r\n await getRuleTypes();\r\n selectInitialRuleType();\r\n if (vm.availableProducts.some(prod => prod.ID === 'AX7')) {\r\n let companyApprovalRuleConfig = await configurationDataService.getProductConfigurationValueByName('ax7', 'AX7_ImEnforceCompanyApprovalRules');\r\n vm.AX7_ImEnforceCompanyApprovalRules = companyApprovalRuleConfig.data.Value; \r\n }\r\n setEnforceApprovalRulesToggle();\r\n await getUsers();\r\n await getApprovalGroups();\r\n getRiskLevels();\r\n getApplications();\r\n getCompanyTemplates();\r\n if (vm.selectedRuleType !== 7 && vm.selectedRuleType !== 2) {\r\n filterApproverDropdown();\r\n }\r\n vm.dropdownsLoaded = true;\r\n }\r\n\r\n function setEnforceApprovalRulesToggle() { \r\n //define toggle default value to False when adding new rule\r\n if (modalType === 'Edit') {\r\n vm.enforceCompanyApprovalRules = vm.AX7_ImEnforceCompanyApprovalRules;\r\n } else {\r\n vm.enforceCompanyApprovalRules = '0';\r\n }\r\n }\r\n\r\n function updateAutoApproveUser() {\r\n if (modalType === 'Edit') {\r\n vm.disableSaveButton = false;\r\n if (!vm.autoApproveUser && !vm.selectedApprover) {\r\n vm.selectedApprover = vm.approverUserGroupDataSource[0];\r\n }\r\n }\r\n }\r\n\r\n async function selectInitialRuleType() {\r\n vm.isUser = true;\r\n vm.isRole = false;\r\n vm.isRiskTolerance = false;\r\n vm.isApplication = false;\r\n vm.isGroup = false;\r\n vm.isRequest = false;\r\n vm.isCompany = false;\r\n vm.isCompanyTemplate = false;\r\n vm.requestApplicationDataSource = [\r\n {\r\n Name: 'New',\r\n Id: 1\r\n },\r\n {\r\n Name: 'Modify',\r\n Id: 2\r\n },\r\n {\r\n Name: 'Terminate',\r\n Id: 3\r\n }\r\n ];\r\n vm.selectedRequest = vm.requestApplicationDataSource[0];\r\n\r\n if (modalType === 'Edit') {\r\n vm.isUser = false;\r\n switch (approvalRule.TypeId) {\r\n case 1:\r\n vm.isUser = true;\r\n break;\r\n case 2:\r\n vm.isRole = true;\r\n await getRoleOwnershipGroups();\r\n break;\r\n case 3:\r\n vm.isRiskTolerance = true;\r\n vm.riskToleranceLoading = true;\r\n break;\r\n case 4:\r\n vm.isApplication = true;\r\n vm.applicationLoading = true;\r\n break;\r\n case 6:\r\n vm.isRequest = true;\r\n vm.selectedRequest = vm.requestApplicationDataSource.find(requestAction => requestAction.Name === approvalRule.RequesterName);\r\n break;\r\n case 8:\r\n vm.isCompany = true;\r\n vm.companiesDropdownLoading = true;\r\n await getProducts();\r\n break;\r\n case 9:\r\n vm.isCompanyTemplate = true;\r\n vm.companyTemplatesLoading = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n async function getRuleTypes() {\r\n let response = await approvalRulesDataService.getApprovalRuleTypes();\r\n if (vm.supervisorRuleDisabled) {\r\n response.data = response.data.filter(ruleType => ruleType.Name !== 'Supervisor');\r\n }\r\n\r\n let showCompanyType = false;\r\n await getProducts();\r\n\r\n if (vm.availableProducts.some(prod => prod.ID === 'AX' || prod.ID === 'GP' || prod.ID === 'D365S' || prod.ID === 'AX7' || prod.ID === 'NAV')) {\r\n showCompanyType = true;\r\n }\r\n\r\n if (!showCompanyType) {\r\n response.data = response.data.filter(ruleType => ruleType.Name !== 'Company');\r\n }\r\n\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.ruleTypeDataSource = response.data;\r\n if (modalType === 'Edit') {\r\n vm.selectedRuleType = approvalRule.TypeId;\r\n vm.autoApproveUser = approvalRule.AutoApproveUser;\r\n } else {\r\n vm.selectedRuleType = 1;\r\n }\r\n vm.ruleTypesLoading = false;\r\n return vm.ruleTypeDataSource;\r\n }\r\n\r\n async function getUsers() {\r\n vm.userGroupDataSource = [];\r\n const users = await dataService.getUsers();\r\n vm.usersDataSource = $filter('filter')(users.data, { Active: true });\r\n vm.usersDataSource.forEach(user => {\r\n vm.userGroupDataSource.push({ Name: user.UserLogonName, Id: user.UserID, Type: 'User' });\r\n });\r\n\r\n const requesterGroupResponse = await requesterGroupsDataService.getRequesterGroups();\r\n requesterGroupResponse.data.forEach(group => {\r\n vm.userGroupDataSource.push({ Name: group.Name, Id: group.Id, Type: 'Group' });\r\n });\r\n\r\n if (vm.userGroupDataSource.length > 0 && modalType === 'Edit' && approvalRule.RequesterType === 'User') {\r\n vm.selectedUser = vm.userGroupDataSource.find(user => user.Name === approvalRule.RequesterName);\r\n } else if (vm.userGroupDataSource.length > 0) {\r\n vm.selectedUser = vm.userGroupDataSource[0];\r\n }\r\n vm.usersLoading = false;\r\n\r\n return vm.userGroupDataSource;\r\n }\r\n\r\n async function getApprovalGroups() {\r\n const approvalGroups = await approvalGroupsDataService.getApprovalGroups();\r\n approvalGroups.data.forEach(group => {\r\n vm.approversList.push({ Name: group.Name, Id: group.Id, Type: 'Group' });\r\n });\r\n vm.usersDataSource.forEach(user => {\r\n vm.approversList.push({ Name: user.UserLogonName, Id: user.UserID, Type: 'User' });\r\n });\r\n vm.approversList = $filter('orderBy')(vm.approversList, 'Name');\r\n vm.approversLoading = false;\r\n return vm.approversList;\r\n }\r\n\r\n async function getRiskLevels() {\r\n vm.riskToleranceLoading = true;\r\n let response = await riskLevelsData.getRiskLevels();\r\n vm.riskDataSource = response.data;\r\n if (vm.riskDataSource.length > 0 && modalType === 'Edit' && approvalRule.RequesterType === 'Risk Tolerance') {\r\n vm.selectedRiskTolerance = vm.riskDataSource.find(riskLevel => riskLevel.Name === approvalRule.RequesterName);\r\n } else if (vm.riskDataSource.length > 0) {\r\n vm.selectedRiskTolerance = vm.riskDataSource[0];\r\n }\r\n vm.riskToleranceLoading = false;\r\n }\r\n\r\n async function getApplications() {\r\n vm.applicationLoading = true;\r\n let response = await $http.get(apiUrl + 'api/identitymanager/applications');\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.applicationDataSource = response.data;\r\n if (vm.applicationDataSource.length > 0 && modalType === 'Edit' && approvalRule.RequesterType === 'Application') {\r\n vm.selectedApplication = vm.applicationDataSource.find(application => application.Name === approvalRule.RequesterName);\r\n } else if (vm.applicationDataSource && vm.applicationDataSource.length > 0) {\r\n vm.selectedApplication = vm.applicationDataSource[0];\r\n }\r\n vm.applicationLoading = false;\r\n }\r\n\r\n async function getCompanyTemplates() {\r\n vm.companyTemplatesLoading = true;\r\n let response = await companyTemplatesData.getCompanyTemplates();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.companyTemplateDataSource = response.data;\r\n\r\n\r\n\r\n if (vm.companyTemplateDataSource.length === 0) {\r\n vm.companyTemplateDataSource.unshift({ \"Companies\": null, \"Id\": null, \"Name\": \"-- No Company Templates Available --\" });\r\n vm.selectedCompanyTemplate = vm.companyTemplateDataSource[0];\r\n } else if (vm.companyTemplateDataSource.length > 0 && modalType === 'Edit' && approvalRule.RequesterType === 'Company Template') {\r\n vm.selectedCompanyTemplate = vm.companyTemplateDataSource.find(companyTemplate => companyTemplate.Id === approvalRule.RequesterId);\r\n } else {\r\n vm.selectedCompanyTemplate = vm.companyTemplateDataSource[0];\r\n }\r\n\r\n vm.companyTemplatesLoading = false;\r\n\r\n }\r\n\r\n async function getProducts() {\r\n vm.productsLoading = true;\r\n let response = await $http.get(`${apiUrl}api/core/modules/identitymanager/products`);\r\n vm.availableProducts = response.data;\r\n if (vm.isCompany) {\r\n vm.productsDataSource = vm.availableProducts.filter(product => product.ID === 'AX' || product.ID === 'AX7' || product.ID === 'NAV' || product.ID === 'D365S' || product.ID === 'GP');\r\n }\r\n\r\n vm.productsDataSource = response.data;\r\n if (response.data.length > 0 && modalType === 'Edit' && approvalRule.ProductId) {\r\n vm.selectedProduct = vm.productsDataSource.find(product => product.ID === approvalRule.ProductId);\r\n } else if (response.data.length > 0) {\r\n vm.selectedProduct = response.data[0];\r\n }\r\n vm.productsLoading = false;\r\n if (vm.isCompany) {\r\n loadCompanies();\r\n }\r\n return vm.availableProducts;\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n //Functions\r\n\r\n function saveApprovalRule() {\r\n let postBody = {};\r\n\r\n switch (vm.selectedRuleType) {\r\n case 1:\r\n postBody.RequesterId = vm.selectedUser.Id;\r\n postBody.RequesterType = vm.selectedUser.Type;\r\n postBody.RequesterName = vm.selectedUser.Name;\r\n break;\r\n case 2:\r\n postBody.RequesterId = vm.selectedOwnershipGroup.Id;\r\n postBody.RequesterType = 'RoleOwnershipGroup';\r\n break;\r\n case 3:\r\n postBody.RequesterId = vm.selectedRiskTolerance.Id;\r\n postBody.RequesterName = vm.selectedRiskTolerance.Name;\r\n postBody.RequesterType = 'RiskTolerance';\r\n break;\r\n case 4:\r\n postBody.RequesterId = vm.selectedApplication.Id;\r\n postBody.RequesterName = vm.selectedApplication.Name;\r\n postBody.RequesterType = 'Application';\r\n break;\r\n case 5:\r\n break;\r\n case 6:\r\n postBody.RequesterId = vm.selectedRequest.Id;\r\n postBody.RequesterName = vm.selectedRequest.Name;\r\n postBody.AutoApproveUser = vm.autoApproveUser;\r\n postBody.RequesterType = 'RequestAction';\r\n break;\r\n case 7:\r\n break;\r\n case 8:\r\n postBody.ConfigUpdated = false;\r\n\r\n if (vm.selectedCompany.ID === '-1') {\r\n vm.saveEnforceApprovalRulesConfig = true;\r\n }\r\n\r\n if (vm.configUpdated) {\r\n postBody.ConfigUpdated = true;\r\n }\r\n\r\n postBody.RequesterId = vm.selectedCompany.ID;\r\n postBody.RequesterName = vm.selectedCompany.Name;\r\n postBody.ProductId = vm.selectedCompany.ProductID;\r\n postBody.RequesterType = 'Company';\r\n break;\r\n case 9:\r\n postBody.RequesterId = vm.selectedCompanyTemplate.Id;\r\n postBody.RequesterName = vm.selectedCompanyTemplate.Name;\r\n postBody.RequesterType = 'CompanyTemplate';\r\n break;\r\n default:\r\n postBody.RequesterId = vm.selectedCompanyTemplate.Id;\r\n postBody.RequesterName = vm.selectedCompanyTemplate.Name;\r\n postBody.RequesterType = 'CompanyTemplate';\r\n break;\r\n }\r\n\r\n postBody.TypeId = vm.selectedRuleType;\r\n\r\n if (vm.selectedRuleType !== 7 && vm.selectedRuleType !== 2 && !vm.autoApproveUser) {\r\n postBody.ApproverId = vm.enforceCompanyApprovalRules === '1' ? null : vm.selectedApprover.Id;\r\n postBody.ApproverType = vm.enforceCompanyApprovalRules === '1' ? null : vm.selectedApprover.Type;\r\n postBody.ApproverName = vm.enforceCompanyApprovalRules === '1' ? null : vm.selectedApprover.Name;\r\n }\r\n\r\n if (modalType === 'Edit') {\r\n postBody.ApprovalRuleId = approvalRule.Id;\r\n }\r\n\r\n addRule(postBody);\r\n }\r\n\r\n async function addRule(data) {\r\n vm.updateInProgress = new createSpinner();\r\n try {\r\n if (vm.saveEnforceApprovalRulesConfig) {\r\n let configData = {\r\n \"Configurations\": [{\r\n \"Name\": 'AX7_ImEnforceCompanyApprovalRules',\r\n \"Value\": vm.enforceCompanyApprovalRules\r\n }],\r\n \"ProductId\": data.ProductId\r\n };\r\n\r\n await manageDataDataService.setProductConfiguration(data.ProductId, configData);\r\n }\r\n\r\n if (modalType === 'Edit') {\r\n await approvalRulesDataService.updateApprovalRule(approvalRule.Id, data);\r\n } else {\r\n await approvalRulesDataService.addApprovalRule(data);\r\n }\r\n\r\n await helperService.successfulSaveButton(vm.updateInProgress);\r\n cancel();\r\n } catch {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n function userGroupDropdownChange() {\r\n vm.disableSaveButton = false;\r\n filterApproverDropdown();\r\n }\r\n\r\n function dropdownChange() {\r\n vm.disableSaveButton = false;\r\n }\r\n\r\n async function ruleTypeDropdownChange() {\r\n vm.isUser = false;\r\n vm.isRole = false;\r\n vm.isRiskTolerance = false;\r\n vm.isApplication = false;\r\n vm.isRequest = false;\r\n vm.isCompany = false;\r\n vm.isCompanyTemplate = false;\r\n\r\n switch (vm.selectedRuleType) {\r\n case 1:\r\n vm.isUser = true;\r\n break;\r\n case 2:\r\n vm.isRole = true;\r\n await getRoleOwnershipGroups();\r\n break;\r\n case 3:\r\n vm.isRiskTolerance = true;\r\n break;\r\n case 4:\r\n vm.isApplication = true;\r\n break;\r\n case 6:\r\n vm.isRequest = true;\r\n break;\r\n case 8:\r\n vm.isCompany = true;\r\n await getProducts();\r\n break;\r\n case 9:\r\n vm.isCompanyTemplate = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n filterApproverDropdown();\r\n }\r\n\r\n function productDropdownChange() {\r\n vm.disableSaveButton = false;\r\n if (vm.isCompany) {\r\n loadCompanies();\r\n }\r\n }\r\n\r\n function enforceCompanyApprovalRulesChange(toggled) {\r\n if (vm.selectedCompany.Name === 'All Companies' && vm.enforceCompanyApprovalRules === '1') {\r\n vm.hideApproverSection = true;\r\n } else {\r\n vm.hideApproverSection = false;\r\n }\r\n\r\n if (toggled) {\r\n vm.updateConfig = true;\r\n }\r\n vm.disableSaveButton = false;\r\n }\r\n\r\n async function getRoleOwnershipGroups() {\r\n vm.ownershipGroupsDropdownLoading = true;\r\n let { data } = await ownershipGroupsDataService.getOwnershipGroups();\r\n vm.roleOwnershipGroupsDataSource = data.filter(group => group.GroupType === 'role');\r\n\r\n if (vm.roleOwnershipGroupsDataSource.length === 0) {\r\n vm.roleOwnershipGroupsDataSource.unshift({ \"GroupType\": \"Role\", \"Name\": \"-- No Ownership Groups Available --\", \"Id\": null });\r\n vm.selectedOwnershipGroup = vm.roleOwnershipGroupsDataSource[0];\r\n } else if (vm.roleOwnershipGroupsDataSource.length > 0 && modalType === 'Edit' && approvalRule.RequesterType === 'Role Ownership Group') {\r\n vm.selectedOwnershipGroup = vm.roleOwnershipGroupsDataSource.find(ownershipGroup => ownershipGroup.Id.toString() === approvalRule.RequesterId);\r\n } else {\r\n vm.selectedOwnershipGroup = vm.roleOwnershipGroupsDataSource[0];\r\n }\r\n\r\n vm.ownershipGroupsDropdownLoading = false;\r\n }\r\n\r\n\r\n async function loadCompanies() {\r\n vm.companiesDropdownLoading = true;\r\n let response;\r\n if (vm.selectedProduct.Type === 'AX7') {\r\n let allCompaniesOption = {\r\n Name: 'All Companies',\r\n ID: '-1',\r\n Type: 'All',\r\n ProductID: vm.selectedProduct.ID\r\n };\r\n\r\n // we need an alternate call for D365FSC companies so we can include Org Hierarchies\r\n response = await $http.get(`${apiUrl}api/identitymanager/ax7/companies`);\r\n response.data = response.data.map(company => {\r\n return {\r\n Name: company.CompanyName,\r\n ID: company.CompanyId,\r\n Type: company.CompanyType,\r\n ProductID: vm.selectedProduct.ID\r\n }\r\n });\r\n\r\n if (!vm.allCompaniesRuleDisabled || (modalType === 'Edit' && approvalRule.RequesterId === '-1')) {\r\n response.data.push(allCompaniesOption);\r\n }\r\n } else {\r\n response = await dataService.getCompaniesByProductId(vm.selectedProduct.ID);\r\n }\r\n vm.companiesDataSource = response.data;\r\n vm.companiesDataSource = $filter('orderBy')(vm.companiesDataSource, 'Name');\r\n if (modalType === 'Edit' && approvalRule.TypeName === 'Company') {\r\n vm.selectedCompany = vm.companiesDataSource.find(company => company.ID === approvalRule.RequesterId);\r\n } else {\r\n vm.selectedCompany = vm.companiesDataSource[0];\r\n }\r\n\r\n enforceCompanyApprovalRulesChange(false);\r\n\r\n vm.companiesDropdownLoading = false;\r\n }\r\n\r\n //If user is the selected rule type remove the selected user from the approver list\r\n function filterApproverDropdown() {\r\n if (vm.selectedRuleType === 1) {\r\n vm.approverUserGroupDataSource = vm.approversList.filter(approver => approver.Id !== vm.selectedUser.Id);\r\n //Remove the Default Approver group from the approver list\r\n vm.approverUserGroupDataSource = vm.approverUserGroupDataSource.filter(userGroup => userGroup.Id !== 'da812a09-e9e3-46bf-9c8f-32d267b12440');\r\n\r\n if (vm.approverUserGroupDataSource.length > 0 && (!vm.selectedApprover || vm.selectedApprover.Id === vm.selectedUser.Id) && modalType === 'Edit' && approvalRule) {\r\n vm.selectedApprover = vm.approverUserGroupDataSource.find(approver => approver.Id === approvalRule.ApproverId);\r\n } else if (vm.approverUserGroupDataSource.length > 0 && (!vm.selectedApprover || vm.selectedApprover.Id === vm.selectedUser.Id)) {\r\n vm.selectedApprover = vm.approverUserGroupDataSource[0];\r\n }\r\n }\r\n else {\r\n //Remove the Default Approver group from the approver list\r\n vm.approverUserGroupDataSource = vm.approversList.filter(approver => approver.Id !== 'da812a09-e9e3-46bf-9c8f-32d267b12440');\r\n\r\n if (vm.approverUserGroupDataSource.length > 0 && (!vm.selectedApprover || vm.selectedApprover.Id === vm.selectedUser.Id) && modalType === 'Edit' && approvalRule) {\r\n vm.selectedApprover = vm.approverUserGroupDataSource.find(approver => approver.Id === approvalRule.ApproverId);\r\n\r\n if (!vm.selectedApprover && vm.isCompany) {\r\n vm.selectedApprover = vm.approverUserGroupDataSource[0];\r\n }\r\n }\r\n }\r\n }\r\n}","import { standardGridPageSize, customAutoCompleteFilter, customBooleanFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport ruleTypePriorityModalController from \"./RuleTypePriorityModal/ruleTypePriorityModal.controller\";\r\nimport swal from \"sweetalert2\";\r\nimport newEditApprovalRuleModalController from \"./NewEditApprovalRuleModal/newEditApprovalRuleModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (approvalRulesDataService, $filter, helperService, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.openNewEditModal = openNewEditModal;\r\n vm.openRuleTypePriorityModal = openRuleTypePriorityModal;\r\n vm.deleteRule = deleteRule;\r\n\r\n async function activate() {\r\n let data = await helperService.getConfigurationValue('IM_SODThresholdNewOnly');\r\n vm.IM_SODThresholdNewOnly = data;\r\n\r\n const approvalRulesGridColumns = [\r\n { field: \"TypeName\", title: \"Approval Rule Type\", filterable: customAutoCompleteFilter, width: 125 },\r\n { field: \"RequesterType\", title: \"Requested Type\", filterable: customAutoCompleteFilter },\r\n { field: \"ProductName\", title: \"Product\", filterable: customAutoCompleteFilter },\r\n { field: \"RequesterName\", title: \"Requested\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"ApproverType\", title: \"Approver Type\", filterable: customAutoCompleteFilter },\r\n { field: \"ApproverName\", title: \"Approver\", filterable: customAutoCompleteFilter },\r\n { field: \"AutoApproveUser\", title: \"Auto Approve User\", filterable: customBooleanFilter, width: 150 },\r\n { template: `Edit`, \"title\": \"Edit\", width: 65 },\r\n { template: `Delete`, \"title\": \"Delete\", width: 75 }\r\n ];\r\n\r\n vm.approvalRulesGridOptions = helperService.setMainGridOptions(approvalRulesGridColumns, 600);\r\n vm.approvalRulesGridOptions.selectable = false;\r\n\r\n vm.approvalRulesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n AutoApproveUser: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n\r\n read: async options => {\r\n try {\r\n let response = await approvalRulesDataService.getApprovalRules();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n response.data.forEach(rule => {\r\n rule.RequesterType = $filter('insertSpaceBetweenCapitalWordsAndAcronyms')(rule.RequesterType);\r\n });\r\n options.success(response.data);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n activate();\r\n\r\n\r\n\r\n async function openNewEditModal(approvalRule, modalType) {\r\n const supervisorRuleExists = vm.approvalRulesGridDataSource._data.some(rule => rule.TypeName === 'Supervisor');\r\n const allCompaniesRuleExists = vm.approvalRulesGridDataSource._data.some(rule => rule.RequesterName === 'All Companies');\r\n\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/ApprovalRules/NewEditApprovalRuleModal/newEditApprovalRuleModal.html',\r\n controller: newEditApprovalRuleModalController,\r\n controllerAs: 'nearmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n supervisorRuleDisabled: () => supervisorRuleExists,\r\n allCompaniesRuleDisabled: () => allCompaniesRuleExists,\r\n modalType: () => modalType,\r\n approvalRule: () => approvalRule\r\n }\r\n });\r\n\r\n try {\r\n await openModal.result;\r\n vm.approvalRulesGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openRuleTypePriorityModal() {\r\n vm.configDropdownOpen = false;\r\n let rulePriorityModal = $uibModal.open({\r\n templateUrl: '/App/Components/ApprovalRules/RuleTypePriorityModal/ruleTypePriorityModal.html',\r\n controller: ruleTypePriorityModalController,\r\n controllerAs: 'rtpmvm',\r\n backdrop: 'static'\r\n });\r\n\r\n try {\r\n await rulePriorityModal.result;\r\n return;\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function deleteRule(approvalRuleId) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Rule', 'Are you sure you want to this rule?', 'Delete'));\r\n await approvalRulesDataService.removeApprovalRule(approvalRuleId);\r\n vm.approvalRulesGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n\r\n }\r\n}","/* approvalRules.component.js */\r\n\r\nimport approvalRulesController from \"./approvalRules.controller\";\r\n\r\n/**\r\n * @desc component for creating, updating, and deleting Approval Rules\r\n * @example \r\n */\r\n\r\nconst approvalRules = {\r\n controller: approvalRulesController,\r\n controllerAs: 'arvm',\r\n templateUrl: '/App/Components/ApprovalRules/approvalRules.tmpl.html'\r\n};\r\n\r\nexport default approvalRules;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getRequests,\r\n getStatuses\r\n };\r\n\r\n return factory;\r\n\r\n async function getRequests(url, data, config) {\r\n try {\r\n return await $http.post(url, data, config);\r\n } catch (err) {\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getStatuses() {\r\n try {\r\n return await $http.get(`${apiUrl}api/identitymanager/requests/statuses`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","import { customAutoCompleteFilter, customDatePickerFilter, customYesNoBooleanFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $http, $location, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n\r\n vm.saveConfiguration = saveConfiguration;\r\n vm.viewDetails = viewDetails;\r\n\r\n async function activate() {\r\n vm.origValue = await helperService.getConfigurationValue('IM_ReminderThreshold');\r\n vm.IM_ReminderThreshold = vm.origValue;\r\n\r\n createOutstandingApprovalsGridDataSource();\r\n\r\n const columnsFromVM = [\r\n { field: \"RequestorName\", title: \"Requestor Name\", filterable: customAutoCompleteFilter },\r\n { field: \"GeneralUser.Name\", title: \"Affected User\", filterable: customAutoCompleteFilter },\r\n { field: \"GeneralUser.Email\", title: \"Affected User Email\", filterable: customAutoCompleteFilter },\r\n { field: \"AffectedType\", title: \"Affected Type\", filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"TicketIds\", title: \"Ticket ID\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"RequestedDate\", title: \"Request Date\", template: \"{{dataItem.RequestedDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"ExpirationDate\", title: \"Expiration Date\", template: \"{{dataItem.ExpirationDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"Action\", template: \"{{ dataItem.Action | insertSpaceBetweenCapitalWords }}\", filterable: customAutoCompleteFilter },\r\n { field: \"Status\", template: \"{{dataItem.Status | insertSpaceBetweenCapitalWords}}\", filterable: customAutoCompleteFilter }, { field: \"CanIReview\", title: \"Requires Your Review\", template: \"{{dataItem.CanIReview | booleanToYesNo}}\", filterable: customYesNoBooleanFilter },\r\n { template: \"Details\", \"title\": \"Details\", width: 100 }\r\n ];\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(columnsFromVM, 600);\r\n }\r\n\r\n activate();\r\n\r\n function saveConfiguration() {\r\n vm.origValue = vm.IM_ReminderThreshold;\r\n helperService.setConfigurationValueClosePopup('IM_ReminderThreshold', vm.IM_ReminderThreshold, vm);\r\n }\r\n\r\n function createOutstandingApprovalsGridDataSource() {\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let { data } = await $http.get(`${apiUrl}api/identitymanager/requests/outstanding`);\r\n data = $filter('orderBy')(data, 'RequestedDate', true);\r\n\r\n data.forEach(row => {\r\n if (row.AffectedObject) {\r\n let AffectedObject = JSON.parse(row.AffectedObject);\r\n if (AffectedObject) {\r\n row[\"AffectedObjectUserName\"] = AffectedObject.Name;\r\n }\r\n }\r\n });\r\n options.success(data);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n },\r\n schema: {\r\n model: {\r\n fields: {\r\n RequestedDate: { type: \"date\" },\r\n ExpirationDate: { type: \"date\" },\r\n CanIReview: { type: \"boolean\" },\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function viewDetails(dataItem) {\r\n $location.path('/IdentityManager/RequestDetails').search({ RequestId: dataItem.Id, Version: dataItem.Version });\r\n }\r\n}\r\n","/* outstandingApprovalsGrid.component.js */\r\n\r\nimport outstandingApprovalsGridController from \"./outstandingApprovalsGrid.controller\";\r\n\r\n/**\r\n * @desc component to display Outstanding Approvals Grid\r\n * @example \r\n */\r\n\r\nconst outstandingApprovalsGrid = {\r\n controller: outstandingApprovalsGridController,\r\n controllerAs: 'oagvm',\r\n templateUrl: '/App/Components/outstandingApprovals/outstandingApprovalsGrid.tmpl.html'\r\n};\r\n\r\nexport default outstandingApprovalsGrid;","import angular from 'angular';\r\nimport identityManagerFactoriesModule from './identityManager.factories.module';\r\nimport IdentityManagerRequestDetailsViewModel from '../Components/IdentityManagerRequestDetails/IdentityManagerRequestDetailsViewModel';\r\nimport openRequests from '../Components/openRequests/openRequests.component';\r\nimport identityManagerRequestManagementModule from './identityManager.requestManagement.module';\r\nimport requestHistory from '../Components/requestHistory/requestHistory.component';\r\nimport approvalRules from '../Components/ApprovalRules/approvalRules.component';\r\nimport requestHistoryDataService from '../Components/requestHistory/requestHistoryDataService.factory';\r\nimport outstandingApprovals from '../Components/outstandingApprovals/outstandingApprovals.component'\r\nimport outstandingApprovalsGrid from '../Components/outstandingApprovals/outstandingApprovalsGrid.component';\r\n\r\n\r\nexport default angular\r\n .module('app.identityManager', [identityManagerFactoriesModule, identityManagerRequestManagementModule])\r\n .factory('requestHistoryDataService', requestHistoryDataService)\r\n .controller(\"identityManagerRequestDetailsViewModel\", IdentityManagerRequestDetailsViewModel)\r\n .component('approvalRules', approvalRules)\r\n .component(\"openRequests\", openRequests)\r\n .component('requestHistory', requestHistory)\r\n .component('outstandingApprovals', outstandingApprovals)\r\n .component('outstandingApprovalsGrid', outstandingApprovalsGrid)\r\n .name;","/* outstandingApprovals.component.js */\r\n\r\n/**\r\n * @desc component to display Outstanding Approvals\r\n * @example \r\n */\r\n\r\nconst outstandingApprovals = {\r\n templateUrl: '/App/Components/outstandingApprovals/outstandingApprovals.tmpl.html'\r\n};\r\n\r\nexport default outstandingApprovals;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport ReportSchedulerModalController from \"../../Shared/Controllers/ReportSchedulerModalController\";\r\nimport swal from \"sweetalert2\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, $rootScope, $filter, schedulesDataService, controlLibraryDataService, helperService, FileSaver) {\r\n const vm = this;\r\n\r\n vm.$onInit = activate;\r\n\r\n vm.openNewReportScheduleModal = openNewReportScheduleModal;\r\n vm.openEditScheduleModal = openEditScheduleModal;\r\n vm.changeScheduleRowSelected = changeScheduleRowSelected;\r\n vm.deleteScheduleOutput = deleteScheduleOutput;\r\n vm.deleteSchedule = deleteSchedule;\r\n vm.downloadFile = downloadFile;\r\n vm.checkForFileType = checkForFileType;\r\n vm.getFileTypeImage = getFileTypeImage;\r\n vm.downloadAttachment = downloadAttachment;\r\n vm.runSchedule = runSchedule;\r\n vm.securityActions = {\r\n newSchedule: helperService.objectExists(\"1402\"),\r\n editSchedule: helperService.objectExists(\"1403\"),\r\n deleteSchedule: helperService.objectExists(\"1405\"),\r\n runSchedule: helperService.objectExists(\"1406\")\r\n }\r\n\r\n function activate() {\r\n //Define columns for main grid\r\n const schedulesGridColumns = [\r\n { field: \"SavedReportName\", title: \"Report Name\", filterable: customAutoCompleteFilter },\r\n { field: \"OwnerLogonName\", title: \"Created By\", filterable: customAutoCompleteFilter },\r\n { field: \"Frequency\", title: \"Occurs\", filterable: customAutoCompleteFilter },\r\n { field: \"StartTime\", title: \"Start\", template: \"{{ dataItem.StartTime | date:'short'}}\", filterable: false },\r\n { field: \"NextExecutionTime\", title: \"Next Execution\", template: \"{{ dataItem.NextExecutionTime | date:'short'}}\", filterable: false },\r\n { field: \"EndTime\", title: \"End\", template: \"{{ dataItem.EndTime | date:'short'}}\", filterable: false },\r\n { template: `Run Now`, \"title\": \"Run Now\", hidden: !vm.securityActions['runSchedule'] },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90, hidden: !vm.securityActions['editSchedule'] },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90, hidden: !vm.securityActions['deleteSchedule'] }\r\n ],\r\n deliveryGridColumns = [\r\n { field: \"UserLogonName\", title: \"User Logon Name\", filterable: customAutoCompleteFilter },\r\n { field: \"DeliveryType\", title: \"Delivery Type\", filterable: customAutoCompleteFilter },\r\n { field: \"Format\", filterable: customAutoCompleteFilter },\r\n { template: `Delete`, \"title\": \"Delete\", width: 90, hidden: !vm.securityActions['deleteSchedule'] }\r\n ],\r\n executionsGridColumns = [\r\n { field: \"ExecutionDate\", title: \"Execution Date\", template: \"{{ dataItem.ExecutionDate | date:'short'}}\", filterable: false },\r\n {\r\n template: ``, width: 200, \"title\": \"Download\"\r\n },\r\n { template: ``, width: 200, \"title\": \"Attachments\" }\r\n ];\r\n\r\n vm.schedulesGridOptions = helperService.setMainGridOptions(schedulesGridColumns, 611);\r\n vm.deliveryMethodGridOptions = helperService.setNonPageableGridOptions(deliveryGridColumns, 200);\r\n vm.deliveryMethodGridOptions.selectable = false;\r\n vm.executionsGridOptions = helperService.setNonPageableGridOptions(executionsGridColumns, 300);\r\n }\r\n\r\n async function openNewReportScheduleModal() {\r\n let newScheduleModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Controllers/ReportSchedulerModal.html',\r\n controller: ReportSchedulerModalController,\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n\r\n try {\r\n await newScheduleModal.result;\r\n vm.schedulesGridDataSource.read()\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function openEditScheduleModal(selectedID) {\r\n $rootScope.scheduleToEdit = selectedID;\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Controllers/ReportSchedulerModal.html',\r\n controller: ReportSchedulerModalController,\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n async function changeScheduleRowSelected(dataItem) {\r\n let executions = await schedulesDataService.getReportScheduleExecutions(dataItem.ID);\r\n if (executions.data.length) {\r\n executions = $filter('orderBy')(executions.data, '-ExecutionDate');\r\n }\r\n\r\n vm.deliveryGridDataSource = new kendo.data.DataSource({\r\n data: dataItem.Outputs\r\n });\r\n\r\n vm.executionsGridDataSource = new kendo.data.DataSource({\r\n data: executions\r\n });\r\n }\r\n\r\n vm.schedulesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async function (options) {\r\n let response = await schedulesDataService.getReportSchedules();\r\n response.data = $filter('orderBy')(response.data, 'SavedReportName');\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n\r\n //Delete based on ID of Schedule\r\n function deleteScheduleOutput(id, ScheduleID) {\r\n let rows = vm.deliveryGridDataSource.data();\r\n\r\n rows.forEach(async row => {\r\n if (row.ID.toString() === id.toString()) {\r\n if (row.ScheduleID.toString() === ScheduleID.toString()) {\r\n try {\r\n await schedulesDataService.deleteScheduleOutput(id, ScheduleID)\r\n rows.remove(row);\r\n } catch {\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n //Delete based on ID of Schedule\r\n async function deleteSchedule(id) {\r\n vm.deliveryGridDataSource = null;\r\n vm.executionsGridDataSource = null;\r\n try {\r\n await schedulesDataService.deleteSchedule(id);\r\n vm.schedulesGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function checkForFileType(fileType, files) {\r\n return files.find(file => file.FileFormat === fileType);\r\n }\r\n\r\n function getFileTypeImage(fileExtension) {\r\n switch (fileExtension) {\r\n case 'xlsx': //Excel\r\n return 'excel-file-icon-16';\r\n break;\r\n case 'pdf': //PDF \r\n return 'pdf-file-icon-16';\r\n break;\r\n case 'csv': //Csv\r\n return 'csv-file-icon-16';\r\n break;\r\n default: \r\n return 'default-file-icon-16';\r\n break;\r\n }\r\n }\r\n\r\n async function downloadFile(fileType, executionId) {\r\n let response,\r\n fileExtension;\r\n\r\n vm.downloadFilePending = true;\r\n\r\n try {\r\n response = await schedulesDataService.downloadExecutionFile(fileType, executionId);\r\n\r\n fileExtension = fileType.toLowerCase();\r\n\r\n if (fileExtension === 'excel') {\r\n fileExtension = 'xlsx';\r\n }\r\n FileSaver.saveAs(response.data, 'Executions.' + fileExtension);\r\n vm.downloadFilePending = false;\r\n } catch {\r\n vm.downloadFilePending = false;\r\n }\r\n }\r\n\r\n async function downloadAttachment(attachment) {\r\n let response;\r\n vm.downloadPending = true;\r\n\r\n try {\r\n response = await controlLibraryDataService.downloadAttachment(attachment.Identifier);\r\n\r\n FileSaver.saveAs(response.data, attachment.FileName);\r\n vm.downloadPending = false;\r\n } catch {\r\n vm.downloadPending = false;\r\n }\r\n }\r\n\r\n async function runSchedule(schedule) {\r\n try {\r\n await schedulesDataService.runReportSchedule(schedule.ID);\r\n swal(\"\", `The schedule for report ${schedule.SavedReportName} has been initiated. Recipients will be receiving the report soon.`, 'success');\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n}\r\n","import controller from \"./schedules.controller\";\r\n\r\n/* schedules.component.js */\r\n\r\n/**\r\n * @desc component for report schedules\r\n * @example \r\n */\r\n\r\nconst schedules = {\r\n controller: controller,\r\n controllerAs: 'svm',\r\n templateUrl: '/App/Components/Schedules/schedules.tmpl.html'\r\n};\r\n\r\nexport default schedules;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($http, helperService, reportId, selectedReport, $uibModalInstance, savedReportsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.dismiss = dismiss;\r\n vm.close = close;\r\n vm.saveReport = saveReport;\r\n vm.reportName = selectedReport.Name;\r\n vm.reportDescription = selectedReport.Description;\r\n\r\n function saveReport() {\r\n\r\n vm.pleaseWait = new createSpinner();\r\n\r\n let putData = {\r\n \"Id\": selectedReport.Id,\r\n \"Name\": vm.reportName,\r\n \"Description\": vm.reportDescription,\r\n \"ReportDefinition\": {\r\n \"ReportId\": selectedReport.ReportDefinition.ReportId,\r\n \"Columns\": selectedReport.ReportDefinition.Columns,\r\n \"Sortings\": selectedReport.ReportDefinition.Sortings,\r\n \"Criteria\": selectedReport.ReportDefinition.Criteria,\r\n \"Filters\": selectedReport.ReportDefinition.Filters,\r\n \"DateFilters\": selectedReport.ReportDefinition.DateFilters\r\n }\r\n };\r\n\r\n savedReportsDataService.editSavedReport(reportId, putData).then(async function (response) {\r\n vm.killModal = true;\r\n await helperService.successfulSaveButton(vm.pleaseWait).then(function (result) {\r\n close();\r\n });\r\n\r\n }, function (response) {\r\n helperService.showErrorMessage(response.data);\r\n vm.pleaseWait.loadingValue = false;\r\n });\r\n\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport swal from \"sweetalert2\";\r\nimport savedReportsEditModalController from \"./savedReportsEditModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($filter, savedReportsDataService, helperService, CustomReportServices, $uibModal) {\r\n\r\n const vm = this;\r\n vm.deleteSavedReport = deleteSavedReport;\r\n vm.runReport = runReport;\r\n vm.changeRowSelected = changeRowSelected;\r\n vm.getFilterDisplayName = getFilterDisplayName;\r\n vm.getCriteriaDisplayName = getCriteriaDisplayName;\r\n vm.openEditSavedReportModal = openEditSavedReportModal;\r\n\r\n function activate() {\r\n const savedReportsGridColumns = [\r\n { field: \"Id\", title: \"ID\", filterable: customAutoCompleteFilter, hidden: true },\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"ReportDefinition.ReportName\", title: \"Report Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Owner.UserLogonName\", title: \"Creator\", filterable: customAutoCompleteFilter },\r\n { template: 'Run', \"title\": \"Run\", width: 90 },\r\n { template: 'Edit', \"title\": \"Edit\", width: 90 },\r\n { template: 'Delete', \"title\": \"Delete\", width: 90, hidden: !helperService.objectExists('1407') }\r\n ];\r\n\r\n vm.savedReportsGridOptions = helperService.setMainGridOptions(savedReportsGridColumns, 600);\r\n\r\n vm.savedReportsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n savedReportsDataService.getSavedReports().then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.allSavedReports = response.data;\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n activate();\r\n\r\n\r\n function deleteSavedReport(reportId) {\r\n savedReportsDataService.getSavedReportSchedules(reportId).then(function (response) {\r\n if (response.data.length > 0) {\r\n swal(helperService.areYouSureParams('Existing Schedule(s)', 'Are you sure you want to delete this saved report? There is one or more associated schedules.', 'Delete')).then(function () {\r\n deleteReport(reportId);\r\n }, function (dismiss) {\r\n return;\r\n });\r\n } else {\r\n deleteReport(reportId);\r\n }\r\n });\r\n\r\n }\r\n\r\n function openEditSavedReportModal(reportId) {\r\n vm.reportId = reportId;\r\n vm.selectedReport = vm.allSavedReports.find(r => r.Id === reportId);\r\n let editModal = $uibModal.open({\r\n templateUrl: '/App/Components/SavedReports/savedReportsEditModal.tmpl.html',\r\n controller: savedReportsEditModalController,\r\n controllerAs: 'sremvm',\r\n backdrop: 'static',\r\n resolve: {\r\n reportId: () => vm.reportId,\r\n selectedReport: () => vm.selectedReport\r\n }\r\n });\r\n\r\n editModal.result\r\n .then(_ => {\r\n vm.savedReportsGridDataSource.read();\r\n }).catch(_ => {\r\n return;\r\n });\r\n }\r\n\r\n function deleteReport(reportId) {\r\n savedReportsDataService.removeSavedReport(reportId)\r\n .then(_ => {\r\n vm.savedReportsGridDataSource.read();\r\n vm.currentSelectedSavedReport = null;\r\n }).catch(response => {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n function runReport(savedReportId) {\r\n var savedReport = vm.allSavedReports.find(report => report.Id === savedReportId);\r\n CustomReportServices.loadSavedReport(savedReport);\r\n }\r\n\r\n function changeRowSelected(dataItem) {\r\n\r\n if (dataItem) {\r\n vm.currentSelectedSavedReport = vm.allSavedReports.find(e => e.Id === dataItem.Id);\r\n vm.savedReportCriteriaLength = vm.currentSelectedSavedReport.ReportDefinition.Criteria.filter(criteria => criteria.CriteriaType).length;\r\n if (vm.currentSelectedSavedReport.ReportDefinition.Criteria.some(criteria => !criteria.CriteriaType)) {\r\n const criteriaFiltersLength = vm.currentSelectedSavedReport.ReportDefinition.Criteria.filter(criteria => !criteria.CriteriaType).length;\r\n vm.savedReportFiltersLength = vm.currentSelectedSavedReport.ReportDefinition.Filters.length + criteriaFiltersLength;\r\n } else {\r\n vm.savedReportFiltersLength = vm.currentSelectedSavedReport.ReportDefinition.Filters.length;\r\n }\r\n savedReportsDataService.getSavedReportSchedules(dataItem.Id).then(response => {\r\n vm.schedulesForCurrentSelectedSavedReport = response.data;\r\n });\r\n } else {\r\n vm.currentSelectedSavedReport = null;\r\n }\r\n\r\n }\r\n\r\n function getFilterDisplayName(fieldName) {\r\n //Find the column Display Name for the filter. This is used for display purposes\r\n var displayName = \"\";\r\n var column = vm.currentSelectedSavedReport.ReportDefinition.Columns.find(column => {\r\n var columnUpper = column.FieldName.toUpperCase();\r\n return columnUpper === fieldName.toUpperCase();\r\n });\r\n if (column) {\r\n displayName = column.DisplayName;\r\n } else {\r\n displayName = $filter('insertSpaceBetweenCapitalWords')(fieldName);\r\n }\r\n\r\n return displayName;\r\n }\r\n\r\n function getCriteriaDisplayName(criteria) {\r\n //Find the column Display Name for the Criteria. This is used for display purposes\r\n var displayName = \"\";\r\n if (criteria.CriteriaDisplayName) {\r\n displayName = criteria.CriteriaDisplayName;\r\n } else {\r\n displayName = criteria.CriteriaType;\r\n }\r\n\r\n return displayName;\r\n }\r\n}\r\n","import controller from \"./savedReports.controller\";\r\n\r\n/* savedReports.component.js */\r\n\r\n/**\r\n * @desc component for saved reports\r\n * @example \r\n */\r\n\r\nconst savedReports = {\r\n controller: controller,\r\n controllerAs: 'srvm',\r\n templateUrl: '/App/Components/SavedReports/savedReports.tmpl.html'\r\n};\r\n\r\nexport default savedReports;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n var service = {\r\n getSavedReports,\r\n addSavedReport,\r\n getSavedReportSchedules,\r\n editSavedReport,\r\n removeSavedReport\r\n };\r\n\r\n return service;\r\n\r\n function getSavedReports() {\r\n return $http.get(apiUrl + 'api/core/savedreports/')\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function addSavedReport(data) {\r\n return $http.post(apiUrl + 'api/core/savedreports/', data)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n\r\n function getSavedReportSchedules(savedReportId) {\r\n return $http.get(apiUrl + 'api/core/reportschedules/savedreports/' + savedReportId)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function editSavedReport(savedReportId, putData) {\r\n return $http.put(`${apiUrl}api/core/savedreports/${savedReportId}`, putData)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n\r\n function removeSavedReport(savedReportId) {\r\n return $http.delete(apiUrl + 'api/core/savedreports/' + savedReportId)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function workComplete(response) {\r\n return response;\r\n }\r\n\r\n function workFailed(response) {\r\n errorsDataService.catch(response);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n var service = {\r\n getReportSchedules,\r\n getReportScheduleExecutions,\r\n deleteSchedule,\r\n deleteScheduleOutput,\r\n downloadExecutionFile,\r\n runReportSchedule\r\n };\r\n\r\n return service;\r\n\r\n async function getReportSchedules() {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/reportschedules`)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getReportScheduleExecutions(id) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/reportschedules/${id}/executions`)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function deleteSchedule(id) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/core/reportschedules/${id}`)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function deleteScheduleOutput(id, ScheduleID) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/core/reportschedules/${ScheduleID}/outputs/${id}`)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function downloadExecutionFile(fileType, executionId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/reportschedules/executions/${executionId}/download?fileFormat=${fileType}`, { responseType: \"blob\" })\r\n } catch (err) {\r\n showError(err);\r\n sendError(err)\r\n }\r\n }\r\n\r\n async function runReportSchedule(scheduleId) {\r\n try {\r\n return await $http.post(`${apiUrl}api/core/reportschedules/${scheduleId}/run`)\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","import angular from 'angular';\r\nimport schedules from '../Components/Schedules/schedules.component';\r\nimport savedReports from '../Components/SavedReports/savedReports.component';\r\nimport savedReportsDataServiceFactory from '../Components/SavedReports/savedReportsDataService.factory';\r\nimport schedulesService from '../Components/Schedules/schedules.service';\r\n\r\nexport default angular\r\n .module('app.reportManagement', [])\r\n .component(\"schedules\", schedules)\r\n .component(\"savedReports\", savedReports)\r\n .factory('savedReportsDataService', savedReportsDataServiceFactory)\r\n .factory('schedulesDataService', schedulesService)\r\n .name;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (control, $rootScope, $uibModalInstance, controlManagementDataService, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.control = control;\r\n vm.cancel = cancel;\r\n vm.saveEditModal = saveEditModal;\r\n vm.conditions = [];\r\n\r\n async function activate() {\r\n vm.conditions = vm.control.Conditions;\r\n vm.frequencies = ['Weekly', 'Monthly', 'Quarterly', 'Yearly'];\r\n vm.daysInWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n vm.daysInMonth = helperService.getDayOfMonthDropdownOptions();\r\n vm.months = helperService.getMonthsDropdownOptions();\r\n vm.startTimeForControlSchedule = new Date();\r\n setupControlSchedule();\r\n }\r\n\r\n activate();\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n async function saveEditModal() {\r\n vm.saving = new createSpinner();\r\n\r\n try {\r\n await updateControls();\r\n if (vm.conditions.length > 0) {\r\n await updateConditions();\r\n }\r\n\r\n if (vm.controlScheduleIsOn == false && vm.control.Schedule) {\r\n await setUpdateControlSchedule(false);\r\n } else {\r\n await setUpdateControlSchedule(true);\r\n }\r\n\r\n await helperService.successfulSaveButton(vm.saving);\r\n cancel();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n\r\n async function updateControls() {\r\n let putData = {\r\n \"Id\": vm.control.Id,\r\n \"Name\": vm.control.Name,\r\n \"Description\": vm.control.Description,\r\n \"Enabled\": vm.control.Enabled,\r\n \"ReferenceNumber\": vm.control.ReferenceNumber,\r\n \"Notes\": vm.control.Notes,\r\n \"AutoClose\": vm.control.AutoClose\r\n }\r\n\r\n try {\r\n await controlManagementDataService.updateControl(vm.control.Id, putData);\r\n } catch {\r\n return\r\n }\r\n }\r\n\r\n function updateConditions() {\r\n\r\n vm.conditions.forEach(async condition => {\r\n let putData = {\r\n \"ConditionId\": condition.Id,\r\n \"Value\": !condition.Value ? null : condition.Value\r\n };\r\n\r\n await controlManagementDataService.updateControlConditions(vm.control.Id, condition.Id, putData);\r\n });\r\n }\r\n\r\n // Schedule Control Code\r\n function setupControlSchedule() {\r\n if (vm.control.Schedule && vm.control.Schedule.NextExecutionTime) {\r\n vm.selectedFrequency = vm.control.Schedule.Frequency;\r\n vm.selectedDayOfWeek = vm.control.Schedule.DayOfWeek;\r\n vm.selectedDayOfMonth = vm.control.Schedule.DayOfMonth ? { Value: vm.control.Schedule.DayOfMonth } : null;\r\n vm.selectedMonth = vm.control.Schedule.Month\r\n vm.startTime = new Date(vm.control.Schedule.StartTime);\r\n vm.controlScheduleIsOn = true;\r\n } else {\r\n vm.controlScheduleIsOn = false;\r\n }\r\n }\r\n\r\n function setUpdateControlSchedule(isOn) {\r\n updateControlSchedule(isOn, vm.selectedFrequency, vm.selectedDayOfWeek, vm.selectedDayOfMonth, vm.selectedMonth, vm.startTime);\r\n }\r\n\r\n async function updateControlSchedule(scheduleIsOn, frequency, dayOfWeek, dayOfMonth, month, startTime) {\r\n vm.updateInProgress = new createSpinner();\r\n\r\n if (scheduleIsOn) {\r\n\r\n let dayOfMonthRequest;\r\n let dayOfWeekRequest;\r\n let monthRequest;\r\n\r\n\r\n if (frequency === 'Weekly') {\r\n dayOfMonthRequest = [];\r\n monthRequest = [];\r\n dayOfWeekRequest = [dayOfWeek];\r\n } if (frequency === 'Monthly') {\r\n dayOfMonthRequest = [dayOfMonth.Value];\r\n dayOfWeekRequest = [];\r\n monthRequest = [];\r\n } if (frequency === 'Quarterly') {\r\n dayOfMonthRequest = [dayOfMonth.Value];\r\n monthRequest = [month];\r\n dayOfWeekRequest = [];\r\n } if (frequency === 'Yearly') {\r\n dayOfMonthRequest = [dayOfMonth.Value];\r\n monthRequest = [month];\r\n dayOfWeekRequest = [];\r\n }\r\n\r\n let adjustedStartTime = new Date();\r\n adjustedStartTime.setHours(startTime.getHours());\r\n adjustedStartTime.setMinutes(startTime.getMinutes());\r\n adjustedStartTime = new Date(adjustedStartTime.toUTCString());\r\n adjustedStartTime = adjustedStartTime.toISOString();\r\n\r\n const putData = {\r\n \"ControlId\": control.Id,\r\n \"Schedule\": {\r\n \"DayOfMonth\": dayOfMonthRequest[0],\r\n \"DayOfWeek\": dayOfWeekRequest[0],\r\n \"Month\": monthRequest[0],\r\n \"Frequency\": frequency,\r\n \"StartTime\": adjustedStartTime,\r\n \"TimeZone\": $rootScope.applicationTimeZone\r\n }\r\n };\r\n\r\n try {\r\n await controlManagementDataService.scheduleControl(vm.control.Id, putData);\r\n await setupControlSchedule();\r\n await helperService.successfulSaveButton(vm.updateInProgress);\r\n } catch {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n if (!scheduleIsOn && control.Schedule) {\r\n let disablePutData = {\r\n ControlId: vm.control.Id\r\n }\r\n\r\n try {\r\n await controlManagementDataService.disableControlSchedule(control.Id, disablePutData);\r\n } catch {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n }\r\n\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (helperService, $uibModalInstance, controlManagementDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.saveGlobalConditions = saveGlobalConditions;\r\n vm.cancel = cancel;\r\n\r\n\r\n async function activate() {\r\n vm.globalConditions = [];\r\n await getGlobalConditions();\r\n }\r\n\r\n activate();\r\n\r\n async function getGlobalConditions() {\r\n let response = await controlManagementDataService.getGlobalParameters();\r\n vm.globalConditions = response.data;\r\n }\r\n\r\n async function saveGlobalConditions() {\r\n vm.savingConditions = new createSpinner();\r\n\r\n try {\r\n vm.globalConditions.forEach(globalCondition => {\r\n let putData = {\r\n \"Id\": globalCondition.Id,\r\n \"Value\": globalCondition.GlobalValue\r\n };\r\n\r\n controlManagementDataService.updateGlobalParameter(globalCondition.Id, putData);\r\n });\r\n\r\n await helperService.successfulSaveButton(vm.savingConditions);\r\n cancel();\r\n } catch {\r\n vm.savingConditions.loadingValue = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n}","import { customAutoCompleteFilter, customBooleanFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport editControlModalController from \"./EditControlModal/editControlModal.controller\";\r\nimport globalConditionsModalController from \"./GlobalConditionsModal/globalConditionsModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, helperService, controlManagementDataService, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.shouldBeOpen = true;\r\n\r\n vm.openEditControlModal = openEditControlModal;\r\n vm.openGlobalConditionsModal = openGlobalConditionsModal;\r\n vm.runNow = runNow;\r\n\r\n async function activate() {\r\n let controlManagementGridColumns =\r\n [\r\n { template: `Edit`, \"title\": \"Edit\", width: 65 },\r\n { template: `Run Now`, \"title\": \"Run Now\", width: 80 },\r\n { field: \"Id\", title: \"Id\", filterable: customAutoCompleteFilter, width: 55 },\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter, width: 350 }, \r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"ReferenceNumber\", title: \"Reference Number\", filterable: customAutoCompleteFilter, width: 125 },\r\n { field: \"Notes\", title: \"Notes\", filterable: customAutoCompleteFilter },\r\n { field: \"AutoClose\", title: \"Auto Close\", filterable: customBooleanFilter, width: 125 },\r\n { field: \"Enabled\", title: \"Enabled\", filterable: customBooleanFilter, width: 125 }, \r\n { template: `{{dataItem.Schedule.LastExecutionTime | date:'short'}}`, \"title\": \"Last Ran\", width: 130 },\r\n { template: `{{dataItem.Schedule.NextExecutionTime | date:'short'}}`, \"title\": \"Scheduled Next\", width: 130 }\r\n ];\r\n\r\n vm.controlManagementGridOptions = helperService.setMainGridOptions(controlManagementGridColumns, 600);\r\n vm.controlManagementGridOptions.selectable = false;\r\n\r\n vm.controlManagementGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n AutoClose: { type: \"boolean\" },\r\n Enabled: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async function (options) {\r\n try {\r\n let response = await controlManagementDataService.getListOfControls();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n activate();\r\n\r\n async function openEditControlModal(control) {\r\n\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/TransactionMonitoring/ControlManagement/EditControlModal/editControlModal.tmpl.html',\r\n controller: editControlModalController,\r\n controllerAs: 'ecmvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n size: 'lg',\r\n resolve: {\r\n control: () => control\r\n }\r\n });\r\n\r\n await openModal.result;\r\n vm.controlManagementGridDataSource.read();\r\n }\r\n\r\n async function openGlobalConditionsModal() {\r\n\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/TransactionMonitoring/ControlManagement/GlobalConditionsModal/globalConditionsModal.tmpl.html',\r\n controller: globalConditionsModalController,\r\n controllerAs: 'gcmvm',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n\r\n await openModal.result;\r\n vm.controlManagementGridDataSource.read();\r\n }\r\n\r\n async function runNow(control) {\r\n vm.disableButton = true;\r\n\r\n try {\r\n await controlManagementDataService.onDemandControl(control.Id);\r\n vm.controlManagementGridDataSource.read();\r\n vm.disableButton = false;\r\n } catch {\r\n vm.disableButton = false;\r\n }\r\n }\r\n}","/* controlManagement.component.js */\r\n\r\nimport controlManagementController from \"./controlManagement.controller\";\r\n\r\n/**\r\n * @desc component for displaying the report toolbar\r\n * @example \r\n */\r\n\r\nconst controlManagement = {\r\n controller: controlManagementController,\r\n controllerAs: 'cmvm',\r\n templateUrl: '/App/Components/TransactionMonitoring/ControlManagement/controlManagement.tmpl.html'\r\n\r\n};\r\n\r\nexport default controlManagement;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (helperService, $filter, incident, $uibModalInstance, incidentManagementDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.saveIncident = saveIncident;\r\n vm.cancel = cancel;\r\n vm.incident = incident;\r\n\r\n\r\n async function activate() {\r\n await getStatuses();\r\n }\r\n\r\n activate();\r\n\r\n async function getStatuses() {\r\n vm.selectedStatus = { \"Id\": vm.incident.StatusId, \"Name\": vm.incident.StatusName };\r\n let response = await incidentManagementDataService.getStatuses();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.statusDataSource = response.data.filter(status => status.Name !== 'Closed: Resolved' && status.Name !== 'Closed: Aged Out');\r\n }\r\n\r\n async function saveIncident() {\r\n vm.saving = new createSpinner();\r\n\r\n const putData = {\r\n \"Id\": vm.incident.IncidentId,\r\n \"Status\": vm.selectedStatus.Id,\r\n \"StatusReason\": vm.incident.StatusReason\r\n };\r\n\r\n try {\r\n await incidentManagementDataService.updateIncident(vm.incident.IncidentId, putData);\r\n await helperService.successfulSaveButton(vm.saving);\r\n cancel();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n}","import { customAutoCompleteFilter, customBooleanFilter, customDatePickerFilter, customDatePickerNotNullableFilter, customNotStringEmptyFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../../Shared/kendo.module\";\r\nimport editIncidentModalController from \"./EditIncidentModal/editIncidentModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, $http, SavedReportSelectorService, $uibModal, objectIdDataService, CustomReportServices, $filter, reportsDataService, reportsService, helperService, controlManagementDataService, incidentManagementDataService) {\r\n\r\n const vm = this;\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if (vm.grid) {\r\n vm.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n vm.helperService = helperService;\r\n\r\n vm.runSavedReport = runSavedReport;\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n vm.controlSelectedChanged = controlSelectedChanged;\r\n vm.onReadGrid = onReadGrid;\r\n vm.onClearFilters = onClearFilters;\r\n vm.onApplyFilter = onApplyFilter;\r\n vm.deleteFilter = deleteFilter;\r\n vm.generateGridWithSelectedValues = generateGridWithSelectedValues;\r\n vm.openEditIncidentModal = openEditIncidentModal;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n // ---\r\n\r\n async function activate() {\r\n if ($rootScope.loadedSavedReport) {\r\n vm.savedReportFilters = $rootScope.loadedSavedReport.ReportDefinition.Filters;\r\n }\r\n\r\n // Get ObjectId and reportName for layouts and tabs\r\n vm.ObjectId = await objectIdDataService.getObjectID();\r\n let securityObject = helperService.getSecurityObjectDetailsFromObjectId(vm.ObjectId);\r\n vm.reportName = securityObject.Name;\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n vm.mainGridOptions.autoBind = false;\r\n\r\n getControls();\r\n }\r\n\r\n activate();\r\n\r\n async function runSavedReport() {\r\n\r\n if (vm.gridReady && $rootScope.loadedSavedReport && vm.controlDataSource && vm.periodDataSource && vm.filterCriteria.fields) {\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n // clear out ImportId and ControlId filters because they are represented by dropdowns\r\n vm.filterCriteria.query = vm.filterCriteria.query.filter(query => query.FieldName !== 'ImportId' && query.FieldName !== 'ControlId');\r\n vm.filterCriteria.needsUpdate = true;\r\n // ---\r\n generateGridWithSelectedValues();\r\n } else if (vm.gridReady && !$rootScope.loadedSavedReport && vm.controlDataSource && vm.periodDataSource && vm.filterCriteria.fields) {\r\n // We want the necessary report details available to be able to use the report toolbar without running the report\r\n populateCriteriaModel();\r\n }\r\n }\r\n\r\n function setupMetaDataColumns(metadataColumns) {\r\n metadataColumns = $filter('orderBy')(vm.reportMetadata.Columns, 'Ordinal');\r\n metadataColumns = metadataColumns.filter(d => !d.FieldName.includes('_hidden_'));\r\n\r\n // Omit these columns from the UI completely to prevent user from accessing and causing errors\r\n metadataColumns = metadataColumns.filter(column => column.FieldName !== 'StatusId' && column.FieldName !== 'StatusUpdatedById');\r\n\r\n metadataColumns.forEach(function (column) {\r\n if (column.DataType === 'DateTime') {\r\n column.DataType = 'dateTime';\r\n } else if (column.DataType === 'Date') {\r\n column.DataType = 'date';\r\n } else if (column.DataType === 'Time') {\r\n column.DataType = 'time';\r\n } else if (column.DataType === 'Boolean') {\r\n column.DataType = 'boolean';\r\n } else if (column.DataType === 'String') {\r\n column.DataType = 'string';\r\n } else if (column.DataType === 'Number') {\r\n column.DataType = 'number';\r\n }\r\n });\r\n\r\n return metadataColumns;\r\n }\r\n\r\n async function setupGridColumns(metaDataColumns) {\r\n vm.gridColumns = [];\r\n metaDataColumns = $filter('orderBy')(metaDataColumns, 'Ordinal');\r\n metaDataColumns.forEach(column => {\r\n // Ensure column display name includes a space (filter dropdown options match column titles)\r\n column.DisplayName = !column.DisplayName ? helperService.headerStringTransformer(column.FieldName) : helperService.headerStringTransformer(column.DisplayName);\r\n\r\n // Ensure IsVisible property is properly set for unnecessary columns\r\n if (column.FieldName === 'ControlId' || column.FieldName === 'ImportId') {\r\n column.IsVisible = false;\r\n }\r\n\r\n let baseColumn = { \"field\": column.FieldName, \"title\": !column.DisplayName ? helperService.headerStringTransformer(column.FieldName) : column.DisplayName, filterable: customAutoCompleteFilter, hidden: !column.IsVisible, ordinal: column.Ordinal };\r\n\r\n if (column.DataType === 'dateTime' || column.DataType === 'date' || column.DataType === 'time') {\r\n baseColumn.filterable = column.IsNullable ? customDatePickerFilter : customDatePickerNotNullableFilter;\r\n baseColumn.template = column.DataType === 'date' ? \"{{dataItem.\" + column.FieldName + \" | date:'M/d/yy'}}\" : \"{{dataItem.\" + column.FieldName + \" | date:'short'}}\";\r\n }\r\n if (column.DataType === 'boolean') {\r\n baseColumn.filterable = customBooleanFilter;\r\n }\r\n if (column.DataType === 'number') {\r\n baseColumn.filterable = customAutoCompleteFilter;\r\n }\r\n if (column.DataType === 'string') {\r\n // prevents kendo from parsing any code found in the string\r\n baseColumn.template = \"{{dataItem.\" + column.FieldName + \"}}\";\r\n }\r\n if (column.DataType !== 'string' && column.IsNullable) {\r\n baseColumn.filterable = customNotStringEmptyFilter;\r\n }\r\n\r\n vm.gridColumns.push(baseColumn);\r\n\r\n });\r\n\r\n // Add edit column\r\n vm.gridColumns.unshift({ \"field\": 'Edit', \"title\": 'Edit', \"template\": `Edit`, filterable: false, ordinal: 0 });\r\n return vm.gridColumns;\r\n }\r\n\r\n async function createIncidentManagementGrid() {\r\n\r\n // Don't allow filtering and sorting yet because they will force the report to run\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.mainGridOptions.sortable = false;\r\n\r\n vm.mainGridOptions.filterable = false;\r\n }\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: determineTypeOfField(vm.reportMetadata.Columns)\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n let data = {};\r\n vm.sortsAndFilters = helperService.prepareSortsAndFilters(options);\r\n\r\n vm.sortsAndFilters.Filters.push({\r\n \"FieldName\": 'ImportId',\r\n \"Operator\": 'Equals',\r\n \"Value\": vm.selectedPeriod.Id\r\n });\r\n\r\n vm.sortsAndFilters.Filters.push({\r\n \"FieldName\": 'ControlId',\r\n \"Operator\": 'Equals',\r\n \"Value\": vm.selectedControl.Id\r\n });\r\n\r\n data = vm.sortsAndFilters;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data.Filters = data.Filters.concat(vm.filterCriteria.query);\r\n }\r\n // ---\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n\r\n let params = { 'pagesize': options.data.pageSize, 'page': options.data.page };\r\n\r\n try {\r\n let response = await $http.post(`${apiUrl}api/core/reports/${vm.reportId}/execute`, data, { params: params });\r\n data = response.data._embedded.reportData;\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n } catch {\r\n return;\r\n }\r\n\r\n }\r\n }\r\n });\r\n\r\n if (vm.reportId) {\r\n setLayout();\r\n }\r\n\r\n return vm.gridDataSource;\r\n }\r\n\r\n function determineTypeOfField(columnsWithType) {\r\n var fields = {};\r\n columnsWithType.forEach(function (column) {\r\n if (column.DataType === 'date' || column.DataType === 'time' || column.DataType === 'dateTime') {\r\n fields[column.FieldName] = { type: 'date' };\r\n } else {\r\n fields[column.FieldName] = { type: column.DataType };\r\n }\r\n });\r\n return fields;\r\n }\r\n\r\n\r\n async function getControls() {\r\n vm.controlsLoading = true;\r\n let response = await controlManagementDataService.getListOfControls();\r\n response.data = $filter('filter')(response.data, { Enabled: true });\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.controlDataSource = response.data;\r\n vm.controlsLoading = false;\r\n\r\n if (vm.savedReportFilters) {\r\n vm.selectedControl = vm.controlDataSource.find(c => c.Id === vm.savedReportFilters.find(f => f.FieldName === 'ControlId').Value);\r\n }\r\n\r\n if (vm.selectedControl) {\r\n vm.reportId = vm.selectedControl.ReportId;\r\n await controlSelectedChanged();\r\n }\r\n\r\n return vm.controlDataSource;\r\n }\r\n\r\n async function getPeriods() {\r\n vm.periodsLoading = true;\r\n vm.reportId = vm.selectedControl.ReportId;\r\n\r\n let response = await incidentManagementDataService.getIncidentLogsByControlId(vm.selectedControl.Id);\r\n response.data = $filter('orderBy')(response.data, 'StartDate', true);\r\n vm.periodDataSource = response.data;\r\n vm.periodsLoading = false;\r\n\r\n if (vm.savedReportFilters) {\r\n vm.selectedPeriod = vm.periodDataSource.find(period => period.Id === vm.savedReportFilters.find(f => f.FieldName === 'ImportId').Value);\r\n }\r\n\r\n return vm.periodDataSource;\r\n }\r\n\r\n async function controlSelectedChanged() {\r\n try {\r\n if (vm.selectedControl) {\r\n await getPeriods();\r\n\r\n populateCriteriaModel();\r\n\r\n if (vm.periodDataSource.length > 0) {\r\n vm.noIncidentLogs = false;\r\n await getReportMetadata();\r\n await setupGridColumns(vm.reportMetadata.Columns);\r\n await createIncidentManagementGrid();\r\n await runSavedReport();\r\n } else {\r\n vm.noIncidentLogs = true;\r\n }\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function populateCriteriaModel() {\r\n // do not continue if the proper criteria are not loaded\r\n if (vm.selectedControl === undefined || vm.selectedPeriod === undefined) {\r\n return;\r\n }\r\n\r\n let criteria = [];\r\n\r\n\r\n vm.reportDetailsModel = criteria;\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n }\r\n\r\n function onApplyFilter(selectedFilter) {\r\n const currentOptions = vm.grid.getOptions();\r\n\r\n if (selectedFilter && selectedFilter.Filters && selectedFilter.Filters.length > 0) {\r\n currentOptions.dataSource.filter = helperService.convertFiltersForGrid(_, selectedFilter.Filters);\r\n try {\r\n vm.grid.dataSource._filter = currentOptions.dataSource.filter;\r\n vm.grid.dataSource.read();\r\n }\r\n catch (err) {\r\n vm.gridDataSource.filter({});\r\n }\r\n }\r\n }\r\n\r\n function onReadGrid() {\r\n vm.gridDataSource.read();\r\n }\r\n\r\n function onClearFilters() {\r\n vm.gridDataSource.filter({});\r\n }\r\n\r\n\r\n function generateGridWithSelectedValues() {\r\n\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.dataSource._filter = null;\r\n vm.grid.dataSource._sort = null;\r\n }\r\n\r\n populateCriteriaModel();\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n\r\n SavedReportSelectorService.queryGridWithOptions($rootScope.loadedSavedReport, vm.grid, true);\r\n }\r\n\r\n function deleteFilter(id) {\r\n CustomReportServices.deleteFilterFilterManager(vm, id);\r\n }\r\n\r\n function setLayout() {\r\n if (!$rootScope.loadedSavedReport) {\r\n CustomReportServices.loadSavedGridLayout(vm);\r\n }\r\n }\r\n\r\n\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n async function getReportMetadata() {\r\n if (vm.reportId) {\r\n let response = await reportsDataService.getReportMetadata(vm.reportId);\r\n vm.reportMetadata = response.data._embedded.reportData;\r\n vm.reportMetadata.Columns = setupMetaDataColumns(vm.reportMetadata.Columns);\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n vm.filterCriteria.fields.forEach(field => field.displayName = $filter('insertSpaceBetweenCapitalWords')(field.displayName));\r\n return vm.reportMetadata;\r\n }\r\n }\r\n // ---\r\n\r\n async function openEditIncidentModal(incident) {\r\n\r\n let openModal = $uibModal.open({\r\n templateUrl: '/App/Components/TransactionMonitoring/Incidents/EditIncidentModal/editIncidentModal.tmpl.html',\r\n controller: editIncidentModalController,\r\n controllerAs: 'eimvm',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve: {\r\n incident: () => incident\r\n }\r\n });\r\n\r\n await openModal.result;\r\n vm.gridDataSource.read();\r\n }\r\n}","import incidentManagementController from \"./incidentManagement.controller\";\r\n\r\n/* incidentManagement.component.js */\r\n\r\n/**\r\n * @desc component for Oracle EBS Transaction Monitoring Incident Management\r\n * @example \r\n */\r\n\r\nconst transactionMonitoringIncidentManagement = {\r\n controller: incidentManagementController,\r\n controllerAs: 'imvm',\r\n templateUrl: '/App/Components/TransactionMonitoring/Incidents/incidentManagement.tmpl.html'\r\n};\r\n\r\nexport default transactionMonitoringIncidentManagement;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getControl,\r\n getListOfControls,\r\n updateControl,\r\n updateControlConditions,\r\n scheduleControl,\r\n disableControlSchedule,\r\n onDemandControl,\r\n getGlobalParameters,\r\n updateGlobalParameter\r\n };\r\n\r\n return service;\r\n\r\n // Controls\r\n\r\n async function getControl(controlId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/transactionmonitoring/or/controls/${controlId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n };\r\n }\r\n\r\n async function getListOfControls() {\r\n try {\r\n return await $http.get(`${apiUrl}api/transactionmonitoring/or/controls`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n };\r\n }\r\n\r\n async function updateControl(controlId, putData) {\r\n try {\r\n return await $http.put(`${apiUrl}api/transactionmonitoring/or/controls/${controlId}`, putData)\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n };\r\n }\r\n\r\n async function updateControlConditions(controlId, conditionId, putData) {\r\n try {\r\n return await $http.put(`${apiUrl}api/transactionmonitoring/or/controls/${controlId}/conditions/${conditionId}`, putData)\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n };\r\n }\r\n\r\n // Control Schedule\r\n\r\n async function scheduleControl(controlId, putData) {\r\n try {\r\n return await $http.put(`${apiUrl}api/transactionmonitoring/or/controls/${controlId}/schedule`, putData)\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n };\r\n }\r\n\r\n async function disableControlSchedule(controlId, putData) {\r\n try {\r\n return await $http.put(`${apiUrl}api/transactionmonitoring/or/controls/${controlId}/schedule/disable`, putData)\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n };\r\n }\r\n\r\n // Send control for processing\r\n\r\n async function onDemandControl(controlId) {\r\n try {\r\n return await $http.put(`${apiUrl}api/transactionmonitoring/or/controls/${controlId}/run`)\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n };\r\n }\r\n\r\n // Global Parameters\r\n\r\n async function getGlobalParameters() {\r\n try {\r\n return await $http.get(`${apiUrl}api/transactionmonitoring/or/controls/conditiontypes`)\r\n } catch (err) {\r\n showError(err);\r\n sendError();\r\n };\r\n }\r\n\r\n async function updateGlobalParameter(conditionTypeId, putData) {\r\n try {\r\n return await $http.put(`${apiUrl}api/transactionmonitoring/or/controls/conditiontypes/${conditionTypeId}`, putData)\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n };\r\n }\r\n\r\n // Error Handling\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getIncidentLogsByControlId,\r\n getStatuses, \r\n updateIncident\r\n };\r\n\r\n return service;\r\n\r\n async function getIncidentLogsByControlId(controlId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/transactionmonitoring/or/controls/${controlId}/imports`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n };\r\n }\r\n\r\n async function getStatuses() {\r\n try {\r\n return await $http.get(`${apiUrl}api/transactionmonitoring/or/statuses`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateIncident(incidentId, putData) {\r\n try {\r\n return await $http.put(`${apiUrl}api/transactionmonitoring/or/incidents/${incidentId}`, putData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n };\r\n }\r\n\r\n // Error Handling\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","import angular from 'angular';\r\nimport controlManagementDataServiceFactory from '../Components/TransactionMonitoring/ControlManagement/controlManagementDataService.factory';\r\nimport incidentManagementDataServiceFactory from '../Components/TransactionMonitoring/Incidents/incidentManagementDataService.factory';\r\n\r\nexport default angular\r\n .module('app.transactionMonitoring.factories', [])\r\n .factory('controlManagementDataService', controlManagementDataServiceFactory)\r\n .factory('incidentManagementDataService', incidentManagementDataServiceFactory)\r\n .name;","import angular from 'angular';\r\nimport controlManagement from '../Components/TransactionMonitoring/ControlManagement/controlManagement.component';\r\nimport transactionMonitoringIncidentManagement from '../Components/TransactionMonitoring/Incidents/incidentManagement.component';\r\nimport transactionMonitoringFactoriesModule from './transactionMonitoring.factories.module';\r\n\r\nexport default angular\r\n .module('app.transactionMonitoring', [transactionMonitoringFactoriesModule])\r\n .component('controlManagement', controlManagement)\r\n .component('transactionMonitoringIncidentManagement', transactionMonitoringIncidentManagement)\r\n .name;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, ownershipGroup, isImport, helperService, ownershipGroupsDataService) {\r\n const vm = this;\r\n\r\n vm.isImport = isImport;\r\n\r\n vm.saveOwnershipGroup = saveOwnershipGroup;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n\r\n activate();\r\n\r\n function activate() {\r\n getOwnershipGroupTypes();\r\n }\r\n\r\n async function saveOwnershipGroup() {\r\n vm.successText = 'Saved';\r\n vm.savePending = new createSpinner();\r\n if (vm.ownershipGroup.Id) {\r\n editGroup();\r\n } else if (isImport) {\r\n importOwnershipGroups();\r\n } else {\r\n createGroup();\r\n }\r\n }\r\n\r\n async function createGroup() {\r\n let data = { Name: vm.ownershipGroup.Name, TypeId: vm.ownershipGroup.Type.Id };\r\n try {\r\n let response = await ownershipGroupsDataService.createGroup(data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(response.data);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function editGroup() {\r\n let data = { Name: vm.ownershipGroup.Name, GroupId: vm.ownershipGroup.Id };\r\n delete data.Id;\r\n try {\r\n await ownershipGroupsDataService.updateGroup(data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function importOwnershipGroups() {\r\n vm.successText = 'Import Started';\r\n let fd = new FormData();\r\n fd.append(vm.files.files[0].name, vm.files.files[0].file);\r\n\r\n try {\r\n await ownershipGroupsDataService.importOwnershipGroups(fd);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n async function getOwnershipGroupTypes() {\r\n let response = await ownershipGroupsDataService.getOwnershipGroupTypes();\r\n vm.typesDataSource = response.data;\r\n if (vm.typesDataSource.length === 1) {\r\n vm.ownershipGroup.Type = vm.typesDataSource[0].Name;\r\n }\r\n }\r\n\r\n function close(roleId) {\r\n $uibModalInstance.close(roleId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport ownershipGroupModalController from \"./ownershipGroupModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (ownershipGroupsDataService, helperService, $uibModal, $filter, FileSaver) {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedOwnershipGroup = changeSelectedOwnershipGroup;\r\n vm.deleteOwnershipGroup = deleteOwnershipGroup;\r\n vm.openOwnershipGroupModal = openOwnershipGroupModal;\r\n vm.exportOwnershipGroups = exportOwnershipGroups;\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n vm.openOwnershipGroupModal(item.ownershipGroup, false);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.deleteOwnershipGroup(item.ownershipGroup);\r\n }\r\n }\r\n ];\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n getOwnershipGroups();\r\n }\r\n\r\n async function getOwnershipGroups() {\r\n vm.ownershipGroupsLoading = true;\r\n let response = await ownershipGroupsDataService.getOwnershipGroups();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.ownershipGroups = response.data;\r\n vm.ownershipGroupsLoading = false;\r\n }\r\n\r\n function changeSelectedOwnershipGroup(ownershipGroup) {\r\n vm.selectedOwnershipGroup = ownershipGroup;\r\n vm.onSelectedOwnershipGroupChanged({ ownershipGroup });\r\n }\r\n\r\n async function openOwnershipGroupModal(ownershipGroup, isImport) {\r\n let ownershipGroupModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupsList/ownershipGroupModal.tmpl.html',\r\n controller: ownershipGroupModalController,\r\n controllerAs: 'ogmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => ownershipGroup || null,\r\n isImport: () => isImport || null\r\n }\r\n });\r\n\r\n try {\r\n let newOwnershipGroupId = await ownershipGroupModal.result;\r\n if (!isImport) {\r\n await getOwnershipGroups();\r\n }\r\n if (newOwnershipGroupId) {\r\n // We know a new ownership group was created so we need to select it\r\n changeSelectedOwnershipGroup(vm.ownershipGroups.find(group => group.Id === newOwnershipGroupId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function deleteOwnershipGroup(ownershipGroup) {\r\n try {\r\n await swal(helperService.areYouSureParams(`Delete Ownership Group`, `Are you sure you want to delete Ownership Group ${ownershipGroup.Name}?`, `Yes`, 'No'))\r\n await ownershipGroupsDataService.deleteGroup(ownershipGroup.Id);\r\n getOwnershipGroups();\r\n if (vm.selectedOwnershipGroup.Id === ownershipGroup.Id) {\r\n changeSelectedOwnershipGroup(null);\r\n } \r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function exportOwnershipGroups() {\r\n vm.exportUpdatePending = new createSpinner();\r\n try {\r\n const response = await ownershipGroupsDataService.exportOwnershipGroups();\r\n await helperService.successfulSaveButton(vm.exportUpdatePending);\r\n FileSaver.saveAs(response.data, 'OwnershipGroups.xlsx');\r\n } catch {\r\n vm.exportUpdatePending.loadingValue = false;\r\n }\r\n }\r\n}","import ownershipGroupsListController from \"./ownershipGroupsList.controller\";\r\n\r\n/* ownershipGroupsList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of ownership groups\r\n * @example \r\n */\r\n\r\nconst ownershipGroupsList = {\r\n bindings: {\r\n onSelectedOwnershipGroupChanged: '&',\r\n },\r\n controller: ownershipGroupsListController,\r\n controllerAs: 'oglvm',\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupsList/ownershipGroupsList.tmpl.html'\r\n};\r\n\r\nexport default ownershipGroupsList;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getOwnershipGroups,\r\n getOwnershipGroupTypes,\r\n exportOwnershipGroups,\r\n createGroup,\r\n addItemsToGroupObject,\r\n addOwnersToGroupObject,\r\n updateGroup,\r\n importOwnershipGroups,\r\n deleteGroup\r\n };\r\n\r\n return factory;\r\n\r\n async function getOwnershipGroups() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getOwnershipGroupTypes() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/types`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function exportOwnershipGroups() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/export`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function createGroup(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/ownershipgroups`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addItemsToGroupObject(ownershipGroup, groupOwner, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/ownershipgroups/${ownershipGroup.Id}/type/${ownershipGroup.GroupType}/owners/${groupOwner.Id}/additems`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addOwnersToGroupObject(groupId, type, itemId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/${type}/items/${itemId}/addowners`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateGroup(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/ownershipgroups/${data.GroupId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importOwnershipGroups(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/ownershipgroups/import`, data, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n \r\n\r\n async function deleteGroup(groupId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/ownershipgroups/${groupId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(error) {\r\n errorsDataService.catch(error);\r\n }\r\n\r\n function sendError(error) {\r\n throw error;\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getGroupOwners,\r\n getAllOwners,\r\n getAvailableOwners,\r\n getAvailableOwnersForItem,\r\n getGroupItemOwners,\r\n addOwnerToGroup,\r\n removeOwnerFromOwnershipGroup \r\n };\r\n\r\n return factory;\r\n\r\n async function getGroupOwners(groupId, type) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/${type}/owners`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAllOwners() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/allowners`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAvailableOwners(groupId, type) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/${type}/availableowners`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAvailableOwnersForItem(groupId, groupItemId, type) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/${type}/items/${groupItemId}/availableowners`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getGroupItemOwners(ownershipGroup, groupItem) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${ownershipGroup.Id}/type/${ownershipGroup.GroupType}/items/${groupItem.Id}/owners`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function addOwnerToGroup(groupId, type, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/${type}/owner`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeOwnerFromOwnershipGroup(groupId, type, ownerId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/${type}/owners/${ownerId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(error) {\r\n errorsDataService.catch(error);\r\n }\r\n\r\n function sendError(error) {\r\n throw error;\r\n }\r\n\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, ownershipGroup, existingOwners, helperService, ownershipGroupOwnerDataService, ownershipGroupItemsDataService) {\r\n const vm = this;\r\n\r\n vm.saveRoleOwner = saveRoleOwner;\r\n vm.selectedRoleTypeChanged = selectedRoleTypeChanged;\r\n vm.selectedOwnerTypeChanged = selectedOwnerTypeChanged;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.selectedRoleType = 'Role';\r\n setupRoleDropdown();\r\n await getOwners();\r\n vm.selectedOwnerType = 'User';\r\n selectedOwnerTypeChanged();\r\n }\r\n\r\n async function getOwners() {\r\n vm.ownersDataSourceLoading = true;\r\n let response = await ownershipGroupOwnerDataService.getAvailableOwners(ownershipGroup.Id, ownershipGroup.GroupType);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n response.data = response.data.filter(masterOwner => !existingOwners.some(owner => owner.Id === masterOwner.Id));\r\n vm.availableOwnersDataSource = response.data;\r\n vm.ownersDataSourceLoading = false;\r\n }\r\n\r\n function setupRoleDropdown() {\r\n vm.rolesDropdownOptions = {\r\n filter: \"contains\",\r\n autoClose: false,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: 'dataItem',\r\n valueMapper: function (options) {\r\n options.success(helperService.multiValueMapperFunction(options, vm.rolesDataSource, 'Identifier'));\r\n }\r\n },\r\n height: 325\r\n };\r\n\r\n\r\n vm.roleDropdownDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n let { data } = await ownershipGroupItemsDataService.getAllItems(ownershipGroup);\r\n data = data.filter(role => role.Type === vm.selectedRoleType);\r\n data = $filter('orderBy')(data, 'Name');\r\n vm.rolesDropdown.setOptions({ placeholder: `-- Select ${$filter('insertSpaceBetweenCapitalWords')(vm.selectedRoleType)}s --` });\r\n vm.rolesDataSource = data;\r\n options.success(data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function saveRoleOwner() {\r\n vm.savePending = new createSpinner();\r\n let newOwnerId;\r\n let owners = [];\r\n\r\n owners.push(vm.selectedOwner);\r\n\r\n let data = {\r\n GroupId: ownershipGroup.Id,\r\n Owners: owners,\r\n Items: vm.selectedRoles\r\n };\r\n\r\n try {\r\n let response = await ownershipGroupOwnerDataService.addOwnerToGroup(ownershipGroup.Id, ownershipGroup.GroupType, data);\r\n newOwnerId = response.data;\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(newOwnerId);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function selectedRoleTypeChanged() {\r\n vm.rolesDropdown.value([]);\r\n vm.selectedRoles = null;\r\n vm.roleDropdownDataSource.read();\r\n }\r\n\r\n function selectedOwnerTypeChanged() {\r\n vm.selectedOwner = null;\r\n vm.filteredOwnersDataSource = vm.availableOwnersDataSource.filter(owner => owner.TypeName === vm.selectedOwnerType);\r\n }\r\n\r\n function close(ownerId) {\r\n $uibModalInstance.close(ownerId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, ownershipGroup, helperService, ownershipGroupOwnerDataService, ownershipGroupItemsDataService) {\r\n const vm = this;\r\n\r\n vm.saveProductOwner = saveProductOwner;\r\n vm.selectedOwnerTypeChanged = selectedOwnerTypeChanged;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getProducts();\r\n await getOwners();\r\n\r\n vm.selectedOwnerType = 'User';\r\n selectedOwnerTypeChanged();\r\n }\r\n\r\n async function getProducts() {\r\n vm.productsDataSourceLoading = true;\r\n let { data } = await ownershipGroupItemsDataService.getAllItems(ownershipGroup);\r\n vm.productsDataSource = data;\r\n vm.productsDataSourceLoading = false;\r\n }\r\n\r\n async function getOwners() {\r\n vm.ownersDataSourceLoading = true;\r\n let { data } = await ownershipGroupOwnerDataService.getAvailableOwners(ownershipGroup.Id, ownershipGroup.GroupType);\r\n data = $filter('orderBy')(data, 'Name');\r\n vm.availableOwnersDataSource = data;\r\n vm.ownersDataSourceLoading = false;\r\n }\r\n\r\n async function saveProductOwner() {\r\n vm.savePending = new createSpinner();\r\n let newOwnerId;\r\n let productIds = vm.selectedProducts.map(product => product.ProductId);\r\n\r\n let postData = {\r\n GroupId: ownershipGroup.Id,\r\n Owners: [vm.selectedOwner],\r\n ProductIds: productIds\r\n };\r\n\r\n try {\r\n const { data } = await ownershipGroupOwnerDataService.addOwnerToGroup(ownershipGroup.Id, ownershipGroup.GroupType, postData);\r\n newOwnerId = data;\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(newOwnerId);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function selectedOwnerTypeChanged() {\r\n vm.selectedOwners = null;\r\n vm.filteredOwnersDataSource = vm.availableOwnersDataSource.filter(owner => owner.TypeName === vm.selectedOwnerType);\r\n }\r\n\r\n function close(newOwnerId) {\r\n $uibModalInstance.close(newOwnerId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, ownershipGroup, helperService, ownershipGroupItemsDataService, riskRulesetService, ownershipGroupOwnerDataService) {\r\n const vm = this;\r\n\r\n vm.saveBusinessProcessOwner = saveBusinessProcessOwner;\r\n vm.selectedOwnerTypeChanged = selectedOwnerTypeChanged;\r\n vm.setupBusinessProcessDropdown = setupBusinessProcessDropdown;\r\n vm.changeRuleset = changeRuleset;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getRulesets();\r\n await getOwners();\r\n\r\n vm.selectedOwnerType = 'User';\r\n selectedOwnerTypeChanged();\r\n }\r\n\r\n async function getRulesets() {\r\n let { data } = await riskRulesetService.getRiskRulesetList();\r\n vm.rulesets = data;\r\n\r\n vm.selectedRuleset = vm.rulesets.find(ruleset => ruleset.IsDefault).RulesetId;\r\n setupBusinessProcessDropdown();\r\n }\r\n\r\n function changeRuleset() {\r\n vm.selectedBusinessProcesses = null;\r\n vm.businessProcessDropdownDataSource.read();\r\n }\r\n\r\n async function setupBusinessProcessDropdown() {\r\n\r\n vm.businessProcessDropdownOptions = {\r\n filter: \"contains\",\r\n autoClose: false,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: 'dataItem',\r\n valueMapper: function (options) {\r\n options.success(helperService.multiValueMapperFunction(options, vm.businessProcessDataSource, 'BusinessProcessId'));\r\n }\r\n },\r\n height: 325\r\n };\r\n\r\n vm.businessProcessDropdownDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n const { data } = await ownershipGroupItemsDataService.getAllBusinessProcesses(ownershipGroup.Id, vm.selectedRuleset);\r\n vm.businessProcessDropdown.setOptions({ placeholder: `-- Select Business Processes --` });\r\n vm.businessProcessDataSource = data;\r\n options.success(data);\r\n }\r\n }\r\n });\r\n\r\n return vm.businessProcessDropdownDataSource;\r\n }\r\n\r\n async function getOwners() {\r\n vm.ownersDataSourceLoading = true;\r\n let { data } = await ownershipGroupOwnerDataService.getAvailableOwners(ownershipGroup.Id, ownershipGroup.GroupType);\r\n data = $filter('orderBy')(data, 'Name');\r\n vm.availableOwnersDataSource = data;\r\n vm.ownersDataSourceLoading = false;\r\n }\r\n\r\n async function saveBusinessProcessOwner() {\r\n vm.savePending = new createSpinner();\r\n let newOwnerId;\r\n let postData = {\r\n GroupId: ownershipGroup.Id,\r\n Owners: [vm.selectedOwner],\r\n BusinessProcessIds: vm.selectedBusinessProcesses\r\n };\r\n\r\n try {\r\n let { data } = await ownershipGroupOwnerDataService.addOwnerToGroup(ownershipGroup.Id, ownershipGroup.GroupType, postData);\r\n newOwnerId = data;\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(newOwnerId);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function selectedOwnerTypeChanged() {\r\n vm.selectedOwners = null;\r\n vm.filteredOwnersDataSource = vm.availableOwnersDataSource.filter(owner => owner.TypeName === vm.selectedOwnerType);\r\n }\r\n\r\n function close(newOwnerId) {\r\n $uibModalInstance.close(newOwnerId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $http, $filter, existingOwners, ownershipGroup, helperService, riskRulesetService, risksDataService, ownershipGroupOwnerDataService, ownershipGroupItemsDataService) {\r\n const vm = this;\r\n\r\n vm.cancel = cancel;\r\n vm.saveRiskOwner = saveRiskOwner;\r\n vm.selectedOwnerTypeChanged = selectedOwnerTypeChanged;\r\n vm.selectedRiskInfoChanged = selectedRiskInfoChanged;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getRulesets();\r\n await getOwners();\r\n \r\n getRiskTypes();\r\n\r\n vm.selectedRiskType = 0;\r\n vm.selectedOwnerType = 'User';\r\n\r\n selectedOwnerTypeChanged();\r\n }\r\n\r\n async function getOwners() {\r\n vm.ownersDataSourceLoading = true;\r\n let { data } = await ownershipGroupOwnerDataService.getAvailableOwners(ownershipGroup.Id, ownershipGroup.GroupType);\r\n data = $filter('orderBy')(data, 'Name');\r\n data = data.filter(masterOwner => !existingOwners.some(owner => owner.Id === masterOwner.Id));\r\n vm.availableOwnersDataSource = data;\r\n vm.ownersDataSourceLoading = false;\r\n }\r\n\r\n async function getRulesets() {\r\n let { data } = await riskRulesetService.getRiskRulesetList();\r\n vm.rulesets = data;\r\n\r\n vm.selectedRulesetId = vm.rulesets.find(ruleset => ruleset.IsDefault).RulesetId;\r\n setupRiskDropdown();\r\n }\r\n\r\n async function getRiskTypes() {\r\n let { data } = await risksDataService.getRiskTypes();\r\n vm.riskTypes = data;\r\n }\r\n\r\n async function setupRiskDropdown() {\r\n vm.riskDropdownOptions = {\r\n filter: \"contains\",\r\n autoClose: false,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: 'dataItem',\r\n valueMapper: function (options) {\r\n options.success(helperService.multiValueMapperFunction(options, vm.riskDataSource, 'RiskId'));\r\n }\r\n },\r\n height: 325\r\n };\r\n\r\n vm.kendoRiskDropdownDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n const { data } = await ownershipGroupItemsDataService.getAllRisksForOwner(ownershipGroup.Id, vm.selectedRulesetId);\r\n vm.riskDropdown.setOptions({ placeholder: `-- Select Risks --` });\r\n\r\n\r\n if (vm.selectedRiskType && vm.selectedRiskType === 1) {\r\n vm.riskDataSource = data.filter(risk => risk.RiskType === 'SOD');\r\n } else if (vm.selectedRiskType && vm.selectedRiskType === 2) {\r\n vm.riskDataSource = data.filter(risk => risk.RiskType === 'SA');\r\n } else {\r\n vm.riskDataSource = data;\r\n }\r\n\r\n options.success(vm.riskDataSource);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function selectedRiskInfoChanged() {\r\n vm.riskDropdown.value([]);\r\n vm.selectedRisks = null;\r\n vm.kendoRiskDropdownDataSource.read();\r\n }\r\n\r\n function selectedOwnerTypeChanged() {\r\n vm.selectedOwner = null;\r\n vm.filteredOwnersDataSource = vm.availableOwnersDataSource.filter(owner => owner.TypeName === vm.selectedOwnerType);\r\n }\r\n\r\n async function saveRiskOwner() {\r\n vm.savePending = new createSpinner();\r\n let newOwnerId;\r\n let owners = [];\r\n\r\n owners.push(vm.selectedOwner);\r\n\r\n let data = {\r\n GroupId: ownershipGroup.Id,\r\n RulesetId: vm.selectedRulesetId,\r\n RiskType: vm.selectedRiskType,\r\n Owners: owners,\r\n RiskIds: vm.selectedRisks\r\n };\r\n\r\n try {\r\n let response = await ownershipGroupOwnerDataService.addOwnerToGroup(ownershipGroup.Id, ownershipGroup.GroupType, data);\r\n newOwnerId = response.data;\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(newOwnerId);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close(ownerId) {\r\n $uibModalInstance.close(ownerId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, ownershipGroup, existingOwners, helperService, ownershipGroupOwnerDataService, ownershipGroupItemsDataService) {\r\n const vm = this;\r\n\r\n vm.saveCompanyOwner = saveCompanyOwner;\r\n vm.selectedCompanyTypeChanged = selectedCompanyTypeChanged;\r\n vm.selectedOwnerTypeChanged = selectedOwnerTypeChanged;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.selectedCompanyType = 'Company';\r\n setupCompanyDropdown();\r\n await setOwners();\r\n vm.selectedOwnerType = 'User';\r\n selectedOwnerTypeChanged();\r\n }\r\n\r\n async function setOwners() {\r\n vm.ownersDataSourceLoading = true;\r\n let { data } = await ownershipGroupOwnerDataService.getAvailableOwners(ownershipGroup.Id, ownershipGroup.GroupType);\r\n data = $filter('orderBy')(data, 'Name');\r\n data = data.filter(masterOwner => !existingOwners.some(owner => owner.Id === masterOwner.Id));\r\n vm.availableOwnersDataSource = data;\r\n vm.ownersDataSourceLoading = false;\r\n }\r\n\r\n function setupCompanyDropdown() {\r\n vm.companiesDropdownOptions = {\r\n filter: \"contains\",\r\n autoClose: false,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: 'dataItem',\r\n valueMapper: function (options) {\r\n options.success(helperService.multiValueMapperFunction(options, vm.companiesDataSource, 'Id'));\r\n }\r\n },\r\n height: 325\r\n };\r\n\r\n\r\n vm.companyDropdownDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n let { data } = await ownershipGroupItemsDataService.getAllItems(ownershipGroup);\r\n data = data.filter(company => company.Type === vm.selectedCompanyType);\r\n data = $filter('orderBy')(data, 'Name');\r\n vm.companiesDropdown.setOptions({ placeholder: `-- Select one or more ${$filter('insertSpaceBetweenCapitalWords')(vm.selectedCompanyType)}s --` });\r\n vm.companiesDataSource = data;\r\n options.success(data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function saveCompanyOwner() {\r\n const data = {\r\n GroupId: ownershipGroup.Id,\r\n Owners: [vm.selectedOwner],\r\n Items: vm.selectedCompanies\r\n };\r\n\r\n vm.savePending = new createSpinner();\r\n\r\n try {\r\n let { data: newOwnerId } = await ownershipGroupOwnerDataService.addOwnerToGroup(ownershipGroup.Id, ownershipGroup.GroupType, data); \r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(newOwnerId);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function selectedCompanyTypeChanged() {\r\n vm.companiesDropdown.value([]);\r\n vm.selectedCompanies = null;\r\n vm.companyDropdownDataSource.read();\r\n }\r\n\r\n function selectedOwnerTypeChanged() {\r\n vm.selectedOwner = null;\r\n vm.filteredOwnersDataSource = vm.availableOwnersDataSource.filter(owner => owner.TypeName === vm.selectedOwnerType);\r\n }\r\n\r\n function close(ownerId) {\r\n $uibModalInstance.close(ownerId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport groupOwnerRoleModalController from \"./groupOwnerRoleModal/groupOwnerRoleModal.controller\";\r\nimport groupOwnerProductModalController from \"./groupOwnerProductModal/groupOwnerProductModal.controller\";\r\nimport groupOwnerBusinessProcessModalController from \"./groupOwnerBusinessProcessModal/groupOwnerBusinessProcessModal.controller\";\r\nimport groupOwnerRiskModalController from \"./groupOwnerRiskModal/groupOwnerRiskModal.controller\";\r\nimport groupOwnerCompaniesModalController from \"./groupOwnerCompaniesModal/groupOwnerCompaniesModal.controller\";\r\n\r\n\r\nexport default /*@ngInject*/ function (ownershipGroupOwnerDataService, helperService, $uibModal, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedOwner = changeSelectedOwner;\r\n vm.openGroupOwnerItemModal = openGroupOwnerItemModal;\r\n vm.removeOwnerFromGroup = removeOwnerFromGroup;\r\n vm.changeGroupItemType = changeGroupItemType;\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n vm.selectedOwner = null;\r\n await getOwners();\r\n vm.ownersRadioFilter = null;\r\n }\r\n\r\n async function getOwners() {\r\n vm.ownersLoading = true;\r\n let response = await ownershipGroupOwnerDataService.getGroupOwners(vm.selectedOwnershipGroup.Id, vm.selectedOwnershipGroup.GroupType);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.owners = response.data;\r\n vm.ownersLoading = false;\r\n return vm.owners;\r\n }\r\n\r\n async function changeSelectedOwner(owner) {\r\n vm.selectedOwner = owner;\r\n vm.onSelectedOwnerChange({ owner });\r\n }\r\n\r\n async function removeOwnerFromGroup(owner) {\r\n try {\r\n await ownershipGroupOwnerDataService.removeOwnerFromOwnershipGroup(vm.selectedOwnershipGroup.Id, vm.selectedOwnershipGroup.GroupType, owner.Id);\r\n if (owner.Id === vm.selectedOwner.Id) {\r\n vm.selectedOwner = null;\r\n changeSelectedOwner(null);\r\n }\r\n getOwners();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function changeGroupItemType() {\r\n let groupItemType = vm.selectedGroupItemType;\r\n vm.onGroupItemTypeChange({ groupItemType });\r\n }\r\n\r\n function openGroupOwnerItemModal() {\r\n switch (vm.selectedOwnershipGroup.GroupType) {\r\n case 'role':\r\n openGroupOwnerRoleModal();\r\n break;\r\n case 'product':\r\n openGroupOwnerProductModal();\r\n break;\r\n case 'businessprocess':\r\n openGroupOwnerBusinessProcessModal();\r\n break;\r\n case 'risk':\r\n openGroupOwnerRiskModal();\r\n break;\r\n case 'company':\r\n openGroupOwnerCompaniesModal();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n // Group Owner Item Modals\r\n async function openGroupOwnerRoleModal() {\r\n let ownerModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnerRoleModal/groupOwnerRoleModal.tmpl.html',\r\n controller: groupOwnerRoleModalController,\r\n controllerAs: 'gormvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup,\r\n existingOwners: () => vm.owners\r\n }\r\n });\r\n\r\n try {\r\n let ownerId = await ownerModal.result;\r\n await getOwners();\r\n if (ownerId) {\r\n changeSelectedOwner(vm.owners.find(r => r.Id === ownerId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function openGroupOwnerProductModal() {\r\n let ownerProductModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnerProductModal/groupOwnerProductModal.tmpl.html',\r\n controller: groupOwnerProductModalController,\r\n controllerAs: 'gopmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup\r\n }\r\n });\r\n\r\n try {\r\n let ownerId = await ownerProductModal.result;\r\n await getOwners();\r\n if (ownerId) {\r\n changeSelectedOwner(vm.owners.find(r => r.Id === ownerId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function openGroupOwnerBusinessProcessModal() {\r\n let ownerModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnerBusinessProcessModal/groupOwnerBusinessProcessModal.tmpl.html',\r\n controller: groupOwnerBusinessProcessModalController,\r\n controllerAs: 'gobpmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup\r\n }\r\n });\r\n\r\n try {\r\n let ownerId = await ownerModal.result;\r\n await getOwners();\r\n if (ownerId) {\r\n changeSelectedOwner(vm.owners.find(r => r.Id === ownerId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n\r\n async function openGroupOwnerRiskModal() {\r\n let ownerModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnerRiskModal/groupOwnerRiskModal.tmpl.html',\r\n controller: groupOwnerRiskModalController,\r\n controllerAs: 'gormvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup,\r\n existingOwners: () => vm.owners\r\n }\r\n });\r\n\r\n try {\r\n let ownerId = await ownerModal.result;\r\n await getOwners();\r\n if (ownerId) {\r\n changeSelectedOwner(vm.owners.find(r => r.Id === ownerId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function openGroupOwnerCompaniesModal() {\r\n let ownerCompanyModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnerCompaniesModal/groupOwnerCompaniesModal.tmpl.html',\r\n controller: groupOwnerCompaniesModalController,\r\n controllerAs: 'gocmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup,\r\n existingOwners: () => vm.owners\r\n }\r\n });\r\n\r\n try {\r\n let ownerId = await ownerCompanyModal.result;\r\n await getOwners();\r\n if (ownerId) {\r\n changeSelectedOwner(vm.owners.find(owner => owner.Id === ownerId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import groupOwnersListController from \"./groupOwnersList.controller\";\r\n\r\n/* groupOwnersList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of ownership group owners\r\n * @example \r\n */\r\n\r\nconst groupOwnersList = {\r\n bindings: {\r\n selectedOwnershipGroup: '<',\r\n selectedGroupItemType: '<',\r\n onGroupItemTypeChange: '&',\r\n onSelectedOwnerChange: '&'\r\n },\r\n controller: groupOwnersListController,\r\n controllerAs: 'golvm',\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnersList.tmpl.html'\r\n};\r\n\r\nexport default groupOwnersList;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, ownershipGroup, existingRoles, helperService, ownershipGroupItemsDataService, ownershipGroupOwnerDataService) {\r\n const vm = this;\r\n\r\n vm.saveRole = saveRole;\r\n vm.selectedRoleTypeChanged = selectedRoleTypeChanged;\r\n vm.selectedOwnerTypeChanged = selectedOwnerTypeChanged;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.selectedRoleType = 'Role';\r\n setupRoleDropdown();\r\n await getOwners();\r\n vm.selectedOwnerType = 'User';\r\n selectedOwnerTypeChanged();\r\n }\r\n\r\n async function setupRoleDropdown() {\r\n\r\n vm.roleDropdownOptions = {\r\n filter: \"contains\",\r\n minLength: 3,\r\n virtual: {\r\n itemHeight: 26\r\n },\r\n height: 325,\r\n optionLabel: '-- Select a Role --'\r\n };\r\n\r\n\r\n vm.roleDropdownDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n let { data } = await ownershipGroupItemsDataService.getAvailableItems(ownershipGroup);\r\n vm.rolesDataSource = data.filter(masterRole => !existingRoles.some(role => role.Identifier === masterRole.Identifier) && masterRole.Type === vm.selectedRoleType);\r\n options.success(vm.rolesDataSource);\r\n }\r\n }\r\n });\r\n\r\n return vm.roleDropdownDataSource;\r\n }\r\n\r\n async function getOwners() {\r\n vm.ownersDataSourceLoading = true;\r\n let response = await ownershipGroupOwnerDataService.getAllOwners(ownershipGroup.Id);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.availableOwnersDataSource = response.data;\r\n vm.ownersDataSourceLoading = false;\r\n return vm.availableOwnersDataSource;\r\n }\r\n\r\n async function saveRole() {\r\n vm.savePending = new createSpinner();\r\n let newRoleId;\r\n let items = [];\r\n items.push(vm.selectedRole);\r\n let data = {\r\n GroupId: ownershipGroup.Id,\r\n Owners: vm.selectedOwners,\r\n Items: items\r\n };\r\n\r\n try {\r\n\r\n data.SecurityRoleIdentifier = vm.selectedRole.SecurityRoleIdentifier;\r\n let response = await ownershipGroupItemsDataService.addItemToGroup(data, ownershipGroup.Id, ownershipGroup.GroupType);\r\n newRoleId = response.data;\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(newRoleId);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function selectedRoleTypeChanged() {\r\n vm.roleDropdown.value([]);\r\n vm.selectedRole = null;\r\n vm.roleDropdown.setOptions({ optionLabel: `-- Select a ${$filter('insertSpaceBetweenCapitalWords')(vm.selectedRoleType)} --` });\r\n vm.roleDropdownDataSource.read();\r\n }\r\n\r\n function selectedOwnerTypeChanged() {\r\n vm.selectedOwners = null;\r\n vm.filteredOwnersDataSource = vm.availableOwnersDataSource.filter(owner => owner.TypeName === vm.selectedOwnerType);\r\n }\r\n\r\n function close(roleId) {\r\n $uibModalInstance.close(roleId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, ownershipGroup, existingCompanies, helperService, ownershipGroupItemsDataService, ownershipGroupOwnerDataService) {\r\n const vm = this;\r\n\r\n vm.saveCompany = saveCompany;\r\n vm.selectedCompanyTypeChanged = selectedCompanyTypeChanged;\r\n vm.selectedOwnerTypeChanged = selectedOwnerTypeChanged;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.selectedCompanyType = 'Company';\r\n setupCompanyDropdown();\r\n await setOwners();\r\n vm.selectedOwnerType = 'User';\r\n selectedOwnerTypeChanged();\r\n }\r\n\r\n async function setupCompanyDropdown() {\r\n\r\n vm.companyDropdownOptions = {\r\n filter: \"contains\",\r\n minLength: 3,\r\n virtual: {\r\n itemHeight: 26\r\n },\r\n height: 325,\r\n optionLabel: '-- Select a Company --'\r\n };\r\n\r\n\r\n vm.companyDropdownDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n let { data } = await ownershipGroupItemsDataService.getAvailableItems(ownershipGroup);\r\n vm.companiesDataSource = data.filter(masterCompany => !existingCompanies.some(company => company.CompanyId === masterCompany.CompanyId) && masterCompany.Type === vm.selectedCompanyType);\r\n options.success(vm.companiesDataSource);\r\n }\r\n }\r\n });\r\n\r\n return vm.companyDropdownDataSource;\r\n }\r\n\r\n async function setOwners() {\r\n vm.ownersDataSourceLoading = true;\r\n let { data } = await ownershipGroupOwnerDataService.getAllOwners(ownershipGroup.Id);\r\n data = $filter('orderBy')(data, 'Name');\r\n vm.availableOwnersDataSource = data;\r\n vm.ownersDataSourceLoading = false;\r\n }\r\n\r\n async function saveCompany() {\r\n vm.savePending = new createSpinner();\r\n const data = {\r\n GroupId: ownershipGroup.Id,\r\n Owners: vm.selectedOwners,\r\n Items: [vm.selectedCompany],\r\n SecurityCompanyIdentifier: vm.selectedCompany.SecurityCompanyIdentifier\r\n };\r\n\r\n try {\r\n \r\n let { data: newCompanyId } = await ownershipGroupItemsDataService.addItemToGroup(data, ownershipGroup.Id, ownershipGroup.GroupType);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(newCompanyId);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function selectedCompanyTypeChanged() {\r\n vm.companyDropdown.value([]);\r\n vm.selectedCompany = null;\r\n vm.companyDropdown.setOptions({ optionLabel: `-- Select a ${$filter('insertSpaceBetweenCapitalWords')(vm.selectedCompanyType)} --` });\r\n vm.companyDropdownDataSource.read();\r\n }\r\n\r\n function selectedOwnerTypeChanged() {\r\n vm.selectedOwners = null;\r\n vm.filteredOwnersDataSource = vm.availableOwnersDataSource.filter(owner => owner.TypeName === vm.selectedOwnerType);\r\n }\r\n\r\n function close(companyId) {\r\n $uibModalInstance.close(companyId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, ownershipGroup, dataService, helperService, ownershipGroupItemsDataService, ownershipGroupOwnerDataService) {\r\n const vm = this;\r\n\r\n vm.saveProduct = saveProduct;\r\n vm.selectedOwnerTypeChanged = selectedOwnerTypeChanged;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getProducts();\r\n await getOwners();\r\n\r\n vm.selectedOwnerType = 'User';\r\n selectedOwnerTypeChanged();\r\n }\r\n\r\n async function getProducts() {\r\n let { data } = await ownershipGroupItemsDataService.getAvailableItems(ownershipGroup);\r\n vm.products = data;\r\n }\r\n\r\n async function getOwners() {\r\n vm.ownersDataSourceLoading = true;\r\n let response = await ownershipGroupOwnerDataService.getAllOwners(ownershipGroup.Id);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.availableOwnersDataSource = response.data;\r\n vm.ownersDataSourceLoading = false;\r\n return vm.availableOwnersDataSource;\r\n }\r\n\r\n async function saveProduct() {\r\n vm.savePending = new createSpinner();\r\n let newProductId;\r\n let productIds = [vm.selectedProduct];\r\n let postData = {\r\n GroupId: ownershipGroup.Id,\r\n Owners: vm.selectedOwners,\r\n ProductIds: productIds\r\n };\r\n\r\n try {\r\n const { data } = await ownershipGroupItemsDataService.addItemToGroup(postData, ownershipGroup.Id, ownershipGroup.GroupType);\r\n newProductId = data;\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(newProductId);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function selectedOwnerTypeChanged() {\r\n vm.selectedOwners = null;\r\n vm.filteredOwnersDataSource = vm.availableOwnersDataSource.filter(owner => owner.TypeName === vm.selectedOwnerType);\r\n }\r\n\r\n function close(productId) {\r\n $uibModalInstance.close(productId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, ownershipGroup, helperService, ownershipGroupItemsDataService, riskRulesetService, ownershipGroupOwnerDataService) {\r\n const vm = this;\r\n\r\n vm.saveBusinessProcess = saveBusinessProcess;\r\n vm.selectedOwnerTypeChanged = selectedOwnerTypeChanged;\r\n vm.setupBusinessProcessDropdown = setupBusinessProcessDropdown;\r\n vm.changeRuleset = changeRuleset;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getRulesets();\r\n await getOwners();\r\n\r\n vm.selectedOwnerType = 'User';\r\n selectedOwnerTypeChanged();\r\n }\r\n\r\n async function getRulesets() {\r\n let { data } = await riskRulesetService.getRiskRulesetList();\r\n vm.rulesets = data;\r\n\r\n vm.selectedRuleset = vm.rulesets.find(ruleset => ruleset.IsDefault).RulesetId;\r\n setupBusinessProcessDropdown();\r\n }\r\n\r\n function changeRuleset() {\r\n vm.selectedBusinessProcess = null;\r\n vm.businessProcessDropdownDataSource.read();\r\n }\r\n\r\n async function setupBusinessProcessDropdown() {\r\n\r\n vm.businessProcessDropdownOptions = {\r\n filter: \"contains\",\r\n autoClose: false,\r\n virtual: {\r\n itemHeight: 26\r\n },\r\n height: 325,\r\n optionLabel: '-- Select a Business Process --'\r\n };\r\n\r\n vm.businessProcessDropdownDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n const { data } = await ownershipGroupItemsDataService.getAvailableBusinessProcesses(ownershipGroup.Id, vm.selectedRuleset);\r\n vm.bpDataSource = data;\r\n options.success(vm.bpDataSource);\r\n }\r\n }\r\n });\r\n\r\n return vm.businessProcessDropdownDataSource;\r\n }\r\n\r\n async function getOwners() {\r\n vm.ownersDataSourceLoading = true;\r\n let response = await ownershipGroupOwnerDataService.getAllOwners(ownershipGroup.Id);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.availableOwnersDataSource = response.data;\r\n vm.ownersDataSourceLoading = false;\r\n return vm.availableOwnersDataSource;\r\n }\r\n\r\n async function saveBusinessProcess() {\r\n vm.savePending = new createSpinner();\r\n\r\n let newBusinessProcessId;\r\n let data = {\r\n GroupId: ownershipGroup.Id,\r\n Owners: vm.selectedOwners,\r\n BusinessProcessIds: [vm.selectedBusinessProcess.BusinessProcessId]\r\n };\r\n\r\n try {\r\n let response = await ownershipGroupItemsDataService.addItemToGroup(data, ownershipGroup.Id, ownershipGroup.GroupType);\r\n newBusinessProcessId = response.data;\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(newBusinessProcessId);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function selectedOwnerTypeChanged() {\r\n vm.selectedOwners = null;\r\n vm.filteredOwnersDataSource = vm.availableOwnersDataSource.filter(owner => owner.TypeName === vm.selectedOwnerType);\r\n }\r\n\r\n function close(bpId) {\r\n $uibModalInstance.close(bpId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, ownershipGroup, riskCriteriaItem, modalType, riskLevelsData, businessCyclesDataService, risksDataService, helperService, ownershipGroupItemsDataService, riskRulesetService, ownershipGroupOwnerDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.saveRisk = saveRisk;\r\n vm.selectedOwnerTypeChanged = selectedOwnerTypeChanged;\r\n vm.updateRiskInfo = updateRiskInfo;\r\n vm.resetDropdowns = resetDropdowns;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n vm.modalType = modalType;\r\n\r\n vm.selectedBusinessCycles = [];\r\n vm.selectedRiskLevels = [];\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getRulesets();\r\n await getOwners();\r\n\r\n await getRiskTypes();\r\n await getBusinessCycles();\r\n await getRiskLevels();\r\n\r\n vm.selectedOwnerType = 'User';\r\n if (modalType === 'edit') {\r\n vm.riskCreationType = 'Risk Criteria';\r\n vm.riskCriteriaName = riskCriteriaItem.Name;\r\n setupRiskCriteriaGrid();\r\n } else {\r\n vm.riskCreationType = 'Risk';\r\n vm.selectedRiskType = 0;\r\n }\r\n selectedOwnerTypeChanged();\r\n }\r\n\r\n async function getRulesets() {\r\n let { data } = await riskRulesetService.getRiskRulesetList();\r\n vm.rulesets = data;\r\n\r\n vm.defaultRulesetId = vm.rulesets.find(ruleset => ruleset.IsDefault).RulesetId;\r\n if (modalType === 'edit') {\r\n vm.selectedRulesetId = riskCriteriaItem.RulesetId;\r\n } else {\r\n vm.selectedRulesetId = vm.defaultRulesetId;\r\n await setupRiskDropdown();\r\n await setupRiskCriteriaGrid();\r\n }\r\n\r\n }\r\n\r\n async function getRiskTypes() {\r\n let typeId;\r\n let { data } = await risksDataService.getRiskTypes();\r\n vm.riskTypes = data;\r\n\r\n if (modalType === 'edit') {\r\n if (riskCriteriaItem.RiskCriteria.RiskType === 'SOD') {\r\n typeId = 1;\r\n } else if (riskCriteriaItem.RiskCriteria.RiskType === 'SA') {\r\n typeId = 2;\r\n } else {\r\n typeId = 0;\r\n }\r\n vm.selectedRiskType = typeId;\r\n }\r\n }\r\n\r\n async function getBusinessCycles() {\r\n let { data } = await businessCyclesDataService.getBusinessCycles();\r\n vm.businessCyclesDataSource = data;\r\n\r\n if (modalType === 'edit') {\r\n vm.businessCycleIds = riskCriteriaItem.RiskCriteria.BusinessCycleIds.length ? riskCriteriaItem.RiskCriteria.BusinessCycleIds : [];\r\n vm.selectedBusinessCycles = riskCriteriaItem.RiskCriteria.BusinessCycleIds.map(id => vm.businessCyclesDataSource.find(cycle => cycle.ID === id));\r\n }\r\n }\r\n\r\n async function getRiskLevels() {\r\n vm.riskLevelsDataSourceLoading = true;\r\n let { data } = await riskLevelsData.getRiskLevels();\r\n vm.riskLevelsDataSource = data;\r\n vm.riskLevelsDataSourceLoading = false;\r\n\r\n if (modalType === 'edit') {\r\n vm.riskLevelIds = riskCriteriaItem.RiskCriteria.RiskLevelIds.length ? riskCriteriaItem.RiskCriteria.RiskLevelIds : [];\r\n vm.selectedRiskLevels = riskCriteriaItem.RiskCriteria.RiskLevelIds.map(id => vm.riskLevelsDataSource.find(level => level.Id === id));\r\n }\r\n }\r\n\r\n async function setupRiskDropdown() {\r\n\r\n vm.riskDropdownOptions = {\r\n filter: \"contains\",\r\n minLength: 3,\r\n virtual: {\r\n itemHeight: 26\r\n },\r\n height: 325,\r\n optionLabel: '-- Select a Risk --'\r\n };\r\n\r\n vm.riskDropdownDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n const { data } = await ownershipGroupItemsDataService.getAvailableRisks(ownershipGroup.Id, vm.selectedRulesetId);\r\n\r\n if (vm.selectedRiskType === 1) {\r\n vm.riskDataSource = data.filter(risk => risk.RiskType === 'SOD');\r\n } else if (vm.selectedRiskType === 2) {\r\n vm.riskDataSource = data.filter(risk => risk.RiskType === 'SA');\r\n } else {\r\n vm.riskDataSource = data;\r\n }\r\n\r\n options.success(vm.riskDataSource);\r\n }\r\n }\r\n });\r\n\r\n return vm.riskDropdownDataSource;\r\n }\r\n\r\n function setupRiskCriteriaGrid() {\r\n vm.riskCriteriaGridColumns = [\r\n { field: \"RiskName\", title: \"Risk\", width: 120, filterable: customAutoCompleteFilter },\r\n { field: \"RiskDescription\", title: \"Risk Description\", width: 120, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.riskCriteriaGridOptions = helperService.setMainGridOptions(vm.riskCriteriaGridColumns, 400);\r\n\r\n vm.riskCriteriaGridDataSource = new kendo.data.DataSource({\r\n schema: {\r\n data: \"_embedded.reportData\",\r\n total: \"TotalItems\"\r\n },\r\n pageSize: standardGridPageSize,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n noRecords: {\r\n template: \"
No items to display
\"\r\n },\r\n transport: {\r\n read: async options => {\r\n try {\r\n let sortsAndFilters = await helperService.prepareSortsAndFilters(options);\r\n\r\n if (vm.selectedRulesetId) {\r\n sortsAndFilters.Filters.push({ FieldName: \"RulesetId\", Operator: \"Equals\", Value: vm.selectedRulesetId });\r\n }\r\n\r\n if (vm.selectedRiskType) {\r\n sortsAndFilters.Filters.push({ FieldName: \"RiskTypeId\", Operator: \"Equals\", Value: vm.selectedRiskType });\r\n }\r\n\r\n if (vm.selectedRiskLevels) {\r\n vm.riskLevelIds.forEach(levelId => {\r\n sortsAndFilters.Filters.push({ FieldName: \"RiskLevelId\", Operator: \"Equals\", Value: levelId });\r\n }); \r\n }\r\n\r\n if (vm.selectedBusinessCycles) {\r\n vm.businessCycleIds.forEach(cycleId => {\r\n sortsAndFilters.Filters.push({ FieldName: \"BusinessCycleId\", Operator: \"Equals\", Value: cycleId });\r\n });\r\n }\r\n\r\n const { page, pageSize } = options.data,\r\n { data } = await ownershipGroupItemsDataService.getRisksByRiskCriteria(ownershipGroup.Id, sortsAndFilters, page, pageSize);\r\n\r\n options.success(data);\r\n } catch (err) {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function resetDropdowns() {\r\n vm.selectedOwners = null;\r\n vm.selectedRisk = null;\r\n vm.selectedRiskType = 0;\r\n vm.selectedRulesetId = vm.defaultRulesetId;\r\n vm.selectedRiskLevels = [];\r\n vm.selectedBusinessCycles = [];\r\n vm.riskCriteriaName = null;\r\n }\r\n\r\n function updateRiskInfo() {\r\n if (vm.riskCreationType === 'Risk') {\r\n vm.selectedRisk = null;\r\n vm.riskDropdown.value([]);\r\n vm.riskDropdownDataSource.read();\r\n } else {\r\n vm.riskLevelIds = vm.selectedRiskLevels.map(level => level.Id);\r\n vm.businessCycleIds = vm.selectedBusinessCycles.map(cycle => cycle.ID);\r\n if (vm.riskCriteriaGridDataSource) {\r\n vm.riskCriteriaGridDataSource.read();\r\n }\r\n }\r\n }\r\n\r\n async function getOwners() {\r\n vm.ownersDataSourceLoading = true;\r\n let response = await ownershipGroupOwnerDataService.getAllOwners(ownershipGroup.Id);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.availableOwnersDataSource = response.data;\r\n vm.ownersDataSourceLoading = false;\r\n return vm.availableOwnersDataSource;\r\n }\r\n\r\n async function saveRisk() {\r\n vm.savePending = new createSpinner();\r\n let data,\r\n riskId;\r\n\r\n if (modalType === 'edit') {\r\n data = {\r\n ItemId: riskCriteriaItem.Id,\r\n RiskCriteriaName: vm.riskCriteriaName,\r\n RiskType: vm.selectedRiskType,\r\n RulesetId: vm.selectedRulesetId,\r\n RiskLevelIds: vm.riskLevelIds,\r\n BusinessCycleIds: vm.businessCycleIds\r\n };\r\n } else {\r\n data = {\r\n GroupId: ownershipGroup.Id,\r\n RiskCriteriaName: vm.riskCriteriaName,\r\n Owners: vm.selectedOwners,\r\n RiskIds: !vm.selectedRisk ? [] : [vm.selectedRisk],\r\n RiskType: vm.selectedRiskType,\r\n RulesetId: vm.selectedRulesetId,\r\n RiskLevelIds: vm.riskLevelIds,\r\n BusinessCycleIds: vm.businessCycleIds\r\n };\r\n }\r\n try {\r\n let response\r\n if (modalType === 'edit') {\r\n response = await ownershipGroupItemsDataService.updateRiskCriteria(ownershipGroup.Id, riskCriteriaItem.Id, data); \r\n } else {\r\n response = await ownershipGroupItemsDataService.addItemToGroup(data, ownershipGroup.Id, ownershipGroup.GroupType);\r\n }\r\n riskId = response.data;\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(riskId);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function selectedOwnerTypeChanged() {\r\n vm.selectedOwners = null;\r\n vm.filteredOwnersDataSource = vm.availableOwnersDataSource.filter(owner => owner.TypeName === vm.selectedOwnerType);\r\n }\r\n\r\n function close(bpId) {\r\n $uibModalInstance.close(bpId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import groupRoleModalController from \"../ownershipGroupItemsList/groupRoleModal/groupRoleModal.controller\";\r\nimport groupCompanyModalController from \"../ownershipGroupItemsList/groupCompanyModal/groupCompanyModal.controller\";\r\nimport groupProductModalController from \"../ownershipGroupItemsList/groupProductModal/groupProductModal.controller\";\r\nimport groupBusinessProcessModalController from \"../ownershipGroupItemsList/groupBusinessProcessModal/groupBusinessProcessModal.controller\";\r\nimport groupRiskModalController from \"./groupRiskModal/groupRiskModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (ownershipGroupItemsDataService, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedItem = changeSelectedItem;\r\n vm.openGroupItemModal = openGroupItemModal;\r\n vm.removeItemFromGroup = removeItemFromGroup;\r\n vm.changeGroupItemType = changeGroupItemType;\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n vm.selectedItem = null;\r\n await getItems();\r\n vm.itemsRadioFilter = null;\r\n\r\n vm.selectedGroupItemType = 'item';\r\n }\r\n\r\n async function getItems() {\r\n vm.itemsLoading = true;\r\n const { data } = await ownershipGroupItemsDataService.getGroupItems(vm.selectedOwnershipGroup.Id, vm.selectedOwnershipGroup.GroupType);\r\n vm.items = data;\r\n vm.itemsLoading = false;\r\n return vm.items;\r\n }\r\n\r\n async function changeSelectedItem(item) {\r\n vm.selectedItem = item;\r\n vm.onSelectedItemChange({ item });\r\n }\r\n\r\n function openGroupItemModal(item, modalType) {\r\n switch (vm.selectedOwnershipGroup.GroupType) {\r\n case 'role':\r\n openGroupRoleModal();\r\n break;\r\n case 'company':\r\n openGroupCompanyModal();\r\n break;\r\n case 'product':\r\n openGroupProductModal();\r\n break;\r\n case 'businessprocess':\r\n openGroupBusinessProcessModal();\r\n break;\r\n case 'risk':\r\n openGroupRiskModal(item, modalType);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n async function removeItemFromGroup(item) {\r\n try {\r\n await ownershipGroupItemsDataService.removeItemFromOwnershipGroup(vm.selectedOwnershipGroup.Id, vm.selectedOwnershipGroup.GroupType, item.Id);\r\n if (item.Id === vm.selectedItem.Id) {\r\n vm.selectedItem = null;\r\n changeSelectedItem(null);\r\n }\r\n getItems();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function changeGroupItemType() {\r\n let groupItemType = vm.selectedGroupItemType;\r\n vm.onGroupItemTypeChange({ groupItemType });\r\n }\r\n\r\n // Group Item Modals\r\n async function openGroupRoleModal() {\r\n let roleModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupItemsList/groupRoleModal/groupRoleModal.tmpl.html',\r\n controller: groupRoleModalController,\r\n controllerAs: 'grmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup,\r\n existingRoles: () => vm.items\r\n }\r\n });\r\n\r\n try {\r\n let roleId = await roleModal.result;\r\n await getItems();\r\n if (roleId) {\r\n changeSelectedItem(vm.roles.find(r => r.Id === roleId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function openGroupCompanyModal() {\r\n let companyModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupItemsList/groupCompanyModal/groupCompanyModal.tmpl.html',\r\n controller: groupCompanyModalController,\r\n controllerAs: 'gcmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup,\r\n existingCompanies: () => vm.items\r\n }\r\n });\r\n\r\n try {\r\n let companyId = await companyModal.result;\r\n await getItems();\r\n if (companyId) {\r\n changeSelectedItem(vm.items.find(item => item.Id === companyId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function openGroupProductModal() {\r\n let productModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupItemsList/groupProductModal/groupProductModal.tmpl.html',\r\n controller: groupProductModalController,\r\n controllerAs: 'gpmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup,\r\n existingProducts: () => vm.items\r\n }\r\n });\r\n\r\n try {\r\n let productId = await productModal.result;\r\n await getItems();\r\n if (productId) {\r\n changeSelectedItem(vm.items.find(p => p.Id === productId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function openGroupBusinessProcessModal() {\r\n let businessProcessModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupItemsList/groupBusinessProcessModal/groupBusinessProcessModal.tmpl.html',\r\n controller: groupBusinessProcessModalController,\r\n controllerAs: 'gbpmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup,\r\n existingBusinessProcesses: () => vm.items\r\n }\r\n });\r\n\r\n try {\r\n let bpId = await businessProcessModal.result;\r\n await getItems();\r\n if (bpId) {\r\n changeSelectedItem(vm.items.find(bp => bp.Id === bpId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function openGroupRiskModal(item, modalType) {\r\n let riskModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupItemsList/groupRiskModal/groupRiskModal.tmpl.html',\r\n controller: groupRiskModalController,\r\n controllerAs: 'grmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup,\r\n existingRisks: () => vm.items,\r\n riskCriteriaItem: () => item,\r\n modalType: () => modalType,\r\n }\r\n });\r\n\r\n try {\r\n let riskId = await riskModal.result;\r\n await getItems();\r\n if (riskId) {\r\n changeSelectedItem(vm.items.find(risk => risk.Id === riskId));\r\n }\r\n } catch { return; }\r\n }\r\n}","/* groupItemsList.component.js */\r\n\r\nimport groupItemsListController from \"./groupItemsList.controller\";\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of ownership group items\r\n * @example \r\n */\r\n\r\nconst groupItemsList = {\r\n bindings: {\r\n selectedOwnershipGroup: '<',\r\n selectedGroupItemType: '<',\r\n onGroupItemTypeChange: '&',\r\n onSelectedItemChange: '&'\r\n },\r\n controller: groupItemsListController,\r\n controllerAs: 'gilvm',\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroupItemsList/groupItemsList.tmpl.html'\r\n};\r\n\r\nexport default groupItemsList;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getGroupItems,\r\n getEmergencyAccessGroupRoles,\r\n getAvailableItems,\r\n getAvailableBusinessProcesses,\r\n getAvailableOwnerBusinessProcesses,\r\n getAllBusinessProcesses,\r\n getAvailableOwnerItems,\r\n getAllItems,\r\n getAvailableRisks,\r\n getAvailableRisksByOwner,\r\n getAllRisksForOwner,\r\n getRisksByRiskCriteria,\r\n updateRiskCriteria,\r\n getGroupOwnerItems,\r\n addItemToGroup,\r\n removeItemFromOwnershipGroup,\r\n removeOwnerFromOwnershipGroupItem,\r\n removeItemFromOwnershipGroupOwner\r\n };\r\n\r\n return factory;\r\n\r\n async function getGroupItems(groupId, type) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/${type}/items`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getEmergencyAccessGroupRoles(groupId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/role/emergencyaccess`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAvailableItems(ownershipGroup) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${ownershipGroup.Id}/type/${ownershipGroup.GroupType}/availableitems`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAvailableBusinessProcesses(groupId, rulesetId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/businessprocess/ruleset/${rulesetId}/availableitems`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAvailableOwnerBusinessProcesses(groupId, ownerId, rulesetId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/businessprocess/owners/${ownerId}/ruleset/${rulesetId}/availableitems`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAllBusinessProcesses(groupId, rulesetId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/businessprocess/ruleset/${rulesetId}/allitems`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAvailableOwnerItems(ownershipGroup, ownerId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${ownershipGroup.Id}/type/${ownershipGroup.GroupType}/owners/${ownerId}/availableitems`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAllItems(ownershipGroup) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${ownershipGroup.Id}/type/${ownershipGroup.GroupType}/allitems`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAvailableRisks(groupId, rulesetId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/risk/ruleset/${rulesetId}/availableitems`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAvailableRisksByOwner(groupId, ownerId, rulesetId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/risk/owners/${ownerId}/ruleset/${rulesetId}/availableitems`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getAllRisksForOwner(groupId, rulesetId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/risk/ruleset/${rulesetId}/allitems`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRisksByRiskCriteria(groupId, data, page, pageSize) {\r\n try {\r\n return await $http({\r\n method: 'POST',\r\n url: `${apiUrl}api/universal/ownershipgroups/${groupId}/type/risk/risks`,\r\n data: data,\r\n params: { 'pagesize': pageSize, 'page': page }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function updateRiskCriteria(groupId, itemId, putData) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/risk/item/${itemId}`, putData);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getGroupOwnerItems(ownershipGroup, groupOwner) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/ownershipgroups/${ownershipGroup.Id}/type/${ownershipGroup.GroupType}/owners/${groupOwner.Id}/items`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function addItemToGroup(data, groupId, type) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/${type}/item`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeItemFromOwnershipGroup(groupId, type, itemId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/ownershipgroups/${groupId}/type/${type}/items/${itemId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeOwnerFromOwnershipGroupItem(ownershipGroup, groupItem, putBody) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/ownershipgroups/${ownershipGroup.Id}/type/${ownershipGroup.GroupType}/items/${groupItem.Id}/deleteowners`, putBody);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeItemFromOwnershipGroupOwner(ownershipGroup, groupOwner, putBody) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/ownershipgroups/${ownershipGroup.Id}/type/${ownershipGroup.GroupType}/owners/${groupOwner.Id}/deleteitems`, putBody);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(error) {\r\n errorsDataService.catch(error);\r\n }\r\n\r\n function sendError(error) {\r\n throw error;\r\n }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, ownershipGroup, groupItem, helperService, ownershipGroupsDataService, ownershipGroupOwnerDataService) {\r\n const vm = this;\r\n\r\n vm.saveOwner = saveOwner;\r\n vm.selectedOwnerTypeChanged = selectedOwnerTypeChanged;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n vm.groupItem = groupItem;\r\n\r\n activate();\r\n\r\n function activate() {\r\n vm.selectedOwnerType = 'Users';\r\n getOwners();\r\n }\r\n\r\n function selectedOwnerTypeChanged() {\r\n vm.selectedOwners = null;\r\n getOwners();\r\n }\r\n\r\n async function getOwners() {\r\n vm.ownersDataSourceLoading = true;\r\n const { data } = await ownershipGroupOwnerDataService.getAvailableOwnersForItem(ownershipGroup.Id, groupItem.Id, ownershipGroup.GroupType);\r\n vm.availableOwnersDataSource = data;\r\n vm.availableOwnersDataSource = vm.availableOwnersDataSource.filter(owner => owner.TypeName === (vm.selectedOwnerType === 'Users' ? 'User' : 'Approval Group'));\r\n vm.ownersDataSourceLoading = false;\r\n return vm.availableOwnersDataSource;\r\n }\r\n\r\n async function saveOwner() {\r\n vm.savePending = new createSpinner();\r\n\r\n let data = {\r\n Owners: vm.selectedOwners\r\n }\r\n\r\n try {\r\n await ownershipGroupsDataService.addOwnersToGroupObject(ownershipGroup.Id, ownershipGroup.GroupType, groupItem.Id, data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import groupItemOwnerModalController from \"./groupItemOwnerModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (ownershipGroupOwnerDataService, ownershipGroupItemsDataService, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.openGroupItemOwnerModal = openGroupItemOwnerModal;\r\n vm.removeOwnerFromGroupItem = removeOwnerFromGroupItem;\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n await setOwners();\r\n vm.ownersRadioFilter = null;\r\n }\r\n\r\n async function setOwners() {\r\n vm.ownersLoading = true;\r\n const { data } = await ownershipGroupOwnerDataService.getGroupItemOwners(vm.selectedOwnershipGroup, vm.selectedGroupItem);\r\n vm.owners = data;\r\n vm.ownersLoading = false;\r\n }\r\n\r\n async function openGroupItemOwnerModal() {\r\n let ownerModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/groupItemOwnersList/groupItemOwnerModal.tmpl.html',\r\n controller: groupItemOwnerModalController,\r\n controllerAs: 'giomvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup,\r\n groupItem: () => vm.selectedGroupItem\r\n }\r\n });\r\n\r\n try {\r\n await ownerModal.result;\r\n setOwners();\r\n } catch { return; }\r\n }\r\n\r\n async function removeOwnerFromGroupItem(owner) {\r\n\r\n let putData = {\r\n Owners: [owner]\r\n }\r\n\r\n try {\r\n await ownershipGroupItemsDataService.removeOwnerFromOwnershipGroupItem(vm.selectedOwnershipGroup, vm.selectedGroupItem, putData);\r\n setOwners();\r\n } catch {\r\n return;\r\n }\r\n }\r\n}","/* groupItemOwnersList.component.js */\r\n\r\nimport groupItemOwnersListController from \"./groupItemOwnersList.controller\";\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of ownership group item users or approval groups\r\n * @example \r\n */\r\n\r\nconst groupItemOwnersList = {\r\n bindings: {\r\n selectedOwnershipGroup: '<',\r\n selectedGroupItem: '<'\r\n },\r\n controller: groupItemOwnersListController,\r\n controllerAs: 'giolvm',\r\n templateUrl: '/App/Components/OwnershipGroups/groupItemOwnersList/groupItemOwnersList.tmpl.html'\r\n};\r\n\r\nexport default groupItemOwnersList;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, ownershipGroup, groupOwner, helperService, riskRulesetService, risksDataService, ownershipGroupsDataService, ownershipGroupItemsDataService) {\r\n const vm = this;\r\n\r\n vm.selectedRoleTypeChanged = selectedRoleTypeChanged;\r\n vm.selectedCompanyTypeChanged = selectedCompanyTypeChanged;\r\n vm.updateDropdowns = updateDropdowns;\r\n vm.saveItem = saveItem;\r\n vm.cancel = cancel;\r\n\r\n vm.ownershipGroup = { ...ownershipGroup };\r\n vm.groupOwner = groupOwner;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await setupModal();\r\n }\r\n\r\n async function setupModal() {\r\n switch (vm.ownershipGroup.GroupType) {\r\n case 'role':\r\n vm.selectedRoleType = 'Role';\r\n setupRoleDropdown();\r\n break;\r\n case 'company':\r\n vm.selectedCompanyType = 'Company';\r\n setupCompanyDropdown();\r\n break;\r\n case 'product':\r\n setProducts();\r\n break;\r\n case 'businessprocess':\r\n await setRulesets();\r\n setupBusinessProcessDropdown();\r\n break;\r\n case 'risk':\r\n vm.selectedRiskType = null;\r\n await setRulesets();\r\n getRiskTypes();\r\n setupRiskDropdown();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n async function setRulesets() {\r\n let { data } = await riskRulesetService.getRiskRulesetList();\r\n vm.rulesets = data;\r\n\r\n vm.selectedRulesetId = vm.rulesets.find(ruleset => ruleset.IsDefault).RulesetId;\r\n\r\n }\r\n\r\n // Role\r\n function setupRoleDropdown() {\r\n\r\n vm.rolesDropdownOptions = {\r\n filter: \"contains\",\r\n autoClose: false,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: 'dataItem',\r\n valueMapper: function (options) {\r\n options.success(helperService.multiValueMapperFunction(options, vm.rolesDataSource, 'Identifier'));\r\n }\r\n },\r\n height: 325,\r\n placeholder: `-- Select Roles --`\r\n };\r\n\r\n vm.rolesDropdownDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n vm.rolesDropdownLoading = true;\r\n let { data } = await ownershipGroupItemsDataService.getAvailableOwnerItems(ownershipGroup, groupOwner.Id);\r\n data = data.filter(role => role.Type === vm.selectedRoleType);\r\n vm.rolesDataSource = data;\r\n options.success(data);\r\n vm.rolesDropdownLoading = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n function selectedRoleTypeChanged() {\r\n vm.rolesDropdown.value([]);\r\n vm.rolesDropdown.setOptions({ placeholder: `-- Select ${$filter('insertSpaceBetweenCapitalWords')(vm.selectedRoleType)}s --` });\r\n vm.rolesDropdownDataSource.read();\r\n }\r\n\r\n // Company\r\n function setupCompanyDropdown() {\r\n\r\n vm.companiesDropdownOptions = {\r\n filter: \"contains\",\r\n autoClose: false,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: 'dataItem',\r\n valueMapper: function (options) {\r\n options.success(helperService.multiValueMapperFunction(options, vm.companiesDataSource, 'Id'));\r\n }\r\n },\r\n height: 325,\r\n placeholder: `-- Select Companies --`\r\n };\r\n\r\n vm.companiesDropdownDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n vm.companiesDropdownLoading = true;\r\n let { data } = await ownershipGroupItemsDataService.getAvailableOwnerItems(ownershipGroup, groupOwner.Id);\r\n data = data.filter(company => company.Type === vm.selectedCompanyType);\r\n vm.companiesDataSource = data;\r\n options.success(data);\r\n vm.companiesDropdownLoading = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n function selectedCompanyTypeChanged() {\r\n vm.companiesDropdown.value([]);\r\n vm.companiesDropdown.setOptions({ placeholder: `-- Select one or more ${$filter('insertSpaceBetweenCapitalWords')(vm.selectedCompanyType)}s --` });\r\n vm.companiesDropdownDataSource.read();\r\n }\r\n\r\n // Business Process\r\n async function setupBusinessProcessDropdown() {\r\n\r\n vm.businessProcessDropdownOptions = {\r\n filter: \"contains\",\r\n autoClose: false,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: 'dataItem',\r\n valueMapper: function (options) {\r\n options.success(helperService.multiValueMapperFunction(options, vm.businessProcessDataSource, 'BusinessProcessId'));\r\n }\r\n },\r\n height: 325\r\n };\r\n\r\n vm.businessProcessDropdownDataSource = new kendo.data.DataSource({\r\n\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n const { data } = await ownershipGroupItemsDataService.getAvailableOwnerBusinessProcesses(ownershipGroup.Id, groupOwner.Id, vm.selectedRulesetId);\r\n vm.businessProcessDropdown.setOptions({ placeholder: `-- Select Business Processes --` });\r\n vm.businessProcessDataSource = data;\r\n options.success(data);\r\n }\r\n }\r\n });\r\n\r\n return vm.businessProcessDropdownDataSource;\r\n }\r\n\r\n // Product\r\n async function setProducts() {\r\n let { data } = await ownershipGroupItemsDataService.getAvailableOwnerItems(ownershipGroup, groupOwner.Id);\r\n vm.productsDataSource = data;\r\n }\r\n\r\n // Risk\r\n async function updateDropdowns(type) {\r\n vm.selectedItems = null;\r\n if (type === 'businessprocess') {\r\n vm.businessProcessDropdownDataSource.read();\r\n } else {\r\n vm.kendoRiskDropdownDataSource.read();\r\n }\r\n }\r\n\r\n async function getRiskTypes() {\r\n let { data } = await risksDataService.getRiskTypes();\r\n vm.riskTypes = data;\r\n }\r\n\r\n function setupRiskDropdown() {\r\n vm.riskDropdownOptions = {\r\n filter: \"contains\",\r\n autoClose: false,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: 'dataItem',\r\n valueMapper: function (options) {\r\n options.success(helperService.multiValueMapperFunction(options, vm.riskDataSource, 'RiskId'));\r\n }\r\n },\r\n height: 325\r\n };\r\n\r\n vm.kendoRiskDropdownDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n const { data } = await ownershipGroupItemsDataService.getAvailableRisksByOwner(ownershipGroup.Id, groupOwner.Id, vm.selectedRulesetId);\r\n vm.riskDropdown.setOptions({ placeholder: `-- Select Risks --` });\r\n\r\n if (vm.selectedRiskType && vm.selectedRiskType === 'Segregation Of Duties') {\r\n vm.riskDataSource = data.filter(risk => risk.RiskType === 'SOD');\r\n } else if (vm.selectedRiskType && vm.selectedRiskType === 'Sensitive Access') {\r\n vm.riskDataSource = data.filter(risk => risk.RiskType === 'SA');\r\n } else {\r\n vm.riskDataSource = data;\r\n }\r\n\r\n options.success(vm.riskDataSource);\r\n }\r\n }\r\n });\r\n }\r\n //\r\n\r\n function definePutData() {\r\n switch (vm.ownershipGroup.GroupType) {\r\n case 'role':\r\n return { Items: vm.selectedItems };\r\n case 'company':\r\n return { Items: vm.selectedItems };\r\n case 'product':\r\n let productIds = vm.selectedItems.map(item => item.ProductId);\r\n return { ProductIds: productIds };\r\n case 'businessprocess':\r\n return { BusinessProcessIds: vm.selectedItems }\r\n case 'risk':\r\n return {\r\n RulesetId: vm.selectedRulesetId,\r\n RiskIds: vm.selectedItems\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n async function saveItem() {\r\n vm.savePending = new createSpinner();\r\n const data = await definePutData();\r\n\r\n try {\r\n let itemId = await ownershipGroupsDataService.addItemsToGroupObject(ownershipGroup, groupOwner, data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(itemId);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close(itemId) {\r\n $uibModalInstance.close(itemId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import groupOwnerItemsModalController from \"./groupOwnerItemsModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (ownershipGroupItemsDataService, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.openGroupOwnerItemModal = openGroupOwnerItemModal;\r\n vm.removeOwnerItemFromGroupOwner = removeOwnerItemFromGroupOwner;\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n setOwnerItems();\r\n vm.itemsRadioFilter = null;\r\n }\r\n\r\n async function setOwnerItems() {\r\n vm.ownerItemsLoading = true;\r\n\r\n const { data } = await ownershipGroupItemsDataService.getGroupOwnerItems(vm.selectedOwnershipGroup, vm.selectedGroupOwner);\r\n vm.ownerItems = data;\r\n vm.ownerItemsLoading = false;\r\n }\r\n\r\n async function openGroupOwnerItemModal() {\r\n let ownerItemModal = $uibModal.open({\r\n templateUrl: '/App/Components/OwnershipGroups/groupOwnerItemsList/groupOwnerItemsModal.tmpl.html',\r\n controller: groupOwnerItemsModalController,\r\n controllerAs: 'goimvm',\r\n backdrop: 'static',\r\n resolve: {\r\n ownershipGroup: () => vm.selectedOwnershipGroup,\r\n groupOwner: () => vm.selectedGroupOwner\r\n }\r\n });\r\n\r\n try {\r\n await ownerItemModal.result;\r\n await setOwnerItems();\r\n } catch { return; }\r\n }\r\n\r\n async function removeOwnerItemFromGroupOwner(ownerItem) {\r\n const putBody = {\r\n ItemIds: [ownerItem.Id]\r\n };\r\n\r\n try {\r\n await ownershipGroupItemsDataService.removeItemFromOwnershipGroupOwner(vm.selectedOwnershipGroup, vm.selectedGroupOwner, putBody);\r\n await setOwnerItems();\r\n } catch {\r\n return;\r\n }\r\n }\r\n}","/* groupOwnerItemsList.component.js */\r\n\r\nimport groupOwnerItemsListController from \"./groupOwnerItemsList.controller\";\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of ownership group owner items\r\n * @example \r\n */\r\n\r\nconst groupOwnerItemsList = {\r\n bindings: {\r\n selectedOwnershipGroup: '<',\r\n selectedGroupOwner: '<',\r\n },\r\n controller: groupOwnerItemsListController,\r\n controllerAs: 'goilvm',\r\n templateUrl: '/App/Components/OwnershipGroups/groupOwnerItemsList/groupOwnerItemsList.tmpl.html'\r\n};\r\n\r\nexport default groupOwnerItemsList;","import angular from 'angular';\r\nimport ownershipGroups from '../Components/OwnershipGroups/ownershipGroups.component';\r\nimport ownershipGroupsList from '../Components/OwnershipGroups/ownershipGroupsList/ownershipGroupsList.component';\r\nimport ownershipGroupsDataServiceFactory from '../Components/OwnershipGroups/ownershipGroupsDataService.factory';\r\nimport ownershipGroupOwnerDataServiceFactory from '../Components/OwnershipGroups/ownershipGroupOwnersList/ownershipGroupOwnerDataService.factory';\r\nimport groupOwnersList from '../Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnersList.component';\r\nimport groupItemsList from '../Components/OwnershipGroups/ownershipGroupItemsList/groupItemsList.component';\r\nimport ownershipGroupItemsDataServiceFactory from '../Components/OwnershipGroups/ownershipGroupItemsList/ownershipGroupItemsDataService.factory';\r\nimport groupItemOwnersList from '../Components/OwnershipGroups/groupItemOwnersList/groupItemOwnersList.component';\r\nimport groupOwnerItemsList from '../Components/OwnershipGroups/groupOwnerItemsList/groupOwnerItemsList.component';\r\n\r\nexport default angular\r\n .module('app.systemConfiguration.ownershipGroups', [])\r\n .component('ownershipGroups', ownershipGroups)\r\n .component('ownershipGroupsList', ownershipGroupsList)\r\n .factory('ownershipGroupsDataService', ownershipGroupsDataServiceFactory)\r\n .component('ownershipGroupItemsList', groupItemsList)\r\n .factory('ownershipGroupItemsDataService', ownershipGroupItemsDataServiceFactory)\r\n .factory('ownershipGroupOwnerDataService', ownershipGroupOwnerDataServiceFactory)\r\n .component('ownershipGroupOwnersList', groupOwnersList)\r\n .component('ownershipGroupItemsOwnersList', groupItemOwnersList)\r\n .component('ownershipGroupOwnerItemsList', groupOwnerItemsList)\r\n .name;","import ownershipGroupsController from \"./ownershipGroups.controller\";\r\n\r\n/* ownershipGroups.component.js */\r\n\r\n/**\r\n * @desc component for displaying and managing ownership groups\r\n * @example \r\n */\r\n\r\nconst ownershipGroups = {\r\n controller: ownershipGroupsController,\r\n controllerAs: 'ogvm',\r\n templateUrl: '/App/Components/OwnershipGroups/ownershipGroups.tmpl.html'\r\n};\r\n\r\nexport default ownershipGroups;","export default /*@ngInject*/ function () {\r\n const vm = this;\r\n\r\n vm.changeSelectedOwnershipGroup = changeSelectedOwnershipGroup; \r\n vm.changeSelectedItem = changeSelectedItem;\r\n vm.changeSelectedOwner = changeSelectedOwner;\r\n vm.changeOwnershipGroupObjectType = changeOwnershipGroupObjectType;\r\n\r\n vm.selectedGroupItemType = \"item\";\r\n\r\n function changeSelectedOwnershipGroup(ownershipGroup) {\r\n vm.selectedItem = null;\r\n vm.selectedOwner = null;\r\n vm.selectedOwnershipGroup = ownershipGroup;\r\n }\r\n\r\n function changeSelectedItem(item) {\r\n vm.selectedItem = item;\r\n }\r\n\r\n function changeSelectedOwner(owner) {\r\n vm.selectedOwner = owner;\r\n }\r\n\r\n function changeOwnershipGroupObjectType(groupItemType) {\r\n vm.selectedGroupItemType = groupItemType;\r\n switch (groupItemType) {\r\n case 'item':\r\n vm.selectedOwner = null;\r\n break;\r\n case 'owner':\r\n vm.selectedItem = null;\r\n break;\r\n default:\r\n vm.selectedOwner = null;\r\n vm.selectedItem = null;\r\n }\r\n }\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, requesterGroup, helperService, requesterGroupsDataService) {\r\n const vm = this;\r\n\r\n vm.saveRequesterGroup = saveRequesterGroup;\r\n vm.cancel = cancel;\r\n\r\n vm.requesterGroup = { ...requesterGroup };\r\n\r\n async function saveRequesterGroup() {\r\n vm.savePending = new createSpinner();\r\n createOrUpdateGroup();\r\n }\r\n\r\n async function createOrUpdateGroup() {\r\n try {\r\n let response = vm.requesterGroup.Id ? await requesterGroupsDataService.updateGroup(vm.requesterGroup) : await requesterGroupsDataService.createGroup(vm.requesterGroup);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close(response.data);\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close(roleId) {\r\n $uibModalInstance.close(roleId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, requesterGroupsDataService) {\r\n\r\n const vm = this;\r\n vm.cancel = cancel;\r\n vm.dismiss = dismiss;\r\n vm.disableButton = false;\r\n vm.importRequesterGroups = importRequesterGroups;\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n function dismiss() { $uibModalInstance.dismiss(); }\r\n\r\n // Import Requester Groups\r\n async function importRequesterGroups(file) {\r\n vm.importPending = new createSpinner();\r\n vm.disableButton = true;\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n try {\r\n await requesterGroupsDataService.importRequesterGroups(fd);\r\n await helperService.successfulSaveButton(vm.importPending);\r\n cancel();\r\n } catch {\r\n vm.importPending.loadingValue = false;\r\n vm.disableButton = false;\r\n }\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport requesterGroupModalController from \"./requesterGroupModal.controller\";\r\nimport importRequesterGroupsController from \"../importRequesterGroups.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, requesterGroupsDataService, helperService, $uibModal, $filter, FileSaver) {\r\n\r\n const vm = this;\r\n\r\n $scope.$on('ImportRequesterGroups', _ => activate());\r\n\r\n vm.changeSelectedRequesterGroup = changeSelectedRequesterGroup;\r\n vm.deleteRequesterGroup = deleteRequesterGroup;\r\n vm.openRequesterGroupModal = openRequesterGroupModal;\r\n vm.exportRequesterGroups = exportRequesterGroups;\r\n vm.openImportModal = openImportModal;\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n vm.openRequesterGroupModal(item.requesterGroup);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.deleteRequesterGroup(item.requesterGroup);\r\n }\r\n }\r\n ];\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n getRequesterGroups();\r\n }\r\n\r\n async function getRequesterGroups() {\r\n vm.requesterGroupsLoading = true;\r\n let response = await requesterGroupsDataService.getRequesterGroups();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.requesterGroups = response.data;\r\n vm.requesterGroupsLoading = false;\r\n }\r\n\r\n function changeSelectedRequesterGroup(requesterGroup) {\r\n vm.onSelectedRequesterGroupChanged({ requesterGroup });\r\n }\r\n\r\n async function openRequesterGroupModal(requesterGroup) {\r\n let requesterGroupModal = $uibModal.open({\r\n templateUrl: '/App/Components/RequesterGroups/requesterGroupsList/requesterGroupModal.tmpl.html',\r\n controller: requesterGroupModalController,\r\n controllerAs: 'rgmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n requesterGroup: () => requesterGroup || null\r\n }\r\n });\r\n\r\n try {\r\n let newRequesterGroupId = await requesterGroupModal.result;\r\n await getRequesterGroups();\r\n if (newRequesterGroupId && newRequesterGroupId !== \"\") {\r\n // We know a new requester group was created so we need to select it\r\n changeSelectedRequesterGroup(vm.requesterGroups.find(group => group.Id === newRequesterGroupId));\r\n }\r\n } catch { return; }\r\n }\r\n\r\n async function deleteRequesterGroup(requesterGroup) {\r\n try {\r\n await swal(helperService.areYouSureParams(`Delete Requester Group`, `Are you sure you want to delete Requester Group ${requesterGroup.Name}?`, `Yes`, 'No'))\r\n await requesterGroupsDataService.deleteGroup(requesterGroup.Id);\r\n if (requesterGroup.Id === vm.selectedRequesterGroup?.Id) {\r\n changeSelectedRequesterGroup(null);\r\n }\r\n getRequesterGroups();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function exportRequesterGroups() {\r\n vm.exportUpdatePending = new createSpinner();\r\n try {\r\n let response = await requesterGroupsDataService.exportRequesterGroups();\r\n helperService.successfulSaveButton(vm.exportUpdatePending);\r\n FileSaver.saveAs(response.data, 'RequesterGroups.xlsx');\r\n vm.exportUpdatePending.loadingValue = false;\r\n } catch {\r\n vm.exportUpdatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function openImportModal() {\r\n let importModal = $uibModal.open({\r\n templateUrl: '/App/Components/RequesterGroups/importRequesterGroups.html',\r\n controller: importRequesterGroupsController,\r\n controllerAs: 'irgvm',\r\n backdrop: 'static',\r\n });\r\n try {\r\n await importModal.result;\r\n } catch {\r\n return;\r\n }\r\n }\r\n}","import requesterGroupsListController from \"./requesterGroupsList.controller\";\r\n\r\n/* requesterGroupsList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of requester groups\r\n * @example \r\n */\r\n\r\nconst requesterGroupsList = {\r\n bindings: {\r\n selectedRequesterGroup: '<',\r\n onSelectedRequesterGroupChanged: '&',\r\n },\r\n controller: requesterGroupsListController,\r\n controllerAs: 'rglvm',\r\n templateUrl: '/App/Components/RequesterGroups/requesterGroupsList/requesterGroupsList.tmpl.html'\r\n};\r\n\r\nexport default requesterGroupsList;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const factory = {\r\n getRequesterGroups,\r\n getRequesterGroupUsers,\r\n createGroup,\r\n addUserToGroup,\r\n updateGroup,\r\n deleteGroup,\r\n removeUserFromGroup,\r\n exportRequesterGroups,\r\n importRequesterGroups\r\n };\r\n\r\n return factory;\r\n\r\n async function getRequesterGroups() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/requestergroups`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRequesterGroupUsers(groupId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/requestergroups/group/${groupId}/users`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function createGroup(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/requestergroups`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addUserToGroup(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/requestergroups/group/${data.RequesterGroupId}/users`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateGroup(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/requestergroups/${data.Id}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteGroup(groupId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/requestergroups/${groupId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeUserFromGroup(groupId, groupUserId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/requestergroups/group/${groupId}/users/${groupUserId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function exportRequesterGroups() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/requestergroups/export`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importRequesterGroups(fd) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/requestergroups/import`, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(error) {\r\n errorsDataService.catch(error);\r\n }\r\n\r\n function sendError(error) {\r\n throw error;\r\n }\r\n\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, selectedUsers, requesterGroup, helperService, requesterGroupsDataService, dataService) {\r\n const vm = this;\r\n\r\n vm.addUser = addUser;\r\n vm.close = close;\r\n\r\n selectedUsers = [...selectedUsers];\r\n\r\n activate();\r\n\r\n function activate() {\r\n setupAvailableUsersGrid();\r\n }\r\n\r\n function setupAvailableUsersGrid() {\r\n let availableUsersGridColumns = [\r\n { title: \"Name\", field: \"UserLogonName\", filterable: customAutoCompleteFilter },\r\n { title: \"Email\", field: \"Email\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n vm.availableUsersGridOptions = helperService.setMainGridOptions(availableUsersGridColumns, null);\r\n\r\n vm.availableUsersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await dataService.getUsers();\r\n response.data = response.data.filter(availableUser => {\r\n return !selectedUsers.some(user => user.UserId === availableUser.UserID);\r\n });\r\n response.data = $filter('orderBy')(response.data, \"UserLogonName\");\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function addUser(user) {\r\n vm.addUserProcessing = true;\r\n kendo.ui.progress(vm.availableUsersGrid.element, true);\r\n let data = {\r\n RequesterGroupId: requesterGroup.Id,\r\n UserId: user.UserID\r\n }\r\n try {\r\n await requesterGroupsDataService.addUserToGroup(data);\r\n let processedUser = JSON.parse(JSON.stringify(user));\r\n processedUser.UserId = processedUser.UserID;\r\n delete processedUser.UserID;\r\n selectedUsers.push(processedUser);\r\n kendo.ui.progress(vm.availableUsersGrid.element, false);\r\n vm.availableUsersGridDataSource.read();\r\n vm.addUserProcessing = false;\r\n } catch {\r\n vm.addUserProcessing = false;\r\n kendo.ui.progress(vm.availableUsersGrid.element, false);\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport requesterGroupUserModalController from \"./requesterGroupUserModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (requesterGroupsDataService, helperService, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.removeUserFromRequesterGroup = removeUserFromRequesterGroup;\r\n vm.openUserModal = openUserModal;\r\n\r\n vm.$onChanges = activate;\r\n\r\n async function activate() {\r\n getUsers()\r\n }\r\n\r\n async function getUsers() {\r\n vm.usersLoading = true;\r\n const response = await requesterGroupsDataService.getRequesterGroupUsers(vm.requesterGroup.Id);\r\n vm.users = response.data;\r\n vm.usersLoading = false;\r\n }\r\n\r\n async function openUserModal() {\r\n let requesterGroupModal = $uibModal.open({\r\n templateUrl: '/App/Components/RequesterGroups/requesterGroupUsersList/requesterGroupUserModal.tmpl.html',\r\n controller: requesterGroupUserModalController,\r\n controllerAs: 'rgumvm',\r\n backdrop: 'static',\r\n resolve: {\r\n selectedUsers: () => vm.users,\r\n requesterGroup: () => vm.requesterGroup\r\n }\r\n });\r\n\r\n try {\r\n await requesterGroupModal.result;\r\n await getUsers();\r\n } catch { return; }\r\n }\r\n\r\n async function removeUserFromRequesterGroup(user) {\r\n try {\r\n await swal(helperService.areYouSureParams(`Remove User`, `Are you sure you want to remove User ${user.UserName} from Requester Group ${vm.requesterGroup.Name}?`, `Yes`, 'No'))\r\n await requesterGroupsDataService.removeUserFromGroup(vm.requesterGroup.Id, user.Id);\r\n getUsers();\r\n } catch {\r\n return;\r\n }\r\n }\r\n}","import requesterGroupUsersListController from \"./requesterGroupUsersList.controller\";\r\n\r\n/* requesterGroupUsersList.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining list of requester group users\r\n * @example \r\n */\r\n\r\nconst requesterGroupUsersList = {\r\n bindings: {\r\n requesterGroup: '<'\r\n },\r\n controller: requesterGroupUsersListController,\r\n controllerAs: 'rgulvm',\r\n templateUrl: '/App/Components/RequesterGroups/requesterGroupUsersList/requesterGroupUsersList.tmpl.html'\r\n};\r\n\r\nexport default requesterGroupUsersList;","import angular from 'angular';\r\nimport requesterGroups from '../Components/RequesterGroups/requesterGroups.component';\r\nimport requesterGroupsList from '../Components/RequesterGroups/requesterGroupsList/requesterGroupsList.component';\r\nimport requesterGroupsDataServiceFactory from '../Components/RequesterGroups/requesterGroupsDataService.factory';\r\nimport requesterGroupUsersList from '../Components/RequesterGroups/requesterGroupUsersList/requesterGroupUsersList.component';\r\n\r\nexport default angular\r\n .module('app.systemConfiguration.requesterGroups', [])\r\n .component('requesterGroups', requesterGroups)\r\n .component('requesterGroupsList', requesterGroupsList)\r\n .factory('requesterGroupsDataService', requesterGroupsDataServiceFactory)\r\n .component('requesterGroupUsersList', requesterGroupUsersList)\r\n .name;","import requesterGroupsController from \"./requesterGroups.controller\";\r\n\r\n/* requesterGroups.component.js */\r\n\r\n/**\r\n * @desc component for displaying and managing requester groups\r\n * @example \r\n */\r\n\r\nconst requesterGroups = {\r\n controller: requesterGroupsController,\r\n controllerAs: 'rgvm',\r\n templateUrl: '/App/Components/RequesterGroups/requesterGroups.tmpl.html'\r\n};\r\n\r\nexport default requesterGroups;","export default /*@ngInject*/ function () {\r\n const vm = this;\r\n\r\n vm.changeSelectedRequesterGroup = changeSelectedRequesterGroup;\r\n\r\n function changeSelectedRequesterGroup(requesterGroup) {\r\n vm.selectedRequesterGroup = requesterGroup;\r\n }\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, dataService, supervisorAssignmentsDataService, helperService, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.createSupervisorAssignments = createSupervisorAssignments;\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n function activate() {\r\n getUsers();\r\n getSupervisors();\r\n }\r\n\r\n async function getUsers() {\r\n vm.usersDropdownLoading = true;\r\n try {\r\n let response = await dataService.getUserMaster();\r\n vm.userDataSource = response.data;\r\n\r\n vm.userDataSource = $filter('orderBy')(vm.userDataSource, 'Name');\r\n vm.usersDropdownLoading = false;\r\n } catch {\r\n vm.usersDropdownLoading = false;\r\n }\r\n }\r\n\r\n async function getSupervisors() {\r\n vm.supervisorsDropdownLoading = true;\r\n try {\r\n let response = await dataService.getUsers();\r\n vm.supervisorsDataSource = response.data;\r\n vm.supervisorsDataSource = vm.supervisorsDataSource.filter(u => u.Active);\r\n vm.supervisorsDataSource = $filter('orderBy')(vm.supervisorsDataSource, 'UserLogonName');\r\n vm.supervisorsDropdownLoading = false;\r\n } catch {\r\n vm.supervisorsDropdownLoading = false;\r\n }\r\n }\r\n\r\n async function createSupervisorAssignments() {\r\n\r\n vm.createAssignmentPending = new createSpinner();\r\n let data = {\r\n 'UserMasterId': vm.selectedUser.ID,\r\n 'SupervisorId': vm.selectedSupervisor.UserID\r\n };\r\n\r\n try {\r\n await supervisorAssignmentsDataService.createSupervisorAssignment(data);\r\n await helperService.successfulSaveButton(vm.createAssignmentPending);\r\n close();\r\n } catch {\r\n vm.createAssignmentPending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close(true);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ImportSupervisorModalController($uibModalInstance, supervisorAssignmentsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.importSupervisorAssignments = importSupervisorAssignments;\r\n vm.cancel = cancel;\r\n\r\n async function importSupervisorAssignments(files) {\r\n\r\n let fd = new FormData();\r\n files.forEach(file => {\r\n fd.append(file.file.name, file.file);\r\n });\r\n\r\n if (files.length > 0) {\r\n vm.disableButton = true;\r\n vm.importUpdatePending = new createSpinner();\r\n\r\n try {\r\n await supervisorAssignmentsDataService.importSupervisorAssignments(fd);\r\n await helperService.successfulSaveButton(vm.importUpdatePending);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.disableButton = false;\r\n vm.importUpdatePending.loadingValue = false;\r\n }\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport createSupervisorModalController from \"./Create/createSupervisorModal.controller\";\r\nimport ImportSupervisorModalController from \"./Import/importSupervisorModal.controller\";\r\nimport swal from \"sweetalert2\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, $filter, helperService, supervisorAssignmentsDataService, $http) {\r\n\r\n const vm = this;\r\n\r\n vm.config = {};\r\n vm.origConfig = {};\r\n\r\n vm.activate = activate;\r\n vm.openImportSupervisorsModal = openImportSupervisorsModal;\r\n vm.openCreateSupervisorsModal = openCreateSupervisorsModal;\r\n vm.exportSupervisorReviews = exportSupervisorReviews;\r\n vm.deleteSupervisorAssignment = deleteSupervisorAssignment;\r\n\r\n vm.$onInit = activate;\r\n\r\n $scope.$on('AutoGenerateSupervisorAssignments', function (event, args) {\r\n vm.supervisorAssignmentsGridDataSource.read();\r\n });\r\n\r\n function activate() {\r\n checkIfHcmExists();\r\n createGrid();\r\n }\r\n\r\n async function checkIfHcmExists() {\r\n let response = await $http.get(`${apiUrl}/api/core/plugins`);\r\n vm.hcmExists = response.data.some(plugin => plugin.IsHcm);\r\n }\r\n\r\n function createGrid() {\r\n const supervisorAssignmentsGridColumns =\r\n [\r\n { field: \"UserMasterName\", title: \"User\", filterable: customAutoCompleteFilter },\r\n { field: \"UserMasterEmail\", title: \"User Email\", filterable: customAutoCompleteFilter },\r\n { field: \"SupervisorName\", title: \"Supervisor\", filterable: customAutoCompleteFilter },\r\n { field: \"SupervisorEmail\", title: \"Supervisor Email\", filterable: customAutoCompleteFilter },\r\n { template: \"
\", width: 70 }\r\n ];\r\n\r\n vm.supervisorAssignmentsGridOptions = helperService.setMainGridOptions(supervisorAssignmentsGridColumns, 400);\r\n vm.supervisorAssignmentsGridOptions.selectable = false;\r\n\r\n vm.supervisorAssignmentsGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n let response = await supervisorAssignmentsDataService.getSupervisorAssignments();\r\n response.data = $filter('orderBy')(response.data, 'ManagerName');\r\n vm.existingUserAssignments = response.data.map(user => user.UserMasterId);\r\n options.success(response.data);\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n //Update successful inline saver\r\n $scope.$on('ImportSupervisorAssignments', function (event, args) {\r\n vm.supervisorAssignmentsGridDataSource.read();\r\n });\r\n\r\n function openImportSupervisorsModal() {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/SupervisorAssignments/Import/importSupervisorAssignmentModal.html',\r\n controller: ImportSupervisorModalController,\r\n controllerAs: 'isvm',\r\n backdrop: 'static'\r\n });\r\n }\r\n\r\n async function openCreateSupervisorsModal() {\r\n let createModal = $uibModal.open({\r\n templateUrl: '/App/Components/SupervisorAssignments/Create/createSupervisorAssignmentModal.html',\r\n controller: createSupervisorModalController,\r\n controllerAs: 'csvm',\r\n backdrop: 'static',\r\n resolve: {\r\n existingUserAssignments: () => vm.existingUserAssignments\r\n }\r\n });\r\n\r\n try {\r\n await createModal.result;\r\n vm.supervisorAssignmentsGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function exportSupervisorReviews() {\r\n let response = await supervisorAssignmentsDataService.exportSupervisorAssignments();\r\n response.data = { ExportId: response.data };\r\n }\r\n\r\n async function deleteSupervisorAssignment(dataItem) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Assignment', 'Are you sure you want to this assignment?', 'Delete'));\r\n kendo.ui.progress(vm.supervisorAssignmentsGrid.element, true);\r\n await supervisorAssignmentsDataService.deleteSupervisorAssignment(dataItem.UserMasterId, dataItem.SupervisorId);\r\n kendo.ui.progress(vm.supervisorAssignmentsGrid.element, false);\r\n vm.supervisorAssignmentsGridDataSource.read();\r\n } catch (dismiss) {\r\n return;\r\n }\r\n }\r\n\r\n}","import supervisorAssignmentsController from \"./supervisorAssignments.controller\";\r\n\r\n/* supervisorAssignments.component.js */\r\n\r\n/**\r\n * @desc component for viewing supervisor assignments\r\n * @example \r\n */\r\n\r\nconst supervisorAssignments = {\r\n controller: supervisorAssignmentsController,\r\n controllerAs: 'savm',\r\n templateUrl: '/App/Components/SupervisorAssignments/supervisorAssignments.html'\r\n};\r\n\r\nexport default supervisorAssignments;","export default /*@ngInject*/ function($http, errorsDataService) {\r\n const service = {\r\n getSupervisorAssignments,\r\n getSupervisorAssignmentMappings,\r\n getProductMappingFields,\r\n getMappingFields,\r\n getPluginMappingFields,\r\n getInternalMappingFields,\r\n getUniversalMappingFields,\r\n createSupervisorAssignment,\r\n exportSupervisorAssignments,\r\n createAutoSupervisorAssignmentMapping,\r\n autoGenerateMappingsSupervisorAssignments,\r\n importSupervisorAssignments,\r\n updateAutoSupervisorAssignmentMapping,\r\n deleteSupervisorAssignment,\r\n deleteAutoSupervisorAssignmentMapping\r\n };\r\n\r\n return service;\r\n\r\n //GET Requests\r\n async function getSupervisorAssignments() {\r\n try {\r\n return await $http.get(apiUrl + 'api/universal/supervisorassignments');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSupervisorAssignmentMappings() {\r\n try {\r\n return await $http.get(apiUrl + 'api/universal/supervisorassignments/mappings');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getMappingFields() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/systemmappings/mappingfields`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getPluginMappingFields(pluginId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/pluginmapping/${pluginId}/mappingfields`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getProductMappingFields(productType) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/systemmappings/mappingfields/${productType}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getInternalMappingFields() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/systemmappings/mappingfields/internal`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getUniversalMappingFields() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/systemmappings/mappingfields/universal`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n //POST Requests\r\n async function createSupervisorAssignment(data) {\r\n try {\r\n return await $http.post(apiUrl + 'api/universal/supervisorassignments', data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function exportSupervisorAssignments() {\r\n try {\r\n return await $http.post(apiUrl + 'api/universal/supervisorassignments/export');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function createAutoSupervisorAssignmentMapping(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/supervisorassignments/mappings`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function autoGenerateMappingsSupervisorAssignments() {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/supervisorassignments/mappings/autogenerate`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n //PUT Requests\r\n async function importSupervisorAssignments(formData) {\r\n try {\r\n return await $http.put(apiUrl + 'api/universal/supervisorassignments/import', formData, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateAutoSupervisorAssignmentMapping(mappingId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/supervisorassignments/mappings/${mappingId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n //DELETE Requests\r\n async function deleteSupervisorAssignment(userId, supervisorId) {\r\n try {\r\n return await $http.delete(apiUrl + 'api/universal/supervisorassignments/userMasterId/' + userId + '/supervisorid/' + supervisorId);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteAutoSupervisorAssignmentMapping(mappingId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/supervisorassignments/mappings/${mappingId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}\r\n","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $http, supervisorAssignmentsDataService, mapping, availableProducts, allProducts, mappingType, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.productsDataSource = [...availableProducts];\r\n vm.mapping = { ...mapping };\r\n vm.mappingType = mappingType;\r\n\r\n vm.selectedProductChanged = selectedProductChanged;\r\n vm.saveAssignmentMapping = saveAssignmentMapping;\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n function activate() {\r\n if (vm.mapping.Id && vm.mapping.ProductId !== null) {\r\n addCurrentProductToAvailableProducts();\r\n }\r\n getHcmMappingFields();\r\n setupSystemMappingField();\r\n }\r\n\r\n function addCurrentProductToAvailableProducts() {\r\n const productToAdd = allProducts.find(product => product.ID === vm.mapping.ProductId);\r\n vm.productsDataSource.unshift(productToAdd);\r\n vm.mapping.Product = vm.productsDataSource[0];\r\n }\r\n\r\n async function getHcmMappingFields() {\r\n vm.pluginMappingFieldDropdownLoading = true;\r\n await findHCMPlugin();\r\n try {\r\n let response = await supervisorAssignmentsDataService.getPluginMappingFields(vm.hcmPlugin.Id);\r\n vm.hcmMappingFieldsDataSource = response.data;\r\n vm.pluginMappingFieldDropdownLoading = false;\r\n } catch (_) {\r\n vm.pluginMappingFieldDropdownLoading = false;\r\n }\r\n }\r\n\r\n function setupSystemMappingField() {\r\n if (vm.mapping.ProductId === null || mappingType === 'Fastpath Supervisor') {\r\n getSystemMappingFields();\r\n } else {\r\n getProductMappingFields();\r\n }\r\n }\r\n\r\n async function findHCMPlugin() {\r\n let response = await $http.get(`${apiUrl}/api/core/plugins`);\r\n vm.hcmPlugin = response.data.find(plugin => plugin.HcmPlugin);\r\n }\r\n\r\n function selectedProductChanged() {\r\n if (vm.systemMappingFieldsDataSource) {\r\n vm.systemMappingFieldsDataSource = null;\r\n }\r\n getProductMappingFields();\r\n }\r\n\r\n async function getProductMappingFields() {\r\n vm.systemMappingFieldDropdownLoading = true;\r\n try {\r\n let productResponse = await supervisorAssignmentsDataService.getProductMappingFields(vm.mapping.Product.Type.toLowerCase());\r\n vm.systemMappingFieldsDataSource = productResponse.data;\r\n let universalReponse = await supervisorAssignmentsDataService.getUniversalMappingFields();\r\n vm.systemMappingFieldsDataSource = [...vm.systemMappingFieldsDataSource, ...universalReponse.data];\r\n vm.systemMappingFieldDropdownLoading = false;\r\n } catch (_) {\r\n vm.systemMappingFieldDropdownLoading = false;\r\n }\r\n }\r\n\r\n async function getSystemMappingFields() {\r\n vm.systemMappingFieldDropdownLoading = true;\r\n try {\r\n let response = await supervisorAssignmentsDataService.getInternalMappingFields();\r\n vm.systemMappingFieldsDataSource = response.data;\r\n vm.systemMappingFieldDropdownLoading = false;\r\n } catch (_) {\r\n vm.systemMappingFieldDropdownLoading = false;\r\n }\r\n }\r\n\r\n async function saveAssignmentMapping() {\r\n vm.saveMappingPending = new createSpinner();\r\n\r\n const data = {\r\n Id: vm.mapping.Id,\r\n PluginMappingFieldId: vm.mapping.PluginMappingField.Id,\r\n SystemMappingFieldId: vm.mapping.SystemMappingField.Id,\r\n ProductId: vm.mapping.Product ? vm.mapping.Product.ID : null\r\n };\r\n\r\n try {\r\n if (vm.mapping.Id) {\r\n await supervisorAssignmentsDataService.updateAutoSupervisorAssignmentMapping(vm.mapping.Id, data);\r\n } else {\r\n await supervisorAssignmentsDataService.createAutoSupervisorAssignmentMapping(data);\r\n }\r\n await helperService.successfulSaveButton(vm.saveMappingPending);\r\n close();\r\n } catch (error) {\r\n vm.saveMappingPending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import autoMappingAssignmentModalController from \"./autoMappingAssignmentModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, dataService, supervisorAssignmentsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.openAutoMappingModal = openAutoMappingModal;\r\n vm.deleteMapping = deleteMapping;\r\n vm.generateAssignments = generateAssignments;\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n await getCurrentMappings();\r\n }\r\n\r\n vm.mappingMenuOptions = [\r\n {\r\n text: 'Edit',\r\n click: function ($itemScope, $event, modelValue) {\r\n var item = modelValue;\r\n let mappingType;\r\n if (item.ProductId === null) {\r\n mappingType = 'Fastpath Supervisor';\r\n } else {\r\n mappingType = 'System User';\r\n }\r\n vm.openAutoMappingModal(item, mappingType);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: function ($itemScope, $event, modelValue) {\r\n var item = modelValue;\r\n vm.deleteMapping(item);\r\n }\r\n }\r\n ];\r\n\r\n async function getCurrentMappings() {\r\n let response = await supervisorAssignmentsDataService.getSupervisorAssignmentMappings();\r\n vm.supervisorMappings = response.data.filter(mapping => mapping.ProductId === null);\r\n vm.userMappings = response.data.filter(mapping => mapping.ProductId !== null);\r\n if (!vm.allProducts) {\r\n await getProducts();\r\n }\r\n vm.availableProducts = vm.allProducts.filter(product => !vm.userMappings.some(mapping => mapping.ProductId === product.ID));\r\n }\r\n\r\n async function getProducts() {\r\n let response = await dataService.getProducts();\r\n vm.allProducts = response.data;\r\n }\r\n\r\n async function openAutoMappingModal(mapping, mappingType) {\r\n const autoMappingModal = $uibModal.open({\r\n templateUrl: '/App/Components/SupervisorAssignments/AutoMappingAssignments/autoMappingAssignmentModal.html',\r\n controller: autoMappingAssignmentModalController,\r\n controllerAs: 'amamvm',\r\n backdrop: 'static',\r\n resolve: {\r\n mapping: () => mapping || null,\r\n availableProducts: () => vm.availableProducts || null,\r\n mappingType: () => mappingType || null,\r\n allProducts: () => vm.allProducts || null\r\n }\r\n });\r\n\r\n try {\r\n await autoMappingModal.result;\r\n getCurrentMappings();\r\n } catch {\r\n return;\r\n }\r\n\r\n }\r\n\r\n async function deleteMapping(mapping) {\r\n await supervisorAssignmentsDataService.deleteAutoSupervisorAssignmentMapping(mapping.Id);\r\n getCurrentMappings();\r\n }\r\n\r\n async function generateAssignments() {\r\n vm.generatingAssignments = true; \r\n try {\r\n await supervisorAssignmentsDataService.autoGenerateMappingsSupervisorAssignments();\r\n vm.generatingAssignments = false; \r\n } catch {\r\n vm.generatingAssignments = false;\r\n return;\r\n }\r\n }\r\n}","import autoMappingAssignmentsController from \"./autoMappingAssignments.controller\";\r\n\r\n/* autoMappingAssignments.component.js */\r\n\r\n/**\r\n * @desc component for viewing, creating, editing, and removing mappings for auto generation of supervisor assignments\r\n * @example \r\n */\r\n\r\nconst autoMappingAssignments = {\r\n controller: autoMappingAssignmentsController,\r\n controllerAs: 'amavm',\r\n templateUrl: '/App/Components/SupervisorAssignments/AutoMappingAssignments/autoMappingAssignments.tmpl.html'\r\n};\r\n\r\nexport default autoMappingAssignments;","import angular from 'angular';\r\nimport supervisorAssignments from '../Components/SupervisorAssignments/supervisorAssignments.component';\r\nimport supervisorAssignmentsDataServiceFactory from '../Components/SupervisorAssignments/supervisorAssignmentsDataService.factory';\r\nimport autoMappingAssignments from '../Components/SupervisorAssignments/AutoMappingAssignments/autoMappingAssignments.component';\r\n\r\nexport default angular\r\n .module('app.integrations.supervisorAssignments', [])\r\n .component('supervisorAssignments', supervisorAssignments)\r\n .factory('supervisorAssignmentsDataService', supervisorAssignmentsDataServiceFactory)\r\n .component('autoMappingAssignments', autoMappingAssignments)\r\n .name;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getCompanyStatistics,\r\n getCompanyMapping,\r\n getCompanyAutoMap,\r\n createAutoMap,\r\n createMapping,\r\n createBulkMapping,\r\n deleteCompanyMaster,\r\n deleteProductMapping\r\n };\r\n\r\n return service;\r\n\r\n async function getCompanyStatistics() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/companymapping/statistics/`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getCompanyMapping() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/companymaster/companymapping`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getCompanyAutoMap() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/automap/company`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function createAutoMap(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/automap/company`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function createMapping(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/companymapping/`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function createBulkMapping(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/automap/company/bulkmap`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteCompanyMaster(companyId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/companymaster/${companyId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteProductMapping(companyMapping, companyId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/companymapping/companymaster/${companyMapping.CompanyMasterID}/product/${companyMapping.ProductID}/company/${companyId}/`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getCompanyTemplates,\r\n createCompanyTemplate,\r\n renameCompanyTemplate,\r\n deleteCompanyTemplate,\r\n addCompany,\r\n deleteCompany\r\n };\r\n\r\n return service;\r\n\r\n async function getCompanyTemplates() {\r\n try {\r\n return await $http.get(`${apiUrl}/api/universal/companytemplates`);\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function createCompanyTemplate(postData) {\r\n try {\r\n return await $http.post(`${apiUrl}/api/universal/companytemplates`, postData);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function renameCompanyTemplate(templateId, putData) {\r\n try {\r\n return await $http.put(`${apiUrl}/api/universal/companytemplates/${templateId}`, putData);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function deleteCompanyTemplate(templateId) {\r\n try {\r\n return await $http.delete(`${apiUrl}/api/universal/companytemplates/${templateId}`);\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n async function addCompany(templateId, postData) {\r\n try {\r\n return await $http.post(`${apiUrl}/api/universal/companytemplates/${templateId}/companies`, postData);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function deleteCompany(templateId, companyMasterId) {\r\n try {\r\n return await $http.delete(`${apiUrl}/api/universal/companytemplates/${templateId}/companies/${companyMasterId}`);\r\n } catch (error) {\r\n showError(error);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getProducts,\r\n getUserId,\r\n updateGrid,\r\n generateCrossPlatformAutoMapping,\r\n deleteUserMaster,\r\n exportAutoMapping,\r\n importUserMapping,\r\n updateManualMapGrid,\r\n submitUserMapping\r\n };\r\n\r\n return service;\r\n\r\n\r\n async function getProducts() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/products`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getUserId(userId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/usermaster/${userId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function generateCrossPlatformAutoMapping() {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/usermaster/crossplatform/users/automap`);\r\n } catch {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function updateGrid(pageSize, page, data) {\r\n try {\r\n return await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/universal/usermaster/crossplatform/users',\r\n data: data,\r\n params: { 'pagesize': pageSize, 'page': page }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateManualMapGrid(postData, pageSize, page) {\r\n try {\r\n return await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/universal/usermaster/crossplatform/users/available',\r\n data: postData,\r\n params: { 'pagesize': pageSize, 'page': page }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function submitUserMapping(postData) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/usermaster/crossplatform`, postData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteUserMaster(postData) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/usermaster/crossplatform`, postData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function exportAutoMapping() {\r\n try {\r\n return await $http.post(`${apiUrl}/api/universal/usermaster/export`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importUserMapping(fd) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/usermaster/import`, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n var factory = {\r\n getAllRoles,\r\n exportExcludedRoles,\r\n importExcludedRoles,\r\n updateExcludedRole\r\n };\r\n\r\n return factory;\r\n\r\n async function getAllRoles() {\r\n try {\r\n return await $http.get(`${apiUrl}/api/universal/securityroles`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function exportExcludedRoles() {\r\n try {\r\n return await $http.get(`${apiUrl}/api/universal/securityroles/exclude/export`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importExcludedRoles(fd) {\r\n try {\r\n return await $http.put(`${apiUrl}/api/universal/securityroles/exclude/import`, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateExcludedRole(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/securityroles/${data.SecurityRoleIdentifier}/exclude`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n var factory = {\r\n exportExcludedUsers,\r\n importExcludedUsers,\r\n updateExcludedUser\r\n };\r\n\r\n return factory;\r\n\r\n async function exportExcludedUsers() {\r\n try {\r\n return await $http.get(`${apiUrl}/api/universal/usermaster/exclude/export`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importExcludedUsers(fd) {\r\n try {\r\n return await $http.put(`${apiUrl}/api/universal/usermaster/exclude/import`, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateExcludedUser(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/usermaster/exclude`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getSystemRoles,\r\n getSystemRolesNonPaged,\r\n exportSystemRoles,\r\n getEmergencyAccessApproversByRole,\r\n addUserAsApprover,\r\n addEmergencyAccessSystemRole,\r\n updateSystemRole,\r\n addEmergencyAccessApprover,\r\n importSystemRoles,\r\n removeEmergencyAccessApprover\r\n };\r\n\r\n return service;\r\n\r\n // GET REQUESTS\r\n async function getEmergencyAccessApproversByRole(roleIdentifier) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/emergencyaccessapprovers/role/${roleIdentifier}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSystemRolesNonPaged() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/securityroles`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function exportSystemRoles() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/securityroles/properties/export`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n //POST REQUESTS\r\n async function getSystemRoles(data, params) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/securityroles`, data, { params: params });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function addUserAsApprover(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/emergencyaccessapprovers`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addEmergencyAccessSystemRole(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/securityroles/emergencyaccess`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // PUT REQUESTS\r\n async function updateSystemRole(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/securityroles/properties`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addEmergencyAccessApprover(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/emergencyaccessapprovers`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importSystemRoles(fd) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/securityroles/properties/import`, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // DELETE REQUESTS\r\n async function removeEmergencyAccessApprover(emergencyAccessApproverId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/emergencyaccessapprovers/${emergencyAccessApproverId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(error) {\r\n errorsDataService.catch(error);\r\n }\r\n\r\n function sendError(error) {\r\n throw error;\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getMasterUsers,\r\n exportSystemUsers,\r\n updateUserIdentity,\r\n importSystemUsers,\r\n createUserMap,\r\n generateAssignments,\r\n deleteUserMap\r\n }\r\n\r\n return service;\r\n\r\n //GET\r\n async function getMasterUsers() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/usermaster`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function exportSystemUsers() {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/usermaster/identity/export`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n //PUT\r\n async function updateUserIdentity(userMasterId, putData) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/usermaster/${userMasterId}`, putData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importSystemUsers(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/universal/usermaster/identity/import`, data, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // POST\r\n async function createUserMap(mapObject) {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/fastpathusermappings`, mapObject);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function generateAssignments() {\r\n try {\r\n return await $http.post(`${apiUrl}api/universal/usermaster/identity/automap`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // DELETE\r\n async function deleteUserMap(userId, userMasterId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/fastpathusermappings/fpuser/${userId}/usermaster/${userMasterId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getNotificationTypes,\r\n getSubscriptions,\r\n getUsers,\r\n createSubscription,\r\n removeSubscription,\r\n updateTypeDescription\r\n };\r\n\r\n return service;\r\n\r\n async function getNotificationTypes() {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/notificationtypes`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getSubscriptions() {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/notificationsubscriptions`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getUsers() {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/users`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function createSubscription(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/core/notificationsubscriptions`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeSubscription(id) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/core/notificationsubscriptions/${id}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateTypeDescription(id, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/core/notificationtypes/${id}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getRoleTemplates,\r\n createRoleTemplate,\r\n renameRoleTemplate,\r\n deleteRoleTemplate,\r\n getRolesForProduct,\r\n addRole,\r\n deleteRole,\r\n exportRoleTemplates,\r\n importRoleTemplates,\r\n };\r\n\r\n return service;\r\n\r\n async function getRoleTemplates() {\r\n try {\r\n return await $http.get(apiUrl + 'api/universal/roletemplates');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function createRoleTemplate(postData) {\r\n try {\r\n return await $http.post(apiUrl + 'api/universal/roletemplates', postData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function renameRoleTemplate(templateId, putData) {\r\n try {\r\n return await $http.put(apiUrl + 'api/universal/roletemplates/' + templateId, putData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteRoleTemplate(templateId) {\r\n try {\r\n return await $http.delete(apiUrl + 'api/universal/roletemplates/' + templateId);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getRolesForProduct(productId) {\r\n try {\r\n return await $http.get(apiUrl + '/api/universal/securityroles/product/' + productId);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function addRole(templateId, postData) {\r\n try {\r\n return await $http.post(apiUrl + 'api/universal/roletemplates/' + templateId + '/associate', postData);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function deleteRole(templateId, securityRoleId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/universal/roletemplates/${templateId}/securityrole/${securityRoleId}/disassociate`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function exportRoleTemplates() {\r\n try {\r\n return await $http.get(`${apiUrl}/api/universal/roletemplates/export`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importRoleTemplates(fd) {\r\n try {\r\n return await $http.put(`${apiUrl}/api/universal/roletemplates/import`, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}","import angular from 'angular';\r\nimport companyMappingDataServiceFactory from '../Components/CompanyMapping/companyMappingDataService.factory';\r\nimport companyTemplatesFactory from '../Components/CompanyTemplates/companyTemplates.factory';\r\nimport crossPlatformUsersDataServiceFactory from '../Components/CrossPlatformUsers/crossPlatformUsersDataService.factory';\r\nimport excludedRolesDataServiceFactory from '../Components/ExcludedRoles/excludedRolesDataService.factory';\r\nimport excludedUsersDataServiceFactory from '../Components/ExcludedUsers/excludedUsersDataService.factory';\r\nimport maintainSystemRolesDataServiceFactory from '../Components/maintainSystemRoles/maintainSystemRolesDataService.factory';\r\nimport maintainSystemUsersDataServiceFactory from '../Components/maintainSystemUsers/maintainSystemUsersDataService.factory';\r\nimport notificationsDataServiceFactory from '../Components/Notifications/notificationsDataService.factory';\r\nimport roleTemplatesFactory from '../Components/RoleTemplates/roleTemplates.factory';\r\n\r\n\r\nexport default angular\r\n .module('app.systemConfiguration.factories', [])\r\n .factory('companyTemplatesData', companyTemplatesFactory)\r\n .factory('notificationsDataService', notificationsDataServiceFactory)\r\n .factory('maintainSystemRolesDataService', maintainSystemRolesDataServiceFactory)\r\n .factory('roleTemplatesData', roleTemplatesFactory)\r\n .factory('companyMappingDataService', companyMappingDataServiceFactory)\r\n .factory('crossPlatformUsersDataService', crossPlatformUsersDataServiceFactory)\r\n .factory('excludedUsersDataService', excludedUsersDataServiceFactory)\r\n .factory('excludedRolesDataService', excludedRolesDataServiceFactory)\r\n .factory('maintainSystemUsersDataService', maintainSystemUsersDataServiceFactory)\r\n .name;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, excludedRolesDataService) {\r\n\r\n const vm = this;\r\n vm.cancel = cancel;\r\n vm.dismiss = dismiss;\r\n vm.disableButton = false;\r\n vm.importExcludedRoles = importExcludedRoles;\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n function dismiss() { $uibModalInstance.dismiss(); }\r\n\r\n // Import Excluded Users\r\n async function importExcludedRoles(file) {\r\n vm.importPending = new createSpinner();\r\n vm.disableButton = true;\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n try {\r\n await excludedRolesDataService.importExcludedRoles(fd);\r\n await helperService.successfulSaveButton(vm.importPending);\r\n cancel();\r\n } catch {\r\n vm.importPending.loadingValue = false;\r\n vm.disableButton = false;\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, customBooleanYesNoFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\nimport importExcludedRolesController from \"./importExcludedRoles.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, reportsService, helperService, $uibModal, FileSaver, dataService, excludedRolesDataService, maintainSystemRolesDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.exportExcludedRoles = exportExcludedRoles;\r\n vm.openImportModal = openImportModal;\r\n vm.excludeRole = excludeRole;\r\n vm.customProductNames = new Array;\r\n\r\n activate();\r\n\r\n function activate() {\r\n createExcludedRolesGrid();\r\n }\r\n\r\n $scope.$on('ImportExcludedRoles', (event, args) => vm.excludedRolesGridDataSource.read());\r\n\r\n async function createExcludedRolesGrid() {\r\n const excludedRolesColumns = [\r\n { title: \"Excluded\", field: \"IsExcluded\", template: \"\", width: 130, filterable: customBooleanYesNoFilter },\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n ];\r\n\r\n const products = await dataService.getProducts();\r\n // if there are multiple products we need to show the products column\r\n if (products.data.length > 1) {\r\n excludedRolesColumns.push(\r\n { field: \"ProductName\", title: \"Product\", filterable: customAutoCompleteFilter }\r\n );\r\n // set up the list of custom products to filter those roles in the grid data source\r\n vm.customProductNames = products.data.reduce((newArray, product) => {\r\n if (product.IsCustom) {\r\n newArray.push(product.Name);\r\n }\r\n return newArray;\r\n }, []);\r\n\r\n }\r\n\r\n vm.excludedRolesGridOptions = helperService.setMainGridOptions(excludedRolesColumns, 600);\r\n vm.excludedRolesGridOptions.autoBind = true;\r\n\r\n vm.excludedRolesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n IsExcluded: { type: \"boolean\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async options => {\r\n let query = helperService.prepareSortsAndFilters(options);\r\n // the api uses different field names for filtering and sorting security roles\r\n query = reportsService.fixFieldNamesForApi(query, \"SecurityRole\");\r\n // we don't currently support excluding custom product roles so we'll filter them\r\n vm.customProductNames.forEach(customProduct => query.Filters.push({\r\n FieldName: \"ProductName\",\r\n Operator: \"NotEquals\",\r\n Value: customProduct\r\n }));\r\n let params = { 'pagesize': options.data.pageSize, 'page': options.data.page };\r\n try {\r\n let response = await maintainSystemRolesDataService.getSystemRoles(query, params);\r\n options.success(response.data);\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function excludeRole(dataItem) {\r\n const data = { SecurityRoleIdentifier: dataItem.Identifier, ShouldExclude: dataItem.IsExcluded };\r\n kendo.ui.progress(vm.excludedRolesGrid.element, true);\r\n try {\r\n await excludedRolesDataService.updateExcludedRole(data);\r\n kendo.ui.progress(vm.excludedRolesGrid.element, false);\r\n } catch {\r\n dataItem.Exclude = !dataItem.Exclude;\r\n kendo.ui.progress(vm.excludedRolesGrid.element, false);\r\n }\r\n }\r\n\r\n async function exportExcludedRoles() {\r\n vm.exportUpdatePending = new createSpinner();\r\n try {\r\n let response = await excludedRolesDataService.exportExcludedRoles();\r\n helperService.successfulSaveButton(vm.exportUpdatePending);\r\n FileSaver.saveAs(response.data, 'ExcludedRoles.xlsx');\r\n vm.exportUpdatePending.loadingValue = false;\r\n } catch {\r\n vm.exportUpdatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function openImportModal() {\r\n let importModal = $uibModal.open({\r\n templateUrl: '/App/Components/ExcludedRoles/importExcludedRoles.html',\r\n controller: importExcludedRolesController,\r\n controllerAs: 'iervm',\r\n backdrop: 'static',\r\n });\r\n try {\r\n await importModal.result;\r\n return;\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n}\r\n","/* excludedRoles.component.js */\r\n\r\nimport excludedRolesController from \"./excludedRoles.controller\";\r\n\r\n/**\r\n * @desc component to display view and Excluded Roles\r\n * @example \r\n */\r\n\r\nconst excludedRoles = {\r\n controller: excludedRolesController,\r\n controllerAs: 'ervm',\r\n templateUrl: '/App/Components/ExcludedRoles/excludedRoles.html'\r\n};\r\n\r\nexport default excludedRoles;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, excludedUsersDataService) {\r\n\r\n const vm = this;\r\n vm.cancel = cancel;\r\n vm.dismiss = dismiss;\r\n vm.disableButton = false;\r\n vm.importExcludedUsers = importExcludedUsers;\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n function dismiss() { $uibModalInstance.dismiss(); }\r\n\r\n // Import Excluded Users\r\n async function importExcludedUsers(file) {\r\n vm.importPending = new createSpinner();\r\n vm.disableButton = true;\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n try {\r\n await excludedUsersDataService.importExcludedUsers(fd);\r\n await helperService.successfulSaveButton(vm.importPending);\r\n cancel();\r\n } catch {\r\n vm.importPending.loadingValue = false;\r\n vm.disableButton = false;\r\n }\r\n }\r\n}","import { customAutoCompleteFilter, customBooleanYesNoFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport importExcludedUsersController from \"./importExcludedUsers.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, helperService, $uibModal, FileSaver, excludedUsersDataService, maintainSystemUsersDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.exportExcludedUsers = exportExcludedUsers;\r\n vm.openImportModal = openImportModal;\r\n vm.excludeUser = excludeUser;\r\n\r\n activate();\r\n\r\n function activate() {\r\n createExcludedUsersGrid();\r\n }\r\n\r\n $scope.$on('ImportExcludedUsers', (event, args) => vm.gridDataSource.read());\r\n\r\n function createExcludedUsersGrid() {\r\n let columnsFromVM = [\r\n { title: \"Excluded\", field: \"Exclude\", template: \"\", width: 130, filterable: customBooleanYesNoFilter },\r\n { field: \"Name\", title: \"User Name\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(columnsFromVM, 600);\r\n vm.mainGridOptions.autoBind = true;\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n Exclude: { type: \"boolean\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n let { data } = await maintainSystemUsersDataService.getMasterUsers();\r\n data = $filter('orderBy')(data, 'Name');\r\n options.success(data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function excludeUser(dataItem) {\r\n let userId = dataItem.ID;\r\n let exclude = dataItem.Exclude;\r\n let data = { UserMasterID: userId, ShouldExclude: exclude };\r\n vm.pleaseWait = new createSpinner();\r\n try {\r\n await excludedUsersDataService.updateExcludedUser(data);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n } catch {\r\n dataItem.Exclude = !dataItem.Exclude;\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n }\r\n\r\n async function exportExcludedUsers() {\r\n vm.exportUpdatePending = new createSpinner();\r\n try {\r\n let { data } = await excludedUsersDataService.exportExcludedUsers();\r\n await helperService.successfulSaveButton(vm.exportUpdatePending);\r\n FileSaver.saveAs(data, 'ExcludedUsers.xlsx');\r\n } catch {\r\n vm.exportUpdatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function openImportModal() {\r\n let importModal = $uibModal.open({\r\n templateUrl: '/App/Components/ExcludedUsers/importExcludedUsers.html',\r\n controller: importExcludedUsersController,\r\n controllerAs: 'ieuvm',\r\n backdrop: 'static',\r\n });\r\n try {\r\n await importModal.result\r\n vm.gridDatasource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n}\r\n","/* excludedUsers.component.js */\r\n\r\nimport excludedUsersController from \"./excludedUsers.controller\";\r\n\r\n/**\r\n * @desc component to display view and Excluded Users\r\n * @example \r\n */\r\n\r\nconst excludedUsers = {\r\n controller: excludedUsersController,\r\n controllerAs: 'euvm',\r\n templateUrl: '/App/Components/ExcludedUsers/excludedUsers.html'\r\n};\r\n\r\nexport default excludedUsers;","import angular from 'angular';\r\nimport excludedRoles from '../Components/ExcludedRoles/excludedRoles.component';\r\nimport excludedUsers from '../Components/ExcludedUsers/excludedUsers.component';\r\n\r\n\r\nexport default angular\r\n .module('app.systemConfiguration.setup', [])\r\n .component(\"excludedUsers\", excludedUsers)\r\n .component(\"excludedRoles\", excludedRoles)\r\n .name;","import { standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, userRestrictionsDataService, fastpathUser, $filter) {\r\n\r\n const vm = this;\r\n\r\n var inheritedCompanies = [];\r\n\r\n vm.fastpathUser = fastpathUser;\r\n vm.toggleCompany = toggleCompany;\r\n vm.handleCompanyMap = handleCompanyMap;\r\n vm.selectedCompanies = [];\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n function activate() {\r\n // Add already mapped companies to selected companies array\r\n if (fastpathUser.ManualCompanyMappings.length > 0) vm.selectedCompanies = fastpathUser.ManualCompanyMappings.map(m => m.ID);\r\n if (fastpathUser.CompanyRestrictionType !== 'None') vm.enabled = true;\r\n\r\n // Auto-select user options and set up relevant grids\r\n if (fastpathUser.CompanyRestrictionType === 'UserMasterMapping') {\r\n vm.option = 0;\r\n setupInheritedCompaniesGrid();\r\n setupManualCompaniesGrid();\r\n }\r\n else if (fastpathUser.SystemUserMapping && fastpathUser.CompanyRestrictionType === 'ManualMapping') {\r\n vm.option = 1;\r\n setupInheritedCompaniesGrid();\r\n setupManualCompaniesGrid();\r\n }\r\n else if (fastpathUser.SystemUserMapping && fastpathUser.CompanyRestrictionType === 'None') {\r\n vm.option = 0;\r\n setupInheritedCompaniesGrid();\r\n setupManualCompaniesGrid();\r\n }\r\n else if (!fastpathUser.SystemUserMapping && fastpathUser.CompanyRestrictionType === 'ManualMapping') {\r\n vm.option = 1;\r\n setupManualCompaniesGrid();\r\n }\r\n else if (!fastpathUser.SystemUserMapping && fastpathUser.CompanyRestrictionType === 'None') {\r\n setupManualCompaniesGrid();\r\n }\r\n\r\n }\r\n\r\n function setupInheritedCompaniesGrid() {\r\n var inheritedCompanyGridColumns = [{ field: \"Name\", title: \"Name\" }];\r\n\r\n vm.inheritedCompanyGridOptions = helperService.setMainGridOptions(inheritedCompanyGridColumns, 300);\r\n\r\n vm.inheritedCompanyGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n userRestrictionsDataService.getUserCompanyMappings(vm.fastpathUser.SystemUserMapping.ID)\r\n .then(res => {\r\n res.data = $filter('orderBy')(res.data, 'Name');\r\n options.success(res.data);\r\n inheritedCompanies = res.data.map(c => { return c.ID; });\r\n }).catch(_ => {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n function setupManualCompaniesGrid() {\r\n var manualCompanyGridColumns = [\r\n {\r\n title: \"Access\",\r\n template: ``,\r\n width: 65, filterable: false\r\n },\r\n { field: \"Name\", title: \"Name\" }\r\n ];\r\n\r\n vm.manualCompanyGridOptions = helperService.setMainGridOptions(manualCompanyGridColumns, 300);\r\n\r\n vm.manualCompanyGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n userRestrictionsDataService.getUserCompanies()\r\n .then(res => {\r\n\r\n if (fastpathUser.ManualCompanyMappings.length > 0) {\r\n fastpathUser.ManualCompanyMappings.forEach(m => {\r\n let match = res.data.find(c => c.ID === m.ID);\r\n match.companyAccess = true;\r\n });\r\n }\r\n res.data = $filter('orderBy')(res.data, 'Name');\r\n options.success(res.data);\r\n }).catch(_ => {\r\n options.error();\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n function toggleCompany(dataItem) {\r\n\r\n switch (dataItem.companyAccess) {\r\n\r\n case true:\r\n vm.selectedCompanies.push(dataItem.ID);\r\n break;\r\n case false:\r\n vm.selectedCompanies.remove(dataItem.ID);\r\n break;\r\n }\r\n }\r\n\r\n function handleCompanyMap() {\r\n\r\n let map = {};\r\n map.FpUserId = fastpathUser.UserID;\r\n\r\n if (!vm.enabled) {\r\n disableCompanyRestrictions(map.FpUserId);\r\n }\r\n else if (vm.enabled && vm.option === 0) {\r\n map.CompanyMasterIds = inheritedCompanies;\r\n map.CompanyRestrictionType = 2;\r\n createCompanyMap(map);\r\n }\r\n else if (vm.enabled && vm.option === 1) {\r\n map.CompanyMasterIds = vm.selectedCompanies;\r\n map.CompanyRestrictionType = 1;\r\n createCompanyMap(map);\r\n }\r\n }\r\n\r\n async function createCompanyMap(map) {\r\n\r\n vm.save = new createSpinner();\r\n\r\n try {\r\n await userRestrictionsDataService.createCompanyMap(map);\r\n await helperService.successfulSaveButton(vm.save);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.save = null;\r\n }\r\n }\r\n\r\n async function disableCompanyRestrictions(userId) {\r\n\r\n vm.save = new createSpinner();\r\n\r\n try {\r\n await userRestrictionsDataService.disableCompanyRestrictions(userId);\r\n await helperService.successfulSaveButton(vm.save);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.save = null;\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n}","import { standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, userRestrictionsDataService, dataService, fastpathUser, $filter) {\r\n\r\n const vm = this;\r\n\r\n let inheritedProducts = [];\r\n\r\n vm.fastpathUser = fastpathUser;\r\n vm.toggleProduct = toggleProduct;\r\n vm.handleProductMap = handleProductMap;\r\n vm.selectedProducts = [];\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n function activate() {\r\n // Add already mapped products to selected products array\r\n if (fastpathUser.ManualProductMappings.length > 0) vm.selectedProducts = fastpathUser.ManualProductMappings.map(m => m.ID);\r\n if (fastpathUser.ProductRestrictionType !== 'None') vm.enabled = true;\r\n\r\n // Auto-select user options and set up relevant grids\r\n if (fastpathUser.ProductRestrictionType === 'UserMasterMapping') {\r\n vm.option = 0;\r\n setupInheritedProductsGrid();\r\n setupManualProductsGrid();\r\n }\r\n else if (fastpathUser.SystemUserMapping && fastpathUser.ProductRestrictionType === 'ManualMapping') {\r\n vm.option = 1;\r\n setupInheritedProductsGrid();\r\n setupManualProductsGrid();\r\n }\r\n else if (fastpathUser.SystemUserMapping && fastpathUser.ProductRestrictionType === 'None') {\r\n vm.option = 0;\r\n setupInheritedProductsGrid();\r\n setupManualProductsGrid();\r\n }\r\n else if (!fastpathUser.SystemUserMapping && fastpathUser.ProductRestrictionType === 'ManualMapping') {\r\n vm.option = 1;\r\n setupManualProductsGrid();\r\n }\r\n else if (!fastpathUser.SystemUserMapping && fastpathUser.ProductRestrictionType === 'None') {\r\n setupManualProductsGrid();\r\n }\r\n\r\n }\r\n\r\n function setupInheritedProductsGrid() {\r\n const inheritedProductGridColumns = [{ field: \"ProductName\", title: \"Product Name\" }];\r\n\r\n vm.inheritedProductGridOptions = helperService.setMainGridOptions(inheritedProductGridColumns, 300);\r\n\r\n vm.inheritedProductGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let response = await userRestrictionsDataService.getUserMappings(vm.fastpathUser.SystemUserMapping.ID)\r\n response.data = $filter('orderBy')(response.data, 'ProductName');\r\n options.success(response.data);\r\n inheritedProducts = response.data.map(p => { return p.ProductID; });\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function setupManualProductsGrid() {\r\n const manualProductGridColumns = [\r\n {\r\n title: \"Access\",\r\n template: ``,\r\n width: 65, filterable: false\r\n },\r\n { field: \"Name\", title: \"Product Name\" }\r\n ];\r\n\r\n vm.manualProductGridOptions = helperService.setMainGridOptions(manualProductGridColumns, 300);\r\n\r\n vm.manualProductGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let res = await dataService.getProducts();\r\n\r\n if (fastpathUser.ManualProductMappings.length > 0) {\r\n fastpathUser.ManualProductMappings.forEach(m => {\r\n let match = res.data.find(p => p.ID === m.ID);\r\n match.productAccess = true;\r\n });\r\n }\r\n res.data = $filter('orderBy')(res.data, 'Name');\r\n options.success(res.data);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function toggleProduct(dataItem) {\r\n\r\n switch (dataItem.productAccess) {\r\n\r\n case true:\r\n vm.selectedProducts.push(dataItem.ID);\r\n break;\r\n case false:\r\n vm.selectedProducts.remove(dataItem.ID);\r\n break;\r\n }\r\n }\r\n\r\n function handleProductMap() {\r\n\r\n let map = {};\r\n map.FpUserId = fastpathUser.UserID;\r\n\r\n if (!vm.enabled) {\r\n disableProductRestrictions(map.FpUserId);\r\n }\r\n else if (vm.enabled && vm.option === 0) {\r\n map.ProductIds = inheritedProducts;\r\n map.ProductRestrictionType = 2;\r\n createProductMap(map);\r\n }\r\n else if (vm.enabled && vm.option === 1) {\r\n map.ProductIds = vm.selectedProducts;\r\n map.ProductRestrictionType = 1;\r\n createProductMap(map);\r\n }\r\n }\r\n\r\n async function createProductMap(map) {\r\n\r\n vm.save = new createSpinner();\r\n\r\n try {\r\n await userRestrictionsDataService.createProductMap(map);\r\n await helperService.successfulSaveButton(vm.save);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.save = null;\r\n }\r\n }\r\n\r\n async function disableProductRestrictions(userId) {\r\n\r\n vm.save = new createSpinner();\r\n\r\n try {\r\n await userRestrictionsDataService.disableProductRestrictions(userId)\r\n await helperService.successfulSaveButton(vm.save)\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.save = null;\r\n }\r\n }\r\n\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n}","import companyRestrictionsModalController from \"../CompanyRestrictionsModal/companyRestrictionsModal.controller\";\r\nimport productRestrictionsModalController from \"../ProductRestrictionsModal/productRestrictionsModal.controller\";\r\n\r\n\r\nexport default /*@ngInject*/ function FastpathUserListController($scope, $filter, $uibModal, userRestrictionsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedUser = changeSelectedUser;\r\n vm.availableProducts = $scope.$parent.availableProductsForUser;\r\n\r\n activate();\r\n\r\n function activate() {\r\n\r\n getFastpathUsers();\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Company Restrictions',\r\n click: item => {\r\n openCompanyRestrictionsModal(item.user);\r\n }\r\n },\r\n {\r\n text: 'Product Restrictions',\r\n click: item => {\r\n openProductRestrictionsModal(item.user);\r\n }, \r\n displayed: item => {\r\n return vm.availableProducts.length > 1;\r\n }\r\n }\r\n ];\r\n }\r\n\r\n async function getFastpathUsers() {\r\n try {\r\n let { data } = await userRestrictionsDataService.getFastpathUsers();\r\n if (data.length > 0) {\r\n data = data.filter(user => user.Active === true);\r\n data = $filter('orderBy')(data, 'UserLogonName');\r\n }\r\n vm.users = data;\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function changeSelectedUser(user) {\r\n vm.user = user;\r\n }\r\n\r\n async function openCompanyRestrictionsModal(user) {\r\n\r\n let companyModal = $uibModal.open({\r\n templateUrl: '/App/Components/userRestrictions/companyRestrictionsModal/companyRestrictionsModal.html',\r\n controller: companyRestrictionsModalController,\r\n controllerAs: 'crmvm',\r\n backdrop: 'static',\r\n resolve: { fastpathUser: () => user }\r\n });\r\n\r\n try {\r\n await companyModal.result;\r\n getFastpathUsers();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openProductRestrictionsModal(user) {\r\n\r\n let productModal = $uibModal.open({\r\n templateUrl: '/App/Components/userRestrictions/productRestrictionsModal/productRestrictionsModal.html',\r\n controller: productRestrictionsModalController,\r\n controllerAs: 'prmvm',\r\n backdrop: 'static',\r\n resolve: { fastpathUser: () => user }\r\n });\r\n\r\n try {\r\n await productModal.result;\r\n getFastpathUsers();\r\n } catch {\r\n return;\r\n }\r\n }\r\n}\r\n","import FastpathUserListController from \"./fastpathUserList.controller\"; \r\n\r\n/* fastpathUserList.component.js */\r\n\r\n/**\r\n * @desc component for displaying and selecting fastpath users in a list\r\n * @example \r\n */\r\n\r\nvar fastpathUserList = {\r\n controller: FastpathUserListController,\r\n controllerAs: 'fulvm',\r\n templateUrl: '/App/Components/userRestrictions/fastpathUserList/fastpathUserList.tmpl.html'\r\n};\r\n\r\nexport default fastpathUserList;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getFastpathUsers,\r\n getUserCompanies,\r\n getUserCompanyMappings,\r\n getUserMappings,\r\n createCompanyMap,\r\n createProductMap,\r\n disableCompanyRestrictions,\r\n disableProductRestrictions\r\n };\r\n\r\n return service;\r\n\r\n // GET Calls\r\n async function getFastpathUsers() {\r\n try {\r\n return await $http.get(apiUrl + 'api/core/users');\r\n } catch(err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getUserCompanies() {\r\n try {\r\n return await $http.get(apiUrl + 'api/universal/companymaster');\r\n } catch(err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getUserCompanyMappings(userId) {\r\n try {\r\n return await $http.get(apiUrl + `api/universal/companymaster/usermaster/${userId}`);\r\n } catch(err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function getUserMappings(userId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/universal/usermapping/usermaster/${userId}`);\r\n } catch {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // POST calls\r\n async function createCompanyMap(mapObject) {\r\n try {\r\n return await $http.post(apiUrl + 'api/universal/fastpathusercompanymappings', mapObject);\r\n } catch(err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function createProductMap(mapObject) {\r\n try {\r\n return await $http.post(apiUrl + 'api/universal/fastpathuserproductmappings', mapObject);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n // PUT calls\r\n async function disableCompanyRestrictions(userId) {\r\n try {\r\n return await $http.put(apiUrl + `api/universal/fastpathusercompanymappings/${userId}/disable`);\r\n } catch(err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function disableProductRestrictions(userId) {\r\n try {\r\n return await $http.put(apiUrl + `api/universal/fastpathuserproductmappings/${userId}/disable`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) { errorsDataService.catch(err); }\r\n function sendError(err) { throw err; }\r\n\r\n}","import angular from 'angular';\r\nimport fastpathUserList from '../Components/userRestrictions/fastpathUserList/fastpathUserList.component';\r\nimport userRestrictionsFactory from '../Components/userRestrictions/userRestrictions.factory';\r\n\r\nexport default angular\r\n .module('app.systemConfiguration.userRestrictions', [])\r\n .component('fastpathUserList', fastpathUserList)\r\n .factory('userRestrictionsDataService', userRestrictionsFactory)\r\n .name;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, approvalGroupsDataService, group) {\r\n\r\n const vm = this;\r\n vm.group = Object.assign({}, group);\r\n vm.dismiss = dismiss;\r\n vm.groupFormSubmit = groupFormSubmit;\r\n vm.shouldBeOpen = true;\r\n vm.updateInProgress = false;\r\n\r\n function cancel(newGroupId) {\r\n $uibModalInstance.close(newGroupId);\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function groupFormSubmit() {\r\n vm.updateInProgress = new createSpinner();\r\n const data = vm.group;\r\n if (group) {\r\n updateGroup(data);\r\n } else {\r\n addNewGroup(data);\r\n }\r\n }\r\n\r\n async function addNewGroup(data) {\r\n try {\r\n let response = await approvalGroupsDataService.addApprovalGroup(data);\r\n await helperService.successfulSaveButton(vm.updateInProgress);\r\n cancel(response.data);\r\n } catch (err) {\r\n vm.updateInProgress.loadingValue = false;\r\n return;\r\n }\r\n }\r\n\r\n async function updateGroup(data) {\r\n try {\r\n await approvalGroupsDataService.updateGroup(vm.group.Id, data);\r\n await helperService.successfulSaveButton(vm.updateInProgress);\r\n cancel();\r\n } catch {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, approvalGroupsDataService, dataService, $filter, group, level, selectedApprovers, showWarning, fromEdit) {\r\n\r\n const vm = this;\r\n vm.level = Object.assign({}, level);\r\n vm.group = Object.assign({}, group);\r\n vm.showWarning = showWarning;\r\n vm.fromEdit = fromEdit;\r\n vm.dismiss = dismiss;\r\n vm.levelFormSubmit = levelFormSubmit;\r\n vm.allApproversRequiredChanged = allApproversRequiredChanged;\r\n vm.approversSelectionChanged = approversSelectionChanged;\r\n vm.shouldBeOpen = true;\r\n\r\n activate();\r\n\r\n function activate() {\r\n if (!vm.level.Id) {\r\n vm.level.RequiresAllApprovers = false;\r\n configureApproversGrid();\r\n }\r\n }\r\n\r\n function cancel(newLevelId) {\r\n $uibModalInstance.close(newLevelId);\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function levelFormSubmit() {\r\n vm.updateInProgress = new createSpinner();\r\n const data = vm.level;\r\n vm.level.ApprovalGroupId = vm.group.Id;\r\n if (vm.level.Id) {\r\n updateLevel(data);\r\n } else {\r\n addNewLevel(data);\r\n }\r\n }\r\n\r\n async function addNewLevel(data) {\r\n try {\r\n let response = await approvalGroupsDataService.addApprovalGroupLevel(vm.group.Id, data);\r\n await helperService.successfulSaveButton(vm.updateInProgress);\r\n cancel(response.data);\r\n } catch {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n async function updateLevel(data) {\r\n try {\r\n await approvalGroupsDataService.updateGroupLevel(vm.group.Id, vm.level.Id, data);\r\n await helperService.successfulSaveButton(vm.updateInProgress);\r\n cancel();\r\n } catch {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n function allApproversRequiredChanged() {\r\n if (vm.level.RequiresAllApprovers) {\r\n if (vm.level.ApprovalsRequired) vm.level.ApprovalsRequired = null;\r\n }\r\n }\r\n\r\n function approversSelectionChanged() {\r\n vm.level.ApproverIds = vm.approversGrid.selectedKeyNames();\r\n }\r\n\r\n function configureApproversGrid() {\r\n const approversGridColumns = [\r\n { selectable: true, width: 50 },\r\n { title: \"Name\", field: \"UserLogonName\", filterable: customAutoCompleteFilter },\r\n { title: \"Email\", field: \"Email\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.approversGridOptions = helperService.setMainGridOptions(approversGridColumns, null);\r\n vm.approversGridOptions.selectable = false;\r\n vm.approversGridOptions.persistSelection = true;\r\n vm.approversGridOptions.noRecords = {\r\n template: \"
All Approvers Are Currently Assigned
\"\r\n };\r\n\r\n vm.approversGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n id: \"UserID\"\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n try {\r\n let response = await dataService.getUsers();\r\n response.data = $filter('orderBy')(response.data, 'UserLogonName');\r\n response.data = response.data.filter(obj => obj.Active && !selectedApprovers.some(o => o.UserId === obj.UserID));\r\n options.success(response.data);\r\n } catch (error) {\r\n options.error(error);\r\n }\r\n\r\n }\r\n }\r\n });\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, approvalGroupsDataService, dataService, $filter, group, level, selectedApprovers) {\r\n\r\n const vm = this;\r\n vm.level = Object.assign({}, level);\r\n vm.group = Object.assign({}, group);\r\n vm.selectedApprovers = selectedApprovers;\r\n vm.addApproverToLevel = addApproverToLevel;\r\n vm.close = close;\r\n\r\n activate();\r\n\r\n function activate() {\r\n configureApproversGrid();\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n async function addApproverToLevel(approver) {\r\n const data = {\r\n Id: vm.level.Id,\r\n ApprovalGroupId: vm.group.Id,\r\n UserId: approver.UserID\r\n };\r\n await approvalGroupsDataService.addApproverToApprovalGroupLevel(vm.group.Id, vm.level.Id, data);\r\n const formattedApprover = {\r\n Name: approver.UserLogonName,\r\n UserId: approver.UserID\r\n };\r\n vm.selectedApprovers.push(formattedApprover);\r\n vm.approversGridDataSource.read();\r\n }\r\n\r\n function configureApproversGrid() {\r\n const approversGridColumns = [\r\n { title: \"Name\", field: \"UserLogonName\", filterable: customAutoCompleteFilter },\r\n { title: \"Email\", field: \"Email\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \" \", width: 20 }\r\n ];\r\n\r\n vm.approversGridOptions = helperService.setMainGridOptions(approversGridColumns, null);\r\n vm.approversGridOptions.selectable = false;\r\n vm.approversGridOptions.noRecords = {\r\n template: \"
All Approvers Are Currently Assigned
\"\r\n };\r\n\r\n vm.approversGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n id: \"UserID\"\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n try {\r\n let response = await dataService.getUsers();\r\n response.data = $filter('orderBy')(response.data, 'UserLogonName');\r\n response.data = response.data.filter(obj => obj.Active && !vm.selectedApprovers.some(o => o.UserId === obj.UserID));\r\n options.success(response.data);\r\n } catch (error) {\r\n options.error(error);\r\n }\r\n }\r\n}\r\n });\r\n }\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, approvalGroupsDataService) {\r\n const vm = this;\r\n\r\n vm.importApprovalGroups = importApprovalGroups;\r\n vm.cancel = cancel;\r\n\r\n async function importApprovalGroups() {\r\n let fd = new FormData();\r\n\r\n vm.savePending = new createSpinner();\r\n fd.append(vm.files.files[0].name, vm.files.files[0].file);\r\n\r\n try {\r\n await approvalGroupsDataService.importApprovalGroups(fd);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport approvalGroupModalController from \"./ApprovalGroupModal/approvalGroupModal.controller\";\r\nimport levelModalController from \"./LevelModal/levelModal.controller\";\r\nimport approversModalController from \"./ApproversModal/approversModal.controller\";\r\nimport approvalGroupImportModalController from \"./approvalGroupImportModal.controller\";\r\n\r\n\r\nexport default /*@ngInject*/ function ($uibModal, approvalGroupsDataService, $filter, helperService, FileSaver) {\r\n\r\n const vm = this;\r\n vm.selectedApprovers = [];\r\n vm.openGroupModal = openGroupModal;\r\n vm.openApproversModal = openApproversModal;\r\n vm.deleteGroup = deleteGroup;\r\n vm.deleteGroupLevel = deleteGroupLevel;\r\n vm.selectedGroupChanged = selectedGroupChanged;\r\n vm.selectedLevelChanged = selectedLevelChanged;\r\n vm.openLevelModal = openLevelModal;\r\n vm.removeApprover = removeApprover;\r\n vm.exportApprovalGroups = exportApprovalGroups;\r\n vm.openApprovalGroupImportModal = openApprovalGroupImportModal;\r\n\r\n vm.approvalGroupMenuOptions = [\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n vm.openGroupModal(item.group);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.deleteGroup(item.group);\r\n }\r\n }\r\n ];\r\n\r\n vm.approvalGroupLevelMenuOptions = [\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n vm.openLevelModal(item.level, true);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n vm.deleteGroupLevel(item.level);\r\n },\r\n displayed: function (modelValue) {\r\n return vm.levelsDataSource.length === modelValue.level.Level && vm.levelsDataSource.length > 1;\r\n }\r\n }\r\n ];\r\n\r\n activate();\r\n\r\n function activate() {\r\n getGroups();\r\n }\r\n\r\n async function getGroups() {\r\n vm.gettingGroupsInProgress = true;\r\n if (vm.selectedLevel) vm.selectedLevel = null;\r\n if (vm.selectedGroup) vm.selectedGroup = null;\r\n\r\n let response = await approvalGroupsDataService.getApprovalGroups();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.groupsDataSource = response.data;\r\n vm.gettingGroupsInProgress = false;\r\n }\r\n\r\n async function getLevels() {\r\n vm.gettingLevelsInProgress = true;\r\n if (vm.selectedApprovers.length > 0) vm.selectedApprovers = [];\r\n\r\n let { data } = await approvalGroupsDataService.getApprovalGroupLevels(vm.selectedGroup.Id);\r\n vm.levelsDataSource = $filter('orderBy')(data, 'Level');\r\n // Need to track approvers that are already in a level\r\n data.forEach(level => {\r\n vm.selectedApprovers = vm.selectedApprovers.concat(level.Approvers);\r\n });\r\n vm.gettingLevelsInProgress = false;\r\n }\r\n\r\n function getApprovers(levelId) {\r\n vm.approversDataSource = vm.levelsDataSource.find(level => level.Id === levelId).Approvers;\r\n vm.approversDataSource = $filter('orderBy')(vm.approversDataSource, 'Name');\r\n }\r\n\r\n function sendNewGroupToTop(newGroupId) {\r\n vm.selectedGroup = vm.groupsDataSource.find(group => group.Id === newGroupId);\r\n vm.groupsDataSource = vm.groupsDataSource.filter(group => group.Id !== newGroupId);\r\n vm.groupsDataSource.unshift(vm.selectedGroup);\r\n }\r\n\r\n async function openGroupModal(group) {\r\n let groupModal = $uibModal.open({\r\n templateUrl: '/App/Components/ApprovalGroups/ApprovalGroupModal/approvalGroupModal.html',\r\n controller: approvalGroupModalController,\r\n controllerAs: 'agmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n group: () => group || null\r\n }\r\n });\r\n\r\n try {\r\n let newGroupId = await groupModal.result;\r\n await getGroups();\r\n if (newGroupId) {\r\n await selectedGroupChanged(newGroupId);\r\n await sendNewGroupToTop(newGroupId);\r\n } else if (vm.selectedGroup) {\r\n await selectedGroupChanged(vm.selectedGroup.Id);\r\n }\r\n } catch (dismiss) { return; }\r\n }\r\n\r\n async function openLevelModal(level, fromEdit) {\r\n let levelsModal = $uibModal.open({\r\n templateUrl: '/App/Components/ApprovalGroups/LevelModal/levelModal.html',\r\n controller: levelModalController,\r\n controllerAs: 'lmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n level: () => level || null,\r\n group: () => vm.selectedGroup,\r\n selectedApprovers: () => vm.selectedApprovers || [],\r\n showWarning: () => vm.levelsDataSource.length,\r\n fromEdit: () => fromEdit\r\n }\r\n });\r\n\r\n try {\r\n let newLevelId = await levelsModal.result;\r\n await getLevels();\r\n if (newLevelId) {\r\n await selectedLevelChanged(newLevelId);\r\n } else if (vm.selectedLevel) {\r\n await selectedLevelChanged(vm.selectedLevel.Id);\r\n }\r\n } catch (dismiss) { return; }\r\n }\r\n\r\n async function openApproversModal() {\r\n let approversModal = $uibModal.open({\r\n templateUrl: '/App/Components/ApprovalGroups/ApproversModal/approversModal.html',\r\n controller: approversModalController,\r\n controllerAs: 'amvm',\r\n backdrop: 'static',\r\n resolve: {\r\n level: () => vm.selectedLevel,\r\n group: () => vm.selectedGroup,\r\n selectedApprovers: () => vm.selectedApprovers || []\r\n }\r\n });\r\n\r\n try {\r\n await approversModal.result;\r\n const selectedLevelId = vm.selectedLevel.Id;\r\n clearLevels();\r\n await getLevels();\r\n await selectedLevelChanged(selectedLevelId);\r\n } catch (dismiss) { return; }\r\n }\r\n\r\n async function deleteGroup(group) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Group', 'Are you sure you want to delete group ' + group.Name + '?', 'Delete'));\r\n await approvalGroupsDataService.removeApprovalGroup(group.Id);\r\n getGroups();\r\n } catch (dismiss) {\r\n return;\r\n }\r\n }\r\n\r\n async function deleteGroupLevel(level) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Level', 'Are you sure you want to delete Level ' + level.Level + '?', 'Delete'));\r\n await approvalGroupsDataService.removeApprovalGroupLevel(vm.selectedGroup.Id, level.Id);\r\n vm.selectedLevel = null;\r\n await getLevels();\r\n } catch (dismiss) {\r\n return;\r\n }\r\n }\r\n\r\n async function removeApprover(approver) {\r\n const selectedLevelId = vm.selectedLevel.Id;\r\n await approvalGroupsDataService.removeApproverFromApprovalGroupLevel(vm.selectedGroup.Id, vm.selectedLevel.Id, approver.UserId);\r\n clearLevels();\r\n await getLevels();\r\n await selectedLevelChanged(selectedLevelId);\r\n }\r\n\r\n async function openApprovalGroupImportModal() {\r\n let approvalGroupModal = $uibModal.open({\r\n templateUrl: '/App/Components/ApprovalGroups/approvalGroupImportModal.tmpl.html',\r\n controller: approvalGroupImportModalController,\r\n controllerAs: 'agmvm',\r\n backdrop: 'static'\r\n });\r\n\r\n try {\r\n await approvalGroupModal.result;\r\n activate();\r\n } catch { return; }\r\n }\r\n\r\n async function exportApprovalGroups() {\r\n vm.exportUpdatePending = new createSpinner();\r\n try {\r\n const response = await approvalGroupsDataService.exportApprovalGroups();\r\n await helperService.successfulSaveButton(vm.exportUpdatePending);\r\n FileSaver.saveAs(response.data, 'ApprovalGroups.xlsx');\r\n } catch (err) {\r\n vm.exportUpdatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function selectedGroupChanged(selectedGroupId) {\r\n if (vm.selectedGroup && vm.selectedGroup.Id === selectedGroupId) {\r\n return;\r\n } else {\r\n if (vm.selectedApprovers.length > 0) vm.selectedApprovers = [];\r\n clearLevels();\r\n vm.selectedGroup = vm.groupsDataSource.find(group => group.Id === selectedGroupId);\r\n getLevels();\r\n }\r\n }\r\n\r\n function selectedLevelChanged(selectedLevelId) {\r\n if (vm.selectedLevel && vm.selectedLevel.Id === selectedLevelId) {\r\n return;\r\n } else {\r\n vm.selectedLevel = vm.levelsDataSource.find(level => level.Id === selectedLevelId);\r\n getApprovers(selectedLevelId);\r\n }\r\n }\r\n\r\n function clearLevels() {\r\n vm.selectedLevel = null;\r\n vm.levelsDataSource = null;\r\n vm.approversDataSource = null;\r\n }\r\n}\r\n\r\n\r\n\r\n","import approvalGroupsController from \"./approvalGroups.controller\";\r\n\r\n/* approvalGroups.component.js */\r\n\r\n/**\r\n * @desc component for viewing and manage approval groups\r\n * @example \r\n */\r\n\r\nconst approvalGroups = {\r\n controller: approvalGroupsController,\r\n controllerAs: 'agvm',\r\n templateUrl: '/App/Components/ApprovalGroups/approvalGroups.tmpl.html'\r\n};\r\n\r\nexport default approvalGroups;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModalInstance, dataService, userRestrictionsDataService, helperService, companyMappingDataService, availableProducts) {\r\n\r\n const vm = this;\r\n\r\n vm.allCompaniesForAllProducts = [];\r\n vm.selectedMasterCompanies = [];\r\n\r\n vm.bulkMap = bulkMap;\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n function activate() {\r\n getAllCompanies();\r\n getMasterCompanies();\r\n }\r\n\r\n function getAllCompanies() {\r\n availableProducts.forEach(async product => {\r\n let { data } = await dataService.getCompaniesByProductId(product.ID);\r\n data = $filter('orderBy')(data, 'Name');\r\n vm.allCompaniesForAllProducts = vm.allCompaniesForAllProducts.concat(data);\r\n vm.allCompaniesForAllProducts = $filter('orderBy')(vm.allCompaniesForAllProducts, 'ProductID');\r\n });\r\n\r\n }\r\n\r\n async function getMasterCompanies() {\r\n let { data } = await userRestrictionsDataService.getUserCompanies();\r\n data = $filter('orderBy')(data, 'Name');\r\n vm.masterCompanies = data;\r\n }\r\n\r\n async function bulkMap() {\r\n vm.pleaseWait = new createSpinner();\r\n\r\n let record = {\r\n \"ProductID\": vm.selectedProductCompany.ProductID,\r\n \"CompanyID\": vm.selectedProductCompany.ID,\r\n \"CompanyMasterIDs\": vm.selectedMasterCompanies.map(el => el.ID)\r\n };\r\n\r\n try {\r\n await companyMappingDataService.createBulkMapping(record);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, $uibModalInstance, selectedCompanyProduct, helperService, $http) {\r\n const vm = this;\r\n\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n function activate() {\r\n let columnsFromVM = [\r\n { field: \"CompanyName\", title: \"Company\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.manualMapGridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n vm.manualMapGridOptions.selectable = true;\r\n\r\n vm.manualMapDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: function (options) {\r\n $http.get(apiUrl + 'api/universal/companymapping/unmapped/product/' + selectedCompanyProduct.ProductID).then(function (response) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (availableProducts, $uibModalInstance, helperService, companyMappingDataService, $filter) {\r\n const vm = this;\r\n\r\n vm.cancel = cancel;\r\n vm.acceptAutoMap = acceptAutoMap;\r\n vm.removeProductFromAutoMap = removeProductFromAutoMap;\r\n\r\n activate();\r\n\r\n function activate() {\r\n createGridOptions();\r\n createDataSource();\r\n }\r\n\r\n function createGridOptions() {\r\n let columnsFromVM = [\r\n { field: \"Name\", title: \"Company\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n let dynamicColumns = [];\r\n availableProducts.forEach(product => {\r\n let identifier = product.Identifier;\r\n let productId = product.ID;\r\n let productName = product.Name;\r\n\r\n let customTemplate =\r\n \"{{dataItem.\" + identifier + \"}}\" +\r\n \"\";\r\n\r\n let templateRow = { field: identifier, title: productName, template: customTemplate, filterable: customAutoCompleteFilter };\r\n dynamicColumns.push(templateRow);\r\n });\r\n\r\n dynamicColumns = dynamicColumns.unique();\r\n\r\n dynamicColumns = $filter('orderBy')(dynamicColumns, 'field');\r\n columnsFromVM = columnsFromVM.concat(dynamicColumns);\r\n\r\n vm.autoMapResultsGridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n }\r\n\r\n\r\n function addProductSpecificVariables(data) {\r\n data.forEach(row => {\r\n availableProducts.forEach(product => {\r\n row[product.Identifier] = null;\r\n });\r\n\r\n row.CompanyMappings.forEach(function (mapping) {\r\n var identifier = 'id' + mapping.ProductName.replace(/ /g, '');\r\n row[identifier] = mapping.CompanyName;\r\n });\r\n });\r\n return data;\r\n }\r\n\r\n function createDataSource() {\r\n vm.autoMapResultsDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await companyMappingDataService.getCompanyAutoMap();\r\n response.data = addProductSpecificVariables(response.data);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n function removeProductFromAutoMap(dataItem, identifier, launchedFromProductId, launchedFromProductName) {\r\n dataItem[identifier] = null;\r\n\r\n for (var i = 0; i < dataItem.CompanyMappings.length; i++) {\r\n if (dataItem.CompanyMappings[i].ProductID === launchedFromProductId) {\r\n dataItem.CompanyMappings.splice(i, 1);\r\n break;\r\n }\r\n }\r\n if (dataItem.CompanyMappings.length === 0) {\r\n vm.autoMapResultsDataSource.remove(dataItem);\r\n }\r\n };\r\n\r\n async function acceptAutoMap() {\r\n vm.pleaseWait = new createSpinner();\r\n\r\n let data = vm.autoMapResultsDataSource.data();\r\n let CompanyMasterRequests = [];\r\n\r\n data.forEach(row => {\r\n let record = {\r\n \"ID\": row.ID,\r\n \"Name\": row.Name,\r\n \"CompanyMappings\": row.CompanyMappings\r\n };\r\n CompanyMasterRequests.push(record);\r\n });\r\n\r\n let postBody = {\r\n \"CompanyMasterRequests\": CompanyMasterRequests\r\n };\r\n\r\n try {\r\n await companyMappingDataService.createAutoMap(postBody);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n };\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n };\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { standardGridPageSize, customAutoCompleteFilter } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $filter, $uibModalInstance, selectedCompanyForManualMapping, selectedCompanyProductClicked, helperService, dataService, companyMappingDataService, $http) {\r\n const vm = this;\r\n\r\n vm.updateMapping = updateMapping;\r\n vm.changeRowSelected = changeRowSelected;\r\n vm.cancel = cancel;\r\n\r\n vm.selectedCompanyForManualMapping = selectedCompanyForManualMapping;\r\n vm.selectedCompanyProductClicked = selectedCompanyProductClicked;\r\n\r\n activate();\r\n\r\n function activate() {\r\n createGrid();\r\n }\r\n\r\n\r\n function createGrid() {\r\n let columnsFromVM = [\r\n { field: \"Name\", title: \"Company\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.manualMapGridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n vm.manualMapGridOptions.selectable = true;\r\n\r\n vm.manualMapDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await dataService.getCompaniesByProductId(selectedCompanyProductClicked.ProductID);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n async function updateMapping() {\r\n //Check to see if product exists in CompanyMappings\r\n let productAlreadyExists = selectedCompanyForManualMapping.CompanyMappings.some(e => e.ProductID === vm.selectedRow.ProductID);\r\n vm.pleaseWait = new createSpinner();\r\n if (productAlreadyExists) {\r\n await deleteMapping();\r\n postMapping(true);\r\n } else {\r\n postMapping();\r\n }\r\n }\r\n\r\n async function postMapping(callRemove) {\r\n let postBody = {\r\n \"CompanyMasterID\": selectedCompanyForManualMapping.ID,\r\n \"ProductID\": vm.selectedRow.ProductID,\r\n \"CompanyID\": vm.selectedRow.ID\r\n };\r\n try { \r\n await companyMappingDataService.createMapping(postBody);\r\n await helperService.successfulSaveButton(vm.pleaseWait);\r\n $uibModalInstance.close(callRemove);\r\n } catch {\r\n vm.pleaseWait.loadingValue = false;\r\n }\r\n \r\n }\r\n\r\n async function deleteMapping() {\r\n let dataItem = selectedCompanyForManualMapping;\r\n let launchedFromProductID = vm.selectedRow.ProductID;\r\n\r\n let companyMapping = selectedCompanyForManualMapping.CompanyMappings.find(e => e.ProductID === launchedFromProductID);\r\n\r\n let companyId = encodeURIComponent(companyMapping.CompanyID);\r\n\r\n try {\r\n await companyMappingDataService.deleteMapping(companyMapping, companyId);\r\n\r\n } catch {\r\n return;\r\n }\r\n\r\n $http.delete(apiUrl + 'api/universal/companymapping/companymaster/' + companyMapping.CompanyMasterID + '/product/' + companyMapping.ProductID + '/company/' + CompanyID + '/').then(function (response) {\r\n $scope.removeMappingFromDataSource(dataItem, launchedFromProductID);\r\n }, function errorCallback(response) {\r\n helperService.showErrorMessage(response.data);\r\n });\r\n }\r\n\r\n function changeRowSelected(dataItem) {\r\n vm.selectedRow = dataItem;\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import { standardGridPageSize, customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport swal from \"sweetalert2\";\r\nimport BulkMapCompaniesModalController from \"./bulkMapCompanies/bulkMapCompaniesModal.controller\";\r\nimport UnmappedCompaniesForProductModalController from \"./unmappedCompaniesForProduct/unmappedCompaniesForProductModal.controller\";\r\nimport autoMapCompaniesModalController from \"./autoMapCompanies/autoMapCompaniesModal.controller\";\r\nimport manualMapCompaniesModalController from \"./manualMapCompanies/manualMapCompaniesModal.controller\";\r\nimport unmappedCompaniesForProductModalController from \"./unmappedCompaniesForProduct/unmappedCompaniesForProductModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, $filter, helperService, companyMappingDataService, dataService) {\r\n\r\n const vm = this;\r\n\r\n vm.removeProductMapping = removeProductMapping;\r\n vm.deleteCompanyMaster = deleteCompanyMaster;\r\n vm.openAutoMapCompaniesModal = openAutoMapCompaniesModal;\r\n vm.openManualMapCompanyModal = openManualMapCompanyModal;\r\n vm.openBulkMapCompaniesModal = openBulkMapCompaniesModal;\r\n vm.openUnmappedCompaniesForProductModal = openUnmappedCompaniesForProductModal;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await setupProducts();\r\n createGridOptions();\r\n getAllCompanyStatistics();\r\n createGridDataSource();\r\n }\r\n\r\n async function setupProducts() {\r\n vm.availableProducts = [];\r\n let response = await dataService.getProducts();\r\n response.data.forEach(function (row) {\r\n vm.availableProducts.push({\r\n 'ID': row.ID,\r\n 'Name': row.Name,\r\n 'Identifier': 'id' + row.Name.replace(/ /g, '')\r\n });\r\n });\r\n\r\n }\r\n\r\n async function getAllCompanyStatistics() {\r\n let response = await companyMappingDataService.getCompanyStatistics()\r\n vm.companyByProductStatistics = response.data;\r\n\r\n vm.totalUnmappedCompaniesCount = response.data.sum(function (row) {\r\n return row.UnMappedCompanyCount;\r\n });\r\n }\r\n\r\n\r\n function createGridDataSource() {\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n let response = await companyMappingDataService.getCompanyMapping();\r\n\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n\r\n response.data.forEach(function (row) {\r\n row.CompanyMappings.forEach(function (mapping) {\r\n var identifier = 'id' + mapping.ProductName.replace(/ /g, '');\r\n row[identifier] = mapping.CompanyName;\r\n });\r\n });\r\n options.success(response.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function deleteCompanyMaster(dataItem) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Company', 'All data associated with this company will be lost. Are you sure you want to remove this company?', 'Delete'));\r\n kendo.ui.progress(vm.mainGrid.element, true);\r\n await companyMappingDataService.deleteCompanyMaster(encodeURIComponent(dataItem.ID));\r\n kendo.ui.progress(vm.mainGrid.element, false);\r\n vm.mainGrid.dataSource.read();\r\n getAllCompanyStatistics();\r\n } catch {\r\n return;\r\n }\r\n\r\n }\r\n\r\n function createGridOptions() {\r\n\r\n let columnsFromVM = [\r\n { field: \"Name\", title: \"Company\", template: \"{{dataItem.Name}} \", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n let productColumns = [];\r\n\r\n vm.availableProducts.forEach(function (product) {\r\n let identifier = product.Identifier;\r\n let productID = product.ID;\r\n let productName = product.Name;\r\n\r\n let customTemplate =\r\n \"{{dataItem.\" + identifier + \"}} \" +\r\n \"\";\r\n\r\n let templateRow = { field: identifier, title: productName, template: customTemplate, filterable: customAutoCompleteFilter };\r\n productColumns.push(templateRow);\r\n });\r\n productColumns = $filter('orderBy')(productColumns, 'field');\r\n productColumns = productColumns.unique();\r\n\r\n columnsFromVM = columnsFromVM.concat(productColumns);\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(columnsFromVM, 600);\r\n }\r\n\r\n async function removeProductMapping(dataItem, identifier, launchedFromProductId, launchedFromProductName) {\r\n try {\r\n await swal(helperService.areYouSureParams('Remove Mapping', 'Are you sure you want to remove this mapping to ' + launchedFromProductName + '?', 'Remove'));\r\n var companyMapping = dataItem.CompanyMappings.find(e => e.ProductID === launchedFromProductId);\r\n var companyId = encodeURIComponent(companyMapping.CompanyID);\r\n kendo.ui.progress(vm.mainGrid.element, true);\r\n await companyMappingDataService.deleteProductMapping(companyMapping, companyId);\r\n removeMappingFromDataSource(dataItem, identifier, launchedFromProductId);\r\n await getAllCompanyStatistics();\r\n kendo.ui.progress(vm.mainGrid.element, false);\r\n } catch {\r\n return;\r\n }\r\n\r\n };\r\n\r\n function removeMappingFromDataSource(dataItem, identifier, launchedFromProductId) {\r\n delete dataItem[identifier];\r\n\r\n for (var i = 0; i < dataItem.CompanyMappings.length; i++) {\r\n if (dataItem.CompanyMappings[i].ProductID === launchedFromProductId) {\r\n dataItem.CompanyMappings.splice(i, 1);\r\n break;\r\n }\r\n }\r\n };\r\n\r\n async function openAutoMapCompaniesModal() {\r\n let autoMapCompaniesModal = $uibModal.open({\r\n templateUrl: '/App/Components/CompanyMapping/autoMapCompanies/autoMapCompanyModal.html',\r\n controller: autoMapCompaniesModalController,\r\n controllerAs: 'amcmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n availableProducts: () => vm.availableProducts\r\n }\r\n });\r\n\r\n try {\r\n await autoMapCompaniesModal.result;\r\n vm.gridDataSource.read();\r\n getAllCompanyStatistics();\r\n } catch {\r\n return;\r\n }\r\n };\r\n\r\n async function openManualMapCompanyModal(dataItem, launchedFromProductId, launchedFromProductName) {\r\n let selectedCompanyProductClicked = { \"ProductID\": launchedFromProductId, \"ProductName\": launchedFromProductName };\r\n\r\n let manualMapCompanyModal = $uibModal.open({\r\n templateUrl: '/App/Components/CompanyMapping/manualMapCompanies/manualMapCompanyModal.html',\r\n controller: manualMapCompaniesModalController,\r\n controllerAs: 'mmcmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n selectedCompanyForManualMapping: () => dataItem,\r\n selectedCompanyProductClicked: () => selectedCompanyProductClicked\r\n }\r\n });\r\n\r\n try {\r\n await manualMapCompanyModal.result;\r\n vm.gridDataSource.read();\r\n getAllCompanyStatistics();\r\n } catch {\r\n return;\r\n }\r\n };\r\n\r\n async function openBulkMapCompaniesModal() {\r\n let bulkMapCompaniesModal = $uibModal.open({\r\n templateUrl: '/App/Components/CompanyMapping/bulkMapCompanies/bulkMapCompanyModal.html',\r\n controller: BulkMapCompaniesModalController,\r\n controllerAs: 'bmcmvm',\r\n backdrop: 'static',\r\n size: 'md',\r\n resolve: {\r\n availableProducts: () => vm.availableProducts,\r\n }\r\n });\r\n\r\n try {\r\n await bulkMapCompaniesModal.result;\r\n vm.gridDataSource.read();\r\n getAllCompanyStatistics();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openUnmappedCompaniesForProductModal(launchedFromProductID, launchedFromProductName) {\r\n\r\n vm.selectedCompanyProductClicked = { \"ProductID\": launchedFromProductID, \"ProductName\": launchedFromProductName };\r\n\r\n $uibModal.open({\r\n templateUrl: '/App/Components/CompanyMapping/unmappedCompaniesForProduct/unmappedCompaniesForProductModal.html',\r\n controller: unmappedCompaniesForProductModalController,\r\n controllerAs: 'ucfpmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n selectedCompanyProduct: () => vm.selectedCompanyProductClicked\r\n }\r\n });\r\n };\r\n\r\n}","/* companyMapping.component.js */\r\n\r\nimport companyMappingController from \"./companyMapping.controller\";\r\n\r\n/**\r\n * @desc component to view and manage company mappings\r\n * @example \r\n */\r\n\r\nconst companyMapping = {\r\n controller: companyMappingController,\r\n controllerAs: 'cmvm',\r\n templateUrl: '/App/Components/CompanyMapping/companyMapping.html'\r\n};\r\n\r\nexport default companyMapping;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModalInstance, dataService, companyTemplatesData, helperService, errorsDataService, template) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = createAvailableCompaniesDataSource;\r\n\r\n vm.template = { ...template };\r\n\r\n vm.addCompany = addCompany;\r\n vm.close = close;\r\n\r\n const availableCompaniesGridColumns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"Company ID\", field: \"CompanyIDs\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \"\", width: 20, filterable: false }\r\n ];\r\n\r\n vm.availableCompaniesGridOptions = helperService.setMainGridOptions(availableCompaniesGridColumns, null);\r\n vm.availableCompaniesGridOptions.selectable = false;\r\n\r\n\r\n function createAvailableCompaniesDataSource() {\r\n vm.availableCompaniesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let response = await dataService.getCompanyMasters();\r\n response.data = response.data.filter(company => company.UserHasAccess);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n if (vm.template.Companies && vm.template.Companies.length > 0) {\r\n vm.template.Companies.forEach(tc => {\r\n response.data = response.data.filter(c => tc.CompanyMaster.ID !== c.ID);\r\n });\r\n }\r\n\r\n vm.availableCompanies = response.data.reduce((companiesAccumulator, currentCompany) => {\r\n const previousInformation = {\r\n ID: currentCompany.ID,\r\n Name: currentCompany.Name,\r\n UserHasAccess: currentCompany.UserHasAccess\r\n };\r\n\r\n if (currentCompany.Companies.length) {\r\n let usableCompanyInstance = [], companyIDsList = '';\r\n currentCompany.Companies.forEach(company => {\r\n companyIDsList += company.ID + ', ';\r\n })\r\n companyIDsList = companyIDsList.slice(0, -2);\r\n usableCompanyInstance.push({ ...previousInformation, CompanyIDs: companyIDsList });\r\n return companiesAccumulator.concat(usableCompanyInstance);\r\n } else {\r\n companiesAccumulator.push(previousInformation);\r\n return companiesAccumulator;\r\n }\r\n\r\n }, []);\r\n\r\n options.success(vm.availableCompanies);\r\n } catch (error) {\r\n options.error(error);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function addCompany(company) {\r\n vm.loading = true;\r\n let postData = {\r\n CompanyTemplateId: vm.template.Id,\r\n CompanyMasterId: company.ID\r\n };\r\n\r\n try {\r\n await companyTemplatesData.addCompany(vm.template.Id, postData);\r\n removeCompanyFromGrid(company);\r\n addCompanyToTemplate(company);\r\n } catch {\r\n return;\r\n }\r\n\r\n vm.loading = false;\r\n }\r\n\r\n function removeCompanyFromGrid(company) {\r\n let addedCompany = vm.availableCompaniesGridDataSource._data.find(r => r.ID === company.ID);\r\n vm.availableCompaniesGridDataSource._data.remove(addedCompany);\r\n }\r\n\r\n function addCompanyToTemplate(company) {\r\n const companyObject = {\r\n CompanyTemplateId: vm.template.Id,\r\n CompanyTemplateName: vm.template.Name,\r\n CompanyMaster: company.toJSON(),\r\n CompanyIds: company.CompanyIDs.split(',')\r\n };\r\n vm.template.Companies.push(companyObject);\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n}","import companyModalController from \"../CompanyModal/companyModal.controller\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, $filter, companyTemplatesData) {\r\n\r\n const vm = this;\r\n\r\n vm.openCompanyModal = openCompanyModal;\r\n vm.deleteCompany = deleteCompany;\r\n\r\n async function getCompanyTemplates(preselectedId) {\r\n let { data } = await companyTemplatesData.getCompanyTemplates();\r\n if (data.length > 0) {\r\n data.forEach(template => {\r\n template.Companies = template.Companies.filter(company => company.CompanyMaster.UserHasAccess);\r\n template.Companies.forEach(templateCompany => templateCompany.CompanyIds = templateCompany.Companies.map(object => object.ID));\r\n });\r\n\r\n data = $filter('orderBy')(data, 'Name');\r\n if (preselectedId) {\r\n const companyTemplate = data.find(t => t.Id === preselectedId);\r\n data = data.filter(t => t.Id !== preselectedId);\r\n data.unshift(companyTemplate);\r\n changeSelectedCompanyTemplate(companyTemplate);\r\n }\r\n }\r\n vm.companyTemplates = data;\r\n }\r\n\r\n async function deleteCompany(company) {\r\n vm.deletePending = true;\r\n try {\r\n await companyTemplatesData.deleteCompany(vm.template.Id, company.ID);\r\n const companyIndex = vm.template.Companies.findIndex(c => c.CompanyMaster.ID === company.ID);\r\n vm.template.Companies.splice(companyIndex, 1);\r\n } catch {\r\n return;\r\n }\r\n vm.deletePending = false;\r\n }\r\n\r\n async function openCompanyModal() {\r\n const companyTemplateModal = $uibModal.open({\r\n templateUrl: '/App/Components/CompanyTemplates/CompanyModal/companyModal.html',\r\n controller: companyModalController,\r\n controllerAs: 'cmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n template: () => vm.template\r\n }\r\n });\r\n try {\r\n const newTemplateId = await companyTemplateModal.result;\r\n getCompanyTemplates(newTemplateId);\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n}\r\n","import companyTemplateCompaniesListController from \"./companyTemplateCompaniesList.controller\";\r\n\r\nconst companyTemplateCompaniesList = {\r\n bindings: {\r\n template: '<',\r\n onUpdateCompanies: '&'\r\n },\r\n controller: companyTemplateCompaniesListController,\r\n controllerAs: 'ctclvm',\r\n templateUrl: '/App/Components/CompanyTemplates/AssociatedCompaniesList/companyTemplateCompaniesList.tmpl.html'\r\n};\r\n\r\nexport default companyTemplateCompaniesList;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, companyTemplatesData, helperService, actionString, companyTemplates, selectedTemplate) {\r\n\r\n const vm = this;\r\n\r\n vm.actionString = actionString;\r\n\r\n vm.cancel = cancel;\r\n\r\n if (selectedTemplate) {\r\n vm.selectedTemplate = selectedTemplate;\r\n vm.templateName = selectedTemplate.Name;\r\n }\r\n\r\n vm.templateNamesMatch = templateNamesMatch;\r\n vm.submitForm = submitForm;\r\n\r\n async function createCompanyTemplate() {\r\n vm.loading = new createSpinner();\r\n let postData = { Name: vm.templateName };\r\n try {\r\n let response = await companyTemplatesData.createCompanyTemplate(postData);\r\n let newTemplateId = response.data;\r\n vm.killModal = true;\r\n await helperService.successfulSaveButton(vm.loading);\r\n $uibModalInstance.close(newTemplateId);\r\n } catch {\r\n vm.loading.loadingValue = false;\r\n }\r\n }\r\n\r\n function templateNamesMatch() {\r\n let match = (t) => t.Name.toLowerCase() === vm.templateName.toLowerCase();\r\n return companyTemplates.some(match);\r\n }\r\n\r\n async function renameCompanyTemplate() {\r\n vm.loading = new createSpinner();\r\n\r\n let putData = {\r\n Name: vm.templateName,\r\n Id: vm.selectedTemplate.Id\r\n };\r\n\r\n try {\r\n await companyTemplatesData.renameCompanyTemplate(putData.Id, putData);\r\n vm.killModal = true;\r\n await helperService.successfulSaveButton(vm.loading);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.loading.loadingValue = false;\r\n }\r\n }\r\n\r\n function submitForm() {\r\n if (actionString === 'Create') {\r\n createCompanyTemplate();\r\n } else {\r\n renameCompanyTemplate();\r\n }\r\n }\r\n\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import swal from \"sweetalert2\";\r\nimport companyTemplateModalController from \"../CompanyTemplateModal/companyTemplateModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModal, companyTemplatesData, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = getCompanyTemplates;\r\n\r\n vm.openCompanyTemplateModal = openCompanyTemplateModal;\r\n vm.changeSelectedCompanyTemplate = changeSelectedCompanyTemplate;\r\n\r\n\r\n async function getCompanyTemplates(preselectedId) {\r\n let response = await companyTemplatesData.getCompanyTemplates();\r\n if (response.data.length > 0) {\r\n response.data.forEach(template => {\r\n template.Companies = template.Companies.filter(company => company.CompanyMaster.UserHasAccess);\r\n template.Companies.forEach(templateCompany => templateCompany.CompanyIds = templateCompany.Companies.map(object => object.ID));\r\n });\r\n\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n if (preselectedId) {\r\n const companyTemplate = response.data.find(t => t.Id === preselectedId);\r\n response.data = response.data.filter(t => t.Id !== preselectedId);\r\n response.data.unshift(companyTemplate);\r\n changeSelectedCompanyTemplate(companyTemplate);\r\n }\r\n }\r\n vm.companyTemplates = response.data;\r\n }\r\n\r\n function changeSelectedCompanyTemplate(template) {\r\n vm.template = template;\r\n vm.onSelectTemplate({ template });\r\n }\r\n\r\n async function deleteCompanyTemplate(template) {\r\n try {\r\n await swal(helperService.areYouSureParamsWithHTML('Delete Company Template',\r\n `
Are you sure you want to delete\r\n
${template.Name}?
\r\n
`, 'Delete'));\r\n await companyTemplatesData.deleteCompanyTemplate(template.Id);\r\n if (vm.template && vm.template.Id === template.Id) {\r\n vm.onSelectTemplate(null);\r\n }\r\n getCompanyTemplates();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n openCompanyTemplateModal('Edit', vm.companyTemplates, item.template);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n deleteCompanyTemplate(item.template);\r\n }\r\n }\r\n ];\r\n\r\n async function openCompanyTemplateModal(actionString, companyTemplates, selectedTemplate) {\r\n const companyTemplateModal = $uibModal.open({\r\n templateUrl: '/App/Components/CompanyTemplates/CompanyTemplateModal/companyTemplateModal.html',\r\n controller: companyTemplateModalController,\r\n controllerAs: 'ctmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n actionString: () => actionString,\r\n companyTemplates: () => companyTemplates,\r\n selectedTemplate: () => selectedTemplate\r\n }\r\n });\r\n\r\n try {\r\n const newTemplateId = await companyTemplateModal.result;\r\n getCompanyTemplates(newTemplateId);\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n}\r\n","import companyTemplatesListController from \"./companyTemplatesList.controller\";\r\n\r\nconst companyTemplatesList = {\r\n bindings: {\r\n template: '<',\r\n onSelectTemplate: '&'\r\n },\r\n controller: companyTemplatesListController,\r\n controllerAs: 'ctlvm',\r\n templateUrl: '/App/Components/CompanyTemplates/CompanyTemplatesList/companyTemplatesList.tmpl.html'\r\n};\r\n\r\nexport default companyTemplatesList;","const availableTimeZones = [\r\n \"Africa/Abidjan\",\r\n \"Africa/Accra\",\r\n \"Africa/Addis_Ababa\",\r\n \"Africa/Algiers\",\r\n \"Africa/Asmara\",\r\n \"Africa/Bamako\",\r\n \"Africa/Bangui\",\r\n \"Africa/Banjul\",\r\n \"Africa/Bissau\",\r\n \"Africa/Blantyre\",\r\n \"Africa/Brazzaville\",\r\n \"Africa/Bujumbura\",\r\n \"Africa/Cairo\",\r\n \"Africa/Casablanca\",\r\n \"Africa/Ceuta\",\r\n \"Africa/Conakry\",\r\n \"Africa/Dakar\",\r\n \"Africa/Dar_es_Salaam\",\r\n \"Africa/Djibouti\",\r\n \"Africa/Douala\",\r\n \"Africa/El_Aaiun\",\r\n \"Africa/Freetown\",\r\n \"Africa/Gaborone\",\r\n \"Africa/Harare\",\r\n \"Africa/Johannesburg\",\r\n \"Africa/Juba\",\r\n \"Africa/Kampala\",\r\n \"Africa/Khartoum\",\r\n \"Africa/Kigali\",\r\n \"Africa/Kinshasa\",\r\n \"Africa/Lagos\",\r\n \"Africa/Libreville\",\r\n \"Africa/Lome\",\r\n \"Africa/Luanda\",\r\n \"Africa/Lubumbashi\",\r\n \"Africa/Lusaka\",\r\n \"Africa/Malabo\",\r\n \"Africa/Maputo\",\r\n \"Africa/Maseru\",\r\n \"Africa/Mbabane\",\r\n \"Africa/Mogadishu\",\r\n \"Africa/Monrovia\",\r\n \"Africa/Nairobi\",\r\n \"Africa/Ndjamena\",\r\n \"Africa/Niamey\",\r\n \"Africa/Nouakchott\",\r\n \"Africa/Ouagadougou\",\r\n \"Africa/Porto-Novo\",\r\n \"Africa/Sao_Tome\",\r\n \"Africa/Timbuktu\",\r\n \"Africa/Tripoli\",\r\n \"Africa/Tunis\",\r\n \"Africa/Windhoek\",\r\n \"America/Adak\",\r\n \"America/Anchorage\",\r\n \"America/Anguilla\",\r\n \"America/Antigua\",\r\n \"America/Araguaina\",\r\n \"America/Argentina/Buenos_Aires\",\r\n \"America/Argentina/Catamarca\",\r\n \"America/Argentina/ComodRivadavia\",\r\n \"America/Argentina/Cordoba\",\r\n \"America/Argentina/Jujuy\",\r\n \"America/Argentina/La_Rioja\",\r\n \"America/Argentina/Mendoza\",\r\n \"America/Argentina/Rio_Gallegos\",\r\n \"America/Argentina/Salta\",\r\n \"America/Argentina/San_Juan\",\r\n \"America/Argentina/San_Luis\",\r\n \"America/Argentina/Tucuman\",\r\n \"America/Argentina/Ushuaia\",\r\n \"America/Aruba\",\r\n \"America/Asuncion\",\r\n \"America/Atikokan\",\r\n \"America/Atka\",\r\n \"America/Bahia\",\r\n \"America/Bahia_Banderas\",\r\n \"America/Barbados\",\r\n \"America/Belem\",\r\n \"America/Belize\",\r\n \"America/Blanc-Sablon\",\r\n \"America/Boa_Vista\",\r\n \"America/Bogota\",\r\n \"America/Boise\",\r\n \"America/Buenos_Aires\",\r\n \"America/Cambridge_Bay\",\r\n \"America/Campo_Grande\",\r\n \"America/Cancun\",\r\n \"America/Caracas\",\r\n \"America/Catamarca\",\r\n \"America/Cayenne\",\r\n \"America/Cayman\",\r\n \"America/Chicago\",\r\n \"America/Chihuahua\",\r\n \"America/Coral_Harbour\",\r\n \"America/Cordoba\",\r\n \"America/Costa_Rica\",\r\n \"America/Creston\",\r\n \"America/Cuiaba\",\r\n \"America/Curacao\",\r\n \"America/Danmarkshavn\",\r\n \"America/Dawson\",\r\n \"America/Dawson_Creek\",\r\n \"America/Denver\",\r\n \"America/Detroit\",\r\n \"America/Dominica\",\r\n \"America/Edmonton\",\r\n \"America/Eirunepe\",\r\n \"America/El_Salvador\",\r\n \"America/Ensenada\",\r\n \"America/Fort_Nelson\",\r\n \"America/Fort_Wayne\",\r\n \"America/Fortaleza\",\r\n \"America/Glace_Bay\",\r\n \"America/Godthab\",\r\n \"America/Goose_Bay\",\r\n \"America/Grand_Turk\",\r\n \"America/Grenada\",\r\n \"America/Guadeloupe\",\r\n \"America/Guatemala\",\r\n \"America/Guayaquil\",\r\n \"America/Guyana\",\r\n \"America/Halifax\",\r\n \"America/Havana\",\r\n \"America/Hermosillo\",\r\n \"America/Indiana/Indianapolis\",\r\n \"America/Indiana/Knox\",\r\n \"America/Indiana/Marengo\",\r\n \"America/Indiana/Petersburg\",\r\n \"America/Indiana/Tell_City\",\r\n \"America/Indiana/Vevay\",\r\n \"America/Indiana/Vincennes\",\r\n \"America/Indiana/Winamac\",\r\n \"America/Indianapolis\",\r\n \"America/Inuvik\",\r\n \"America/Iqaluit\",\r\n \"America/Jamaica\",\r\n \"America/Jujuy\",\r\n \"America/Juneau\",\r\n \"America/Kentucky/Louisville\",\r\n \"America/Kentucky/Monticello\",\r\n \"America/Knox_IN\",\r\n \"America/Kralendijk\",\r\n \"America/La_Paz\",\r\n \"America/Lima\",\r\n \"America/Los_Angeles\",\r\n \"America/Louisville\",\r\n \"America/Lower_Princes\",\r\n \"America/Maceio\",\r\n \"America/Managua\",\r\n \"America/Manaus\",\r\n \"America/Marigot\",\r\n \"America/Martinique\",\r\n \"America/Matamoros\",\r\n \"America/Mazatlan\",\r\n \"America/Mendoza\",\r\n \"America/Menominee\",\r\n \"America/Merida\",\r\n \"America/Metlakatla\",\r\n \"America/Mexico_City\",\r\n \"America/Miquelon\",\r\n \"America/Moncton\",\r\n \"America/Monterrey\",\r\n \"America/Montevideo\",\r\n \"America/Montreal\",\r\n \"America/Montserrat\",\r\n \"America/Nassau\",\r\n \"America/New_York\",\r\n \"America/Nipigon\",\r\n \"America/Nome\",\r\n \"America/Noronha\",\r\n \"America/North_Dakota/Beulah\",\r\n \"America/North_Dakota/Center\",\r\n \"America/North_Dakota/New_Salem\",\r\n \"America/Ojinaga\",\r\n \"America/Panama\",\r\n \"America/Pangnirtung\",\r\n \"America/Paramaribo\",\r\n \"America/Phoenix\",\r\n \"America/Port_of_Spain\",\r\n \"America/Port-au-Prince\",\r\n \"America/Porto_Acre\",\r\n \"America/Porto_Velho\",\r\n \"America/Puerto_Rico\",\r\n \"America/Punta_Arenas\",\r\n \"America/Rainy_River\",\r\n \"America/Rankin_Inlet\",\r\n \"America/Recife\",\r\n \"America/Regina\",\r\n \"America/Resolute\",\r\n \"America/Rio_Branco\",\r\n \"America/Rosario\",\r\n \"America/Santa_Isabel\",\r\n \"America/Santarem\",\r\n \"America/Santiago\",\r\n \"America/Santo_Domingo\",\r\n \"America/Sao_Paulo\",\r\n \"America/Scoresbysund\",\r\n \"America/Shiprock\",\r\n \"America/Sitka\",\r\n \"America/St_Barthelemy\",\r\n \"America/St_Johns\",\r\n \"America/St_Kitts\",\r\n \"America/St_Lucia\",\r\n \"America/St_Thomas\",\r\n \"America/St_Vincent\",\r\n \"America/Swift_Current\",\r\n \"America/Tegucigalpa\",\r\n \"America/Thule\",\r\n \"America/Thunder_Bay\",\r\n \"America/Tijuana\",\r\n \"America/Toronto\",\r\n \"America/Tortola\",\r\n \"America/Vancouver\",\r\n \"America/Virgin\",\r\n \"America/Whitehorse\",\r\n \"America/Winnipeg\",\r\n \"America/Yakutat\",\r\n \"America/Yellowknife\",\r\n \"Antarctica/Casey\",\r\n \"Antarctica/Davis\",\r\n \"Antarctica/DumontDUrville\",\r\n \"Antarctica/Macquarie\",\r\n \"Antarctica/Mawson\",\r\n \"Antarctica/McMurdo\",\r\n \"Antarctica/Palmer\",\r\n \"Antarctica/Rothera\",\r\n \"Antarctica/South_Pole\",\r\n \"Antarctica/Syowa\",\r\n \"Antarctica/Troll\",\r\n \"Antarctica/Vostok\",\r\n \"Arctic/Longyearbyen\",\r\n \"Asia/Aden\",\r\n \"Asia/Almaty\",\r\n \"Asia/Amman\",\r\n \"Asia/Anadyr\",\r\n \"Asia/Aqtau\",\r\n \"Asia/Aqtobe\",\r\n \"Asia/Ashgabat\",\r\n \"Asia/Ashkhabad\",\r\n \"Asia/Atyrau\",\r\n \"Asia/Baghdad\",\r\n \"Asia/Bahrain\",\r\n \"Asia/Baku\",\r\n \"Asia/Bangkok\",\r\n \"Asia/Barnaul\",\r\n \"Asia/Beirut\",\r\n \"Asia/Bishkek\",\r\n \"Asia/Brunei\",\r\n \"Asia/Calcutta\",\r\n \"Asia/Chita\",\r\n \"Asia/Choibalsan\",\r\n \"Asia/Chongqing\",\r\n \"Asia/Chungking\",\r\n \"Asia/Colombo\",\r\n \"Asia/Dacca\",\r\n \"Asia/Damascus\",\r\n \"Asia/Dhaka\",\r\n \"Asia/Dili\",\r\n \"Asia/Dubai\",\r\n \"Asia/Dushanbe\",\r\n \"Asia/Famagusta\",\r\n \"Asia/Gaza\",\r\n \"Asia/Harbin\",\r\n \"Asia/Hebron\",\r\n \"Asia/Ho_Chi_Minh\",\r\n \"Asia/Hong_Kong\",\r\n \"Asia/Hovd\",\r\n \"Asia/Irkutsk\",\r\n \"Asia/Istanbul\",\r\n \"Asia/Jakarta\",\r\n \"Asia/Jayapura\",\r\n \"Asia/Jerusalem\",\r\n \"Asia/Kabul\",\r\n \"Asia/Kamchatka\",\r\n \"Asia/Karachi\",\r\n \"Asia/Kashgar\",\r\n \"Asia/Kathmandu\",\r\n \"Asia/Katmandu\",\r\n \"Asia/Khandyga\",\r\n \"Asia/Kolkata\",\r\n \"Asia/Krasnoyarsk\",\r\n \"Asia/Kuala_Lumpur\",\r\n \"Asia/Kuching\",\r\n \"Asia/Kuwait\",\r\n \"Asia/Macao\",\r\n \"Asia/Macau\",\r\n \"Asia/Magadan\",\r\n \"Asia/Makassar\",\r\n \"Asia/Manila\",\r\n \"Asia/Muscat\",\r\n \"Asia/Novokuznetsk\",\r\n \"Asia/Novosibirsk\",\r\n \"Asia/Omsk\",\r\n \"Asia/Oral\",\r\n \"Asia/Phnom_Penh\",\r\n \"Asia/Pontianak\",\r\n \"Asia/Pyongyang\",\r\n \"Asia/Qatar\",\r\n \"Asia/Qyzylorda\",\r\n \"Asia/Rangoon\",\r\n \"Asia/Riyadh\",\r\n \"Asia/Saigon\",\r\n \"Asia/Sakhalin\",\r\n \"Asia/Samarkand\",\r\n \"Asia/Seoul\",\r\n \"Asia/Shanghai\",\r\n \"Asia/Singapore\",\r\n \"Asia/Srednekolymsk\",\r\n \"Asia/Taipei\",\r\n \"Asia/Tashkent\",\r\n \"Asia/Tbilisi\",\r\n \"Asia/Tehran\",\r\n \"Asia/Tel_Aviv\",\r\n \"Asia/Thimbu\",\r\n \"Asia/Thimphu\",\r\n \"Asia/Tokyo\",\r\n \"Asia/Tomsk\",\r\n \"Asia/Ujung_Pandang\",\r\n \"Asia/Ulaanbaatar\",\r\n \"Asia/Ulan_Bator\",\r\n \"Asia/Urumqi\",\r\n \"Asia/Ust-Nera\",\r\n \"Asia/Vientiane\",\r\n \"Asia/Vladivostok\",\r\n \"Asia/Yakutsk\",\r\n \"Asia/Yangon\",\r\n \"Asia/Yekaterinburg\",\r\n \"Asia/Yerevan\",\r\n \"Atlantic/Azores\",\r\n \"Atlantic/Bermuda\",\r\n \"Atlantic/Canary\",\r\n \"Atlantic/Cape_Verde\",\r\n \"Atlantic/Faeroe\",\r\n \"Atlantic/Faroe\",\r\n \"Atlantic/Jan_Mayen\",\r\n \"Atlantic/Madeira\",\r\n \"Atlantic/Reykjavik\",\r\n \"Atlantic/South_Georgia\",\r\n \"Atlantic/St_Helena\",\r\n \"Atlantic/Stanley\",\r\n \"Australia/ACT\",\r\n \"Australia/Adelaide\",\r\n \"Australia/Brisbane\",\r\n \"Australia/Broken_Hill\",\r\n \"Australia/Canberra\",\r\n \"Australia/Currie\",\r\n \"Australia/Darwin\",\r\n \"Australia/Eucla\",\r\n \"Australia/Hobart\",\r\n \"Australia/LHI\",\r\n \"Australia/Lindeman\",\r\n \"Australia/Lord_Howe\",\r\n \"Australia/Melbourne\",\r\n \"Australia/North\",\r\n \"Australia/NSW\",\r\n \"Australia/Perth\",\r\n \"Australia/Queensland\",\r\n \"Australia/South\",\r\n \"Australia/Sydney\",\r\n \"Australia/Tasmania\",\r\n \"Australia/Victoria\",\r\n \"Australia/West\",\r\n \"Australia/Yancowinna\",\r\n \"Brazil/Acre\",\r\n \"Brazil/DeNoronha\",\r\n \"Brazil/East\",\r\n \"Brazil/West\",\r\n \"Canada/Atlantic\",\r\n \"Canada/Central\",\r\n \"Canada/Eastern\",\r\n \"Canada/Mountain\",\r\n \"Canada/Newfoundland\",\r\n \"Canada/Pacific\",\r\n \"Canada/Saskatchewan\",\r\n \"Canada/Yukon\",\r\n \"CET\",\r\n \"Chile/Continental\",\r\n \"Chile/EasterIsland\",\r\n \"CST6CDT\",\r\n \"Cuba\",\r\n \"EET\",\r\n \"Egypt\",\r\n \"Eire\",\r\n \"EST\",\r\n \"EST5EDT\",\r\n \"Etc/GMT\",\r\n \"Etc/GMT+0\",\r\n \"Etc/GMT+1\",\r\n \"Etc/GMT+10\",\r\n \"Etc/GMT+11\",\r\n \"Etc/GMT+12\",\r\n \"Etc/GMT+2\",\r\n \"Etc/GMT+3\",\r\n \"Etc/GMT+4\",\r\n \"Etc/GMT+5\",\r\n \"Etc/GMT+6\",\r\n \"Etc/GMT+7\",\r\n \"Etc/GMT+8\",\r\n \"Etc/GMT+9\",\r\n \"Etc/GMT0\",\r\n \"Etc/GMT-0\",\r\n \"Etc/GMT-1\",\r\n \"Etc/GMT-10\",\r\n \"Etc/GMT-11\",\r\n \"Etc/GMT-12\",\r\n \"Etc/GMT-13\",\r\n \"Etc/GMT-14\",\r\n \"Etc/GMT-2\",\r\n \"Etc/GMT-3\",\r\n \"Etc/GMT-4\",\r\n \"Etc/GMT-5\",\r\n \"Etc/GMT-6\",\r\n \"Etc/GMT-7\",\r\n \"Etc/GMT-8\",\r\n \"Etc/GMT-9\",\r\n \"Etc/Greenwich\",\r\n \"Etc/UCT\",\r\n \"Etc/Universal\",\r\n \"Etc/UTC\",\r\n \"Etc/Zulu\",\r\n \"Europe/Amsterdam\",\r\n \"Europe/Andorra\",\r\n \"Europe/Astrakhan\",\r\n \"Europe/Athens\",\r\n \"Europe/Belfast\",\r\n \"Europe/Belgrade\",\r\n \"Europe/Berlin\",\r\n \"Europe/Bratislava\",\r\n \"Europe/Brussels\",\r\n \"Europe/Bucharest\",\r\n \"Europe/Budapest\",\r\n \"Europe/Busingen\",\r\n \"Europe/Chisinau\",\r\n \"Europe/Copenhagen\",\r\n \"Europe/Dublin\",\r\n \"Europe/Gibraltar\",\r\n \"Europe/Guernsey\",\r\n \"Europe/Helsinki\",\r\n \"Europe/Isle_of_Man\",\r\n \"Europe/Istanbul\",\r\n \"Europe/Jersey\",\r\n \"Europe/Kaliningrad\",\r\n \"Europe/Kiev\",\r\n \"Europe/Kirov\",\r\n \"Europe/Lisbon\",\r\n \"Europe/Ljubljana\",\r\n \"Europe/London\",\r\n \"Europe/Luxembourg\",\r\n \"Europe/Madrid\",\r\n \"Europe/Malta\",\r\n \"Europe/Mariehamn\",\r\n \"Europe/Minsk\",\r\n \"Europe/Monaco\",\r\n \"Europe/Moscow\",\r\n \"Asia/Nicosia\",\r\n \"Europe/Oslo\",\r\n \"Europe/Paris\",\r\n \"Europe/Podgorica\",\r\n \"Europe/Prague\",\r\n \"Europe/Riga\",\r\n \"Europe/Rome\",\r\n \"Europe/Samara\",\r\n \"Europe/San_Marino\",\r\n \"Europe/Sarajevo\",\r\n \"Europe/Saratov\",\r\n \"Europe/Simferopol\",\r\n \"Europe/Skopje\",\r\n \"Europe/Sofia\",\r\n \"Europe/Stockholm\",\r\n \"Europe/Tallinn\",\r\n \"Europe/Tirane\",\r\n \"Europe/Tiraspol\",\r\n \"Europe/Ulyanovsk\",\r\n \"Europe/Uzhgorod\",\r\n \"Europe/Vaduz\",\r\n \"Europe/Vatican\",\r\n \"Europe/Vienna\",\r\n \"Europe/Vilnius\",\r\n \"Europe/Volgograd\",\r\n \"Europe/Warsaw\",\r\n \"Europe/Zagreb\",\r\n \"Europe/Zaporozhye\",\r\n \"Europe/Zurich\",\r\n \"GB\",\r\n \"GB-Eire\",\r\n \"GMT\",\r\n \"GMT+0\",\r\n \"GMT0\",\r\n \"GMT−0\",\r\n \"Greenwich\",\r\n \"Hongkong\",\r\n \"HST\",\r\n \"Iceland\",\r\n \"Indian/Antananarivo\",\r\n \"Indian/Chagos\",\r\n \"Indian/Christmas\",\r\n \"Indian/Cocos\",\r\n \"Indian/Comoro\",\r\n \"Indian/Kerguelen\",\r\n \"Indian/Mahe\",\r\n \"Indian/Maldives\",\r\n \"Indian/Mauritius\",\r\n \"Indian/Mayotte\",\r\n \"Indian/Reunion\",\r\n \"Iran\",\r\n \"Israel\",\r\n \"Jamaica\",\r\n \"Japan\",\r\n \"Kwajalein\",\r\n \"Libya\",\r\n \"MET\",\r\n \"Mexico/BajaNorte\",\r\n \"Mexico/BajaSur\",\r\n \"Mexico/General\",\r\n \"MST\",\r\n \"MST7MDT\",\r\n \"Navajo\",\r\n \"NZ\",\r\n \"NZ-CHAT\",\r\n \"Pacific/Apia\",\r\n \"Pacific/Auckland\",\r\n \"Pacific/Bougainville\",\r\n \"Pacific/Chatham\",\r\n \"Pacific/Chuuk\",\r\n \"Pacific/Easter\",\r\n \"Pacific/Efate\",\r\n \"Pacific/Enderbury\",\r\n \"Pacific/Fakaofo\",\r\n \"Pacific/Fiji\",\r\n \"Pacific/Funafuti\",\r\n \"Pacific/Galapagos\",\r\n \"Pacific/Gambier\",\r\n \"Pacific/Guadalcanal\",\r\n \"Pacific/Guam\",\r\n \"Pacific/Honolulu\",\r\n \"Pacific/Johnston\",\r\n \"Pacific/Kiritimati\",\r\n \"Pacific/Kosrae\",\r\n \"Pacific/Kwajalein\",\r\n \"Pacific/Majuro\",\r\n \"Pacific/Marquesas\",\r\n \"Pacific/Midway\",\r\n \"Pacific/Nauru\",\r\n \"Pacific/Niue\",\r\n \"Pacific/Norfolk\",\r\n \"Pacific/Noumea\",\r\n \"Pacific/Pago_Pago\",\r\n \"Pacific/Palau\",\r\n \"Pacific/Pitcairn\",\r\n \"Pacific/Pohnpei\",\r\n \"Pacific/Ponape\",\r\n \"Pacific/Port_Moresby\",\r\n \"Pacific/Rarotonga\",\r\n \"Pacific/Saipan\",\r\n \"Pacific/Samoa\",\r\n \"Pacific/Tahiti\",\r\n \"Pacific/Tarawa\",\r\n \"Pacific/Tongatapu\",\r\n \"Pacific/Truk\",\r\n \"Pacific/Wake\",\r\n \"Pacific/Wallis\",\r\n \"Pacific/Yap\",\r\n \"Poland\",\r\n \"Portugal\",\r\n \"PRC\",\r\n \"PST8PDT\",\r\n \"ROC\",\r\n \"ROK\",\r\n \"Singapore\",\r\n \"Turkey\",\r\n \"UCT\",\r\n \"Universal\",\r\n \"US/Alaska\",\r\n \"US/Aleutian\",\r\n \"US/Arizona\",\r\n \"US/Central\",\r\n \"US/Eastern\",\r\n \"US/East-Indiana\",\r\n \"US/Hawaii\",\r\n \"US/Indiana-Starke\",\r\n \"US/Michigan\",\r\n \"US/Mountain\",\r\n \"US/Pacific\",\r\n \"US/Pacific-New\",\r\n \"US/Samoa\",\r\n \"UTC\",\r\n \"WET\",\r\n \"W-SU\",\r\n \"Zulu\"\r\n];\r\nexport default availableTimeZones;","export const configurationOptions = {\r\n productOptions: {\r\n default: [\r\n { Name: \"RiskManageType\", Encrypted: false },\r\n { Name: \"ARM_StandardMitigations\", Encrypted: false },\r\n { Name: \"ApplyDefaultMitigationsAfterImport\", Encrypted: false },\r\n { Name: \"ResetDefaultMitigationsBeforeApply\", Encrypted: false },\r\n { Name: \"DefaultMitigationsOverwriteCurrent\", Encrypted: false },\r\n { Name: \"ResetAutoMitigationsBeforeApply\", Encrypted: false },\r\n { Name: \"AutoExcludeDisabledUsersAfterImport\", Encrypted: false }\r\n ],\r\n PS: [{ Name: \"PS_ApplyAutoMitigationsAfterImport\", Encrypted: false }],\r\n ORFC: [{ Name: \"ORFC_ApplyAutoMitigationsAfterImport\", Encrypted: false }],\r\n OR: [\r\n { Name: \"OR_ApplyAutoMitigationsAfterImport\", Encrypted: false },\r\n { Name: \"OR_AutoMitigationsOverwrite\", Encrypted: false }\r\n ],\r\n SAP: []\r\n },\r\n systemConfigurations: [\r\n { Name: \"CreateFPUsersForAutoGenerateSupervisorAssignments\", Encrypted: false },\r\n { Name: \"AutoGenerateAllSupervisors\", Encrypted: false },\r\n { Name: \"IdentityProviderIdForAutoGenerateSupervisorAssignments\", Encrypted: false },\r\n { Name: \"AutoGenerateSupervisorAssignmentsAfterImport\", Encrypted: false },\r\n { Name: \"SAP_BuildRoleTemplatesForCompositeRoles\", Encrypted: false },\r\n { Name: \"HcmUserFieldForNewFastpathUserLoginEmail\", Encrypted: false },\r\n { Name: \"HcmUserFieldForNewFastpathUserEmail\", Encrypted: false },\r\n { Name: \"AutogeneratedUserRoles\", Encrypted: false },\r\n { Name: \"AutoMapCrossPlatformUsersAfterImport\", Encrypted: false },\r\n { Name: \"AutoMapFastpathToSystemUsers\", Encrypted: false }\r\n ],\r\n companyInfo: [\r\n { Name: \"CompanyName\", Encrypted: false },\r\n { Name: \"SystemTimeZone\", Encrypted: false },\r\n { Name: \"PrimarySystem\", Encrypted: false },\r\n { Name: \"EmailNewFpAdUsers\", Encrypted: false }\r\n ],\r\n configNames: [\r\n 'Cert_SnapshotTime',\r\n 'Cert_DaysToComplete',\r\n 'Cert_AllowSelectAll',\r\n 'Cert_IncludeDisabledUsers',\r\n 'Cert_BusinessProcessObjects',\r\n 'Cert_RequireNotesOnRejectedItems',\r\n 'Cert_ReviewAllRisks',\r\n 'Cert_SelfReview',\r\n 'Cert_UserDisplayField',\r\n 'Cert_EnableNewReviewReminderEmails',\r\n 'Cert_EnableBeforeDueDayReminderEmails',\r\n 'Cert_DaysBeforeDueDate',\r\n 'Cert_EnableDueDayReminderEmails',\r\n 'Cert_EnableOverdueReminderEmails',\r\n 'Cert_SendOverdueReminderEmailsEveryday',\r\n 'Cert_EnableEmailsForCompletedIndividualReviews',\r\n 'Cert_RoleContentBusinessProcess',\r\n 'Cert_RoleContentBusinessProcessObjects',\r\n 'Cert_RoleContentRisk',\r\n 'Cert_ReviewAllRoleContentRisks',\r\n 'Cert_RoleContentRoleAccess',\r\n 'Cert_ReviewRoleContentAccessTypesAndLevels'\r\n ],\r\n accessCertifications: [\r\n { Name: \"Cert_SnapshotTime\", Encrypted: false },\r\n { Name: \"Cert_DaysToComplete\", Encrypted: false },\r\n { Name: \"Cert_AllowSelectAll\", Encrypted: false },\r\n { Name: \"Cert_IncludeDisabledUsers\", Encrypted: false},\r\n { Name: \"Cert_BusinessProcessObjects\", Encrypted: false },\r\n { Name: \"Cert_RequireNotesOnRejectedItems\", Encrypted: false },\r\n { Name: \"Cert_ReviewAllRisks\", Encrypted: false },\r\n { Name: \"Cert_UserDisplayField\", Encrypted: false },\r\n { Name: \"Cert_SelfReview\", Encrypted: false },\r\n { Name: \"Cert_EnableNewReviewReminderEmails\", Encrypted: false },\r\n { Name: \"Cert_EnableBeforeDueDayReminderEmails\", Encrypted: false },\r\n { Name: \"Cert_DaysBeforeDueDate\", Encrypted: false },\r\n { Name: \"Cert_EnableOverdueReminderEmails\", Encrypted: false },\r\n { Name: \"Cert_EnableDueDayReminderEmails\", Encrypted: false },\r\n { Name: \"Cert_SendOverdueReminderEmailsEveryday\", Encrypted: false },\r\n { Name: \"Cert_EnableEmailsForCompletedIndividualReviews\", Encrypted: false },\r\n { Name: \"Cert_RoleContentBusinessProcess\", Encrypted: false },\r\n { Name: \"Cert_RoleContentBusinessProcessObjects\", Encrypted: false },\r\n { Name: \"Cert_RoleContentRisk\", Encrypted: false },\r\n { Name: \"Cert_ReviewAllRoleContentRisks\", Encrypted: false },\r\n { Name: \"Cert_RoleContentRoleAccess\", Encrypted: false },\r\n { Name: \"Cert_ReviewRoleContentAccessTypesAndLevels\", Encrypted: false },\r\n ]\r\n};","import availableTimeZones from \"../../Shared/GlobalVariables/timezones\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport { standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { configurationOptions } from \"./configOptions\";\r\n\r\nexport default /*@ngInject*/ function (dataService, configurationDataService, $filter, $rootScope, helperService) {\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.tabSelected = 'SystemSettings';\r\n vm.ssChildTabSelected = 'Company Information';\r\n vm.updatePending = false;\r\n vm.currentTenant = angular.fromJson(localStorage.getItem(\"selectedTenant\"));\r\n vm.putConfigurationSetting = putConfigurationSetting;\r\n vm.configValuesHaveChanged = configValuesHaveChanged;\r\n vm.submitAccessRiskMonitor = submitAccessRiskMonitor;\r\n vm.submitCompanyInfo = submitCompanyInfo;\r\n vm.submitSecurityDesigner = submitSecurityDesigner;\r\n vm.submitSystemConfiguration = submitSystemConfiguration;\r\n vm.submitAccessCertifications = submitAccessCertifications;\r\n vm.configNames = configurationOptions.configNames;\r\n vm.showPasswordCriteria = showPasswordCriteria;\r\n vm.deleteCompanyLogo = deleteCompanyLogo;\r\n vm.snapshotTimeHasChanged = snapshotTimeHasChanged;\r\n vm.reset = reset;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n getExistingCompanyLogo();\r\n await getProducts();\r\n await getConfigValues();\r\n vm.s4Enabled = vm.availableProducts.SAP ? await getS4Config() : false;\r\n await setupRolesDropdown();\r\n\r\n await getIdentityProviders();\r\n\r\n setAuditTrailTabVisibility();\r\n setupTimeZones();\r\n\r\n }\r\n\r\n async function getConfigValues() {\r\n let response = await configurationDataService.getConfigurationValues(),\r\n config = {};\r\n\r\n response.data.forEach(row => {\r\n config[row.Name] = row.Value;\r\n });\r\n\r\n // Need to set up these config values as numbers now so they don't enable save button\r\n if (vm.productsDataSource.some(product => product.Type === 'SAP')) {\r\n config.MaxFirefighterAccessPeriod = Number(config.MaxFirefighterAccessPeriod);\r\n }\r\n if (config.IM_ReminderThreshold) {\r\n config.IM_ReminderThreshold = Number(config.IM_ReminderThreshold);\r\n }\r\n if (config.IM_DaysBeforeExpirationReminder) {\r\n config.IM_DaysBeforeExpirationReminder = Number(config.IM_DaysBeforeExpirationReminder);\r\n }\r\n if (config.IM_AutomaticDelegationDaysThreshold) {\r\n config.IM_AutomaticDelegationDaysThreshold = Number(config.IM_AutomaticDelegationDaysThreshold);\r\n }\r\n\r\n if (config.IM_DefaultExpirationEnabled === '1' && config.IM_DefaultExpirationDays) {\r\n config.IM_DefaultExpirationDays = Number(config.IM_DefaultExpirationDays);\r\n }\r\n\r\n if (config.AutogeneratedUserRoles) {\r\n config.AutogeneratedUserRoles = config.AutogeneratedUserRoles.replaceAll(\";\", \",\");\r\n vm.selectedRoleIds = config.AutogeneratedUserRoles.split(\",\").map(role => Number(role));\r\n }\r\n\r\n vm.config = JSON.parse(JSON.stringify(config));\r\n vm.origConfig = JSON.parse(JSON.stringify(config));\r\n vm.configValuesDiffer = false;\r\n }\r\n\r\n async function getS4Config() {\r\n const { data } = await configurationDataService.getProductConfigurationValueByName('SAP', 'SAP_ErpType');\r\n return data.Value === \"S4\";\r\n }\r\n\r\n async function getProducts() {\r\n let { data } = await dataService.getProducts();\r\n\r\n vm.availableProducts = {};\r\n\r\n data.forEach(product => {\r\n vm.availableProducts[product.Type] = true;\r\n });\r\n\r\n vm.productsDataSource = data;\r\n }\r\n\r\n async function setupRolesDropdown() {\r\n vm.rolesDropdownOptions = {\r\n filter: \"contains\",\r\n autoClose: false,\r\n virtual: {\r\n itemHeight: 26,\r\n mapValueTo: 'dataItem',\r\n valueMapper: options => {\r\n options.success(helperService.multiValueMapperFunction(options, vm.rolesDataSource, 'ID'));\r\n }\r\n },\r\n height: 325,\r\n placeholder: `-- Select one or more Roles --`\r\n };\r\n\r\n vm.rolesDropdownDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async (options) => {\r\n vm.rolesDropdownLoading = true;\r\n let { data } = await dataService.getRoles();\r\n vm.rolesDataSource = $filter('orderBy')(data, 'Name');\r\n options.success(vm.rolesDataSource);\r\n vm.rolesDropdownLoading = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function getIdentityProviders() {\r\n try {\r\n let { data } = await configurationDataService.getIdentityProviders();\r\n vm.providersList = data;\r\n vm.providersList = $filter('orderBy')(vm.providersList, 'Name');\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function importCompanyLogo(file) {\r\n let fd = new FormData();\r\n\r\n vm.updatePending = new createSpinner();\r\n fd.append(\"ImageImport\", file[0].file);\r\n\r\n try {\r\n await configurationDataService.importCompanyLogo(fd);\r\n helperService.successfulSaveButton(vm.updatePending);\r\n $rootScope.$broadcast('logoUpdated');\r\n vm.files.cancel();\r\n getExistingCompanyLogo();\r\n }\r\n catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function getExistingCompanyLogo() {\r\n vm.logoProcessing = true;\r\n try {\r\n const { data } = await configurationDataService.getCompanyLogo();\r\n vm.companyLogo = data;\r\n vm.logoProcessing = false;\r\n } catch {\r\n vm.companyLogo = null;\r\n vm.logoProcessing = false;\r\n }\r\n\r\n }\r\n\r\n async function deleteCompanyLogo() {\r\n vm.logoProcessing = true;\r\n await configurationDataService.deleteCompanyLogo();\r\n getExistingCompanyLogo();\r\n $rootScope.$broadcast('logoUpdated');\r\n vm.logoProcessing = false;\r\n }\r\n\r\n function setAuditTrailTabVisibility() {\r\n // Check if user has security for Audit Trail\r\n if (angular.fromJson(localStorage.getItem(\"NavigationObjects\")).some(object => object.ObjectID === 3000)) {\r\n // Check if user has one product and that one product is AX7\r\n if (vm.productsDataSource.length === 1 && vm.productsDataSource[0].ID === 'AX7') {\r\n // If AX7 only - do not show Audit Trail tab\r\n vm.showAuditTrailTab = false;\r\n } else {\r\n vm.showAuditTrailTab = true;\r\n }\r\n } else {\r\n vm.showAuditTrailTab = false;\r\n }\r\n }\r\n\r\n function setupTimeZones() {\r\n //Delivery System TimeZone\r\n vm.availableTimeZones = availableTimeZones;\r\n }\r\n\r\n async function putConfigurationSetting(list, value, origVal) {\r\n let putData = {\r\n \"Configurations\": []\r\n };\r\n\r\n list.forEach(item => {\r\n if (value[item.Name] !== origVal[item.Name]) {\r\n putData.Configurations.push({\r\n \"Name\": item.Name,\r\n \"Value\": value[item.Name]\r\n });\r\n }\r\n });\r\n\r\n vm.updatePending = new createSpinner();\r\n\r\n try {\r\n await configurationDataService.updateConfigurationValues(putData);\r\n helperService.successfulSaveButton(vm.updatePending);\r\n putData.Configurations.forEach(config => {\r\n origVal[config.Name] = config.Value;\r\n });\r\n } catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function configValuesHaveChanged(configArray) {\r\n return helperService.returnTrueIfValuesDiffer(configArray, vm.origConfig, vm.config);\r\n }\r\n\r\n function submitCompanyInfo(files) {\r\n let { companyInfo } = configurationOptions;\r\n if (vm.configValuesHaveChanged(['CompanyName', 'PrimarySystem', 'SystemTimeZone', 'EmailNewFpAdUsers'])) {\r\n vm.putConfigurationSetting(companyInfo, vm.config, vm.origConfig);\r\n }\r\n if (files.length) {\r\n importCompanyLogo(files);\r\n }\r\n }\r\n\r\n function submitSystemConfiguration() {\r\n let { systemConfigurations } = configurationOptions;\r\n\r\n vm.config.AutogeneratedUserRoles = ([vm.selectedRoleIds].join(\", \")).replaceAll(',', ';');\r\n vm.putConfigurationSetting(systemConfigurations, vm.config, vm.origConfig); \r\n vm.userForm.$setPristine();\r\n }\r\n\r\n function submitAccessRiskMonitor() {\r\n let list = configurationOptions.productOptions.default,\r\n productOptions = configurationOptions.productOptions;\r\n\r\n if (vm.availableProducts.PS) {\r\n list = [...list, ...productOptions.PS];\r\n } else if (vm.availableProducts.ORFC) {\r\n list = [...list, ...productOptions.ORFC];\r\n } else if (vm.availableProducts.OR) {\r\n list = [...list, ...productOptions.OR];\r\n } else {\r\n list = [...list, ...productOptions.SAP];\r\n }\r\n\r\n vm.putConfigurationSetting(list, vm.config, vm.origConfig);\r\n }\r\n\r\n function submitAccessCertifications() {\r\n let { accessCertifications } = configurationOptions;\r\n\r\n if (vm.config.Cert_SnapshotTime && snapshotTimeHasChanged()) {\r\n let snapshotTimeSetting = new Date(vm.config.Cert_SnapshotTime);\r\n let currentUtcDateTime = new Date();\r\n snapshotTimeSetting.setDate(currentUtcDateTime.getUTCDate());\r\n snapshotTimeSetting.setMonth(currentUtcDateTime.getUTCMonth());\r\n snapshotTimeSetting.setYear(currentUtcDateTime.getUTCFullYear());\r\n\r\n vm.config.Cert_SnapshotTime = snapshotTimeSetting;\r\n }\r\n vm.putConfigurationSetting(accessCertifications, vm.config, vm.origConfig);\r\n }\r\n\r\n function snapshotTimeHasChanged() {\r\n return vm.origConfig[\"Cert_SnapshotTime\"] !== vm.config[\"Cert_SnapshotTime\"];\r\n }\r\n\r\n function submitSecurityDesigner() {\r\n vm.putConfigurationSetting([{ Name: \"SD_RequireAnalysisForSimulations\", Encrypted: false }], vm.config, vm.origConfig);\r\n }\r\n\r\n function showPasswordCriteria() {\r\n return vm.availableProducts?.SAP || vm.availableProducts?.AAD || vm.availableProducts?.PS;\r\n }\r\n\r\n function reset() {\r\n vm.imChildTabSelected,\r\n vm.scChildTabSelected, \r\n vm.ssChildTabSelected,\r\n vm.acChildTabSelected = null;\r\n }\r\n}","import controller from \"./configuration.controller\";\r\n\r\n/* configuration.component.js */\r\n\r\n/**\r\n * @desc component for system configuration\r\n * @example \r\n */\r\n\r\nconst configuration = {\r\n controller: controller,\r\n controllerAs: 'cvm',\r\n templateUrl: '/App/Components/configuration/configuration.tmpl.html'\r\n};\r\n\r\nexport default configuration;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.submitReportManagement = submitReportManagement;\r\n vm.configValuesHaveChanged = configValuesHaveChanged;\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate () {\r\n vm.config = vm.currentConfig;\r\n vm.origConfig = vm.originalConfig;\r\n }\r\n\r\n async function submitReportManagement () {\r\n vm.updateSettingsPending = new createSpinner();\r\n\r\n let list = [\r\n { Name: \"ArchiveSignedReports\", Encrypted: false },\r\n { Name: \"RM_EnableNewReportSignatureReminderEmails\", Encrypted: false },\r\n { Name: \"RM_EnableBeforeDueDayReportSignatureReminderEmails\", Encrypted: false },\r\n { Name: \"RM_DaysToSignReport\", Encrypted: false },\r\n { Name: \"RM_EnableDueDayReportSignatureReminderEmails\", Encrypted: false },\r\n { Name: \"RM_EnableOverdueReportSignatureReminderEmails\", Encrypted: false },\r\n { Name: \"RM_SendOverdueReportSignatureReminderEmailsEveryday\", Encrypted: false },\r\n { Name: \"RM_ReportSignatureDaysBeforeDueDate\", Encrypted: false }\r\n ];\r\n\r\n try {\r\n let value = vm.config;\r\n let origVal = vm.origConfig;\r\n await vm.updateConfiguration({ list, value, origVal });\r\n await helperService.successfulSaveButton(vm.updateSettingsPending);\r\n activate();\r\n } catch {\r\n vm.updateSettingsPending.loadingValue = false;\r\n }\r\n }\r\n\r\n function configValuesHaveChanged (configArray) {\r\n return helperService.returnTrueIfValuesDiffer(configArray, vm.origConfig, vm.config);\r\n }\r\n}","import reportManagementController from \"./reportManagement.controller\";\r\n\r\n\r\n/* reportManagement.component.js */\r\n\r\n/**\r\n * @desc component for configuring settings for Report management\r\n * @example \r\n */\r\n\r\nconst reportManagement = {\r\n bindings: {\r\n currentConfig: '<',\r\n originalConfig: '<',\r\n updateConfiguration: '&'\r\n },\r\n controller: reportManagementController,\r\n controllerAs: 'rmvm',\r\n templateUrl: '/App/Components/configuration/reportManagement/reportManagement.html'\r\n};\r\n\r\nexport default reportManagement;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (helperService, $http, errorsDataService) {\r\n const vm = this;\r\n\r\n vm.updateCuaConnectionValues = updateCuaConnectionValues;\r\n\r\n vm.$onInit = activate;\r\n \r\n function activate() {\r\n getSapCuaConnections();\r\n }\r\n\r\n async function getSapCuaConnections() {\r\n try {\r\n let response = await $http.get(apiUrl + 'api/universal/products/sap/connections/cua');\r\n vm.origValues = response.data;\r\n vm.product = response.data;\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n async function updateCuaConnectionValues() {\r\n vm.saving = new createSpinner();\r\n let cuaPostData = {\r\n \"AppServerHost\": vm.product.AppServerHost,\r\n \"Client\": vm.product.Client,\r\n \"CuaSystem\": vm.product.CuaSystem,\r\n \"IsCuaEnabled\": vm.product.IsCuaEnabled,\r\n \"Language\": vm.product.Language,\r\n \"Password\": vm.product.Password,\r\n \"PoolSize\": vm.product.PoolSize,\r\n \"SystemID\": vm.product.SystemID,\r\n \"SystemNumber\": vm.product.SystemNumber,\r\n \"User\": vm.product.User\r\n };\r\n\r\n try {\r\n await $http.put(`${apiUrl}api/universal/products/sap/connections/cua`, cuaPostData);\r\n helperService.successfulSaveButton(vm.saving);\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n}","import cuaConnectionConfigurationController from \"./cuaConnectionConfiguration.controller\";\r\n\r\n/* cuaConnectionConfiguration.component.js */\r\n\r\n/**\r\n * @desc component for configuring SAP CUA Connection settings for Identity Manager\r\n * @example \r\n */\r\n\r\nconst identityManagerCuaConnectionConfiguration = {\r\n controller: cuaConnectionConfigurationController,\r\n controllerAs: 'cccvm',\r\n templateUrl: '/App/Components/configuration/identityManagerConfigTab/cuaConnectionConfiguration/cuaConnectionConfiguration.tmpl.html'\r\n};\r\n\r\nexport default identityManagerCuaConnectionConfiguration;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\n\r\nexport default /*@ngInject*/ function ($rootScope, $http, helperService, errorsDataService) {\r\n\r\n const vm = this,\r\n defaultRoleTemplate = {\r\n Id: null,\r\n Name: \"-- Select A Template --\"\r\n },\r\n emailMappingADProducts = ['NS', 'ORFC', 'OR', 'SAP', 'PS', 'SF'],\r\n emailMappingAADProducts = ['AX7', 'NS', 'ORFC', 'OR', 'SAP', 'PS', 'SF'];\r\n\r\n vm.hasNS = null;\r\n vm.updateReminderSchedule = updateReminderSchedule;\r\n vm.updateIdentityManagerSettingsConfigValues = updateIdentityManagerSettingsConfigValues;\r\n vm.getReminderSchedule = getReminderSchedule;\r\n vm.equalityCheck = equalityCheck;\r\n vm.toggleAutomaticDelegations = toggleAutomaticDelegations;\r\n vm.configValuesHaveChanged = configValuesHaveChanged;\r\n vm.refreshConfig = refreshConfig;\r\n vm.configNames = [\r\n 'IM_AutoApproveRoleRevokes_AC',\r\n 'IM_AutoApproveRoleRevokes_IM',\r\n 'IM_AllowApproverEqualsRequesterOnAC',\r\n 'IM_ReminderThreshold',\r\n 'IM_DaysBeforeExpirationReminder',\r\n 'IM_DisableObjectLevelRiskAnalysis',\r\n 'IM_ExpirationReminderEnabled',\r\n 'IM_ApprovalReminderEnabled',\r\n 'IM_SODThresholdNewOnly',\r\n 'NS_ImRequireExistingEmployee',\r\n 'NS_ImTerminateOption',\r\n 'NS_ImTerminateSetReleaseDate',\r\n 'IM_AutomaticDelegationDaysThreshold',\r\n 'IM_AutoApproveAPIAppRequests',\r\n 'IM_ApplyApprovalRulesToRevokes',\r\n 'IM_RequireTicketAssociation',\r\n 'MaxFirefighterAccessPeriod',\r\n 'AX_ImDisableOnTerminate',\r\n 'AX7_ImDisableOnTerminate',\r\n 'GP_ImDisableOnTerminate',\r\n 'NAV_ImDisableOnTerminate',\r\n 'ORFC_ImDisableOnTerminate',\r\n 'SAP_ImDisableOnTerminate',\r\n 'AAD_ImDisableOnTerminate',\r\n 'IM_RequireEmergencyAccessPreApproval',\r\n 'IM_DefaultRoleTemplateForNewUserRequestsEnabled',\r\n 'IM_DefaultRoleTemplateForNewUserRequests',\r\n 'IM_DefaultExpirationEnabled',\r\n 'IM_DefaultExpirationDays',\r\n 'IM_PreventSelfReview',\r\n 'IM_RequireNoteOnCancelledRequests',\r\n 'IM_ProvisionRequestItemsOnApproval',\r\n 'IM_BypassRiskAnalysis',\r\n 'IM_RoleTemplatesOnlyEnabled',\r\n 'IM_NewRolesAssignableAfterImport',\r\n 'EmergencyAccessApproversGroup',\r\n 'IM_ADFieldForEmailMapping',\r\n 'IM_AADFieldForEmailMapping',\r\n 'IM_RestrictRoleRequestsEA',\r\n 'IM_SendRequestNotificationsToAffectedUsers',\r\n 'IM_SendRequestCreatedNotificationToRequester'\r\n ];\r\n vm.roleTemplatesDataSource = [];\r\n vm.defaultRoleTemplateInvalid = defaultRoleTemplateInvalid;\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n vm.productsDataSource = vm.products;\r\n vm.config = vm.currentConfig;\r\n vm.origConfig = vm.originalConfig;\r\n\r\n await checkForNS();\r\n await checkForSap();\r\n await getReminderSchedule();\r\n await getIMApplications();\r\n await getRoleTemplates();\r\n checkForSF();\r\n if (vm.config.IM_AutomaticDelegationDaysThreshold) {\r\n vm.automaticDelegations = true;\r\n }\r\n\r\n vm.config.IM_DefaultExpirationDays = Number(vm.config.IM_DefaultExpirationDays);\r\n vm.origConfig.IM_DefaultExpirationDays = Number(vm.origConfig.IM_DefaultExpirationDays);\r\n vm.showEmailMappingADFieldsConfiguration = () => vm.products.some(product => emailMappingADProducts.includes(product.ID)) && vm.currentConfig['AD_Active'] === \"1\";\r\n vm.showEmailMappingAADFieldsConfiguration = () => vm.products.some(product => emailMappingAADProducts.includes(product.ID)) && vm.currentConfig['AAD_Active'] === \"1\";\r\n }\r\n async function updateReminderSchedule() {\r\n vm.updateInProgress = new createSpinner();\r\n\r\n const postData = {\r\n \"StartTime\": vm.reminderStartTime.toUTCString(),\r\n \"TimeZone\": $rootScope.applicationTimeZone\r\n };\r\n\r\n if (vm.config.IM_ExpirationReminderEnabled === \"1\" || vm.config.IM_ApprovalReminderEnabled === \"1\") {\r\n try {\r\n await $http.post(`${apiUrl}api/identitymanager/notifications/schedule`, postData);\r\n await getReminderSchedule();\r\n helperService.successfulSaveButton(vm.updateInProgress);\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n if (vm.config.IM_ExpirationReminderEnabled === \"0\" && vm.config.IM_ApprovalReminderEnabled === \"0\") {\r\n if (vm.reminderSchedule) {\r\n try {\r\n await $http.delete(`${apiUrl}api/identitymanager/notifications/schedule`);\r\n await getReminderSchedule();\r\n vm.updateInProgress.loadingValue = false;\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n //Check if NS exists for Terminate Request Processing IM section\r\n function checkForNS() {\r\n vm.hasNS = vm.productsDataSource.some(product => product.ID === 'NS');\r\n }\r\n\r\n //Check if SAP exists for Maximum Firefighter Access Period IM section\r\n function checkForSap() {\r\n vm.hasSap = vm.productsDataSource.some(product => product.Type === 'SAP');\r\n }\r\n\r\n // check for only SF as a product in order to hide Default Role Templates until it is ready for SF\r\n function checkForSF() {\r\n vm.salesforceOnly = vm.productsDataSource.every(product => product.Type === 'SF');\r\n }\r\n\r\n async function updateIdentityManagerSettingsConfigValues() {\r\n vm.updateSettingsPending = new createSpinner();\r\n\r\n let list = [\r\n { Name: \"IM_AutoApproveRoleRevokes_AC\", Encrypted: false },\r\n { Name: \"IM_AutoApproveRoleRevokes_IM\", Encrypted: false },\r\n { Name: \"IM_AllowApproverEqualsRequesterOnAC\", Encrypted: false },\r\n { Name: \"IM_ReminderThreshold\", Encrypted: false },\r\n { Name: \"IM_DaysBeforeExpirationReminder\", Encrypted: false },\r\n { Name: \"IM_ExpirationReminderEnabled\", Encrypted: false },\r\n { Name: \"IM_ApprovalReminderEnabled\", Encrypted: false },\r\n { Name: \"IM_PreventSelfReview\", Encrypted: false },\r\n { Name: \"IM_DefaultExpirationDays\", Encrypted: false },\r\n { Name: \"IM_DefaultExpirationEnabled\", Encrypted: false },\r\n { Name: \"IM_DisableObjectLevelRiskAnalysis\", Encrypted: false },\r\n { Name: \"IM_SODThresholdNewOnly\", Encrypted: false },\r\n { Name: \"IM_AutomaticDelegationDaysThreshold\", Encrypted: false },\r\n { Name: \"IM_AutoApproveAPIAppRequests\", Encrypted: false },\r\n { Name: \"IM_ApplyApprovalRulesToRevokes\", Encrypted: false },\r\n { Name: \"IM_DefaultRoleTemplateForNewUserRequestsEnabled\", Encrypted: false },\r\n { Name: \"IM_DefaultRoleTemplateForNewUserRequests\", Encrypted: false },\r\n { Name: \"IM_RequireTicketAssociation\", Encrypted: false },\r\n { Name: \"IM_RequireEmergencyAccessPreApproval\", Encrypted: false },\r\n { Name: \"IM_ProvisionRequestItemsOnApproval\", Encrypted: false },\r\n { Name: \"IM_RequireNoteOnCancelledRequests\", Encrypted: false },\r\n { Name: \"IM_RoleTemplatesOnlyEnabled\", Encrypted: false },\r\n { Name: \"NS_ImRequireExistingEmployee\", Encrypted: false },\r\n { Name: \"NS_ImTerminateOption\", Encrypted: false },\r\n { Name: \"NS_ImTerminateSetReleaseDate\", Encrypted: false },\r\n { Name: \"MaxFirefighterAccessPeriod\", Encrypted: false },\r\n { Name: \"AX_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"AX7_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"NAV_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"GP_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"ORFC_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"SAP_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"IM_NewRolesAssignableAfterImport\", Encrypted: false },\r\n { Name: \"IM_BypassRiskAnalysis\", Encrypted: false },\r\n { Name: \"IM_ADFieldForEmailMapping\", Encrypted: false },\r\n { Name: \"IM_AADFieldForEmailMapping\", Encrypted: false },\r\n { Name: \"IM_RestrictRoleRequestsEA\", Encrypted: false },\r\n { Name: \"IM_SendRequestNotificationsToAffectedUsers\", Encrypted: false },\r\n { Name: \"IM_SendRequestCreatedNotificationToRequester\", Encrypted: false }\r\n ];\r\n\r\n try {\r\n let value = vm.config;\r\n let origVal = vm.origConfig;\r\n await vm.updateConfiguration({ list, value, origVal });\r\n if (vm.config.IM_ExpirationReminderEnabled === \"0\" && vm.config.IM_ApprovalReminderEnabled === \"0\") {\r\n updateReminderSchedule();\r\n }\r\n await helperService.successfulSaveButton(vm.updateSettingsPending);\r\n activate();\r\n } catch {\r\n vm.updateSettingsPending.loadingValue = false;\r\n }\r\n\r\n }\r\n\r\n async function getReminderSchedule() {\r\n try {\r\n let { data } = await $http.get(apiUrl + 'api/identitymanager/notifications/schedule');\r\n vm.reminderSchedule = data;\r\n vm.savedReminderStartTime = new Date(data.StartTime);\r\n vm.reminderStartTime = vm.savedReminderStartTime;\r\n vm.equal = true;\r\n\r\n } catch (err) {\r\n vm.reminderSchedule = null;\r\n vm.reminderStartTime = new Date();\r\n\r\n }\r\n }\r\n\r\n async function getIMApplications() {\r\n let { data } = await $http.get(`${apiUrl}api/identitymanager/applications`);\r\n\r\n vm.imApplications = data;\r\n\r\n vm.universalOnly = vm.imApplications.every(product => product.Name === 'Universal');\r\n }\r\n\r\n async function getRoleTemplates() {\r\n let { data } = await $http.get(`${apiUrl}api/universal/roletemplates`);\r\n\r\n vm.roleTemplatesDataSource = [defaultRoleTemplate, ...data];\r\n }\r\n\r\n function equalityCheck() {\r\n vm.equal = vm.savedReminderStartTime && vm.reminderStartTime.getTime() === vm.savedReminderStartTime.getTime()\r\n }\r\n\r\n function toggleAutomaticDelegations() {\r\n if (!vm.automaticDelegations) {\r\n vm.origConfig.IM_AutomaticDelegationDaysThreshold = vm.config.IM_AutomaticDelegationDaysThreshold;\r\n vm.config.IM_AutomaticDelegationDaysThreshold = null;\r\n }\r\n }\r\n\r\n function configValuesHaveChanged(configArray) {\r\n return helperService.returnTrueIfValuesDiffer(configArray, vm.origConfig, vm.config);\r\n }\r\n\r\n function refreshConfig(updatedConfiguration) {\r\n vm.config = updatedConfiguration;\r\n }\r\n\r\n function defaultRoleTemplateInvalid() {\r\n return vm.config.IM_DefaultRoleTemplateForNewUserRequestsEnabled === \"1\" && !vm.config.IM_DefaultRoleTemplateForNewUserRequests;\r\n }\r\n}","import identityManagerConfigTabController from \"./identityManagerConfigTab.controller\";\r\n\r\n\r\n/* identityManagerConfigTab.component.js */\r\n\r\n/**\r\n * @desc component for configuring settings for Identity Manager\r\n * @example \r\n */\r\n\r\nconst identityManagerConfigTab = {\r\n bindings: {\r\n currentConfig: '<',\r\n originalConfig: '<',\r\n products: '<',\r\n tabSelected: '<',\r\n updateConfiguration: '&'\r\n },\r\n controller: identityManagerConfigTabController,\r\n controllerAs: 'imcvm',\r\n templateUrl: '/App/Components/configuration/identityManagerConfigTab/identityManagerConfigTab.tmpl.html'\r\n};\r\n\r\nexport default identityManagerConfigTab;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, helperService, manageDataDataService, configurationDataService, RequestManagementSAPService, ownershipGroupsDataService) {\r\n const vm = this,\r\n editRestrictedADProducts = ['NS', 'ORFC', 'OR', 'SAP', 'PS', 'SF'],\r\n editRestrictedAADProducts = ['AX7', 'NS', 'ORFC', 'OR', 'SAP', 'PS', 'SF'];\r\n\r\n vm.helperService = helperService;\r\n vm.configValueChanged = configValueChanged;\r\n vm.updateConfigValues = updateConfigValues;\r\n vm.updateSAPCollectionSchedule = updateSAPCollectionSchedule;\r\n\r\n vm.showProductSettings = false;\r\n\r\n vm.scheduleCollectionIsOn = null;\r\n vm.originalCollectionStatus = null;\r\n vm.configValuesDiffer = false;\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n vm.processingActionsDataSource = getProcessingActions();\r\n if (vm.configuration.IM_AutomaticDelegationDaysThreshold) {\r\n vm.automaticDelegations = true;\r\n }\r\n vm.configuration = { ...vm.configuration };\r\n vm.unchangedConfig = { ...vm.configuration };\r\n getProductConfiguration();\r\n if (vm.product.ProductType === 'SAP') {\r\n getSAPCollectionSchedule();\r\n vm.roleOwnershipGroupsDataSource = await getOwnershipGroups();\r\n }\r\n vm.showRestrictEditOfADFieldsConfiguration = () => editRestrictedADProducts.includes(vm.product.ProductType) && vm.configuration['AD_Active'] === \"1\";\r\n vm.showRestrictEditOfAADFieldsConfiguration = () => editRestrictedAADProducts.includes(vm.product.ProductType) && vm.configuration['AAD_Active'] === \"1\";\r\n }\r\n\r\n async function getProductConfiguration() {\r\n let { data } = await manageDataDataService.getConfigurationByProductId(vm.product.ProductID);\r\n vm.productConfiguration = data.reduce((acc, curr) => {\r\n acc[curr.Name] = curr.Value;\r\n return acc;\r\n }, {});\r\n\r\n vm.unchangedProductConfig = { ...vm.productConfiguration };\r\n\r\n if (vm.productConfiguration[vm.product.ProductType + '_ImDisableOnTerminate']) {\r\n vm.disableOnTerminateConfigName = vm.product.ProductType + '_ImDisableOnTerminate';\r\n } else {\r\n vm.disableOnTerminateConfigName = null;\r\n }\r\n if (vm.productConfiguration['IM_ShowRoleDescription']) {\r\n vm.showRoleDescriptionConfigName = 'IM_ShowRoleDescription';\r\n } else {\r\n vm.showRoleDescriptionConfigName = null;\r\n }\r\n if (vm.productConfiguration.IM_CollectUsage_DaysToCheck) {\r\n vm.product.SAP_IM_CollectUsage_DaysToCheck = parseInt(vm.productConfiguration.IM_CollectUsage_DaysToCheck);\r\n }\r\n\r\n setShowProductSettings();\r\n }\r\n\r\n async function getOwnershipGroups() {\r\n vm.roleOwnershipGroupsLoading = true;\r\n const { data } = await ownershipGroupsDataService.getOwnershipGroups();\r\n data.forEach(group => group.Id = group.Id.toString());\r\n vm.roleOwnershipGroupsLoading = false;\r\n return data;\r\n }\r\n\r\n function setShowProductSettings() {\r\n let hasProductType = [\"AX7\", \"SAP\", \"NS\"].some(type => type === vm.product.ProductType),\r\n showCreateRequests = vm.productConfiguration.IM_CreateRequestsFromCertReviews !== undefined,\r\n showImProvider = vm.productConfiguration.IM_Provider !== undefined,\r\n hasRestrictEdit = [\"SF\", \"PS\"].some(type => type === vm.product.ProductType) && (vm.configuration['AD_Active'] === \"1\" || vm.configuration['AAD_Active'] === \"1\");\r\n\r\n vm.showProductSettings = hasProductType || vm.disableOnTerminateConfigName || vm.showRoleDescriptionConfigName || showCreateRequests || showImProvider || hasRestrictEdit;\r\n }\r\n\r\n function getProcessingActions() {\r\n return [\r\n {\r\n Name: 'Set to Inactive',\r\n Id: '0'\r\n },\r\n {\r\n Name: 'Remove Access',\r\n Id: '1'\r\n },\r\n {\r\n Name: 'Set to Inactive & Remove Access',\r\n Id: '2'\r\n }\r\n ];\r\n }\r\n\r\n function configValueChanged() {\r\n vm.configValuesDiffer = JSON.stringify(vm.unchangedConfig) !== JSON.stringify(vm.configuration) || JSON.stringify(vm.unchangedProductConfig) !== JSON.stringify(vm.productConfiguration) || vm.scheduleCollectionIsOn !== vm.originalCollectionStatus || vm.scheduleCollectionIsOn && (JSON.stringify(vm.originalCollectionStartTime) !== JSON.stringify(vm.scheduleCollectionStartTime) || vm.product.SAP_IM_CollectUsage_DaysToCheck.toString() !== vm.productConfiguration.IM_CollectUsage_DaysToCheck);\r\n }\r\n\r\n async function updateConfigValues() {\r\n vm.updateProductConfigPending = new createSpinner();\r\n\r\n await makeUpdateCalls();\r\n vm.configValuesDiffer = false;\r\n await helperService.successfulSaveButton(vm.updateProductConfigPending);\r\n }\r\n\r\n function makeUpdateCalls() {\r\n // decide which call(s) to make\r\n if (vm.product.ProductType === 'SAP') {\r\n if (vm.originalCollectionStatus !== vm.scheduleCollectionIsOn || JSON.stringify(vm.originalCollectionStartTime) !== JSON.stringify(vm.scheduleCollectionStartTime)) {\r\n updateSAPCollectionSchedule();\r\n }\r\n if (vm.product.SAP_IM_CollectUsage_DaysToCheck.toString() !== vm.productConfiguration.IM_CollectUsage_DaysToCheck) {\r\n vm.productConfiguration.IM_CollectUsage_DaysToCheck = vm.product.SAP_IM_CollectUsage_DaysToCheck.toString();\r\n }\r\n }\r\n if (JSON.stringify(vm.unchangedConfig) !== JSON.stringify(vm.configuration)) {\r\n // we need to make the core config change call\r\n updateConfigurationSetting(vm.configuration, vm.unchangedConfig);\r\n }\r\n if (JSON.stringify(vm.unchangedProductConfig) !== JSON.stringify(vm.productConfiguration)) {\r\n // we need to make the product config change call\r\n updateProductConfiguration(vm.productConfiguration, vm.unchangedProductConfig)\r\n }\r\n }\r\n\r\n async function updateConfigurationSetting(value, origVal) {\r\n\r\n let putData = {\r\n \"Configurations\": []\r\n };\r\n\r\n let list = [\r\n { Name: \"NS_ImRequireExistingEmployee\", Encrypted: false },\r\n { Name: \"NS_ImTerminateOption\", Encrypted: false },\r\n { Name: \"NS_ImTerminateSetReleaseDate\", Encrypted: false },\r\n { Name: \"MaxFirefighterAccessPeriod\", Encrypted: false },\r\n { Name: \"EmergencyAccessApproversGroup\", Encrypted: false },\r\n { Name: \"IM_RestrictRoleRequestsEA\", Encrypted: false }\r\n ];\r\n\r\n list.forEach(item => {\r\n if (value[item.Name] !== origVal[item.Name]) {\r\n putData.Configurations.push({\r\n \"Name\": item.Name,\r\n \"Value\": value[item.Name]\r\n });\r\n }\r\n });\r\n\r\n try {\r\n await configurationDataService.updateConfigurationValues(putData);\r\n vm.unchangedConfig = { ...vm.configuration };\r\n const updatedConfiguration = { ...vm.configuration };\r\n vm.refreshCoreConfig({ updatedConfiguration });\r\n } catch {\r\n vm.updateProductConfigPending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function updateProductConfiguration(value, origVal) {\r\n let putData = {\r\n \"Configurations\": [],\r\n \"ProductId\": vm.product.ProductID\r\n };\r\n\r\n let list = [\r\n { Name: \"AAD_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"AX_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"AX7_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"IM_RemoveRoleLastCompanyRemoved\", Encrypted: false },\r\n { Name: \"IM_ShowRoleDescription\", Encrypted: false },\r\n { Name: \"NAV_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"GP_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"ORFC_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"SAP_ImDisableOnTerminate\", Encrypted: false },\r\n { Name: \"IM_Provider\", Encrypted: false },\r\n { Name: \"IM_CreateRequestsFromCertReviews\", Encrypted: false },\r\n { Name: \"IM_CollectUsage_DaysToCheck\", Encrypted: false }, \r\n { Name: \"IM_EnableOrgHierarchies\", Encrypted: false },\r\n { Name: \"IM_EnableUserGroups\", Encrypted: false },\r\n { Name: \"IM_DisableAADUserFields\", Encrypted: false },\r\n { Name: \"IM_DisableADUserFields\", Encrypted: false }\r\n ];\r\n\r\n list.forEach(item => {\r\n if (value[item.Name] !== origVal[item.Name]) {\r\n putData.Configurations.push({\r\n \"Name\": item.Name,\r\n \"Value\": value[item.Name]\r\n });\r\n }\r\n });\r\n\r\n try {\r\n await manageDataDataService.setProductConfiguration(vm.product.ProductID, putData);\r\n vm.unchangedProductConfig = { ...vm.productConfiguration };\r\n } catch {\r\n vm.updateProductConfigPending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function getSAPCollectionSchedule() {\r\n try {\r\n let response = await RequestManagementSAPService.getCollectionUsageSchedule(vm.product.ProductID)\r\n vm.collectionSchedule = response.data;\r\n vm.savedCollectionStartTime = new Date(response.data.StartTime);\r\n vm.scheduleCollectionStartTime = vm.savedCollectionStartTime;\r\n vm.originalCollectionStartTime = new Date(response.data.StartTime);\r\n vm.equal = true;\r\n vm.scheduleCollectionIsOn = true;\r\n vm.originalCollectionStatus = true;\r\n } catch (err) {\r\n vm.collectionSchedule = null;\r\n vm.scheduleCollectionStartTime = new Date();\r\n vm.scheduleCollectionIsOn = false;\r\n vm.originalCollectionStatus = false;\r\n }\r\n }\r\n\r\n async function updateSAPCollectionSchedule() {\r\n if (vm.scheduleCollectionIsOn) {\r\n vm.collectionScheduleUpdateInProgress = new createSpinner();\r\n const postData = {\r\n \"StartTime\": vm.scheduleCollectionStartTime.toUTCString(),\r\n \"TimeZone\": $rootScope.applicationTimeZone,\r\n \"ProductId\": vm.product.ProductID\r\n };\r\n\r\n try {\r\n await RequestManagementSAPService.setCollectionUsageSchedule(vm.product.ProductID, postData);\r\n await getSAPCollectionSchedule();\r\n helperService.successfulSaveButton(vm.collectionScheduleUpdateInProgress);\r\n } catch (err) {\r\n vm.collectionScheduleUpdateInProgress.loadingValue = false;\r\n }\r\n\r\n } else {\r\n if (vm.collectionSchedule) {\r\n try {\r\n await RequestManagementSAPService.deleteCollectionUsageSchedule(vm.product.ProductID);\r\n await getSAPCollectionSchedule();\r\n } catch (err) {\r\n vm.collectionScheduleUpdateInProgress.loadingValue = false;\r\n }\r\n }\r\n }\r\n }\r\n}","import productConfigurationController from \"./productConfiguration.controller\";\r\n\r\n/* productConfiguration.component.js */\r\n\r\n/**\r\n * @desc component for configuring product specific settings for Identity Manager\r\n * @example \r\n */\r\n\r\nconst identityManagerProductConfiguration = {\r\n bindings: {\r\n product: '<',\r\n configuration: '<',\r\n refreshCoreConfig: '&'\r\n },\r\n controller: productConfigurationController ,\r\n controllerAs: 'pcvm',\r\n templateUrl: '/App/Components/configuration/identityManagerConfigTab/productConfiguration/productConfiguration.tmpl.html'\r\n};\r\n\r\nexport default identityManagerProductConfiguration;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (helperService, manageDataDataService) {\r\n const vm = this;\r\n vm.helperService = helperService;\r\n vm.provisioningChanged = provisioningChanged;\r\n vm.updateProductProvisioning = updateProductProvisioning\r\n\r\n vm.valueChanged = false;\r\n vm.$onInit = activate;\r\n\r\n function activate() {\r\n getProductProvisioning();\r\n }\r\n\r\n async function getProductProvisioning() {\r\n const response = await manageDataDataService.getConfigurationByProductId(vm.product.ProductID);\r\n let provisioning = {\r\n 'IM_EnableProvisioning': response.data.find(prov => prov.Name === 'IM_EnableProvisioning').Value,\r\n 'IM_ProvisioningAdmins': response.data.find(prov => prov.Name === 'IM_ProvisioningAdmins').Value,\r\n }\r\n vm.originalProvisioning = JSON.stringify(provisioning);\r\n vm.provisioning = provisioning;\r\n }\r\n\r\n async function updateProductProvisioning() {\r\n vm.updateProvisioningPending = new createSpinner();\r\n let data = {\r\n \"Configurations\": [\r\n {\r\n \"Name\": \"IM_EnableProvisioning\",\r\n \"Value\": vm.provisioning.IM_EnableProvisioning\r\n },\r\n {\r\n \"Name\": \"IM_ProvisioningAdmins\",\r\n \"Value\": vm.provisioning.IM_ProvisioningAdmins\r\n }\r\n ],\r\n \"ProductId\": vm.product.ProductID\r\n };\r\n\r\n try {\r\n await manageDataDataService.setProductConfiguration(vm.product.ProductID, data);\r\n helperService.successfulSaveButton(vm.updateProvisioningPending);\r\n vm.originalProvisioning = JSON.stringify(vm.provisioning);\r\n vm.valueChanged = false;\r\n } catch {\r\n vm.updateProvisioningPending.loadingValue = false;\r\n }\r\n }\r\n\r\n function provisioningChanged() {\r\n if (vm.originalProvisioning === JSON.stringify(vm.provisioning)) {\r\n vm.valueChanged = false;\r\n } else {\r\n vm.valueChanged = true;\r\n }\r\n }\r\n}","/* productProvisioning.component.js */\r\n\r\nimport productProvisioningController from \"./productProvisioning.controller\";\r\n\r\n/**\r\n * @desc component for configuring product specific provisioning settings for Identity Manager\r\n * @example \r\n */\r\n\r\nconst identityManagerProductProvisioning = {\r\n bindings: {\r\n product: '<'\r\n },\r\n controller: productProvisioningController,\r\n controllerAs: 'ppvm',\r\n templateUrl: '/App/Components/configuration/identityManagerConfigTab/productProvisioning/productProvisioning.tmpl.html'\r\n};\r\n\r\nexport default identityManagerProductProvisioning;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, crossPlatformUsersDataService, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.importUserMapping = importUserMapping;\r\n vm.cancel = cancel;\r\n\r\n async function importUserMapping(files) {\r\n vm.disableButton = true;\r\n let fd = new FormData();\r\n files.forEach(function (file, i) {\r\n fd.append(files[i].file.name, files[i].file);\r\n });\r\n\r\n if (files.length > 0) {\r\n vm.disableButton = false;\r\n vm.importUpdatePending = new createSpinner();\r\n try {\r\n await crossPlatformUsersDataService.importUserMapping(fd);\r\n await helperService.successfulSaveButton(vm.importUpdatePending);\r\n cancel();\r\n } catch {\r\n vm.importUpdatePending.loadingValue = false;\r\n vm.disableButton = true;\r\n }\r\n cancel();\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../../Shared/kendo.module\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, lastSelectedUser, modalName, availableProducts, crossPlatformUsersDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.lastSelectedUser = lastSelectedUser;\r\n vm.modalName = modalName;\r\n vm.availableProducts = availableProducts;\r\n vm.submitUserMapping = submitUserMapping;\r\n vm.nullOutMapping = nullOutMapping;\r\n vm.checkUserMapping = checkUserMapping;\r\n vm.selectProduct = selectProduct;\r\n vm.cancel = cancel;\r\n\r\n vm.productsInModal = angular.copy(vm.availableProducts);\r\n\r\n vm.selectedProduct = null;\r\n\r\n async function activate() {\r\n if (vm.modalName === \"Edit\") {\r\n await getLastSelectedUserId();\r\n } else {\r\n vm.selectedUserModal = {\r\n \"ID\": null,\r\n \"Name\": \"\",\r\n \"Email\": \"\",\r\n \"UserMaps\": []\r\n };\r\n\r\n vm.productsInModal.forEach(function (product, i) {\r\n let mapModel = {\r\n \"UserID\": null,\r\n \"ProductID\": product.ID,\r\n \"ProductName\": product.Name,\r\n \"ProductType\": product.Type,\r\n \"UserName\": null,\r\n \"Email\": null\r\n };\r\n vm.selectedUserModal.UserMaps.push(mapModel);\r\n });\r\n }\r\n }\r\n\r\n activate();\r\n\r\n async function getLastSelectedUserId() {\r\n try {\r\n let response = await crossPlatformUsersDataService.getUserId(vm.lastSelectedUser.ID);\r\n vm.selectedUserModal = response.data;\r\n await populateData();\r\n } catch {\r\n return\r\n }\r\n }\r\n\r\n\r\n function populateData() {\r\n\r\n vm.selectedUserModal.UserMaps = [];\r\n\r\n\r\n vm.productsInModal.forEach(function (product, i) {\r\n var mapModel = {\r\n \"UserID\": null,\r\n \"ProductID\": product.ID,\r\n \"ProductName\": product.Name,\r\n \"ProductType\": product.Type,\r\n \"UserName\": null,\r\n \"Email\": null\r\n };\r\n\r\n vm.selectedUserModal.UserMaps.push(mapModel);\r\n\r\n });\r\n\r\n vm.selectedUserModal.UserMappings.forEach(function (mapping, i) {\r\n vm.selectedUserModal.UserMaps.forEach(function (userMap, i) {\r\n if (userMap.ProductID === mapping.ProductID) {\r\n userMap['UserID'] = mapping.UserID;\r\n userMap['UserName'] = mapping.UserName;\r\n userMap['Email'] = mapping.Email;\r\n }\r\n });\r\n });\r\n\r\n checkIfEnoughProductsAreSelected();\r\n\r\n }\r\n\r\n function nullOutMapping(dataItem) {\r\n\r\n let selectedMapping = vm.selectedUserModal.UserMaps.filter(e => e.ProductID === dataItem.ProductID)[0];\r\n selectedMapping['UserID'] = null;\r\n selectedMapping['UserName'] = null;\r\n selectedMapping['Email'] = null;\r\n\r\n //$scope.selectProduct(null);\r\n checkIfEnoughProductsAreSelected();\r\n }\r\n\r\n function checkIfEnoughProductsAreSelected() {\r\n let productsValid = 0;\r\n vm.selectedUserModal.UserMaps.forEach(function (dataItem, i) {\r\n if (dataItem.UserID) {\r\n productsValid = productsValid + 1;\r\n }\r\n });\r\n if (productsValid > 1) {\r\n vm.productsValid = true;\r\n } else {\r\n vm.productsValid = null;\r\n }\r\n }\r\n\r\n function checkUserMapping(dataItem) {\r\n\r\n if (vm.modalName === \"Create\") {\r\n vm.selectedUserModal.Name = dataItem.Name;\r\n vm.selectedUserModal.Email = dataItem.Email;\r\n }\r\n\r\n let selectedMapping = vm.selectedUserModal.UserMaps.filter(e => e.ProductID.toUpperCase() === dataItem.ProductID.toUpperCase())[0];\r\n selectedMapping['UserID'] = dataItem.UserID;\r\n selectedMapping['UserName'] = dataItem.Name;\r\n selectedMapping['Email'] = dataItem.Email;\r\n\r\n checkIfEnoughProductsAreSelected();\r\n vm.selectedProduct = null;\r\n }\r\n\r\n const columnsFromVM = [\r\n { title: \" \", template: \"\", width: 65, filterable: false },\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Email\", title: \"Email\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.manualMapGridOptions = helperService.setMainGridOptions(columnsFromVM, 400);\r\n vm.manualMapGridOptions.selectable = false;\r\n vm.manualMapGridOptions.pageable = {\r\n buttonCount: 3\r\n };\r\n vm.manualMapGridOptions.autoBind = false;\r\n\r\n vm.manualMapDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: halSchemaKendoGrid,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async options => {\r\n\r\n let postData = {\r\n \"ProductId\": vm.selectedProduct,\r\n \"QueryInput\": helperService.prepareSortsAndFilters(options)\r\n };\r\n\r\n try {\r\n let response = await crossPlatformUsersDataService.updateManualMapGrid(postData, options.data.pageSize, options.data.page);\r\n options.success(response.data);\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n\r\n function selectProduct(productId) {\r\n if (vm.selectedProduct) {\r\n vm.manualMapGrid.dataSource.read();\r\n }\r\n\r\n };\r\n\r\n async function submitUserMapping() {\r\n vm.submit = new createSpinner();\r\n\r\n let userMappings = [];\r\n\r\n vm.selectedUserModal.UserMaps.forEach(function (dataItem, i) {\r\n if (dataItem.UserID) {\r\n userMappings.push({\r\n \"ProductId\": dataItem.ProductID,\r\n \"ProductName\": dataItem.ProductName,\r\n \"UserId\": dataItem.UserID\r\n });\r\n }\r\n });\r\n\r\n\r\n let postData = {\r\n \"Input\": {\r\n \"ID\": vm.selectedUserModal.ID,\r\n \"Name\": vm.selectedUserModal.Name,\r\n \"Email\": vm.selectedUserModal.Email,\r\n \"UserMappings\": userMappings\r\n }\r\n };\r\n\r\n try {\r\n await crossPlatformUsersDataService.submitUserMapping(postData);\r\n let dataItem = vm.manualMapGrid.dataSource.data().find(function (row) {\r\n return row.ID === vm.selectedUserModal.ID;\r\n });\r\n\r\n if (dataItem) {\r\n var productsAsString = \"\";\r\n userMappings.forEach(function (row, i) {\r\n productsAsString = productsAsString + row.ProductName + \", \";\r\n });\r\n productsAsString = productsAsString.replace(/,\\s*$/, \"\");\r\n\r\n dataItem.Name = vm.selectedUserModal.Name;\r\n dataItem.Email = vm.selectedUserModal.Email;\r\n dataItem.Products = productsAsString;\r\n } else {\r\n vm.manualMapGrid.dataSource.read();\r\n }\r\n await helperService.successfulSaveButton(vm.submit);\r\n cancel();\r\n } catch {\r\n vm.submit.loadingValue = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n}","import { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\nimport swal from \"sweetalert2\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport importUserMappingModalController from \"./importUserMappingModal.controller\";\r\nimport newCrossPlatformUserModalController from \"./NewCrossPlatformUserModal/newCrossPlatformUserModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, crossPlatformUsersDataService, $q, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n\r\n vm.autoMapUpdatePending = {};\r\n vm.autoMapUpdatePending.loadingValue = false;\r\n\r\n vm.newEditCrossPlatformUserModal = newEditCrossPlatformUserModal;\r\n vm.openImportAutoMapModal = openImportAutoMapModal;\r\n vm.deleteUserMaster = deleteUserMaster;\r\n vm.exportAutoMapping = exportAutoMapping;\r\n\r\n //Update successful inline saver\r\n $scope.$on('ImportUserMappings', function (event, args) {\r\n vm.gridDataSource.read();\r\n });\r\n $scope.$on('ExportUserMappings', function (event, args) {\r\n helperService.successfulSaveButton(vm.exportUpdatePending);\r\n });\r\n\r\n //When the auto mapper web job completes update the statistics and main grid\r\n $scope.$on('ImportUserMappings', (event, args) => updateAutoMapperStatistics(event, args));\r\n\r\n function activate() {\r\n setColumns();\r\n createGridDataSource();\r\n }\r\n\r\n activate();\r\n\r\n async function newEditCrossPlatformUserModal(modalType, dataItem) {\r\n if (modalType === 'New') {\r\n vm.lastSelectedUser = null;\r\n } else {\r\n vm.lastSelectedUser = angular.copy(dataItem);\r\n }\r\n\r\n let newEditModal = $uibModal.open({\r\n templateUrl: '/App/Components/CrossPlatformUsers/NewCrossPlatformUserModal/newCrossPlatformUserModal.tmpl.html',\r\n controller: newCrossPlatformUserModalController,\r\n controllerAs: 'ncpumvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n resolve: {\r\n lastSelectedUser: () => vm.lastSelectedUser,\r\n modalName: () => modalType,\r\n availableProducts: () => vm.availableProducts\r\n }\r\n });\r\n\r\n try {\r\n await newEditModal.result;\r\n await vm.gridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n vm.lockNewUserButton = true;\r\n\r\n async function setColumns() {\r\n let response = await crossPlatformUsersDataService.getProducts();\r\n vm.availableProducts = response.data;\r\n\r\n vm.lockNewUserButton = false;\r\n\r\n let actionsColumnTemplate = `
\r\n \r\n \r\n
`;\r\n\r\n let columnsFromVM = [\r\n { field: \"Name\", title: \"User Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Email\", title: \"Email\", filterable: customAutoCompleteFilter },\r\n { field: \"Products\", title: \"Products\", filterable: customAutoCompleteFilter },\r\n { title: \"Actions\", width: 140, template: actionsColumnTemplate, filterable: false },\r\n { field: \"MappingStatus\", title: \"Mapping Status\", headerTemplate: '
{{cpuvm.mappingStatusRowCount}}
', filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.mainGridOptions = helperService.setMainGridOptions(columnsFromVM, 600);\r\n vm.mainGridOptions.selectable = false;\r\n }\r\n\r\n function updateAutoMapperStatistics(event, args) {\r\n let promises = [];\r\n\r\n promises.push(vm.mainGrid.dataSource.read());\r\n //After the grid and statistics have been updated remove the loading icon in the 'Auto Map' section\r\n $q.all(promises).then(function () {\r\n vm.autoMapUpdatePending.loadingValue = false;\r\n });\r\n }\r\n\r\n function createGridDataSource() {\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: halSchemaKendoGrid,\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async options => {\r\n let data = {};\r\n data = helperService.prepareSortsAndFilters(options);\r\n\r\n try { \r\n let response = await crossPlatformUsersDataService.updateGrid(options.data.pageSize, options.data.page, data);\r\n options.success(response.data);\r\n\r\n vm.mappingStatusRowCount = response.data.TotalItems;\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function deleteUserMaster(dataItem) {\r\n await swal(helperService.areYouSureParams('Delete User', 'All data associated with this user will be lost. Are you sure you want to remove this user?', 'Delete'));\r\n\r\n let postData = {\r\n \"Input\": {\r\n \"ID\": dataItem.ID,\r\n \"Name\": dataItem.Name,\r\n \"Email\": dataItem.Email,\r\n \"UserMappings\": []\r\n }\r\n };\r\n\r\n try {\r\n await crossPlatformUsersDataService.deleteUserMaster(postData);\r\n await vm.mainGrid.dataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function openImportAutoMapModal() {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/CrossPlatformUsers/importUserMappingModal.tmpl.html',\r\n controller: importUserMappingModalController,\r\n controllerAs: 'iammvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n async function exportAutoMapping() {\r\n vm.exportUpdatePending = new createSpinner();\r\n try {\r\n await crossPlatformUsersDataService.exportAutoMapping();\r\n } catch {\r\n return;\r\n } \r\n }\r\n\r\n}\r\n\r\n","import crossPlatformUsersController from \"./crossPlatformUsers.controller\";\r\n\r\n/* crossPlatformUsers.component.js */\r\n/**\r\n * @desc component for cross platform users\r\n * @example \r\n */\r\n\r\nconst crossPlatformUsers = {\r\n controller: crossPlatformUsersController,\r\n controllerAs: 'cpuvm',\r\n templateUrl: '/App/Components/CrossPlatformUsers/crossPlatformUsers.tmpl.html'\r\n};\r\n\r\nexport default crossPlatformUsers;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $filter, dataService, helperService, maintainSystemRolesDataService, ownershipGroupsDataService, ownershipGroupItemsDataService, role) {\r\n const vm = this;\r\n\r\n vm.editSystemRole = editSystemRole;\r\n vm.checkIfApproversNeeded = checkIfApproversNeeded;\r\n vm.approversSelectionChanged = approversSelectionChanged;\r\n vm.cancel = cancel;\r\n vm.role = { ...role };\r\n vm.approversNeeded = false;\r\n\r\n if (vm.role.Reviewed) {\r\n vm.role.previouslyReviewed = true;\r\n }\r\n\r\n activate();\r\n\r\n async function activate() {\r\n if (role.ProductType === 'SAP') {\r\n vm.eaDisabled = await canSetEmergencyAccess();\r\n if (vm.role.IsEmergencyAccess) {\r\n vm.approversExist = true;\r\n }\r\n }\r\n }\r\n\r\n async function canSetEmergencyAccess() {\r\n const { data: ownershipGroups } = await ownershipGroupsDataService.getOwnershipGroups(),\r\n defaultEAOGId = await helperService.getConfigurationValue('EmergencyAccessApproversGroup');\r\n if (!ownershipGroups.length || !defaultEAOGId) {\r\n return true;\r\n } else {\r\n vm.ownershipGroupsList = ownershipGroups;\r\n vm.defaultEAOwnershipGroupId = Number(defaultEAOGId);\r\n return false;\r\n }\r\n \r\n }\r\n\r\n async function checkIfApproversNeeded() {\r\n if (!vm.role.IsEmergencyAccess) {\r\n return;\r\n }\r\n vm.dataLoading = true;\r\n if (!vm.approversExist) {\r\n const { data: defaultEAOGRoles } = await ownershipGroupItemsDataService.getEmergencyAccessGroupRoles(vm.defaultEAOwnershipGroupId);\r\n if (!defaultEAOGRoles.some(role => role.Identifier === vm.role.Identifier)) {\r\n vm.approversNeeded = true;\r\n setupAvailableUsersGrid();\r\n } else {\r\n vm.dataLoading = false;\r\n }\r\n } else {\r\n vm.dataLoading = false;\r\n }\r\n }\r\n\r\n function setupAvailableUsersGrid() {\r\n const availableUsersGridColumns = [\r\n { selectable: true, width: 50 },\r\n { field: \"UserLogonName\", title: \"Name\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.availableUsersGridOptions = helperService.setMainGridOptions(availableUsersGridColumns, 300);\r\n vm.availableUsersGridOptions.selectable = false;\r\n vm.availableUsersGridOptions.persistSelection = true;\r\n\r\n vm.availableUsersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n id: \"UserID\"\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n let { data } = await dataService.getUsers();\r\n data = data.filter(user => user.Active);\r\n data = $filter('orderBy')(data, 'UserLogonName');\r\n options.success(data);\r\n vm.dataLoading = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n function approversSelectionChanged() {\r\n vm.selectedApproverIds = vm.availableUsersGrid.selectedKeyNames();\r\n }\r\n\r\n async function editSystemRole() {\r\n vm.savePending = new createSpinner();\r\n const data = {\r\n SecurityRoleId: vm.role.ID,\r\n SecurityRoleTypeId: vm.role.TypeID,\r\n ProductId: vm.role.ProductID,\r\n IsAssignable: vm.role.IsAssignable,\r\n IsAutoApproved: vm.role.IsAutoApproved,\r\n IgnoreCertification: vm.role.IgnoreCertification,\r\n Reviewed: vm.role.Reviewed,\r\n IsEmergencyAccess: vm.role.IsEmergencyAccess,\r\n EmergencyAccessRequest: vm.role.IsEmergencyAccess ? { GroupId: vm.defaultEAOwnershipGroupId, SecurityRoleIdentifier: vm.role.Identifier, UserIds: vm.selectedApproverIds } : null\r\n }\r\n\r\n try {\r\n await maintainSystemRolesDataService.updateSystemRole(data);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n close();\r\n } catch {\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n\r\n function close() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, maintainSystemRolesDataService, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.removeFile = removeFile;\r\n vm.importSystemRoles = importSystemRoles;\r\n vm.cancel = cancel;\r\n\r\n\r\n async function removeFile(file) {\r\n vm.fileActionPending = true;\r\n\r\n try {\r\n await controlLibraryDataService.deleteAttachment(file.Identifier);\r\n\r\n const index = vm.existingFilesDataSource.findIndex(remainingFile => remainingFile.Identifier === file.Identifier);\r\n vm.existingFilesDataSource.splice(index, 1);\r\n vm.fileActionPending = false;\r\n } catch {\r\n vm.fileActionPending = false;\r\n }\r\n }\r\n\r\n async function importSystemRoles(file) {\r\n let fd = new FormData();\r\n vm.saving = new createSpinner();\r\n\r\n fd.append(file[0].name, file[0].file)\r\n\r\n await maintainSystemRolesDataService.importSystemRoles(fd);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close();\r\n }\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, customBooleanFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\nimport editSystemRoleModalController from \"./editSystemRoleModal/editSystemRoleModal.controller\";\r\nimport importModalController from \"./importModal/importModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($filter, maintainSystemRolesDataService, dataService, helperService, $uibModal, $scope, reportsService, ownershipGroupsDataService, FileSaver) {\r\n\r\n const vm = this;\r\n vm.openEditSystemRoleModal = openEditSystemRoleModal;\r\n vm.openImportModal = openImportModal;\r\n vm.exportSystemRoles = exportSystemRoles;\r\n\r\n $scope.$on('ImportSecurityRoleProperties', (event, args) => vm.systemRolesGridDataSource.read());\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.productsDataSource = await getProducts();\r\n vm.multipleProducts = checkForMultipleProducts();\r\n vm.hasSap = checkForSap();\r\n\r\n configureSystemRolesGrid();\r\n }\r\n\r\n async function getProducts() {\r\n const { data } = await dataService.getProducts();\r\n\r\n return $filter('orderBy')(data, 'Name');\r\n }\r\n\r\n function checkForMultipleProducts() {\r\n let hasMultiple = vm.productsDataSource.length > 1;\r\n\r\n if (hasMultiple) {\r\n vm.selectedProduct = vm.productsDataSource[0];\r\n }\r\n\r\n return hasMultiple;\r\n }\r\n\r\n async function getRoleOwnershipGroups() {\r\n const { data } = await ownershipGroupsDataService.getOwnershipGroups();\r\n\r\n vm.roleOwnershipGroupsLoading = true;\r\n vm.roleOwnershipGroupsDataSource = data;\r\n vm.eaApproversGroupId = Number(JSON.parse(localStorage.getItem(\"ConfigurationValues\")).EmergencyAccessApproversGroup);\r\n\r\n if (vm.eaApproversGroupId && vm.roleOwnershipGroupsDataSource.length > 0) {\r\n vm.selectedOwnershipGroup = vm.roleOwnershipGroupsDataSource.find(group => group.Id === vm.eaApproversGroupId).Id;\r\n }\r\n\r\n vm.roleOwnershipGroupsLoading = false;\r\n }\r\n\r\n function checkForSap() {\r\n return vm.productsDataSource.some(product => product.Type === 'SAP');\r\n }\r\n\r\n async function configureSystemRolesGrid() {\r\n const eaColumn = { field: \"IsEmergencyAccess\", title: \"Is Emergency Access\", headerTemplate: '
{{msrvm.isEmergencyAccessRolesCount}}
', filterable: customBooleanFilter, width: 160 },\r\n systemRolesGridColumns = [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter, width: 120 },\r\n { field: \"ID\", title: \"Id\", filterable: customAutoCompleteFilter, width: 100 },\r\n { field: \"Description\", title: \"Description\", filterable: customAutoCompleteFilter },\r\n { field: \"IsAssignable\", title: \"Is Assignable\", headerTemplate: '
{{msrvm.isAssignableRolesCount}}
', filterable: customBooleanFilter, width: 120 },\r\n { field: \"IsAutoApproved\", title: \"Is Auto Approved\", headerTemplate: '
{{msrvm.isAutoApprovedRolesCount}}
', filterable: customBooleanFilter, width: 140 },\r\n { field: \"IgnoreCertification\", title: \"Ignore Certification\", headerTemplate: '
{{msrvm.ignoreCertificationRolesCount}}
', filterable: customBooleanFilter, width: 160 },\r\n { field: \"Reviewed\", title: \"Is Reviewed\", headerTemplate: '
{{msrvm.isReviewedRolesCount}}
', filterable: customBooleanFilter, width: 120 },\r\n { field: \"ProductName\", title: \"Product\", filterable: customAutoCompleteFilter, hidden: !vm.multipleProducts },\r\n { template: `{{dataItem.Reviewed ? 'Edit' : 'Review'}}`, \"title\": \"Status\", width: 100 },\r\n ];\r\n\r\n if (vm.hasSap) {\r\n systemRolesGridColumns.splice(7, 0, eaColumn);\r\n }\r\n\r\n vm.systemRolesGridOptions = helperService.setMainGridOptions(systemRolesGridColumns, 600);\r\n vm.systemRolesGridOptions.autoBind = false;\r\n\r\n vm.systemRolesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: angular.extend(halSchemaKendoGrid, {\r\n model: {\r\n fields: {\r\n IsAssignable: { type: \"boolean\" },\r\n IsAutoApproved: { type: \"boolean\" },\r\n IgnoreCertification: { type: \"boolean\" },\r\n IsEmergencyAccess: { type: \"boolean\" },\r\n Reviewed: { type: \"boolean\" }\r\n }\r\n }\r\n }),\r\n serverPaging: true,\r\n serverFiltering: true,\r\n serverSorting: true,\r\n transport: {\r\n read: async options => {\r\n let query = helperService.prepareSortsAndFilters(options);\r\n query = reportsService.fixFieldNamesForApi(query, \"SecurityRole\");\r\n let params = { 'pagesize': options.data.pageSize, 'page': options.data.page };\r\n try{\r\n const { data } = await maintainSystemRolesDataService.getSystemRoles(query, params);\r\n vm.isAssignableRolesCount = data._embedded.reportData.filter(role => role.IsAssignable).length;\r\n vm.isAutoApprovedRolesCount = data._embedded.reportData.filter(role => role.IsAutoApproved).length;\r\n vm.ignoreCertificationRolesCount = data._embedded.reportData.filter(role => role.IgnoreCertification).length\r\n vm.isEmergencyAccessRolesCount = data._embedded.reportData.filter(role => role.IsEmergencyAccess).length\r\n vm.isReviewedRolesCount = data._embedded.reportData.filter(role => role.Reviewed).length\r\n options.success(data);\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n\r\n await vm.systemRolesGridDataSource.read();\r\n }\r\n async function openEditSystemRoleModal(role) {\r\n\r\n const editSystemRoleModal = $uibModal.open({\r\n templateUrl: '/App/Components/maintainSystemRoles/editSystemRoleModal/editSystemRoleModal.html',\r\n controller: editSystemRoleModalController,\r\n controllerAs: 'esrmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n role: () => role\r\n }\r\n });\r\n try {\r\n await editSystemRoleModal.result;\r\n vm.systemRolesGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openImportModal() {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/maintainSystemRoles/importModal/importModal.html',\r\n controller: importModalController,\r\n controllerAs: 'isrmvm',\r\n backdrop: 'static'\r\n });\r\n }\r\n\r\n async function exportSystemRoles() {\r\n vm.exportUpdatePending = new createSpinner();\r\n try {\r\n let { data } = await maintainSystemRolesDataService.exportSystemRoles();\r\n await helperService.successfulSaveButton(vm.exportUpdatePending);\r\n FileSaver.saveAs(data, 'SystemRoles.xlsx');\r\n } catch {\r\n vm.exportUpdatePending.loadingValue = false;\r\n }\r\n }\r\n}","import controller from \"./maintainSystemRoles.controller\";\r\n\r\n/* maintainSystemRoles.component.js */\r\n\r\n/**\r\n * @desc component for maintaining system roles\r\n * @example \r\n */\r\n\r\nconst maintainSystemRoles = {\r\n controller: controller,\r\n controllerAs: 'msrvm',\r\n template: `
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
System Roles
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
`\r\n};\r\n\r\nexport default maintainSystemRoles;","export default /*@ngInject*/ function (authenticationService, notificationsDataService, dataService, $filter) {\r\n\r\n const vm = this;\r\n\r\n vm.type = null;\r\n vm.notificationTypes = [];\r\n vm.allSubscriptions = [];\r\n vm.mySubscriptions = [];\r\n\r\n vm.getSubscriptions = getSubscriptions;\r\n vm.getNotificationTypes = getNotificationTypes;\r\n vm.setupToggleState = setupToggleState;\r\n\r\n vm.$onInit = activate();\r\n\r\n async function activate() {\r\n\r\n vm.loading = true;\r\n\r\n try {\r\n await getProducts();\r\n await getSubscriptions();\r\n await getNotificationTypes();\r\n setupToggleState();\r\n vm.loading = false;\r\n } catch (_) {\r\n vm.loading = false;\r\n }\r\n }\r\n\r\n // Pass to my notifications component\r\n async function getNotificationTypes() {\r\n const res = await notificationsDataService.getNotificationTypes();\r\n res.data = $filter('orderBy')(res.data, 'Name');\r\n vm.notificationTypes = res.data;\r\n }\r\n\r\n // Pass to modal controller and component\r\n async function getSubscriptions() {\r\n const currentUser = await authenticationService.getUser();\r\n const res = await notificationsDataService.getSubscriptions();\r\n vm.allSubscriptions = res.data.filter(s => s.UserId !== currentUser.userId);\r\n vm.mySubscriptions = res.data.filter(s => s.UserId === currentUser.userId);\r\n }\r\n\r\n async function getProducts() {\r\n const res = await dataService.getProducts();\r\n vm.products = res.data;\r\n }\r\n\r\n function setupToggleState() {\r\n vm.notificationTypes.forEach(type => {\r\n if (type.HasProductFilter) {\r\n vm.products.forEach(product => {\r\n type[product.ID] = { Notifications: null };\r\n if (vm.mySubscriptions.length > 0 && vm.mySubscriptions.some(subscription => subscription.ProductId === product.ID && subscription.NotificationTypeId === type.Id)) {\r\n type[product.ID].Notifications = true;\r\n } else {\r\n type[product.ID].Notifications = false;\r\n }\r\n });\r\n } else {\r\n type.Notifications = null;\r\n if (vm.mySubscriptions.length > 0 && vm.mySubscriptions.some(subscription => subscription.NotificationTypeId === type.Id)) {\r\n type.Notifications = true;\r\n } else {\r\n type.Notifications = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n}","import notificationsController from \"./notifications.controller\";\r\n\r\n/* notifications.component.js */\r\n\r\n/**\r\n * @desc component for displaying and subscribing to notifications\r\n * @example \r\n */\r\n\r\nconst notifications = {\r\n controller: notificationsController,\r\n controllerAs: 'nvm',\r\n templateUrl: '/App/Components/Notifications/notifications.tmpl.html'\r\n};\r\n\r\nexport default notifications;","export default /*@ngInject*/ function ($uibModalInstance, authenticationService, notificationsDataService, type, products) {\r\n\r\n const vm = this;\r\n\r\n vm.type = type;\r\n vm.products = products;\r\n vm.availableUsers = [];\r\n vm.subscribedUsers = [];\r\n\r\n vm.setupUsers = setupUsers;\r\n vm.createSubscription = createSubscription;\r\n vm.removeSubscription = removeSubscription;\r\n vm.cancel = cancel;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getUsers();\r\n await getSubscriptions();\r\n if (!vm.type.HasProductFilter) {\r\n setupUsers();\r\n }\r\n else if (vm.type.HasProductFilter && vm.products.length === 1) {\r\n vm.productId = vm.products[0].ID;\r\n setupUsers();\r\n }\r\n }\r\n\r\n async function getUsers() {\r\n vm.currentUser = await authenticationService.getUser();\r\n const res = await notificationsDataService.getUsers();\r\n res.data = res.data.filter(user => user.Active);\r\n vm.users = res.data.filter(u => u.UserID !== vm.currentUser.userId);\r\n }\r\n\r\n async function getSubscriptions() {\r\n const res = await notificationsDataService.getSubscriptions();\r\n vm.subscribed = res.data.filter(s => s.UserId !== vm.currentUser.userId);\r\n }\r\n\r\n function setupUsers() {\r\n\r\n let subscribed = [];\r\n\r\n subscribed = vm.subscribed.filter(su => su.NotificationTypeId === vm.type.Id);\r\n\r\n if (vm.type.HasProductFilter && subscribed.length > 0) {\r\n vm.subscribedUsers = subscribed.filter(su => su.ProductId === vm.productId);\r\n } else if (!vm.type.HasProductFilter && subscribed.length > 0) {\r\n vm.subscribedUsers = [...subscribed];\r\n }\r\n\r\n vm.availableUsers = [...vm.users];\r\n\r\n if (subscribed.length > 0) {\r\n vm.subscribedUsers.forEach(su => {\r\n let match = vm.availableUsers.find(au => au.UserID === su.UserId);\r\n if (match) vm.availableUsers.remove(match);\r\n });\r\n } else {\r\n vm.subscribedUsers = [];\r\n }\r\n }\r\n\r\n async function createSubscription(user) {\r\n\r\n vm.loading = true;\r\n\r\n const data = {\r\n NotificationTypeId: vm.type.Id,\r\n UserId: user.UserID,\r\n ProductId: vm.productId ? vm.productId : null\r\n };\r\n\r\n try {\r\n await notificationsDataService.createSubscription(data);\r\n await getSubscriptions();\r\n setupUsers();\r\n vm.loading = false;\r\n } catch (_) {\r\n vm.loading = false;\r\n }\r\n }\r\n\r\n async function removeSubscription(subscription) {\r\n\r\n vm.loading = true;\r\n\r\n try {\r\n await notificationsDataService.removeSubscription(subscription.Id);\r\n await getSubscriptions();\r\n setupUsers();\r\n vm.loading = false;\r\n } catch (_) {\r\n vm.loading = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n}\r\n","import notificationManagerModalController from \"../NotificationManagerModal/notificationManagerModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (authenticationService, notificationsDataService, $rootScope, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.changeSelectedType = changeSelectedType;\r\n vm.toggleProductNotifications = toggleProductNotifications;\r\n vm.toggleTypeNotifications = toggleTypeNotifications;\r\n vm.updateTypeDescription = updateTypeDescription;\r\n\r\n vm.$onInit = activate();\r\n\r\n async function activate() {\r\n vm.currentUser = await authenticationService.getUser();\r\n setupMenuOptions();\r\n }\r\n\r\n function setupMenuOptions() {\r\n if ($rootScope.UserSecurityList['6301']) {\r\n vm.menuOptions = [\r\n {\r\n text: 'Edit Description',\r\n click: item => {\r\n item.type.editedTypeDescription = item.type.Description;\r\n toggleDescriptionEditor(item.type);\r\n }\r\n },\r\n {\r\n text: 'Manage Others',\r\n click: item => {\r\n openNotificationManagerModal(item.type);\r\n }\r\n }\r\n ];\r\n }\r\n }\r\n\r\n function changeSelectedType(type) {\r\n vm.type = type;\r\n }\r\n\r\n function openNotificationManagerModal(type) {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/Notifications/NotificationManagerModal/notificationManagerModal.html',\r\n controller: notificationManagerModalController,\r\n controllerAs: 'nmmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n type: () => type,\r\n products: () => vm.products\r\n },\r\n size: 'lg'\r\n });\r\n }\r\n\r\n async function createSubscription(type, product) {\r\n\r\n \r\n const data = {\r\n NotificationTypeId: type.Id,\r\n UserId: vm.currentUser.userId,\r\n ProductId: product ? product.ID : null\r\n };\r\n\r\n return await notificationsDataService.createSubscription(data);\r\n }\r\n\r\n async function removeProductSubscription() {\r\n const subscriptionId = vm.mySubscriptions.find(sub => sub.UserId === vm.currentUser.userId && sub.NotificationTypeId === vm.type.Id && vm.type[sub.ProductId].Notifications === false).Id;\r\n\r\n return await notificationsDataService.removeSubscription(subscriptionId);\r\n }\r\n\r\n async function removeTypeSubscription() {\r\n const subscriptionId = vm.mySubscriptions.find(sub => sub.UserId === vm.currentUser.userId && sub.NotificationTypeId === vm.type.Id && vm.type.Notifications === false).Id;\r\n\r\n return await notificationsDataService.removeSubscription(subscriptionId);\r\n }\r\n\r\n async function toggleProductNotifications(type, product) {\r\n\r\n vm.toggling = true;\r\n\r\n try {\r\n if (type[product.ID].Notifications) {\r\n await createSubscription(type, product);\r\n } else {\r\n await removeProductSubscription();\r\n }\r\n vm.getSubscriptions();\r\n vm.toggling = false;\r\n } catch (_) {\r\n vm.toggling = false;\r\n }\r\n }\r\n\r\n async function updateTypeDescription(type) {\r\n\r\n const data = {\r\n Id: type.Id,\r\n Description: type.editedTypeDescription\r\n };\r\n\r\n try {\r\n await notificationsDataService.updateTypeDescription(type.Id, data);\r\n vm.getNotificationTypes();\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function toggleTypeNotifications(type) {\r\n\r\n vm.toggling = true;\r\n\r\n try {\r\n if (type.Notifications) {\r\n await createSubscription(type);\r\n } else {\r\n await removeTypeSubscription();\r\n }\r\n vm.getSubscriptions();\r\n vm.toggling = false;\r\n } catch (_) {\r\n vm.toggling = false;\r\n }\r\n }\r\n\r\n function toggleDescriptionEditor(type) {\r\n if (!type.editDescription) type.editDescription = true;\r\n else type.editDescription = false;\r\n }\r\n\r\n\r\n\r\n}","import NotificationTypesListController from \"./notificationTypesList.controller\";\r\n\r\n/* notificationTypesList.component.js */\r\n\r\n/**\r\n * @desc component for displaying and selecting notification types\r\n * @example \r\n */\r\n\r\nconst notificationTypesList = {\r\n bindings: {\r\n getSubscriptions: '<',\r\n getNotificationTypes: '<',\r\n allSubscriptions: '<',\r\n mySubscriptions: '<',\r\n notificationTypes: '<',\r\n setupToggleState: '<',\r\n products: '<',\r\n loading: '<'\r\n },\r\n controller: NotificationTypesListController,\r\n controllerAs: 'ntlvm',\r\n templateUrl: '/App/Components/Notifications/notificationTypesList/notificationTypesList.tmpl.html'\r\n};\r\n\r\nexport default notificationTypesList;","import { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModalInstance, dataService, roleTemplatesData, maintainSystemRolesDataService, helperService, errorsDataService, template) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = getProducts;\r\n\r\n vm.addRole = addRole;\r\n vm.productDropdownChanged = productDropdownChanged;\r\n vm.cancel = cancel;\r\n\r\n const availableRolesGridColumns = [\r\n { title: \"Name\", field: \"Name\", filterable: customAutoCompleteFilter },\r\n { title: \"Id\", field: \"ID\", filterable: customAutoCompleteFilter },\r\n { title: \"Description\", field: \"Description\", filterable: customAutoCompleteFilter },\r\n { template: \"\", title: \"\", width: 20, filterable: false }\r\n ];\r\n\r\n vm.availableRolesGridOptions = helperService.setMainGridOptions(availableRolesGridColumns, null);\r\n vm.availableRolesGridOptions.selectable = false;\r\n\r\n async function getProducts() {\r\n try {\r\n let response = await dataService.getProducts();\r\n vm.availableProducts = response.data;\r\n if (response.data.length === 1) autoSelectSingleProduct();\r\n } catch (error) {\r\n errorsDataService.catch(error);\r\n }\r\n }\r\n\r\n function autoSelectSingleProduct() {\r\n vm.selectedProduct = vm.availableProducts[0];\r\n productDropdownChanged();\r\n }\r\n\r\n function createAvailableRolesDataSource() {\r\n vm.availableRolesGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let response = await maintainSystemRolesDataService.getSystemRolesNonPaged();\r\n response.data = response.data.filter(role => role.ProductID === vm.selectedProduct.ID);\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n if (template.Roles && template.Roles.length > 0) {\r\n template.Roles.forEach(tr => {\r\n response.data.forEach(r => {\r\n if (tr.Identifier === r.Identifier && tr.ProductName === r.ProductName && tr.TypeId === r.TypeID) {\r\n response.data.remove(r);\r\n }\r\n });\r\n });\r\n }\r\n vm.availableRoles = response.data;\r\n options.success(vm.availableRoles);\r\n } catch (error) {\r\n options.error(error);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function productDropdownChanged() {\r\n if (vm.availableRolesGridDataSource) {\r\n vm.availableRolesGridDataSource.read();\r\n } else {\r\n createAvailableRolesDataSource();\r\n }\r\n }\r\n\r\n async function addRole(role) {\r\n vm.addingRole = true;\r\n\r\n let postData = {\r\n RoleTemplateId: template.Id,\r\n SecurityRoleIdentifier: role.Identifier,\r\n };\r\n\r\n try {\r\n await roleTemplatesData.addRole(template.Id, postData);\r\n let addedRole = {\r\n Identifier: role.Identifier,\r\n Name: role.Name,\r\n ProductName: role.ProductName,\r\n TypeId: role.TypeID\r\n };\r\n template.Roles.push(addedRole);\r\n template.Roles = $filter('orderBy')(template.Roles, 'Name');\r\n await removeRoleFromGrid(role);\r\n vm.addingRole = false;\r\n } catch (error) {\r\n vm.addingRole = false;\r\n return;\r\n }\r\n\r\n }\r\n\r\n function removeRoleFromGrid(role) {\r\n let addedRole = vm.availableRolesGridDataSource._data.find(r => r.ID === role.ID && r.ProductID === role.ProductID && r.TypeID === role.TypeID);\r\n vm.availableRolesGridDataSource._data.remove(addedRole);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n}","import roleModalController from \"../RoleModal/roleModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, roleTemplatesData) {\r\n\r\n const vm = this;\r\n\r\n vm.openRoleModal = openRoleModal;\r\n vm.deleteRole = deleteRole;\r\n\r\n async function deleteRole(role) {\r\n vm.deleteProcessing = true;\r\n try {\r\n await roleTemplatesData.deleteRole(vm.template.Id, role.Identifier);\r\n const removedRole = vm.template.Roles.findIndex(r => r.Identifier === role.Identifier);\r\n await vm.template.Roles.splice(removedRole, 1);\r\n vm.deleteProcessing = false;\r\n } catch {\r\n vm.deleteProcessing = false;\r\n }\r\n }\r\n\r\n async function openRoleModal() {\r\n $uibModal.open({\r\n templateUrl: '/App/Components/RoleTemplates/RoleModal/roleModal.html',\r\n controller: roleModalController,\r\n controllerAs: 'rmvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n template: () => vm.template\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import roleTemplateRolesListController from \"./roleTemplateRolesList.controller\";\r\n\r\n/* roleTemplateRolesList.component.js */\r\n\r\n/**\r\n * @desc component for displaying and selecting roles associated with a role template\r\n * @example \r\n */\r\n\r\nconst roleTemplateRolesList = {\r\n bindings: {\r\n template: '<'\r\n },\r\n controller: roleTemplateRolesListController,\r\n controllerAs: 'rtrlvm',\r\n templateUrl: '/App/Components/RoleTemplates/AssociatedRolesList/roleTemplateRolesList.tmpl.html'\r\n};\r\n\r\nexport default roleTemplateRolesList;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, roleTemplatesData) {\r\n\r\n const vm = this;\r\n vm.cancel = cancel;\r\n vm.dismiss = dismiss;\r\n vm.disableButton = false;\r\n vm.importRoleTemplates = importRoleTemplates;\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n function dismiss() { $uibModalInstance.dismiss(); }\r\n\r\n // Import Role Templates\r\n async function importRoleTemplates(file) {\r\n vm.importPending = new createSpinner();\r\n vm.disableButton = true;\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n try {\r\n await roleTemplatesData.importRoleTemplates(fd);\r\n await helperService.successfulSaveButton(vm.importPending);\r\n cancel();\r\n } catch {\r\n vm.importPending.loadingValue = false;\r\n vm.disableButton = false;\r\n }\r\n }\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, roleTemplatesData, helperService, roleTemplates, selectedTemplate) {\r\n\r\n const vm = this;\r\n\r\n vm.selectedTemplate = selectedTemplate;\r\n vm.cancel = cancel;\r\n vm.templateNamesMatch = templateNamesMatch;\r\n vm.submitForm = submitForm;\r\n\r\n if (selectedTemplate) {\r\n vm.selectedTemplate = selectedTemplate;\r\n vm.templateName = selectedTemplate.Name;\r\n }\r\n\r\n async function createRoleTemplate() {\r\n vm.loading = new createSpinner();\r\n let postData = { Name: vm.templateName };\r\n\r\n try {\r\n let response = await roleTemplatesData.createRoleTemplate(postData);\r\n let newTemplateId = response.data;\r\n await helperService.successfulSaveButton(vm.loading);\r\n vm.loading.loadingValue = false;\r\n $uibModalInstance.close(newTemplateId);\r\n } catch {\r\n vm.loading.loadingValue = false;\r\n }\r\n }\r\n\r\n function templateNamesMatch() {\r\n let match = roleTemplates.some(template => template.Name.toLowerCase() === vm.templateName.toLowerCase());\r\n if (match) {\r\n vm.roleTemplateForm.templateName.$setValidity('templateNameMatch', false);\r\n } else {\r\n vm.roleTemplateForm.templateName.$setValidity('templateNameMatch', true);\r\n }\r\n }\r\n\r\n async function renameRoleTemplate() {\r\n vm.loading = new createSpinner();\r\n\r\n let putData = {\r\n Name: vm.templateName,\r\n Id: vm.selectedTemplate.Id\r\n };\r\n\r\n try {\r\n await roleTemplatesData.renameRoleTemplate(putData.Id, putData);\r\n await helperService.successfulSaveButton(vm.loading);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.loading.loadingValue = false;\r\n }\r\n }\r\n\r\n function submitForm() {\r\n if (selectedTemplate) {\r\n renameRoleTemplate();\r\n\r\n } else {\r\n createRoleTemplate();\r\n }\r\n }\r\n\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import swal from \"sweetalert2\";\r\nimport createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport importRoleTemplatesController from \"../importRoleTemplates.controller\";\r\nimport roleTemplateModalController from \"../RoleTemplateModal/roleTemplateModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($filter, $uibModal, $scope, roleTemplatesData, helperService, FileSaver) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = () => getRoleTemplates();\r\n $scope.$on('ImportRoleTemplates', _ => getRoleTemplates());\r\n\r\n vm.openRoleTemplateModal = openRoleTemplateModal;\r\n vm.changeSelectedRoleTemplate = changeSelectedRoleTemplate;\r\n vm.openImportModal = openImportModal;\r\n vm.exportRoleTemplates = exportRoleTemplates;\r\n\r\n vm.menuOptions = [\r\n {\r\n text: 'Edit',\r\n click: item => {\r\n openRoleTemplateModal(vm.roleTemplates, item.template);\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: item => {\r\n deleteRoleTemplate(item.template);\r\n }\r\n }\r\n ];\r\n\r\n async function getRoleTemplates(preselectedId) {\r\n // get role templates on initialization, set vm.roleTemplates to response\r\n // move newly created template to the top of the list and select\r\n vm.roleTemplatesLoading = true;\r\n let response = await roleTemplatesData.getRoleTemplates();\r\n if (response.data.length > 0) {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n if (preselectedId) {\r\n let roleTemplate = response.data.find(t => t.Id === preselectedId);\r\n response.data = response.data.filter(t => t.Id !== preselectedId);\r\n response.data.unshift(roleTemplate);\r\n changeSelectedRoleTemplate(roleTemplate);\r\n }\r\n }\r\n vm.roleTemplates = response.data;\r\n vm.roleTemplatesLoading = false;\r\n }\r\n\r\n function changeSelectedRoleTemplate(template) {\r\n vm.template = template;\r\n }\r\n\r\n async function deleteRoleTemplate(template) {\r\n vm.deletePending = true;\r\n try {\r\n await swal(helperService.areYouSureParamsWithHTML('Delete Role Template',\r\n `
Are you sure you want to delete\r\n
${template.Name}?
\r\n
`, 'Yes', 'No'));\r\n await roleTemplatesData.deleteRoleTemplate(template.Id);\r\n if (vm.template && vm.template.Id === template.Id) {\r\n vm.template = null;\r\n }\r\n getRoleTemplates();\r\n vm.deletePending = false;\r\n } catch {\r\n vm.deletePending = false;\r\n }\r\n }\r\n\r\n async function openRoleTemplateModal(roleTemplates, selectedTemplate) {\r\n let roleTemplateModal = $uibModal.open({\r\n templateUrl: '/App/Components/RoleTemplates/RoleTemplateModal/roleTemplateModal.html',\r\n controller: roleTemplateModalController,\r\n controllerAs: 'rtmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n roleTemplates: () => roleTemplates,\r\n selectedTemplate: () => selectedTemplate\r\n }\r\n });\r\n\r\n try {\r\n let newTemplateId = await roleTemplateModal.result;\r\n getRoleTemplates(newTemplateId);\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function exportRoleTemplates() {\r\n vm.exportUpdatePending = new createSpinner();\r\n try {\r\n let response = await roleTemplatesData.exportRoleTemplates();\r\n helperService.successfulSaveButton(vm.exportUpdatePending);\r\n FileSaver.saveAs(response.data, 'RoleTemplates.xlsx');\r\n vm.exportUpdatePending.loadingValue = false;\r\n } catch {\r\n vm.exportUpdatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function openImportModal() {\r\n let importModal = $uibModal.open({\r\n templateUrl: '/App/Components/RoleTemplates/importRoleTemplates.html',\r\n controller: importRoleTemplatesController,\r\n controllerAs: 'irtvm',\r\n backdrop: 'static',\r\n });\r\n try {\r\n await importModal.result;\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n}\r\n","import roleTemplatesListController from \"./roleTemplatesList.controller\";\r\n\r\n/* roleTemplatesList.component.js */\r\n\r\n/**\r\n * @desc component for displaying and selecting role templates in a list\r\n * @example \r\n */\r\n\r\nconst roleTemplatesList = {\r\n bindings: {\r\n template: '='\r\n },\r\n controller: roleTemplatesListController,\r\n controllerAs: 'rtlvm',\r\n templateUrl: '/App/Components/RoleTemplates/RoleTemplatesList/roleTemplatesList.tmpl.html'\r\n};\r\n\r\nexport default roleTemplatesList;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\n\r\nexport default /*@ngInject*/ function (helperService, manageDataDataService, configurationDataService) {\r\n const vm = this;\r\n vm.helperService = helperService;\r\n vm.riskEligibleToggleChange = riskEligibleToggleChange;\r\n vm.submitIndirectAccessRiskEligible = submitIndirectAccessRiskEligible;\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n getConfiguration();\r\n }\r\n\r\n async function getConfiguration() {\r\n let { data } = await manageDataDataService.getConfigurationByProductId(vm.product.ID);\r\n\r\n vm.isEligible = data.find(config => config.Name === 'IndirectAccessRiskEligible').Value\r\n\r\n vm.riskEligible = vm.isEligible;\r\n }\r\n\r\n function riskEligibleToggleChange() {\r\n vm.disableSave = vm.isEligible === vm.riskEligible;\r\n }\r\n\r\n async function submitIndirectAccessRiskEligible() {\r\n let riskEligible = vm.riskEligible === '1';\r\n\r\n vm.updateRiskEligiblePending = new createSpinner();\r\n\r\n try {\r\n await configurationDataService.updateProductRiskEligibility(vm.product.Type, riskEligible);\r\n helperService.successfulSaveButton(vm.updateRiskEligiblePending);\r\n vm.disableSave = true;\r\n vm.isEligible = vm.riskEligible;\r\n }\r\n catch {\r\n vm.updateRiskEligiblePending.loadingValue = false;\r\n }\r\n\r\n }\r\n\r\n}","import riskEligibilityController from \"./riskEligibility.controller\";\r\n\r\n/* riskEligibility.component.js */\r\n\r\n/**\r\n * @desc component for configuring product risk eligibility in Identity Manager\r\n * @example \r\n */\r\n\r\nconst armProductRiskEligibility = {\r\n bindings: {\r\n product: '<'\r\n },\r\n controller: riskEligibilityController,\r\n controllerAs: 'revm',\r\n templateUrl: '/App/Components/Configuration/riskEligibility/riskEligibility.tmpl.html'\r\n};\r\n\r\nexport default armProductRiskEligibility;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (helperService, manageDataDataService) {\r\n const vm = this;\r\n\r\n vm.updateProductConfiguration = updateProductConfiguration;\r\n vm.configValueChange = configValueChange;\r\n vm.productConfig = {};\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n vm.productImageClass = helperService.setProductImageClass(vm.product.Type);\r\n await setProductConfiguration();\r\n vm.configValuesUnchanged = true;\r\n }\r\n\r\n async function setProductConfiguration() {\r\n let { data } = await manageDataDataService.getConfigurationByProductId(vm.product.ID);\r\n\r\n data.forEach(item => {\r\n vm.productConfig[item.Name] = item.Value;\r\n });\r\n\r\n vm.unchangedProductConfig = { ...vm.productConfig };\r\n }\r\n\r\n function configValueChange() {\r\n vm.configValuesUnchanged = angular.equals(vm.unchangedProductConfig, vm.productConfig);\r\n }\r\n\r\n async function updateProductConfiguration() {\r\n let putData = {\r\n \"Configurations\": [],\r\n \"ProductId\": vm.product.ID\r\n },\r\n configList = [{\r\n Name: \"SAP_S4CatalogValidation\",\r\n Encrypted: false\r\n }];\r\n\r\n vm.updatePending = new createSpinner();\r\n\r\n configList.forEach(item => {\r\n if (vm.productConfig[item.Name] !== vm.unchangedProductConfig[item.Name]) {\r\n putData.Configurations.push({\r\n \"Name\": item.Name,\r\n \"Value\": vm.productConfig[item.Name]\r\n });\r\n }\r\n });\r\n\r\n try {\r\n await manageDataDataService.setProductConfiguration(vm.product.ID, putData);\r\n vm.unchangedProductConfig = { ...vm.productConfig };\r\n configValueChange();\r\n await helperService.successfulSaveButton(vm.updatePending);\r\n } catch {\r\n vm.updatePending.loadingValue = false\r\n }\r\n }\r\n}","/* armProductConfiguration.component.js */\r\n\r\nimport armProductConfigurationController from \"./armProductConfiguration.controller\";\r\n\r\n/**\r\n * @desc component for configuring product specific settings for Access Control\r\n * @example \r\n */\r\n\r\nconst armProductConfiguration = {\r\n bindings: {\r\n product: '<',\r\n },\r\n controller: armProductConfigurationController,\r\n controllerAs: 'apcvm',\r\n templateUrl: '/App/Components/Configuration/armProductConfiguration/armProductConfiguration.tmpl.html'\r\n};\r\n\r\nexport default armProductConfiguration;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, maintainSystemUsersDataService, helperService, user, modalType) {\r\n\r\n const vm = this;\r\n\r\n vm.dismiss = $uibModalInstance.dismiss;\r\n vm.saveUser = saveUser;\r\n vm.modalType = modalType;\r\n vm.importUsers = importUsers;\r\n vm.user = { ...user };\r\n\r\n //Save User\r\n async function saveUser() {\r\n vm.saving = new createSpinner();\r\n const putData = {\r\n \"Department\": vm.user.Department,\r\n \"BusinessUnit\": vm.user.BusinessUnit,\r\n \"Location\": vm.user.Location,\r\n \"JobTitle\": vm.user.JobTitle\r\n }\r\n\r\n try {\r\n await maintainSystemUsersDataService.updateUserIdentity(vm.user.ID, putData);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n\r\n // Import User\r\n async function importUsers(file) {\r\n vm.saving = new createSpinner();\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n try {\r\n await maintainSystemUsersDataService.importSystemUsers(fd);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close();\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n }\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, userRestrictionsDataService, maintainSystemUsersDataService, $filter, user) {\r\n\r\n const vm = this;\r\n\r\n vm.user = user;\r\n vm.selectUser = selectUser;\r\n vm.createUserMap = createUserMap;\r\n vm.deleteUserMap = deleteUserMap;\r\n vm.dismiss = $uibModalInstance.close;\r\n\r\n configureGrid();\r\n\r\n function configureGrid() {\r\n\r\n let gridColumns = [\r\n { field: \"UserLogonName\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Email\", title: \"Email\", filterable: customAutoCompleteFilter },\r\n { template: ``, title: \"\", width: 25, filterable: false }\r\n ];\r\n\r\n vm.gridOptions = helperService.setMainGridOptions(gridColumns, 300);\r\n\r\n vm.gridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let { data } = await userRestrictionsDataService.getFastpathUsers();\r\n if (!user.FpUserName) {\r\n vm.suggestion = data.find(u => u.Email === user.Email);\r\n }\r\n data = $filter('orderBy')(data, 'UserLogonName');\r\n options.success(data);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function selectUser(user) { vm.selectedUser = user; }\r\n\r\n async function createUserMap(dataItem) {\r\n kendo.ui.progress(vm.systemUsersGrid.element, true);\r\n vm.fastpathUser = dataItem;\r\n let map = {};\r\n\r\n map.FpUserId = vm.fastpathUser.UserID;\r\n map.UserMasterId = user.ID;\r\n\r\n try {\r\n await maintainSystemUsersDataService.createUserMap(map);\r\n kendo.ui.progress(vm.systemUsersGrid.element, false);\r\n // Bind to parent list item immediately to reflect modal change\r\n user.FpUserName = vm.fastpathUser.UserLogonName;\r\n user.FpUserId = vm.fastpathUser.UserID;\r\n } catch {\r\n kendo.ui.progress(vm.systemUsersGrid.element, false);\r\n }\r\n\r\n }\r\n\r\n async function deleteUserMap() {\r\n vm.deleting = new createSpinner();\r\n try {\r\n await maintainSystemUsersDataService.deleteUserMap(vm.user.FpUserId, vm.user.ID);\r\n vm.deleting.loadingValue = false;\r\n // Bind to parent list item immediately to reflect modal change\r\n user.FpUserName = null;\r\n user.FpUserId = null;\r\n } catch {\r\n vm.deleting.loadingValue = false;\r\n }\r\n\r\n }\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport editImportUserModalController from \"./editImportUsersModal/editImportUserModal.controller\";\r\nimport systemUserMappingModalController from \"./systemUserMappingModal/systemUserMappingModal.controller\";\r\n\r\nexport default /*@ngInject*/ function (maintainSystemUsersDataService, helperService, $uibModal, $filter, $scope, FileSaver) {\r\n\r\n const vm = this;\r\n\r\n vm.openEditImportModal = openEditImportModal;\r\n vm.openSystemUserMappingModal = openSystemUserMappingModal;\r\n vm.exportSystemUsers = exportSystemUsers;\r\n vm.generateAssignments = generateAssignments;\r\n\r\n $scope.$on('AutoMapFastpathToSystemUsers', (event, args) => vm.systemUsersGridDataSource.read());\r\n\r\n configureSystemUsersGrid();\r\n\r\n async function configureSystemUsersGrid() {\r\n const systemUsersGridColumns = [\r\n { field: \"Name\", title: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Email\", title: \"Email\", filterable: customAutoCompleteFilter },\r\n { field: \"Department\", title: \"Department\", filterable: customAutoCompleteFilter },\r\n { field: \"JobTitle\", title: \"Job Title\", filterable: customAutoCompleteFilter },\r\n { field: \"Location\", title: \"Location\", filterable: customAutoCompleteFilter },\r\n { field: \"BusinessUnit\", title: \"Business Unit\", filterable: customAutoCompleteFilter },\r\n { field: \"PrimarySystemUserId\", title: \"Primary System User ID\", filterable: customAutoCompleteFilter },\r\n { field: \"PrimarySystemProduct\", title: \"Primary System Product\", filterable: customAutoCompleteFilter },\r\n { template: `Edit`, \"title\": \"Edit\", width: 90 },\r\n { field: \"FpUserMappingStatus\", title: \"Mapping Status\", filterable: customAutoCompleteFilter },\r\n { field: \"FpUserName\", title: \"Mapped to\", filterable: customAutoCompleteFilter },\r\n { template: `System User Mapping`, \"title\": \"System User Mapping\", width: 150 }\r\n ];\r\n\r\n vm.systemUsersGridOptions = helperService.setMainGridOptions(systemUsersGridColumns, 600);\r\n vm.systemUsersGridOptions.autoBind = false;\r\n\r\n vm.systemUsersGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n transport: {\r\n read: async options => {\r\n try {\r\n let { data } = await maintainSystemUsersDataService.getMasterUsers();\r\n data = $filter('orderBy')(data, 'Name');\r\n options.success(data);\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n\r\n await vm.systemUsersGridDataSource.read();\r\n }\r\n\r\n async function openEditImportModal(user, modalType) {\r\n\r\n const editImportModal = $uibModal.open({\r\n templateUrl: '/App/Components/maintainSystemUsers/editImportUsersModal/editImportUsersModal.tmpl.html',\r\n controller: editImportUserModalController,\r\n controllerAs: 'eiumvm',\r\n backdrop: 'static',\r\n resolve: {\r\n user: () => user,\r\n modalType: () => modalType\r\n }\r\n });\r\n try {\r\n await editImportModal.result;\r\n vm.systemUsersGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function openSystemUserMappingModal(user) {\r\n\r\n const mappingModal = $uibModal.open({\r\n templateUrl: '/App/Components/maintainSystemUsers/systemUserMappingModal/systemUserMappingModal.html',\r\n controller: systemUserMappingModalController,\r\n controllerAs: 'summvm',\r\n backdrop: 'static',\r\n size: 'lg',\r\n resolve: {\r\n user: () => user\r\n }\r\n });\r\n try {\r\n await mappingModal.result;\r\n vm.systemUsersGridDataSource.read();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function exportSystemUsers() {\r\n vm.exportUpdatePending = new createSpinner();\r\n try {\r\n let { data } = await maintainSystemUsersDataService.exportSystemUsers();\r\n await helperService.successfulSaveButton(vm.exportUpdatePending);\r\n FileSaver.saveAs(data, 'UserIdentities.xlsx');\r\n } catch {\r\n vm.exportUpdatePending.loadingValue = false;\r\n }\r\n }\r\n\r\n async function generateAssignments() {\r\n vm.generatingAssignments = true;\r\n await maintainSystemUsersDataService.generateAssignments();\r\n vm.generatingAssignments = false;\r\n }\r\n}","/* maintainSystemUsersGrid.component.js */\r\n\r\nimport maintainSystemUsersGridController from \"./maintainSystemUsersGrid.controller\";\r\n\r\n/**\r\n * @desc component to display grid to view, import and export System Users\r\n * @example \r\n */\r\n\r\nconst maintainSystemUsersGrid = {\r\n controller: maintainSystemUsersGridController,\r\n controllerAs: 'msugvm',\r\n template: `
\r\n
\r\n
\r\n
\r\n
\r\n
System Users
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
`\r\n};\r\n\r\nexport default maintainSystemUsersGrid;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\nimport { configurationOptions } from \"../configOptions\";\r\n\r\nexport default /*@ngInject*/ function (helperService, $filter, manageDataDataService, supervisorAssignmentsDataService) {\r\n const vm = this;\r\n\r\n vm.updateProductConfiguration = updateProductConfiguration;\r\n vm.productConfigValueChange = productConfigValueChange;\r\n vm.updatedProducts = [];\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n vm.unChangedAutoMapConfig = { ...vm.autoMapConfig };\r\n vm.products = await getNewProductProps(vm.products);\r\n vm.propsLoading = false;\r\n }\r\n\r\n function getNewProductProps(products) {\r\n vm.propsLoading = true;\r\n const promises = products.map(async product => {\r\n return {\r\n ...product,\r\n systemFields: await getSystemFields(product),\r\n logo: helperService.setProductImageClass(product.Type),\r\n configuration: await getProductConfiguration(product),\r\n unChangedConfiguration: await getProductConfiguration(product),\r\n configValuesUnchanged: true\r\n }\r\n });\r\n return Promise.all(promises);\r\n }\r\n\r\n async function getSystemFields(product) {\r\n const { data: universalFields } = await supervisorAssignmentsDataService.getUniversalMappingFields(),\r\n { data: productSpecificFields } = await supervisorAssignmentsDataService.getProductMappingFields(product.Type);\r\n\r\n return $filter('orderBy')(universalFields.concat(productSpecificFields), 'DisplayName');\r\n }\r\n\r\n async function getProductConfiguration(product) {\r\n const configuration = {},\r\n { data } = await manageDataDataService.getConfigurationByProductId(product.ID);\r\n\r\n data.forEach(item => {\r\n configuration[item.Name] = item.Value;\r\n });\r\n\r\n return configuration;\r\n }\r\n\r\n function productConfigValueChange(product) {\r\n product.configValuesUnchanged = angular.equals(product.unChangedConfiguration, product.configuration);\r\n vm.updatedProducts = vm.products.filter(app => !app.configValuesUnchanged);\r\n }\r\n\r\n async function updateProductConfiguration() {\r\n vm.updatePending = new createSpinner();\r\n\r\n if (vm.unChangedAutoMapConfig[0] !== vm.autoMapConfig) {\r\n await helperService.setConfigurationValue('AutoMapCrossPlatformUsersAfterImport', vm.autoMapConfig);\r\n }\r\n\r\n vm.updatedProducts.forEach(async product => {\r\n let putData = {\r\n \"Configurations\": [],\r\n \"ProductId\": product.ID\r\n };\r\n\r\n if (product.configuration.AutoMappingSystemFieldId !== product.unChangedConfiguration.AutoMappingSystemFieldId) {\r\n putData.Configurations.push({\r\n \"Name\": 'AutoMappingSystemFieldId',\r\n \"Value\": product.configuration.AutoMappingSystemFieldId\r\n });\r\n }\r\n await manageDataDataService.setProductConfiguration(product.ID, putData);\r\n product.unChangedConfiguration = { ...product.configuration };\r\n productConfigValueChange(product);\r\n });\r\n\r\n await helperService.successfulSaveButton(vm.updatePending);\r\n vm.xplatConfigForm.$setPristine();\r\n }\r\n}","/* systemConfigProductConfiguration.component.js */\r\n\r\nimport systemConfigProductConfigurationController from \"./systemConfigProductConfiguration.controller\";\r\n\r\n/**\r\n * @desc component for configuring product specific settings for System Configuration\r\n * @example \r\n */\r\n\r\nconst systemConfigProductConfiguration = {\r\n bindings: {\r\n products: '<',\r\n autoMapConfig: '<'\r\n },\r\n controller: systemConfigProductConfigurationController,\r\n controllerAs: 'scpcvm',\r\n templateUrl: '/App/Components/Configuration/systemConfigProductConfiguration/systemConfigProductConfiguration.tmpl.html'\r\n};\r\n\r\nexport default systemConfigProductConfiguration;","/* userFieldMappings.component.js */\r\n\r\n/**\r\n * @desc component for viewing, creating, editing, and removing mappings for auto generation of Cross Platform Users\r\n * @example \r\n */\r\n\r\nconst userFieldMappings = {\r\n controller: userFieldMappingsController,\r\n controllerAs: 'ufmvm',\r\n template: `
\r\n
\r\n
\r\n
\r\n User Field Mappings\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Fastpath Primary System

\r\n
\r\n
\r\n
\r\n

{{ufmvm.primarySystemProductName}}

\r\n
\r\n
\r\n
\r\n
\r\n

System User Mappings

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Enable Auto Map Cross Platform Users After Import to view and edit Product System User Mapping fields\r\n
\r\n
\r\n
\r\n
`\r\n};\r\n\r\n/*@ngInject*/ function userFieldMappingsController(crossPlatformUsersDataService, helperService, dataService) {\r\n\r\n const vm = this;\r\n\r\n vm.generateAssignments = generateAssignments;\r\n vm.helperService = helperService;\r\n\r\n vm.$onInit = activate;\r\n\r\n async function activate() {\r\n vm.primarySystem = await helperService.getConfigurationValue('PrimarySystem');\r\n vm.autoMapXplatEnabled = await helperService.getConfigurationValue('AutoMapCrossPlatformUsersAfterImport');\r\n getProducts();\r\n }\r\n\r\n async function generateAssignments() {\r\n vm.generatingAssignments = true;\r\n await crossPlatformUsersDataService.generateCrossPlatformAutoMapping();\r\n vm.generatingAssignments = false;\r\n }\r\n\r\n async function getProducts() {\r\n let { data } = await dataService.getProducts();\r\n vm.productsDataSource = data;\r\n vm.primarySystemProductName = vm.productsDataSource.find(product => product.Type === vm.primarySystem).Name;\r\n }\r\n}\r\n\r\nexport default userFieldMappings;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (manageDataDataService, helperService, $uibModalInstance, systemFields, product, selectedFieldId) {\r\n\r\n const vm = this;\r\n\r\n vm.cancel = cancel;\r\n vm.configValueChange = configValueChange;\r\n vm.updateProductConfiguration = updateProductConfiguration;\r\n\r\n vm.systemFields = systemFields;\r\n vm.selectedFieldId = selectedFieldId;\r\n vm.originalFieldId = selectedFieldId;\r\n vm.product = product;\r\n\r\n function configValueChange() {\r\n vm.valueChanged = vm.originalFieldId !== vm.selectedFieldId;\r\n }\r\n\r\n async function updateProductConfiguration() {\r\n let putData = {\r\n Configurations: [{\r\n Name: 'AutoMappingSystemFieldId',\r\n Value: vm.selectedFieldId\r\n }],\r\n ProductId: vm.product.ID\r\n }\r\n\r\n vm.updatePending = new createSpinner();\r\n\r\n try {\r\n await manageDataDataService.setProductConfiguration(vm.product.ID, putData);\r\n configValueChange();\r\n await helperService.successfulSaveButton(vm.updatePending);\r\n close(vm.selectedFieldId);\r\n } catch {\r\n vm.updatePending.loadingValue = false\r\n }\r\n }\r\n\r\n function close(fieldId) {\r\n $uibModalInstance.close(fieldId);\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","/* systemUserProductMappings.component.js */\r\n\r\nimport editSystemUserMappingModalController from \"./editSystemUserMappingModal.controller\";\r\n\r\n/**\r\n * @desc component for viewing, creating, editing, and removing mappings for auto generation of Cross Platform Users\r\n * @example \r\n */\r\n\r\nconst systemUserProductMappings = {\r\n controller: systemUserProductMappingsController,\r\n controllerAs: 'supmvm',\r\n bindings: {\r\n product: '<'\r\n },\r\n template: `
\r\n \r\n
\r\n
\r\n
\r\n

{{ supmvm.product.Name }}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n

System User Mapping Field:

\r\n

{{supmvm.selectedField ? supmvm.selectedField.DisplayName : 'No System Mapping Field'}}

\r\n
\r\n
\r\n
\r\n
`\r\n};\r\n\r\n/*@ngInject*/ function systemUserProductMappingsController(supervisorAssignmentsDataService, manageDataDataService, helperService, $filter, $uibModal) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = activate;\r\n\r\n vm.openEditMappingModal = openEditMappingModal;\r\n\r\n async function activate() {\r\n vm.selectedFieldId = await getSelectedFieldId('AutoMappingSystemFieldId');\r\n await setSystemFields();\r\n vm.productImageClass = helperService.setProductImageClass(vm.product.Type);\r\n }\r\n\r\n async function getSelectedFieldId(name) {\r\n let { data } = await manageDataDataService.getConfigurationByProductId(vm.product.ID);\r\n return data.find(item => item.Name === name)?.Value;\r\n }\r\n\r\n async function setSystemFields() {\r\n const { data: universalFields } = await supervisorAssignmentsDataService.getUniversalMappingFields(),\r\n { data: productSpecificFields } = await supervisorAssignmentsDataService.getProductMappingFields(vm.product.Type);\r\n\r\n vm.systemFields = universalFields.concat(productSpecificFields);\r\n vm.systemFields = $filter('orderBy')(vm.systemFields, 'DisplayName');\r\n\r\n vm.selectedField = vm.systemFields.find(fieldId => fieldId.Id === vm.selectedFieldId);\r\n }\r\n\r\n async function openEditMappingModal() {\r\n let mappingModal = $uibModal.open({\r\n templateUrl: '/App/Components/CrossPlatformUsers/userFieldMappings/editSystemUserMappingModal.tmpl.html',\r\n controller: editSystemUserMappingModalController,\r\n controllerAs: 'esummvm',\r\n backdrop: 'static',\r\n resolve: {\r\n product: () => vm.product,\r\n systemFields: () => vm.systemFields,\r\n selectedFieldId: () => vm.selectedFieldId\r\n }\r\n });\r\n\r\n try {\r\n vm.selectedFieldId = await mappingModal.result;\r\n vm.selectedField = vm.systemFields.find(fieldId => fieldId.Id === vm.selectedFieldId);\r\n } catch {}\r\n }\r\n\r\n}\r\n\r\nexport default systemUserProductMappings;","import angular from 'angular';\r\n\r\n// module imports\r\nimport ownershipGroupsModule from './ownershipGroups.module';\r\nimport requesterGroupsModule from './requesterGroups.module';\r\nimport supervisorAssignmentsModule from './supervisorAssignments.module';\r\nimport systemConfigurationFactoriesModule from './systemConfiguration.factories.module';\r\nimport systemConfigurationSetupModule from './systemConfiguration.setup.module';\r\nimport userRestrictionsModule from './userRestrictions.module';\r\n\r\n// controller / component imports\r\nimport approvalGroups from '../Components/ApprovalGroups/approvalGroups.component';\r\nimport companyMapping from '../Components/CompanyMapping/companyMapping.component';\r\nimport companyTemplateCompaniesList from '../Components/CompanyTemplates/AssociatedCompaniesList/companyTemplateCompaniesList.component';\r\nimport companyTemplates from '../Components/CompanyTemplates/companyTemplates.component';\r\nimport companyTemplatesList from '../Components/CompanyTemplates/CompanyTemplatesList/companyTemplatesList.component';\r\nimport configuration from '../Components/configuration/configuration.component';\r\nimport reportManagement from '../Components/configuration/reportManagement/reportManagement.component';\r\nimport identityManagerCuaConnectionConfiguration from '../Components/configuration/identityManagerConfigTab/CuaConnectionConfiguration/cuaConnectionConfiguration.component';\r\nimport identityManagerConfigTab from '../Components/Configuration/identityManagerConfigTab/identityManagerConfigTab.component';\r\nimport identityManagerProductConfiguration from '../Components/configuration/identityManagerConfigTab/productConfiguration/productConfiguration.component';\r\nimport identityManagerProductProvisioning from '../Components/configuration/identityManagerConfigTab/ProductProvisioning/productProvisioning.component';\r\nimport crossPlatformUsers from '../Components/CrossPlatformUsers/crossPlatformUsers.component';\r\nimport maintainSystemRoles from '../Components/maintainSystemRoles/maintainSystemRoles.component';\r\nimport notifications from '../Components/Notifications/notifications.component';\r\nimport notificationTypesList from '../Components/Notifications/NotificationTypesList/notificationTypesList.component';\r\nimport roleTemplateRolesList from '../Components/RoleTemplates/AssociatedRolesList/roleTemplateRolesList.component';\r\nimport roleTemplates from '../Components/RoleTemplates/roleTemplates.component';\r\nimport roleTemplatesList from '../Components/RoleTemplates/RoleTemplatesList/roleTemplatesList.component';\r\nimport armProductRiskEligibility from '../Components/Configuration/riskEligibility/riskEligibility.component';\r\nimport armProductConfiguration from '../Components/Configuration/armProductConfiguration/armProductConfiguration.component';\r\nimport maintainSystemUsers from '../Components/maintainSystemUsers/maintainSystemUsers.component';\r\nimport maintainSystemUsersGrid from '../Components/maintainSystemUsers/maintainSystemUsersGrid.component';\r\nimport systemConfigProductConfiguration from '../Components/configuration/systemConfigProductConfiguration/systemConfigProductConfiguration.component';\r\nimport userFieldMappings from '../Components/CrossPlatformUsers/userFieldMappings/userFieldMappings.component';\r\nimport systemUserProductMappings from '../Components/CrossPlatformUsers/userFieldMappings/systemUserProductMappings.component';\r\n\r\n\r\nexport default angular\r\n .module('app.systemConfiguration', [ownershipGroupsModule, requesterGroupsModule, supervisorAssignmentsModule, userRestrictionsModule, systemConfigurationFactoriesModule, systemConfigurationSetupModule])\r\n .component('approvalGroups', approvalGroups)\r\n .component('companyTemplates', companyTemplates)\r\n .component('companyTemplatesList', companyTemplatesList)\r\n .component('companyTemplateCompaniesList', companyTemplateCompaniesList)\r\n .component('companyMapping', companyMapping) /*NEEDS RENAMED*/\r\n .component(\"crossPlatformUsers\", crossPlatformUsers)\r\n .component(\"maintainSystemRoles\", maintainSystemRoles)\r\n .component('notifications', notifications)\r\n .component('notificationTypesList', notificationTypesList)\r\n .component('roleTemplates', roleTemplates)\r\n .component('roleTemplatesList', roleTemplatesList)\r\n .component('roleTemplateRolesList', roleTemplateRolesList)\r\n .component(\"configuration\", configuration)\r\n .component('reportManagement', reportManagement)\r\n .component('identityManagerConfigTab', identityManagerConfigTab)\r\n .component('identityManagerProductConfiguration', identityManagerProductConfiguration)\r\n .component('identityManagerProductProvisioning', identityManagerProductProvisioning)\r\n .component('identityManagerCuaConnectionConfiguration', identityManagerCuaConnectionConfiguration)\r\n .component('armProductRiskEligibility', armProductRiskEligibility)\r\n .component('armProductConfiguration', armProductConfiguration)\r\n .component('maintainSystemUsers', maintainSystemUsers)\r\n .component('maintainSystemUsersGrid', maintainSystemUsersGrid)\r\n .component('systemConfigProductConfiguration', systemConfigProductConfiguration)\r\n .component('userFieldMappings', userFieldMappings)\r\n .component('systemUserProductMappings', systemUserProductMappings)\r\n .name;","import companyTemplatesController from \"./companyTemplates.controller\";\r\n\r\nvar companyTemplates = {\r\n bindings: {\r\n template: '<'\r\n },\r\n controller: companyTemplatesController,\r\n controllerAs: 'ctvm',\r\n templateUrl: '/App/Components/CompanyTemplates/companyTemplates.tmpl.html'\r\n};\r\n\r\nexport default companyTemplates;","export default function () {\r\n const vm = this;\r\n vm.selectedTemplateChanged = selectedTemplateChanged;\r\n\r\n function selectedTemplateChanged(template) {\r\n vm.template = template;\r\n }\r\n}","import roleTemplatesController from \"./roleTemplates.controller\";\r\n\r\n/* roleTemplates.component.js */\r\n\r\n/**\r\n * @desc component for displaying role template associated components and modals\r\n * @example \r\n */\r\n\r\nvar roleTemplates = {\r\n bindings: {\r\n template: '='\r\n },\r\n controller: roleTemplatesController,\r\n controllerAs: 'rtvm',\r\n templateUrl: '/App/Components/RoleTemplates/roleTemplates.tmpl.html'\r\n};\r\n\r\nexport default roleTemplates;","export default /*@ngInject*/ function () {\r\n const vm = this;\r\n vm.template;\r\n}","/* maintainSystemUsers.component.js */\r\n\r\n/**\r\n * @desc component to display Maintain System Users place\r\n * @example \r\n */\r\n\r\nconst maintainSystemUsers = {\r\n template: `\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
`\r\n};\r\n\r\nexport default maintainSystemUsers;","export default /*@ngInject*/ function ($http, helperService, configurationDataService, connectionsDataService) {\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.supportedPlugins = [];\r\n vm.disabledPlugins = [];\r\n vm.config = {};\r\n vm.origConfig = {};\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await setPlugins();\r\n await setConfig();\r\n await setHybridConnections;\r\n }\r\n\r\n async function setPlugins() {\r\n const { data } = await $http.get(apiUrl + 'api/core/plugins');\r\n\r\n data.forEach(row => {\r\n vm.supportedPlugins.push(row);\r\n });\r\n\r\n vm.disabledPlugins = data.filter(plugin => !plugin.Active);\r\n }\r\n\r\n async function setConfig() {\r\n const { data } = await configurationDataService.getConfigurationValues();\r\n var config = {};\r\n\r\n data.forEach(function (row) {\r\n config[row.Name] = row.Value;\r\n });\r\n\r\n //Hard-code encrypted\r\n config['JIRA_Password'] = 'password';\r\n config['ZDK_Token'] = 'password';\r\n config['AAD_ClientSecret'] = 'password';\r\n config['SNOW_Password'] = 'password';\r\n config['WORKIVA_ClientSecret'] = 'password';\r\n config['FRESHSERVICE_Password'] = 'password';\r\n config['AUDITBOARD_Password'] = 'password';\r\n config['ALA_ClientSecret'] = 'password';\r\n vm.config = JSON.parse(JSON.stringify(config));\r\n vm.origConfig = JSON.parse(JSON.stringify(config));\r\n }\r\n\r\n async function setHybridConnections() {\r\n const { data } = await connectionsDataService.getHybridConnections();\r\n\r\n vm.hybridConnectionsArray = data;\r\n }\r\n}","import controller from \"./plugins.controller\";\r\n\r\n/* plugins.component.js */\r\n\r\n/**\r\n * @desc component for plugins\r\n * @example \r\n */\r\n\r\nconst plugins = {\r\n controller: controller,\r\n controllerAs: 'pvm',\r\n templateUrl: '/App/Components/Plugins/plugins.tmpl.html'\r\n};\r\n\r\nexport default plugins;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, helperService, configurationDataService) {\r\n var vm = this;\r\n\r\n vm.submit = submit;\r\n vm.configValuesHaveChanged = configValuesHaveChanged;\r\n vm.updateConfigurationSetting = updateConfigurationSetting;\r\n\r\n vm.$onInit = activate;\r\n\r\n function activate() {\r\n vm.plugin = Object.merge(vm.plugin, getPlugin(vm.plugin.Name));\r\n }\r\n\r\n function submit() {\r\n updateConfigurationSetting(vm.plugin.configOptions, vm.config, vm.origConfig);\r\n };\r\n\r\n function configValuesHaveChanged() {\r\n return helperService.returnTrueIfValuesDiffer(vm.plugin.configOptions.map(item => item.Name), vm.origConfig, vm.config);\r\n };\r\n\r\n async function updateConfigurationSetting(configOptions, value, origVal) {\r\n let putData = {\r\n \"Configurations\": []\r\n };\r\n\r\n configOptions.forEach(item => {\r\n if (item.Encrypted === true) {\r\n if (value[item.Name] != \"password\") {\r\n putData.Configurations.push({\r\n \"Name\": item.Name,\r\n \"Value\": value[item.Name]\r\n });\r\n }\r\n } else {\r\n if (value[item.Name] != origVal[item.Name]) {\r\n putData.Configurations.push({\r\n \"Name\": item.Name,\r\n \"Value\": value[item.Name]\r\n });\r\n }\r\n }\r\n });\r\n\r\n vm.updatePending = new createSpinner();\r\n\r\n try {\r\n await configurationDataService.updateConfigurationValues(putData);\r\n\r\n putData.Configurations.forEach(function (config) {\r\n origVal[config.Name] = config.Value;\r\n });\r\n\r\n helperService.successfulSaveButton(vm.updatePending);\r\n\r\n $rootScope.reloadConfigurationValues();\r\n } catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n };\r\n}\r\n\r\nfunction getPlugin(name) {\r\n const plugins = [{\r\n name: \"Active Directory\",\r\n key: \"AD\",\r\n logoClass: \"active-directory-avatar-logo\",\r\n configOptions: [\r\n { Name: \"AD_HostName\", Encrypted: false },\r\n { Name: \"AD_Active\", Encrypted: false },\r\n { Name: \"AD_Port\", Encrypted: false }\r\n ]\r\n }, {\r\n name: \"AuditBoard\",\r\n key: \"AUDITBOARD\",\r\n logoClass: \"auditboard-avatar-logo\",\r\n configOptions: [\r\n { Name: \"AUDITBOARD_Url\", Encrypted: false },\r\n { Name: \"AUDITBOARD_Password\", Encrypted: false },\r\n { Name: \"AUDITBOARD_Active\", Encrypted: false }\r\n ]\r\n }, {\r\n name: \"Entra ID\",\r\n key: \"AAD\",\r\n logoClass: \"azure-active-directory-avatar-logo\",\r\n configOptions: [\r\n { Name: \"AAD_ClientId\", Encrypted: false },\r\n { Name: \"AAD_ClientSecret\", Encrypted: true },\r\n { Name: \"AAD_TenantId\", Encrypted: false },\r\n { Name: \"AAD_Active\", Encrypted: false }\r\n ]\r\n }, {\r\n name: \"Azure Log Analytics\",\r\n key: \"ALA\",\r\n logoClass: \"ala-avatar-logo\",\r\n configOptions: [\r\n { Name: \"ALA_ClientId\", Encrypted: false },\r\n { Name: \"ALA_ClientSecret\", Encrypted: true },\r\n { Name: \"ALA_TenantId\", Encrypted: false },\r\n { Name: \"ALA_Active\", Encrypted: false }\r\n ]\r\n }, {\r\n name: \"Freshservice\",\r\n key: \"FRESHSERVICE\",\r\n logoClass: \"freshservice-avatar-logo\",\r\n configOptions: [\r\n { Name: \"FRESHSERVICE_Email\", Encrypted: false },\r\n { Name: \"FRESHSERVICE_Url\", Encrypted: false },\r\n { Name: \"FRESHSERVICE_Active\", Encrypted: false },\r\n { Name: \"FRESHSERVICE_Password\", Encrypted: true }\r\n ]\r\n }, {\r\n name: \"Jira\",\r\n key: \"JIRA\",\r\n logoClass: \"jira-avatar-logo\",\r\n configOptions: [\r\n { Name: \"JIRA_Email\", Encrypted: false },\r\n { Name: \"JIRA_Url\", Encrypted: false },\r\n { Name: \"JIRA_Active\", Encrypted: false },\r\n { Name: \"JIRA_Password\", Encrypted: true }\r\n ]\r\n }, {\r\n name: \"ServiceNow\",\r\n key: \"SNOW\",\r\n logoClass: \"service-now-avatar-logo\",\r\n configOptions: [\r\n { Name: \"SNOW_User\", Encrypted: false },\r\n { Name: \"SNOW_Url\", Encrypted: false },\r\n { Name: \"SNOW_Active\", Encrypted: false },\r\n { Name: \"SNOW_Password\", Encrypted: true }\r\n ]\r\n }, {\r\n name: \"Workiva\",\r\n logoClass: \"workiva-avatar-logo\",\r\n key: \"WORKIVA\",\r\n configOptions: [\r\n { Name: \"WORKIVA_AccountId\", Encrypted: false },\r\n { Name: \"WORKIVA_Active\", Encrypted: false },\r\n { Name: \"WORKIVA_ClientId\", Encrypted: false },\r\n { Name: \"WORKIVA_ClientSecret\", Encrypted: false },\r\n { Name: \"WORKIVA_ControlsReportId\", Encrypted: false },\r\n { Name: \"WORKIVA_BaseUrl\", Encrypted: false }\r\n ]\r\n }, {\r\n name: \"Zendesk\",\r\n key: \"ZDK\",\r\n logoClass: \"zendesk-avatar-logo\",\r\n configOptions: [\r\n { Name: \"ZDK_Email\", Encrypted: false },\r\n { Name: \"ZDK_Url\", Encrypted: false },\r\n { Name: \"ZDK_Active\", Encrypted: false },\r\n { Name: \"ZDK_Token\", Encrypted: true }\r\n ]\r\n }];\r\n\r\n return plugins.find(item => item.name === name);\r\n}\r\n","import controller from \"./plugin.controller\";\r\n\r\n/* plugin.component.js */\r\n\r\n/**\r\n * @desc component for a plugin\r\n * @example \r\n */\r\n\r\nconst plugin = {\r\n bindings: {\r\n plugin: '<',\r\n config: '<',\r\n origConfig: '<',\r\n radioSelected: '<',\r\n updatePending: '<'\r\n },\r\n controller: controller,\r\n controllerAs: 'pvm',\r\n templateUrl: '/App/Components/Plugins/plugin/plugin.tmpl.html'\r\n};\r\n\r\nexport default plugin;","import angular from 'angular';\r\nimport plugins from '../Components/Plugins/plugins.component';\r\nimport plugin from '../Components/Plugins/plugin/plugin.component';\r\n\r\nexport default angular\r\n .module('app.integrations.plugins', [])\r\n .component(\"plugins\", plugins)\r\n .component(\"plugin\", plugin)\r\n .name;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($http, $uibModalInstance, apiClient, apiClientDataService, helperService, dataService) {\r\n const vm = this;\r\n\r\n vm.$onInit = init;\r\n\r\n vm.availableRolesDataSource = [];\r\n vm.createApiClient = createApiClient;\r\n vm.cancel = cancel;\r\n vm.savingApiClient = false;\r\n vm.apiClientFormSubmit = apiClientFormSubmit;\r\n\r\n vm.apiClient = Object.assign({}, apiClient);\r\n vm.apiClient.Active = vm.apiClient.Active !== undefined ? vm.apiClient.Active : true;\r\n\r\n async function init() {\r\n\r\n let response;\r\n vm.rolesDropdownLoading = true;\r\n\r\n try {\r\n response = await dataService.getRoles();\r\n vm.availableRolesDataSource = response.data;\r\n\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n vm.rolesDropdownLoading = false;\r\n }\r\n\r\n function apiClientFormSubmit() {\r\n vm.disableSubmit = true;\r\n if (vm.apiClient.AdmUserId) {\r\n updateApiClient();\r\n } else {\r\n createApiClient();\r\n }\r\n }\r\n\r\n async function createApiClient() {\r\n vm.savingApiClient = new createSpinner();\r\n\r\n try {\r\n const roleIds = [];\r\n if (vm.apiClient.Roles && vm.apiClient.Roles.length > 0) {\r\n for (var i = 0; i < vm.apiClient.Roles.length; i++) {\r\n roleIds.push(vm.apiClient.Roles[i].ID);\r\n }\r\n }\r\n\r\n const payload = {\r\n \"Name\": vm.apiClient.Name,\r\n \"ActivateUponCreation\": vm.apiClient.Active,\r\n \"RoleIds\": roleIds\r\n };\r\n\r\n let response = await apiClientDataService.createApiClient(payload);\r\n\r\n await helperService.successfulSaveButton(vm.savingApiClient);\r\n vm.disableSubmit = false;\r\n close(response.data);\r\n } catch (_) {\r\n vm.savingApiClient.loadingValue = false;\r\n vm.disableSubmit = false;\r\n }\r\n }\r\n\r\n async function updateApiClient() {\r\n vm.savingApiClient = new createSpinner();\r\n\r\n try {\r\n const roleIds = [];\r\n for (var i = 0; i < vm.apiClient.Roles.length; i++) {\r\n roleIds.push(vm.apiClient.Roles[i].ID);\r\n }\r\n\r\n const payload = {\r\n \"Name\": vm.apiClient.Name,\r\n \"Active\": vm.apiClient.Active,\r\n \"RoleIds\": roleIds\r\n };\r\n\r\n await apiClientDataService.updateApiClient(vm.apiClient.AdmUserId, payload);\r\n await helperService.successfulSaveButton(vm.savingApiClient);\r\n close();\r\n vm.disableSubmit = false;\r\n } catch (_) {\r\n vm.savingApiClient.loadingValue = false;\r\n vm.disableSubmit = false;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n function close(updatedOrCreatedId) {\r\n $uibModalInstance.close(updatedOrCreatedId);\r\n }\r\n}","import newApiClientController from \"./newApiClientModal.controller\";\r\nimport swal from \"sweetalert2\";\r\n\r\nexport default /*@ngInject*/ function ($http, $uibModal, $scope, dataService, apiClientDataService, helperService) {\r\n const vm = this;\r\n\r\n vm.openApiClientModal = openApiClientModal;\r\n\r\n vm.apiClients = [];\r\n vm.loadRoles = loadRoles;\r\n vm.changeApiClientRowSelected = changeApiClientRowSelected;\r\n vm.generateSecret = generateSecret;\r\n vm.changeInputType = changeInputType;\r\n vm.listApiClients = listApiClients;\r\n vm.deleteApiClient = deleteApiClient;\r\n vm.updateSecretStatus = updateSecretStatus;\r\n vm.deleteSecret = deleteSecret;\r\n vm.copyTextToClipboard = copyTextToClipboard;\r\n vm.currentTenantId = angular.fromJson(localStorage.getItem(\"selectedTenant\")).ID;\r\n vm.currentTenantApiRoute = \"https://\" + angular.fromJson(localStorage.getItem(\"selectedTenant\")).ApiRoute + \".fastpathassure.com\";\r\n\r\n vm.apiClientMenuOptions = [\r\n {\r\n text: 'Edit',\r\n click: function ($itemScope, $event, modelValue) {\r\n const apiClient = modelValue;\r\n vm.openApiClientModal(apiClient, false);\r\n },\r\n displayed: function (modelValue) {\r\n return true;\r\n }\r\n },\r\n {\r\n text: 'Delete',\r\n click: function ($itemScope, $event, modelValue) {\r\n const apiClient = modelValue;\r\n vm.deleteApiClient(apiClient);\r\n },\r\n displayed: function (modelValue) {\r\n return true;\r\n }\r\n }\r\n ];\r\n\r\n activate();\r\n\r\n async function activate() {\r\n loadRoles();\r\n await listApiClients();\r\n }\r\n\r\n async function getApiClient() {\r\n vm.loadingApiClient = true;\r\n let response = await apiClientDataService.getApiClient(vm.selectedApiClient.AdmUserId);\r\n\r\n vm.selectedApiClient = response.data;\r\n vm.selectedApiClient.SelectedRoles = response.data.Roles;\r\n\r\n for (var i = 0; i < vm.selectedApiClient.Secrets.length; i++) {\r\n const dateString = Date.now().toString(36);\r\n const randomNumber = Math.random().toString(36).substr(2);\r\n const inputTag = \"inp\" + dateString + randomNumber;\r\n vm.selectedApiClient.Secrets[i].InputTag = inputTag;\r\n }\r\n\r\n vm.originalClientStatusIsActive = response.data.Active;\r\n\r\n vm.loadingApiClient = false;\r\n }\r\n\r\n async function deleteApiClient(apiClient) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete API Client', 'Are you sure you want to delete ' + apiClient.Name + '?', 'Delete'));\r\n let response = await apiClientDataService.deleteApiClient(apiClient.AdmUserId);\r\n vm.selectedApiClient = null;\r\n listApiClients();\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n }\r\n\r\n function changeInputType(dataItem) {\r\n let inputControl = document.getElementById(dataItem.InputTag);\r\n let imageControl = document.getElementById(\"img\" + dataItem.InputTag);\r\n if (inputControl.type === \"text\") {\r\n inputControl.setAttribute(\"type\", \"password\");\r\n imageControl.className = \"fa fa-eye\"\r\n }\r\n\r\n else {\r\n inputControl.setAttribute(\"type\", \"text\");\r\n imageControl.className = \"fa fa-eye-slash\"\r\n }\r\n }\r\n\r\n async function listApiClients(mostRecentApiClientId) {\r\n if (vm.apiClients) { vm.apiClients = null; }\r\n vm.loadingApiClients = true;\r\n try {\r\n let response = await apiClientDataService.listApiClients();\r\n if (mostRecentApiClientId) {\r\n let mostRecentApiClient = response.data.find(r => r.AdmUserId === mostRecentApiClientId);\r\n response.data = response.data.filter(i => i.AdmUserId !== mostRecentApiClient.AdmUserId);\r\n response.data.unshift(mostRecentApiClient);\r\n vm.changeApiClientRowSelected(mostRecentApiClient);\r\n }\r\n vm.apiClients = response.data;\r\n vm.loadingApiClients = false;\r\n } catch (_) {\r\n vm.loadingApiClients = false;\r\n }\r\n }\r\n\r\n async function loadRoles() {\r\n let response;\r\n\r\n try {\r\n response = await dataService.getRoles();\r\n vm.availableRoles = response.data;\r\n\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n }\r\n async function updateSecretStatus(apiClientId, secretId, activate) {\r\n try {\r\n vm.loadingApiClient = true;\r\n await apiClientDataService.updateSecretStatus(apiClientId, secretId, activate);\r\n await getApiClient();\r\n vm.clientSecretsGridDataSource.read();\r\n vm.loadingApiClient = false;\r\n }\r\n catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n }\r\n\r\n async function generateSecret() {\r\n try {\r\n vm.loadingApiClient = true;\r\n await apiClientDataService.generateSecret(vm.selectedApiClient.AdmUserId);\r\n await getApiClient();\r\n vm.clientSecretsGridDataSource.read();\r\n vm.loadingApiClient = false;\r\n }\r\n catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n }\r\n\r\n async function deleteSecret(apiClientId, secretId) {\r\n try {\r\n vm.loadingApiClient = true;\r\n await apiClientDataService.deleteSecret(apiClientId, secretId);\r\n await getApiClient();\r\n vm.clientSecretsGridDataSource.read();\r\n vm.loadingApiClient = false;\r\n }\r\n catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n }\r\n\r\n\r\n function changeApiClientRowSelected(apiClient) {\r\n if (!vm.selectedApiClient || vm.selectedApiClient.AdmUserId !== apiClient.AdmUserId) {\r\n vm.selectedApiClient = apiClient;\r\n changeApiClientSelected(apiClient);\r\n }\r\n }\r\n\r\n async function changeApiClientSelected() {\r\n await getApiClient();\r\n loadSecretsGrid();\r\n }\r\n\r\n function copyTextToClipboard(dataItem) {\r\n let inputControl = document.getElementById(dataItem.InputTag);\r\n try {\r\n const el = document.createElement('input');\r\n el.value = inputControl.value;\r\n el.setAttribute('readOnly', '');\r\n el.style.position = 'absolute';\r\n el.style.left = '-9999px';\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n }\r\n catch (ex) {\r\n swal({ title: 'Error copying to clipboard', type: 'warning', showCancelButton: false });\r\n }\r\n }\r\n\r\n async function openApiClientModal(apiClient) {\r\n let apiClientModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/NewApiClientModal.html',\r\n controller: newApiClientController,\r\n controllerAs: 'apicvm',\r\n backdrop: 'static',\r\n resolve: {\r\n apiClient: () => apiClient || null,\r\n }\r\n });\r\n\r\n try {\r\n let result = await apiClientModal.result;\r\n listApiClients(result);\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function loadSecretsGrid() {\r\n var clientSecretsColumns = [\r\n { field: \"CreatedDate\", title: \"Created Date\", template: \"{{ dataItem.CreatedDate | date:'short'}}\", width: 125 },\r\n { field: \"ClientSecret\", title: \"Secret\", template: ``, width: 300 },\r\n { title: \"Active\", template: `
`, width: 90 },\r\n { template: `
`, width: 50 },\r\n { template: `
`, width: 50 },\r\n { template: `Delete`, width: 70 }\r\n ];\r\n\r\n vm.clientSecretsGridOptions = helperService.setNonPageableGridOptions(clientSecretsColumns);\r\n vm.clientSecretsGridOptions.autoBind = true;\r\n vm.clientSecretsGridOptions.noRecords = {\r\n template: \"
No items to display
\"\r\n };\r\n\r\n vm.clientSecretsGridDataSource = new kendo.data.DataSource({\r\n schema: {\r\n model: {\r\n fields: {\r\n CreatedDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async options => {\r\n try {\r\n for (var i = 0; i < vm.selectedApiClient.Secrets.length; i++) {\r\n const dateString = Date.now().toString(36);\r\n const randomNumber = Math.random().toString(36).substr(2);\r\n const inputTag = \"inp\" + dateString + randomNumber;\r\n vm.selectedApiClient.Secrets[i].InputTag = inputTag;\r\n }\r\n options.success(vm.selectedApiClient.Secrets);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}","import controller from \"./apiClients.controller\";\r\n\r\n/* apiClients.component.js */\r\n\r\n/**\r\n * @desc component for API Clients\r\n * @example \r\n */\r\n\r\nconst apiClients = {\r\n controller: controller,\r\n controllerAs: 'apicvm',\r\n templateUrl: '/App/Components/ApiClients/apiClients.html'\r\n};\r\n\r\nexport default apiClients;","import angular from 'angular';\r\nimport apiClients from '../Components/ApiClients/apiClients.component';\r\n\r\nexport default angular\r\n .module('app.integrations.apiClients', [])\r\n .component(\"apiClients\", apiClients)\r\n .name;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getProducts,\r\n getLatestProductImports,\r\n getHybridConnections,\r\n getPlugins,\r\n getConnectionSql,\r\n getLogAnalyticConnections,\r\n getProductSchedule,\r\n getProductSql,\r\n getSapProduct,\r\n getImportRoles,\r\n getOracleEpmServiceTypes,\r\n getSfPermissionConfig,\r\n getSfPermissionConfigByObject,\r\n importSecurity,\r\n importFromFileUpload,\r\n createNewProduct,\r\n updateProductName,\r\n updateProductSchedule,\r\n disableProductSchedule,\r\n updateConfig,\r\n updateSqlConfig,\r\n createSqlConfig,\r\n createLogAnalyticsConfig,\r\n updateLogAnalyticsConfig,\r\n validateNsConfig,\r\n updateSapProduct,\r\n createSapProduct,\r\n createSfFieldPermissionConfig,\r\n removeSfFieldPermissionConfig\r\n };\r\n\r\n return service;\r\n\r\n //GET Requests\r\n async function getProducts() {\r\n try {\r\n return $http.get(apiUrl + 'api/universal/products');\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getLatestProductImports() {\r\n return $http.get(apiUrl + 'api/universal/imports/products/latest');\r\n }\r\n\r\n async function getHybridConnections() {\r\n return $http.get(apiUrl + 'api/core/hybridconnections');\r\n }\r\n\r\n async function getPlugins() {\r\n return $http.get(`${apiUrl}api/core/plugins`);\r\n }\r\n\r\n async function getConnectionSql(productId) {\r\n return $http.get(apiUrl + 'api/universal/products/' + productId + '/connections/sql');\r\n }\r\n\r\n async function getLogAnalyticConnections(productId) {\r\n return $http.get(`${apiUrl}api/assure/log-analytics/connection/${productId}`);\r\n }\r\n\r\n\r\n async function getProductSchedule(productId) {\r\n return $http.get(apiUrl + 'api/universal/imports/schedule/products/' + productId);\r\n }\r\n\r\n async function getProductSql(productId) {\r\n return $http.get(apiUrl + 'api/universal/products/' + productId + '/connections/sql');\r\n }\r\n\r\n async function getSapProduct(productId) {\r\n return $http.get(apiUrl + 'api/universal/products/' + productId + '/connections/saprfc');\r\n }\r\n\r\n async function getImportRoles(productId) {\r\n let response;\r\n\r\n try {\r\n response = await $http.get(apiUrl + 'api/universal/' + productId + '/import/api/role');\r\n } catch (err) {\r\n showError({\r\n data: \"Unable to get import roles.\"\r\n });\r\n sendError(err);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n async function getOracleEpmServiceTypes() {\r\n let response;\r\n\r\n try {\r\n response = await await $http.get(apiUrl + 'api/assure/orepm/services');\r\n } catch (err) {\r\n showError({\r\n data: \"Unable to get service types\"\r\n });\r\n sendError(err);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n async function getSfPermissionConfig() {\r\n return $http.get(apiUrl + 'api/universal/sf/import/fieldpermissionconfig');\r\n }\r\n\r\n async function getSfPermissionConfigByObject(name) {\r\n return $http.get(apiUrl + 'api/universal/sf/import/fieldpermissionconfig/' + name + '/fields');\r\n }\r\n\r\n async function importSecurity(url, data) {\r\n try {\r\n await $http.put(url, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importFromFileUpload(url, data) {\r\n try {\r\n await $http.put(url, data, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function createNewProduct(data) {\r\n let response;\r\n\r\n try {\r\n response = await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/universal/products',\r\n data: data\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n async function updateProductName(product) {\r\n let response;\r\n\r\n try {\r\n response = await $http({\r\n method: 'PUT',\r\n url: apiUrl + 'api/universal/products/' + product.ID,\r\n data: {\r\n ProductId: product.ID,\r\n Name: product.Name\r\n }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n async function updateProductSchedule(productId, data) {\r\n let response;\r\n\r\n try {\r\n response = await $http.put(apiUrl + 'api/universal/imports/schedule/products/' + productId, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n async function createSapProduct(productId, data) {\r\n try {\r\n await $http.post(apiUrl + 'api/universal/products/' + productId + '/connections/saprfc', data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function validateNsConfig(data) {\r\n try {\r\n await $http.put(apiUrl + 'api/core/ns/configuration/validate', data)\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateSapProduct(productId, data) {\r\n try {\r\n await $http.put(apiUrl + 'api/universal/products/' + productId + '/connections/saprfc', data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function disableProductSchedule(productId, data) {\r\n let response;\r\n\r\n try {\r\n response = await $http.put(apiUrl + 'api/universal/imports/schedule/products/' + productId + \"/disable\", data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n async function updateConfig(data) {\r\n let response;\r\n try {\r\n response = $http.put(apiUrl + 'api/core/configuration', data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n async function updateSqlConfig(productId, data) {\r\n let response;\r\n\r\n try {\r\n response = await $http.put(apiUrl + 'api/universal/products/' + productId + '/connections/sql', data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n async function createSqlConfig(productId, data) {\r\n let response;\r\n\r\n try {\r\n response = await $http.post(apiUrl + 'api/universal/products/' + productId + '/connections/sql', data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n async function createLogAnalyticsConfig(productId, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/assure/log-analytics/connection/${productId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function updateLogAnalyticsConfig(productId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/assure/log-analytics/connection/${productId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function createSfFieldPermissionConfig(data) {\r\n let response;\r\n\r\n try {\r\n response = await $http.post(apiUrl + 'api/universal/sf/import/fieldpermissionconfig', data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n async function removeSfFieldPermissionConfig(fieldId) {\r\n try {\r\n await $http.delete(apiUrl + 'api/universal/sf/import/fieldpermissionconfig/' + fieldId);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, dataService, connectionsDataService, modules) {\r\n const vm = this;\r\n\r\n vm.$onInit = init;\r\n\r\n vm.productTypesDataSource = [];\r\n vm.createNewProduct = createNewProduct;\r\n vm.cancel = cancel;\r\n vm.updateInProgress = false;\r\n\r\n async function init() {\r\n const customProductType = {\r\n Type: 'Custom',\r\n Name: 'Custom',\r\n ModuleId: 10000\r\n },\r\n atProductType = {\r\n Type: 'AuditTrail',\r\n Name: 'Change Tracking',\r\n ModuleId: 3000\r\n };\r\n let response;\r\n\r\n try {\r\n response = await dataService.getProductTypes();\r\n\r\n vm.productTypesDataSource.unshift(customProductType);\r\n\r\n if (response.data.some(prod => prod.Type === 'SAP')) {\r\n const obj = response.data.find(prod => prod.Type === 'SAP');\r\n obj.ModuleId = 10000;\r\n vm.productTypesDataSource.push(obj);\r\n }\r\n\r\n if (modules.some(item => item.ObjectID === atProductType.ModuleId)) {\r\n vm.productTypesDataSource.unshift(atProductType);\r\n }\r\n\r\n vm.selectedProductType = customProductType;\r\n\r\n } catch (response) {\r\n helperService.showErrorMessage(response.data);\r\n }\r\n }\r\n\r\n async function createNewProduct() {\r\n const newProduct = {\r\n Name: vm.newProduct.Name,\r\n ID: '',\r\n Type: vm.selectedProductType.Type,\r\n ModuleId: vm.selectedProductType.ModuleId\r\n };\r\n\r\n vm.updateInProgress = new createSpinner();\r\n\r\n try {\r\n const { data: newId } = await connectionsDataService.createNewProduct(newProduct);\r\n\r\n await helperService.successfulSaveButton(vm.updateInProgress);\r\n vm.cancel(newId);\r\n } catch (response) {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n function cancel(newProduct) {\r\n $uibModalInstance.close(newProduct);\r\n }\r\n}","import allSupportedProducts from \"../../Shared/GlobalVariables/ProductLookUp\";\r\nimport newProductController from \"./newProductModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, $rootScope, helperService, configurationDataService, connectionsDataService, rolesDataService) {\r\n const vm = this,\r\n sortedProducts = allSupportedProducts.sort(sortByName);\r\n\r\n vm.$onInit = init;\r\n\r\n vm.getConnections = getConnections;\r\n vm.getProductImageClass = getProductImageClass;\r\n vm.helperService = helperService;\r\n vm.userSecurityList = $rootScope.UserSecurityList;\r\n vm.setRadioSelected = setRadioSelected;\r\n vm.openNewProductModal = openNewProductModal;\r\n\r\n async function init() {\r\n vm.radioSelected = '';\r\n vm.customProducts = [];\r\n vm.ProductImportTiles = {};\r\n vm.ProductImportTilesArray = [];\r\n vm.latestImportArray = [];\r\n vm.config = {};\r\n vm.origConfig = {};\r\n vm.checkImportFocus = checkImportFocus;\r\n\r\n await getProductConfigurations(); \r\n\r\n function checkImportFocus (productId) {\r\n const radios = [productId + \"_Import\", productId + \"_Settings\", productId + \"_Schedule\"];\r\n let focused = true;\r\n\r\n if (productId != null) {\r\n if (!vm.radioSelected || radios.includes(vm.radioSelected)) {\r\n focused = false;\r\n }\r\n }\r\n\r\n return focused;\r\n };\r\n\r\n sortedProducts.forEach(setImportTiles);\r\n\r\n let response = await rolesDataService.getModules();\r\n vm.modules = response.data;\r\n\r\n await vm.getConnections();\r\n\r\n determineProductVisibility();\r\n\r\n await callLatest();\r\n\r\n $scope.$on('ProductImport', () => callLatest());\r\n $scope.$on('productImportInProgress', (event, data) => triggerProductImportInProgressStatus(data));\r\n \r\n await setConfigValues();\r\n await getHybridConnections();\r\n } \r\n\r\n function getProductImageClass(productType) {\r\n return helperService.setProductImageClass(productType);\r\n }\r\n \r\n function setImportTiles(product) {\r\n vm.ProductImportTiles[product.ID] = 'hide';\r\n vm.ProductImportTilesArray.push({ ProductName: product.Name, ProductID: product.ID, ProductType: product.Type, Visibility: 'hide', ...product });\r\n }\r\n\r\n async function getProductConfigurations() {\r\n const { data } = await configurationDataService.getProductConfigurationListByName('UV_FPAuditDatabase');\r\n\r\n vm.allFpAuditConfigs = data;\r\n }\r\n\r\n async function setConfigValues() {\r\n let response = await configurationDataService.getConfigurationValues(),\r\n config = {};\r\n\r\n response.data.forEach(row => {\r\n config[row.Name] = row.Value;\r\n });\r\n\r\n //Hard-code encrypted\r\n config['SAP_Password'] = 'password';\r\n config['OR_Password'] = 'password';\r\n config['AX7_AppSecret'] = 'password';\r\n config['D365S_Password'] = 'password';\r\n config['D365S_ClientSecret'] = 'password';\r\n config['D365Bc_ClientSecret'] = 'password';\r\n config['D365Bc_Key'] = 'password';\r\n config['D365Bc_Password'] = 'password';\r\n config['NS_TokenKey'] = 'password';\r\n config['NS_TokenSecret'] = 'password';\r\n config['INT_Password'] = 'password';\r\n config['INT_ConsolePassword'] = 'password';\r\n config['INT_GatewayPassword'] = 'password';\r\n config['GP_Password'] = 'password';\r\n config['NAV_Password'] = 'password';\r\n config['NAV_WSPassword'] = 'password';\r\n config['AX_SqlPassword'] = 'password';\r\n config['SF_SecurityToken'] = 'password';\r\n config['SF_Password'] = 'password';\r\n config['SF_ClientSecret'] = 'password';\r\n config['AC_Password'] = 'password';\r\n config['PS_Password'] = 'password';\r\n config['PS_IM_Password'] = 'password';\r\n config['ORFC_Password'] = 'password';\r\n config['AC_SqlPassword'] = 'password';\r\n config['JDE_Password'] = 'password';\r\n config['WD_Password'] = 'password';\r\n config['AAD_ClientSecret'] = 'password';\r\n config['CPA_ApiKey'] = 'apikey';\r\n config['CPA_ClientSecret'] = 'password';\r\n config['SapGrc_Password'] = 'password';\r\n config['Zuo_ClientSecret'] = 'password';\r\n config['AZ_ClientSecret'] = 'password';\r\n config['ARB_ApiKey'] = 'password';\r\n config['ARB_Base64ClientSecret'] = 'password';\r\n config['CNC_ClientSecret'] = 'password';\r\n config['CNC_CompanyPassword'] = 'password';\r\n config['ADO_PersonalAccessToken'] = 'password';\r\n config['WD_ClientSecret'] = 'password';\r\n\r\n vm.config = JSON.parse(JSON.stringify(config));\r\n vm.origConfig = JSON.parse(JSON.stringify(config));\r\n }\r\n\r\n async function getHybridConnections() {\r\n const response = await connectionsDataService.getHybridConnections();\r\n\r\n vm.hybridConnectionsArray = response.data;\r\n }\r\n\r\n function setRadioSelected(event, radio) {\r\n if (event && event.currentTarget.classList.contains(\"active\")) {\r\n vm.radioSelected = radio;\r\n } else {\r\n vm.radioSelected = '';\r\n }\r\n }\r\n\r\n async function callLatest() {\r\n const response = await connectionsDataService.getLatestProductImports();\r\n\r\n vm.latestImportArray = response.data || [];\r\n }\r\n\r\n function triggerProductImportInProgressStatus(importingProduct) {\r\n if (vm.latestImportArray.length > 0) {\r\n let productIndex = vm.latestImportArray.findIndex(product => product.ProductType === importingProduct.ProductType && product.ProductId === importingProduct.ProductId);\r\n\r\n vm.latestImportArray[productIndex].Status = 'InProgress';\r\n vm.latestImportArray[productIndex].StartDate = new Date();\r\n }\r\n }\r\n\r\n async function getConnections() {\r\n let response = await connectionsDataService.getProducts(),\r\n data = response.data;\r\n\r\n vm.availableProducts = data;\r\n vm.customProducts = [];\r\n vm.sapProducts = [];\r\n\r\n for (let product of vm.availableProducts) {\r\n const supportedProduct = sortedProducts.find(supportedProduct => supportedProduct.ID === product.ID || (supportedProduct.Type === \"SAP\" && product.Type === \"SAP\")),\r\n isCustomProduct = !sortedProducts.find(supportedProduct => supportedProduct.ID === product.ID),\r\n isSap = product.Type === \"SAP\",\r\n isSql = product.Type === \"AX5\" || product.Type === \"SL\";\r\n\r\n if (isCustomProduct && !isSap) {\r\n product.isCustom = true;\r\n await getCustomProduct(product);\r\n }\r\n\r\n if (isSql) {\r\n await getSqlProduct(product);\r\n }\r\n\r\n if (isSap) {\r\n product.isSap = true;\r\n await getSapProduct(Object.assign({}, supportedProduct, product));\r\n }\r\n };\r\n }\r\n\r\n async function getCustomProduct(product) {\r\n let response;\r\n \r\n try {\r\n response = await connectionsDataService.getConnectionSql(product.ID);\r\n\r\n product.CustomProduct_User = response.data.UserName;\r\n product.CustomProduct_DatabaseName = response.data.DatabaseName;\r\n product.CustomProduct_Instance = response.data.Instance;\r\n product.CustomProduct_HostName = response.data.HostName;\r\n product.CustomProduct_Port = response.data.Port;\r\n product.CustomProduct_Password = 'fastpath';\r\n product.ConnectionExists = true;\r\n\r\n vm.customProducts.push(product);\r\n } catch {\r\n product.ConnectionExists = false;\r\n vm.customProducts.push(product);\r\n }\r\n\r\n await getProductSchedule(product);\r\n }\r\n\r\n async function getSqlProduct(product) {\r\n let response;\r\n\r\n try {\r\n response = await connectionsDataService.getProductSql(product.ID);\r\n\r\n product.SQL_User = response.data.UserName;\r\n product.SQL_DatabaseName = response.data.DatabaseName;\r\n product.SQL_Instance = response.data.Instance;\r\n product.SQL_HostName = response.data.HostName;\r\n product.SQL_Port = response.data.Port;\r\n product.SQL_Password = \"password\";\r\n product.ConnectionExists = true;\r\n } catch {\r\n product.ConnectionExists = false;\r\n }\r\n\r\n await getProductSchedule(product);\r\n }\r\n\r\n async function getProductSchedule(product) {\r\n let response;\r\n\r\n try {\r\n response = await connectionsDataService.getProductSchedule(product.ID);\r\n product.importSchedule = response.data;\r\n product.selectedFreqForScheduleImport = response.data.Frequency;\r\n product.selectedDayOfWeekForScheduleImport = response.data.DayOfWeek;\r\n product.selectedDayOfMonthForScheduleImport = { Value: response.data.DayOfMonth };\r\n product.startTimeForScheduleImport = new Date(response.data.StartTime);\r\n product.ScheduleImportIsOn = true;\r\n } catch {\r\n product.importSchedule = null;\r\n product.ScheduleImportIsOn = false;\r\n }\r\n }\r\n\r\n async function getSapProduct(product) {\r\n let response,\r\n sapProduct;\r\n\r\n try {\r\n response = await connectionsDataService.getSapProduct(product.ID);\r\n\r\n sapProduct = Object.assign({}, product, response.data);\r\n\r\n sapProduct.ConnectionExists = true;\r\n sapProduct.originalConfig = response.data;\r\n } catch {\r\n sapProduct = product;\r\n sapProduct.originalConfig = {};\r\n sapProduct.ConnectionExists = false;\r\n }\r\n\r\n vm.sapProducts.push(sapProduct);\r\n }\r\n\r\n function determineProductVisibility() {\r\n vm.availableProducts.forEach(availableProduct => {\r\n vm.ProductImportTiles[availableProduct.ID] = 'show';\r\n let selectedProduct = vm.ProductImportTilesArray.filter(product => product.ProductID == availableProduct.ID).first();\r\n\r\n if (selectedProduct) {\r\n selectedProduct.Visibility = 'show';\r\n }\r\n\r\n selectedProduct = Object.assign(selectedProduct || {}, availableProduct);\r\n });\r\n }\r\n\r\n async function openNewProductModal() {\r\n const productModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/NewProductModal.html',\r\n controller: newProductController,\r\n controllerAs: 'npcvm',\r\n backdrop: 'static',\r\n resolve: {\r\n newProduct: () => { },\r\n modules: () => vm.modules\r\n }\r\n });\r\n\r\n try {\r\n const newId = await productModal.result;\r\n\r\n if (newId) {\r\n vm.getConnections();\r\n }\r\n } catch { }\r\n }\r\n}\r\n\r\nfunction sortByName(a, b) {\r\n return a.Name.localeCompare(b.Name)\r\n}","import connectionsController from \"./connections.controller\";\r\n\r\n/* connections.component.js */\r\n\r\n/**\r\n * @desc component for product connections\r\n * @example \r\n */\r\n\r\nconst connections = {\r\n controller: connectionsController,\r\n controllerAs: 'cvm',\r\n templateUrl: '/App/Components/Connections/connections.tmpl.html'\r\n};\r\n\r\nexport default connections;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, connectionsDataService, helperService, product) {\r\n const vm = this;\r\n\r\n vm.product = Object.assign({}, product);\r\n vm.updateProductName = updateProductName;\r\n vm.cancel = cancel;\r\n vm.dismiss = dismiss;\r\n vm.updateInProgress = false;\r\n\r\n function cancel() {\r\n $uibModalInstance.close();\r\n }\r\n\r\n function dismiss() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n async function updateProductName() {\r\n vm.updateInProgress = new createSpinner();\r\n\r\n try {\r\n await connectionsDataService.updateProductName(vm.product);\r\n\r\n await helperService.successfulSaveButton(vm.updateInProgress);\r\n product.Name = vm.product.Name;\r\n dismiss();\r\n } catch (response) {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n}\r\n","import editProductNameModalController from \"../editProductNameModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, ViewProductImportPageService) {\r\n const vm = this;\r\n\r\n vm.$onInit = init;\r\n\r\n vm.ViewProductImportPageService = ViewProductImportPageService;\r\n vm.updateNSRoleDropdown = updateNSRoleDropdown;\r\n vm.getImportStatusClass = getImportStatusClass;\r\n vm.openEditProductName = openEditProductName;\r\n\r\n function init() {\r\n vm.uploadOnlyProducts = [\"OREPM\", \"SAPB1\", \"Zuo\", \"CNC\"];\r\n }\r\n\r\n function updateNSRoleDropdown(configChanged) {\r\n vm.nsRolesChanged = configChanged;\r\n }\r\n\r\n function getImportStatusClass(status) {\r\n const classes = {\r\n \"Completed\": \"toast-success\",\r\n \"InProgress\": \"toast-loading\",\r\n \"Error\": \"toast-error\"\r\n }\r\n\r\n return classes[status];\r\n }\r\n\r\n function openEditProductName() {\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/EditProductNameModal.html',\r\n controller: editProductNameModalController,\r\n controllerAs: 'epnmcvm',\r\n backdrop: 'static',\r\n resolve: {\r\n product: () => vm.product\r\n }\r\n });\r\n }\r\n}","import controller from \"./connection.controller\";\r\n\r\n/* connection.component.js */\r\n\r\n/**\r\n * @desc component for product connections\r\n * @example \r\n */\r\n\r\nconst connection = {\r\n bindings: {\r\n product: '<',\r\n setRadioSelected: '<',\r\n radioSelected: '<',\r\n latestImportArray: '<',\r\n productImportTiles: '<',\r\n productTiles: '<',\r\n currentConfig: '<',\r\n originalConfig: '<',\r\n userSecurityList: '<',\r\n hybridConnectionsArray: '<',\r\n nsRolesChanged: '<',\r\n modules: '<'\r\n },\r\n controller: controller,\r\n controllerAs: 'cvm',\r\n templateUrl: '/App/Components/Connections/Connection/connection.tmpl.html'\r\n};\r\n\r\nexport default connection;","import swal from \"sweetalert2\";\r\nimport createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, $filter, helperService, connectionsDataService) {\r\n const vm = this,\r\n navObjects = JSON.parse(localStorage.getItem(\"NavigationObjects\"));\r\n let baseUrl = \"api/universal/\";\r\n\r\n vm.$onInit = init;\r\n vm.$onChanges = onChanges;\r\n\r\n vm.importProduct = importProduct;\r\n vm.importOracle = importOracle;\r\n vm.importType = \"Metadata\";\r\n vm.showSapImportType = navObjects.some(navObject => navObject.ModuleID === 14000);\r\n vm.sapImportType = \"SecurityOnly\";\r\n vm.getNsRoles = getNsRoles;\r\n vm.nsImportAllRoles = true;\r\n\r\n function init() {\r\n setProductSpecificDropdowns(vm.product.ID);\r\n }\r\n\r\n function onChanges(changes) {\r\n if (changes['nsRolesNeedsUpdate']?.currentValue && !nsImportAllRoles) {\r\n getNsRoles();\r\n const configChanged = false;\r\n vm.onNsRolesUpdate({ configChanged });\r\n }\r\n }\r\n\r\n async function setProductSpecificDropdowns(productId) {\r\n let response;\r\n\r\n if (productId === \"OREPM\") {\r\n try {\r\n response = await connectionsDataService.getOracleEpmServiceTypes();\r\n vm.serviceTypeDropdownDataSource = $filter(\"orderBy\")(response.data, \"displayName\");\r\n vm.serviceTypeDropdownDataSource.unshift({ \"_displayName\": \"-- Select a Service Type --\", \"_value\": -1 });\r\n vm.selectedServiceType = vm.serviceTypeDropdownDataSource[0];\r\n } catch {\r\n // Error handled in data service.\r\n }\r\n }\r\n }\r\n\r\n async function getNsRoles() {\r\n const productId = vm.product.ID;\r\n let response;\r\n\r\n if ($rootScope.UserSecurityList[\"16300\"]) {\r\n try {\r\n vm.rolesDropdownIsLoading = true;\r\n response = await connectionsDataService.getImportRoles(productId);\r\n vm.nsRoleDataSource = response.data;\r\n vm.nsSelectedItems = [];\r\n vm.rolesDropdownIsLoading = false;\r\n } catch {\r\n vm.rolesDropdownIsLoading = false;\r\n }\r\n }\r\n }\r\n\r\n async function importProduct(importType, files) {\r\n const securityImportTypes = [\"api\", \"sql\", \"permission\", \"security\"],\r\n isFileImport = checkFileImport(importType, files),\r\n isSecurityImport = securityImportTypes.includes(importType);\r\n\r\n try {\r\n var message = 'Are you sure you want to proceed? This will replace all currently imported security data in Fastpath Assure.';\r\n\r\n if (vm.product.ID === 'CPA') {\r\n message = 'Are you sure you want to proceed? This will replace all currently imported user-role security data in Fastpath Assure, but it will not affect permissions data.';\r\n }\r\n\r\n await swal(helperService.areYouSureParams(\r\n `Import ${vm.product.Name} Security`,\r\n `${message}`,\r\n `Import`\r\n ));\r\n\r\n if (isSecurityImport) {\r\n await importSecurity(importType);\r\n } else if (isFileImport) {\r\n vm.importType = importType;\r\n await importFromFileUpload(getFormData(files));\r\n }\r\n } catch {\r\n // Error handled in data service.\r\n }\r\n }\r\n\r\n async function importOracle(transactionMonitoring) {\r\n let url = apiUrl,\r\n type = \"Security\";\r\n\r\n if (transactionMonitoring) {\r\n type = \"Transaction Monitoring\";\r\n url = url + \"api/transactionmonitoring/or/import\";\r\n } else {\r\n url = url + \"api/universal/or/import/sql\";\r\n }\r\n\r\n try {\r\n await swal(helperService.areYouSureParams(\r\n `Import ${vm.product.Name} ${type}`,\r\n `Are you sure you want to proceed? This will replace all currently imported security data in Fastpath Assure.`,\r\n `Import`\r\n ));\r\n\r\n vm.showLoading = new createSpinner();\r\n\r\n await connectionsDataService.importSecurity(url, {});\r\n vm.showLoading.loadingValue = false;\r\n\r\n vm.setRadioSelected();\r\n vm.importFlow.cancel();\r\n } catch (err) {\r\n vm.showLoading.loadingValue = false;\r\n }\r\n }\r\n\r\n async function importSecurity(type) {\r\n let body = getRequestBodyByProductId(vm.product.ID, type),\r\n url = apiUrl + baseUrl + vm.product.ID + \"/import/\";\r\n\r\n vm.showLoading = new createSpinner();\r\n if (vm.product.ID === \"NS\") {\r\n url = url + (vm.nsImportAllRoles ? type : \"/api/role\");\r\n\r\n body = vm.nsImportAllRoles ? {} : { RoleIds: vm.nsSelectedItems.map(item => item.ID) };\r\n } else if (vm.product.Type === \"SAP\") {\r\n url = apiUrl + baseUrl + vm.product.Type + \"/import/\" + type;\r\n } else {\r\n url = url + type;\r\n }\r\n\r\n try {\r\n await connectionsDataService.importSecurity(url, body);\r\n vm.showLoading.loadingValue = false;\r\n\r\n vm.setRadioSelected();\r\n vm.importFlow.cancel();\r\n\r\n if (vm.product.ID === \"NS\") {\r\n vm.permissionsFlow.cancel();\r\n } else if (vm.product.Type === \"SAP\") {\r\n vm.rawFlow.cancel();\r\n }\r\n } catch (err) {\r\n vm.showLoading.loadingValue = false;\r\n }\r\n }\r\n\r\n async function importFromFileUpload(formData) {\r\n let urlId = vm.product.ID;\r\n\r\n vm.showLoading = new createSpinner();\r\n\r\n if (vm.product.Type === \"SAP\") {\r\n urlId = vm.product.Type;\r\n formData.append(\"ProductId\", vm.product.ID);\r\n }\r\n\r\n try {\r\n await connectionsDataService.importFromFileUpload(apiUrl + baseUrl + urlId + \"/import/\" + vm.importType, formData);\r\n vm.showLoading.loadingValue = false;\r\n\r\n vm.setRadioSelected();\r\n vm.importFlow.cancel();\r\n\r\n if (vm.product.ID === \"NS\") {\r\n vm.permissionsFlow.cancel();\r\n } else if (vm.product.Type === \"SAP\") {\r\n vm.rawFlow.cancel();\r\n }\r\n } catch (err) {\r\n vm.showLoading.loadingValue = false;\r\n }\r\n }\r\n\r\n function getRequestBodyByProductId(productId, type) {\r\n let data = {};\r\n\r\n if (vm.product.ID === \"AX7\" || vm.product.ID === \"D365S\") {\r\n data = {\r\n \"ImportType\": vm.importType,\r\n \"RoleList\": []\r\n };\r\n } else if (vm.product.Type === \"SAP\") {\r\n data = {\r\n ProductId: vm.product.ID,\r\n SdImportType: vm.sapImportType\r\n }\r\n }\r\n else if (type === \"api\" && vm.product.Type === \"WD\") {\r\n data = {\r\n ApiImportType: vm.originalConfig.WD_ApiImportType === '1' ? 'WQL' : 'RaaS'\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function getFormData(files) {\r\n let formData = new FormData(),\r\n file = files.first().file,\r\n oracleServiceTypeId;\r\n\r\n if (vm.product.ID === \"OREPM\") {\r\n oracleServiceTypeId = vm.selectedServiceType._value;\r\n formData.append(\"OrEpmServiceId\", oracleServiceTypeId);\r\n } else if (vm.product.isCustom) {\r\n formData.append(\"ProductId\", vm.product.ID);\r\n }\r\n\r\n if (vm.product.isCustom && file.type === \"application/x-zip-compressed\") {\r\n vm.importType = \"csv\"\r\n formData.append(\"File\", file);\r\n } else if (vm.product.isCustom) {\r\n vm.importType = \"excel\"\r\n formData.append(\"ExcelImport\", file);\r\n } else {\r\n formData.append(file.name, file);\r\n }\r\n\r\n return formData;\r\n }\r\n}\r\n\r\nfunction checkFileImport(importType, files) {\r\n const types = [\"\", \"file\", \"files\", \"raw-files\", \"metadata\", \"permissionusage\"];\r\n\r\n return types.includes(importType) && files && files.length;\r\n}","import Controller from \"./connectionImport.controller\";\r\n\r\n/* connectionImport.component.js */\r\n\r\n/**\r\n * @desc component for importing product connection data.\r\n * @example \r\n */\r\n\r\nconst ConnectionImport = {\r\n bindings: {\r\n product: '<',\r\n originalConfig: \"=\",\r\n setRadioSelected: \"<\",\r\n nsRolesNeedsUpdate: '<',\r\n onNsRolesUpdate: '&'\r\n },\r\n controller: Controller,\r\n controllerAs: 'civm',\r\n templateUrl: 'App/Components/Connections/Connection/Import/connectionImport.tmpl.html'\r\n};\r\n\r\nexport default ConnectionImport;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nconst frequencies = ['Daily', 'Weekly', 'Monthly'],\r\n daysInWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n\r\nexport default /*@ngInject*/ function ($rootScope, helperService, errorsDataService, dateFormatterFactory, connectionsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = init;\r\n\r\n function init() {\r\n getImportSchedule();\r\n }\r\n\r\n vm.frequencies = frequencies;\r\n vm.daysInWeek = daysInWeek;\r\n vm.daysInMonth = helperService.getDayOfMonthDropdownOptions();\r\n vm.startTimeForScheduleImport = new Date();\r\n\r\n vm.scheduleImportStatusChanged = scheduleImportStatusChanged;\r\n vm.updateScheduleImport = updateScheduleImport;\r\n vm.createNewSchedule = createNewSchedule;\r\n vm.disableSchedule = disableSchedule;\r\n vm.scheduleChanged = scheduleChanged;\r\n vm.formatDate = formatDate;\r\n vm.formatDay = formatDay;\r\n vm.updateInProgress = false;\r\n\r\n async function getImportSchedule() {\r\n let response;\r\n\r\n try {\r\n response = await connectionsDataService.getProductSchedule(vm.product.ID);\r\n\r\n vm.importSchedule = Object.assign({}, response.data);\r\n vm.DayOfMonth = { Value: response.data.DayOfMonth };\r\n vm.StartTime = new Date(response.data.NextExecutionTime);\r\n vm.updatedSchedule = Object.assign({}, response.data);\r\n vm.scheduleImportIsOn = true;\r\n } catch {\r\n vm.importSchedule = null;\r\n vm.scheduleImportIsOn = false;\r\n }\r\n }\r\n\r\n function formatDate(dateObject) {\r\n vm.updatedSchedule.StartTime = dateFormatterFactory.formatDate(dateObject);\r\n }\r\n\r\n function formatDay(dayObject) {\r\n vm.updatedSchedule.DayOfMonth = dayObject.Value;\r\n }\r\n\r\n function scheduleChanged() {\r\n let initial = vm.importSchedule || {},\r\n updated = vm.updatedSchedule || {},\r\n changed = true;\r\n\r\n if (vm.importSchedule && angular.equals(initial, updated)) {\r\n changed = false;\r\n }\r\n\r\n return changed;\r\n }\r\n\r\n function scheduleImportStatusChanged() {\r\n if (vm.scheduleImportIsOn === false && vm.importSchedule) {\r\n updateScheduleImport(false, vm.product);\r\n }\r\n }\r\n\r\n function updateScheduleImport(isOn) {\r\n updateSchedule(isOn);\r\n }\r\n\r\n async function updateSchedule(scheduleIsOn) {\r\n vm.updateInProgress = new createSpinner();\r\n\r\n if (scheduleIsOn) {\r\n await createNewSchedule();\r\n await getImportSchedule();\r\n } else {\r\n await disableSchedule();\r\n }\r\n }\r\n\r\n async function createNewSchedule() {\r\n const frequency = vm.updatedSchedule.Frequency,\r\n dayOfWeek = vm.updatedSchedule.DayOfWeek;\r\n let data = {},\r\n adjustedTime = new Date(),\r\n enteredHours = vm.StartTime.getHours(),\r\n enteredMinutes = vm.StartTime.getMinutes(),\r\n dayOfMonthRequest,\r\n dayOfWeekRequest;\r\n\r\n vm.updateInProgress = new createSpinner();\r\n\r\n if (frequency === 'Daily') {\r\n dayOfMonthRequest = [];\r\n dayOfWeekRequest = [];\r\n } if (frequency === 'Weekly') {\r\n dayOfMonthRequest = [];\r\n dayOfWeekRequest = [dayOfWeek];\r\n } if (frequency === 'Monthly') {\r\n dayOfMonthRequest = [vm.DayOfMonth.Value];\r\n dayOfWeekRequest = [];\r\n }\r\n\r\n // Adjusting for DST\r\n adjustedTime.setHours(enteredHours);\r\n adjustedTime.setMinutes(enteredMinutes);\r\n\r\n try {\r\n data = {\r\n \"ProductId\": vm.product.ID,\r\n \"Schedule\": {\r\n \"DayOfMonth\": dayOfMonthRequest[0],\r\n \"DayOfWeek\": dayOfWeekRequest[0],\r\n \"Frequency\": frequency,\r\n \"StartTime\": adjustedTime.toUTCString(),\r\n \"TimeZone\": $rootScope.applicationTimeZone\r\n }\r\n };\r\n\r\n await connectionsDataService.updateProductSchedule(vm.product.ID, data);\r\n helperService.successfulSaveButton(vm.updateInProgress);\r\n vm.updateInProgress.loadingValue = false;\r\n } catch {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n\r\n async function disableSchedule() {\r\n const data = { \"ProductId\": vm.product.ID };\r\n try {\r\n await connectionsDataService.disableProductSchedule(vm.product.ID, data);\r\n await getImportSchedule();\r\n vm.updateInProgress.loadingValue = false;\r\n } catch {\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n}","import Controller from \"./connectionSchedule.controller\";\r\n\r\n/* connectionSchedule.component.js */\r\n\r\n/**\r\n * @desc component for managing product connection schedules\r\n * @example \r\n */\r\n\r\nconst connectionSchedule = {\r\n bindings: {\r\n product: '<',\r\n },\r\n controller: Controller,\r\n controllerAs: 'csvm',\r\n templateUrl: '/App/Components/Connections/Connection/Schedule/connectionSchedule.tmpl.html'\r\n};\r\n\r\nexport default connectionSchedule;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\nimport { customAutoCompleteFilter } from \"../../../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, helperService, connectionsDataService, configurationDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = init;\r\n\r\n vm.objectsDropdownChange = objectsDropdownChange;\r\n vm.updateField = updateField;\r\n vm.update = update;\r\n vm.getConfigNames = getConfigNames;\r\n vm.configValuesHaveChanged = configValuesHaveChanged;\r\n vm.productValuesHaveChanged = productValuesHaveChanged;\r\n vm.logAnalyticConfigsHaveChanged = logAnalyticConfigsHaveChanged;\r\n vm.ax7ImportDisabledUsersChange = ax7ImportDisabledUsersChange;\r\n vm.ax7ImportDisabledUserAccessChange = ax7ImportDisabledUserAccessChange;\r\n vm.sfImportTypeChange = sfImportTypeChange;\r\n\r\n async function init() {\r\n let config = vm.product.Config;\r\n\r\n // For now, only gather ALA if plugin is active & product is D365FSC\r\n if (vm.product.ID === 'AX7') {\r\n await aLAPluginActive();\r\n }\r\n\r\n vm.hasChangeTracking = vm.modules.some(item => item.ObjectID === 3000);\r\n vm.versionOptions = vm.product.VersionOptions;\r\n vm.updateConfig = updateConfig;\r\n vm.originalProduct = Object.assign({}, vm.product);\r\n\r\n if (config && config.length) {\r\n vm.configNames = vm.product.Config.map((configItem) => configItem.Name);\r\n } else {\r\n vm.configNames = [];\r\n }\r\n\r\n if (vm.product.ID === \"SF\") {\r\n await setSalesForceObjects();\r\n }\r\n }\r\n\r\n async function aLAPluginActive() {\r\n const { data: configData } = await configurationDataService.getConfigurationValueByName('ALA_Active');\r\n vm.aLAPluginActive = configData;\r\n\r\n if (vm.aLAPluginActive) {\r\n try {\r\n const { data: connectionData } = await connectionsDataService.getLogAnalyticConnections(vm.product.ID);\r\n vm.originalLogAnalyticConfigs = {...connectionData};\r\n vm.logAnalyticConfigs = connectionData;\r\n vm.logAnalyticConfigs.ConnectionExists = true;\r\n } catch {\r\n vm.originalLogAnalyticConfigs = { \"WorkspaceId\" : null, \"Instance\" : null, \"DaysToImport\" : null };\r\n vm.logAnalyticConfigs = { \"WorkspaceId\": null, \"Instance\": null, \"DaysToImport\": null };\r\n vm.logAnalyticConfigs.ConnectionExists = false;\r\n }\r\n }\r\n }\r\n\r\n function getConfigNames() {\r\n return vm.configNames;\r\n }\r\n\r\n function configValuesHaveChanged (configArray = []) {\r\n return helperService.returnTrueIfValuesDiffer(configArray, vm.originalConfig, vm.currentConfig);\r\n };\r\n\r\n function productValuesHaveChanged(product) {\r\n return !angular.equals(vm.originalProduct, product);\r\n }\r\n\r\n function logAnalyticConfigsHaveChanged() {\r\n const logAnalyticConfigArray = ['WorkspaceId', 'Instance', 'DaysToImport'];\r\n\r\n return helperService.returnTrueIfValuesDiffer(logAnalyticConfigArray, vm.originalLogAnalyticConfigs, vm.logAnalyticConfigs);\r\n }\r\n\r\n async function update() {\r\n vm.updatePending = new createSpinner();\r\n\r\n if (vm.product.ID === 'AX5') {\r\n updateSqlConnection(vm.product);\r\n vm.updateConfig(vm.product.Config, vm.currentConfig, vm.originalConfig);\r\n } else if (vm.product.ID === 'AX7' && vm.aLAPluginActive) {\r\n if (logAnalyticConfigsHaveChanged()) {\r\n updateLogAnalyticsConfig(vm.logAnalyticConfigs);\r\n }\r\n if (configValuesHaveChanged(getConfigNames())) {\r\n vm.updateConfig(vm.product.Config, vm.currentConfig, vm.originalConfig);\r\n }\r\n } else if (vm.product.ID === 'SL') {\r\n updateSqlConnection(vm.product);\r\n vm.updateConfig(vm.product.Config, vm.currentConfig, vm.originalConfig);\r\n } else {\r\n vm.updateConfig(vm.product.Config, vm.currentConfig, vm.originalConfig);\r\n }\r\n }\r\n\r\n async function updateConfig(list, value, origVal) {\r\n let updateNsRoles = false,\r\n data = {\r\n \"Configurations\": []\r\n };\r\n\r\n list.forEach(item => {\r\n if (item.Name === 'NS_InactiveRoles') {\r\n updateNsRoles = true;\r\n }\r\n if (item.Encrypted === true) {\r\n if (value[item.Name] !== \"password\" && value[item.Name] !== \"apikey\") {\r\n data.Configurations.push({\r\n \"Name\": item.Name,\r\n \"Value\": value[item.Name]\r\n });\r\n }\r\n } else {\r\n if (value[item.Name] != origVal[item.Name]) {\r\n data.Configurations.push({\r\n \"Name\": item.Name,\r\n \"Value\": value[item.Name]\r\n });\r\n }\r\n }\r\n });\r\n\r\n vm.updatePending = new createSpinner();\r\n\r\n if (vm.product.ID === \"NS\") {\r\n try {\r\n await connectionsDataService.validateNsConfig(getNsValidationData(vm.currentConfig));\r\n await connectionsDataService.updateConfig(data);\r\n\r\n data.Configurations.forEach(config => {\r\n origVal[config.Name] = config.Value;\r\n });\r\n helperService.successfulSaveButton(vm.updatePending);\r\n $rootScope.reloadConfigurationValues();\r\n\r\n if (updateNsRoles) {\r\n const configChanged = true;\r\n vm.onUpdateNsRoleDropdown({ configChanged });\r\n }\r\n } catch {\r\n vm.updatePending.loadingValue = false\r\n }\r\n } else {\r\n try {\r\n await connectionsDataService.updateConfig(data);\r\n\r\n data.Configurations.forEach(config => {\r\n origVal[config.Name] = config.Value;\r\n });\r\n helperService.successfulSaveButton(vm.updatePending);\r\n $rootScope.reloadConfigurationValues();\r\n } catch {\r\n vm.updatePending.loadingValue = false\r\n }\r\n }\r\n };\r\n\r\n async function updateLogAnalyticsConfig(configs) {\r\n var postData = {\r\n \"ProductId\": vm.product.ID,\r\n \"WorkspaceId\": configs.WorkspaceId,\r\n \"Instance\": configs.Instance,\r\n \"DaysToImport\": configs.DaysToImport,\r\n };\r\n\r\n vm.updatePending = new createSpinner();\r\n\r\n //Update Connection\r\n if (vm.logAnalyticConfigs.ConnectionExists === true) {\r\n try {\r\n await connectionsDataService.updateLogAnalyticsConfig(vm.product.ID, postData);\r\n helperService.successfulSaveButton(vm.updatePending);\r\n } catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n else {\r\n try {\r\n await connectionsDataService.createLogAnalyticsConfig(vm.product.ID, postData);\r\n vm.logAnalyticConfigs.ConnectionExists = true;\r\n helperService.successfulSaveButton(vm.updatePending);\r\n } catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n };\r\n\r\n async function updateSqlConnection(product) {\r\n var postData = {\r\n \"ProductId\": product.ID,\r\n \"DatabaseName\": product.SQL_DatabaseName,\r\n \"HostName\": product.SQL_HostName,\r\n \"Instance\": product.SQL_Instance,\r\n \"Port\": product.SQL_Port,\r\n \"Password\": product.SQL_Password,\r\n \"UserName\": product.SQL_User\r\n };\r\n\r\n if (vm.originalConfig.SQL_Password === product.SQL_Password) {\r\n delete postData.Password;\r\n }\r\n\r\n vm.updatePending = new createSpinner();\r\n\r\n //Update Connection\r\n if (product.ConnectionExists === true) {\r\n try {\r\n await connectionsDataService.updateSqlConfig(product.ID, postData);\r\n helperService.successfulSaveButton(vm.updatePending);\r\n } catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n else {\r\n try {\r\n await connectionsDataService.createSqlConfig(product.ID, postData);\r\n product.ConnectionExists = true;\r\n helperService.successfulSaveButton(vm.updatePending);\r\n } catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n };\r\n\r\n async function setSalesForceObjects() {\r\n var fieldPermissionConfigurationGridColumns = [\r\n { template: \"\", width: 55, filterable: false },\r\n { field: \"displayLabel\", title: \"Name\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n await getObjects();\r\n\r\n vm.fieldPermissionConfigurationGridOptions = helperService.setNonPageableGridOptions(fieldPermissionConfigurationGridColumns, 300);\r\n vm.fieldPermissionConfigurationGridOptions.autoBind = false;\r\n vm.fieldPermissionConfigurationGridOptions.noRecords = {\r\n template: \"
No items to display
\"\r\n };\r\n\r\n vm.fieldPermissionConfigurationGridDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: async options => {\r\n try {\r\n let response = await connectionsDataService.getSfPermissionConfigByObject(vm.selectedObject.name);\r\n options.success(response.data);\r\n } catch {\r\n options.error();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n function ax7ImportDisabledUsersChange() {\r\n if (vm.currentConfig.AX7_AS_ShowDisabledUsers === \"0\") {\r\n vm.currentConfig.AX7_AS_ImportDisabledUserAccess = \"0\";\r\n }\r\n }\r\n\r\n function ax7ImportDisabledUserAccessChange() {\r\n if (vm.currentConfig.AX7_AS_ImportDisabledUserAccess === \"1\") {\r\n vm.currentConfig.AX7_AS_ShowDisabledUsers = \"1\";\r\n }\r\n }\r\n\r\n async function getObjects() {\r\n let response;\r\n\r\n vm.objectsDropdownLoading = true;\r\n\r\n try {\r\n response = await connectionsDataService.getSfPermissionConfig();\r\n\r\n if (typeof response.data === \"string\") {\r\n vm.invalidOrMissingCredentials = response.data;\r\n } else {\r\n vm.invalidOrMissingCredentials = null;\r\n vm.objectsDropdownDataSource = response.data;\r\n vm.selectedObject = vm.objectsDropdownDataSource[0];\r\n vm.objectsDropdownLoading = false;\r\n vm.fieldPermissionConfigurationGridDataSource.page(1);\r\n vm.objectsDropdownLoading = false;\r\n }\r\n } catch {\r\n vm.objectsDropdownLoading = false;\r\n }\r\n }\r\n\r\n function objectsDropdownChange() {\r\n vm.fieldPermissionConfigurationGridDataSource.read();\r\n }\r\n\r\n async function updateField(field) {\r\n if (field.enabled) {\r\n let data = {\r\n \"Field\": field.name,\r\n \"FieldLabel\": field.label,\r\n \"SobjectType\": vm.selectedObject.name,\r\n \"ObjectLabel\": vm.selectedObject.label\r\n },\r\n response;\r\n\r\n response = await connectionsDataService.createSfFieldPermissionConfig(data);\r\n field.Id = response.data;\r\n } else {\r\n await connectionsDataService.removeSfFieldPermissionConfig(field.Id);\r\n }\r\n }\r\n\r\n function getNsValidationData(config) {\r\n return {\r\n Account: config.NS_Account,\r\n TokenKey: config.NS_TokenKey,\r\n TokenSecret: config.NS_TokenSecret\r\n }\r\n }\r\n\r\n function sfImportTypeChange() {\r\n if (vm.currentConfig.SF_ImportType === '1') {\r\n vm.currentConfig.SF_UserName = null;\r\n vm.currentConfig.SF_Password = null;\r\n vm.currentConfig.SF_SecurityToken = null;\r\n } else {\r\n vm.currentConfig.SF_Url = null;\r\n vm.currentConfig.SF_ClientId = null;\r\n vm.currentConfig.SF_ClientSecret = null;\r\n }\r\n }\r\n}\r\n","import controller from \"./connectionSettings.controller\";\r\n\r\n/* connectionSettings.component.js */\r\n\r\n/**\r\n * @desc component for configuring product connection settings.\r\n * @example \r\n */\r\n\r\nconst connectionSettings = {\r\n bindings: {\r\n product: '<',\r\n currentConfig: '=',\r\n originalConfig: '<',\r\n configUpdate: '<',\r\n updateConfig: '<',\r\n hybridConnectionsArray: '<',\r\n configNames: '<',\r\n onUpdateNsRoleDropdown: '&',\r\n modules: '<'\r\n },\r\n controller: controller,\r\n controllerAs: 'csvm',\r\n templateUrl: '/App/Components/Connections/Connection/Settings/connectionSettings.tmpl.html'\r\n};\r\n\r\nexport default connectionSettings;","import editProductNameModalController from \"../editProductNameModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, ViewProductImportPageService) {\r\n var vm = this;\r\n\r\n vm.ViewProductImportPageService = ViewProductImportPageService;\r\n vm.getImportStatusClass = getImportStatusClass;\r\n vm.openEditProductName = openEditProductName;\r\n\r\n function getImportStatusClass(status) {\r\n const classes = {\r\n \"Completed\": \"toast-success\",\r\n \"InProgress\": \"toast-loading\",\r\n \"Error\": \"toast-error\"\r\n }\r\n\r\n return classes[status];\r\n }\r\n\r\n function openEditProductName() {\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/EditProductNameModal.html',\r\n controller: editProductNameModalController,\r\n controllerAs: 'epnmcvm',\r\n backdrop: 'static',\r\n resolve: {\r\n product: () => vm.product\r\n }\r\n });\r\n };\r\n}\r\n","import controller from \"./sapConnection.controller\";\r\n\r\n/* sapConnection.component.js */\r\n\r\n/**\r\n * @desc component for sap product connections\r\n * @example \r\n */\r\n\r\nconst sapConnection = {\r\n bindings: {\r\n product: '<',\r\n latestImportArray: '<',\r\n radioSelected: '<',\r\n setRadioSelected: '<',\r\n currentConfig: '<',\r\n originalConfig: '<',\r\n configUpdate: '<',\r\n updateConfig: '<',\r\n userSecurityList: '<'\r\n },\r\n controller: controller,\r\n controllerAs: 'scvm',\r\n templateUrl: '/App/Components/Connections/SapConnection/sapConnection.tmpl.html'\r\n};\r\n\r\nexport default sapConnection;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (helperService, connectionsDataService, manageDataDataService, sapSdSimulationDataService) {\r\n var vm = this;\r\n\r\n vm.$onInit = init;\r\n\r\n vm.updateSAPSdConnectionSettings = updateSAPSdConnectionSettings;\r\n vm.updateConfig = updateConfig;\r\n vm.configValuesHaveChanged = configValuesHaveChanged;\r\n vm.productValuesHaveChanged = productValuesHaveChanged;\r\n vm.sdConfigValuesHaveChanged = sdConfigValuesHaveChanged;\r\n vm.submitProduct = submitProduct;\r\n vm.updateSapProduct = updateSapProduct;\r\n\r\n async function init() {\r\n const navigationList = JSON.parse(localStorage.getItem(\"NavigationObjects\"));\r\n\r\n vm.showSAPSdConnectionSettings = false;\r\n vm.originalProduct = Object.assign({}, vm.product);\r\n vm.configNames = vm.product.Config.map(item => item.Name);\r\n\r\n await getConfigByProductValues();\r\n\r\n if (navigationList.some(navItem => navItem.ObjectID === 14000)) {\r\n vm.showSAPSdConnectionSettings = true;\r\n await getSAPSdConnectionSettings(vm.product.ID);\r\n }\r\n }\r\n\r\n async function submitProduct() {\r\n vm.updatePending = new createSpinner();\r\n\r\n await vm.updateSapProduct(vm.product);\r\n await updateConfig(vm.product.Config, vm.currentConfig, vm.originalConfig);\r\n };\r\n\r\n async function updateSapProduct(product) {\r\n var data = {\r\n \"AppServerHost\": product.AppServerHost,\r\n \"SystemNumber\": product.SystemNumber,\r\n \"SystemID\": product.SystemID,\r\n \"User\": product.User,\r\n \"Password\": product.Password,\r\n \"Client\": product.Client,\r\n \"Language\": product.Language,\r\n \"PoolSize\": product.PoolSize,\r\n \"ProductId\": product.ID\r\n };\r\n\r\n vm.updatePending = new createSpinner();\r\n\r\n //Update Connection\r\n if (product.ConnectionExists === true) {\r\n try {\r\n await connectionsDataService.updateSapProduct(product.ID, data)\r\n helperService.successfulSaveButton(vm.updatePending);\r\n } catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n else {\r\n try {\r\n await connectionsDataService.createSapProduct(product.ID, data);\r\n product.ConnectionExists = true;\r\n helperService.successfulSaveButton(vm.updatePending);\r\n } catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n };\r\n\r\n async function getConfigByProductValues() {\r\n let response = await manageDataDataService.getConfigurationByProductId(vm.product.ID),\r\n config = {};\r\n response.data.forEach(row => {\r\n config[row.Name] = row.Value;\r\n });\r\n\r\n vm.currentConfig = JSON.parse(JSON.stringify(config));\r\n vm.originalConfig = JSON.parse(JSON.stringify(config));\r\n }\r\n\r\n async function getSAPSdConnectionSettings(productId) {\r\n let response;\r\n \r\n try {\r\n response = await sapSdSimulationDataService.getIntegrationSettings(productId);\r\n vm.sapSDConfig = response.data;\r\n vm.origSapSDConfig = Object.assign({}, response.data);\r\n } catch {\r\n vm.sapSDConfig = {};\r\n vm.origSapSDConfig = {};\r\n }\r\n }\r\n\r\n async function updateSAPSdConnectionSettings() {\r\n vm.updateSdPending = new createSpinner();\r\n let data = { ...vm.sapSDConfig };\r\n\r\n data.SystemId = data.SystemID;\r\n data.ProductId = vm.product.ID;\r\n\r\n delete data.SystemID;\r\n\r\n try {\r\n await sapSdSimulationDataService.updateIntegrationSettings(vm.product.ID, data);\r\n helperService.successfulSaveButton(vm.updateSdPending);\r\n } catch {\r\n vm.updateSdPending.loadingValue = false;\r\n }\r\n }\r\n\r\n // update Configuration\r\n async function updateConfig(list, value, origVal) {\r\n let productPutData = {\r\n \"Configurations\": [],\r\n \"ProductId\": vm.product.ID\r\n };\r\n\r\n if (JSON.stringify(value) !== JSON.stringify(origVal)) {\r\n list.forEach(item => {\r\n if (!origVal || value[item.Name] !== origVal[item.Name]) {\r\n productPutData.Configurations.push({\r\n \"Name\": item.Name,\r\n \"Value\": value[item.Name]\r\n });\r\n }\r\n });\r\n vm.updatePending = new createSpinner();\r\n try {\r\n await manageDataDataService.setProductConfiguration(vm.product.ID, productPutData);\r\n helperService.successfulSaveButton(vm.updatePending);\r\n await getConfigByProductValues();\r\n } catch {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n }\r\n\r\n function configValuesHaveChanged() {\r\n return helperService.returnTrueIfValuesDiffer(vm.configNames, vm.originalConfig, vm.currentConfig);\r\n }\r\n\r\n function productValuesHaveChanged() {\r\n return !angular.equals(vm.originalProduct, vm.product);\r\n }\r\n\r\n function sdConfigValuesHaveChanged() {\r\n return !angular.equals(vm.sapSDConfig, vm.origSapSDConfig);\r\n }\r\n}\r\n\r\n","import controller from \"./sapConnectionSettings.controller\";\r\n\r\n/* sapConnectionSettings.component.js */\r\n\r\n/**\r\n * @desc component for configuring sap product connection settings.\r\n * @example \r\n */\r\n\r\nconst sapConnectionSettings = {\r\n bindings: {\r\n product: '<',\r\n currentConfig: '=',\r\n originalConfig: '<',\r\n configUpdate: '<'\r\n },\r\n controller: controller,\r\n controllerAs: 'scsvm',\r\n templateUrl: '/App/Components/Connections/SapConnection/Settings/sapConnectionSettings.tmpl.html'\r\n};\r\n\r\nexport default sapConnectionSettings;","import editProductNameModalController from \"../editProductNameModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($uibModal, ViewProductImportPageService) {\r\n var vm = this;\r\n\r\n vm.ViewProductImportPageService = ViewProductImportPageService;\r\n vm.getImportStatusClass = getImportStatusClass;\r\n vm.openEditProductName = openEditProductName;\r\n\r\n function getImportStatusClass(status) {\r\n const classes = {\r\n \"Completed\": \"toast-success\",\r\n \"InProgress\": \"toast-loading\",\r\n \"Error\": \"toast-error\"\r\n }\r\n\r\n return classes[status];\r\n }\r\n\r\n function openEditProductName() {\r\n $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/EditProductNameModal.html',\r\n controller: editProductNameModalController,\r\n controllerAs: 'epnmcvm',\r\n backdrop: 'static',\r\n resolve: {\r\n product: () => vm.product\r\n }\r\n });\r\n };\r\n}\r\n","import controller from \"./customProductConnection.controller\";\r\n\r\n/* connection.component.js */\r\n\r\n/**\r\n * @desc component for custom product connections\r\n * @example \r\n */\r\n\r\nconst customProductConnection = {\r\n bindings: {\r\n product: '<',\r\n radioSelected: '<',\r\n setRadioSelected: '<',\r\n latestImportArray: '<',\r\n currentConfig: '<',\r\n originalConfig: '<',\r\n allFpAuditConfigs: '<'\r\n },\r\n controller: controller,\r\n controllerAs: 'cpcvm',\r\n templateUrl: '/App/Components/Connections/CustomProductConnection/customProductConnection.tmpl.html'\r\n};\r\n\r\nexport default customProductConnection;","import createSpinner from \"../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (helperService, connectionsDataService, manageDataDataService) {\r\n const vm = this;\r\n\r\n vm.$onInit = init;\r\n\r\n vm.updateCustomProduct = updateCustomProduct;\r\n\r\n function init() {\r\n vm.product.updatePassword = false;\r\n\r\n if (vm.product.HasAuditTrailModule) { \r\n getProductConfiguration();\r\n }\r\n }\r\n\r\n function getProductConfiguration() {\r\n const fpAuditConfig = vm.allFpAuditConfigs.find(config => config.ProductId === vm.product.ID);\r\n\r\n vm.currentProductConfig = { ...fpAuditConfig };\r\n vm.originalProductConfig = { ...fpAuditConfig };\r\n vm.configName = fpAuditConfig.Name;\r\n }\r\n\r\n async function updateCustomProduct() {\r\n const product = vm.product;\r\n let sqlData = {\r\n ProductId: product.ID,\r\n DatabaseName: product.CustomProduct_DatabaseName,\r\n HostName: product.CustomProduct_HostName,\r\n Instance: product.CustomProduct_Instance,\r\n Port: product.CustomProduct_Port,\r\n Password: product.CustomProduct_Password,\r\n UserName: product.CustomProduct_User\r\n },\r\n productConfigData = {\r\n Configurations: [],\r\n ProductId: vm.product.ID\r\n };\r\n\r\n if (vm.product.HasAuditTrailModule) {\r\n if (vm.currentProductConfig.Value != vm.originalProductConfig.Value) {\r\n productConfigData.Configurations.push({\r\n \"Name\": vm.configName,\r\n \"Value\": vm.currentProductConfig.Value\r\n });\r\n }\r\n }\r\n\r\n vm.updatePending = true;\r\n vm.updatePending = new createSpinner();\r\n\r\n if (product.ConnectionExists === true) {\r\n if (!product.updatePassword) {\r\n sqlData[\"Password\"] = null;\r\n }\r\n\r\n try {\r\n if (vm.product.HasAuditTrailModule) {\r\n await manageDataDataService.setProductConfiguration(vm.product.ID, productConfigData);\r\n\r\n productConfigData.Configurations.forEach(config => {\r\n vm.originalProductConfig[config.Name] = config.Value;\r\n });\r\n }\r\n\r\n await connectionsDataService.updateSqlConfig(product.ID, sqlData);\r\n helperService.successfulSaveButton(vm.updatePending);\r\n } catch (response) {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n } else {\r\n try {\r\n await connectionsDataService.createSqlConfig(product.ID, sqlData);\r\n helperService.successfulSaveButton(vm.updatePending);\r\n product.ConnectionExists = true;\r\n } catch (response) {\r\n vm.updatePending.loadingValue = false;\r\n }\r\n }\r\n }\r\n}\r\n \r\n","import controller from \"./customProductConnectionSettings.controller\";\r\n\r\n/* customProductConnectionSettings.component.js */\r\n\r\n/**\r\n * @desc component for configuring custom product connection settings.\r\n * @example \r\n */\r\n\r\nconst customProductConnectionSettings = {\r\n bindings: {\r\n product: '<',\r\n currentConfig: '=',\r\n originalConfig: '<',\r\n configUpdate: '<',\r\n allFpAuditConfigs: '<'\r\n },\r\n controller: controller,\r\n controllerAs: 'cpcsvm',\r\n templateUrl: '/App/Components/Connections/CustomProductConnection/Settings/customProductConnectionSettings.tmpl.html'\r\n};\r\n\r\nexport default customProductConnectionSettings;","import createSpinner from \"../../../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, helperService, $http) {\r\n\r\n const vm = this;\r\n\r\n vm.scheduleTMImportStatusChanged = scheduleTMImportStatusChanged;\r\n vm.updateTMScheduleImport = updateTMScheduleImport;\r\n vm.updateProductScheduleStatus = updateProductScheduleStatus;\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.frequencies = ['Daily', 'Weekly', 'Monthly'];\r\n vm.daysInWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n vm.daysInMonth = helperService.getDayOfMonthDropdownOptions();\r\n vm.startTimeForScheduleTMImport = new Date();\r\n\r\n try {\r\n await getTMImportSchedule();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function getTMImportSchedule() {\r\n try {\r\n let response = await $http.get(apiUrl + 'api/transactionmonitoring/or/import/schedule');\r\n vm.importSchedule = response.data;\r\n vm.selectedFreqForScheduleTMImport = response.data.Frequency;\r\n vm.selectedDayOfWeekForScheduleTMImport = response.data.DayOfWeek;\r\n vm.selectedDayOfMonthForScheduleTMImport = response.data.DayOfMonth ? { Value: response.data.DayOfMonth } : null;\r\n vm.startTimeForScheduleTMImport = new Date(response.data.NextExecutionTime);\r\n vm.ScheduleTMImportIsOn = true;\r\n $scope.productImportScheduled = true;\r\n } catch {\r\n vm.importSchedule = null;\r\n vm.ScheduleTMImportIsOn = false;\r\n $scope.productImportScheduled = false;\r\n }\r\n }\r\n\r\n function scheduleTMImportStatusChanged(product) {\r\n if (vm.ScheduleTMImportIsOn == false && vm.importSchedule) {\r\n updateTMScheduleImport(false, product);\r\n }\r\n }\r\n\r\n function updateTMScheduleImport(isOn, product) {\r\n updateTMSchedule(isOn, vm.selectedFreqForScheduleTMImport, vm.selectedDayOfWeekForScheduleTMImport, vm.selectedDayOfMonthForScheduleTMImport, vm.startTimeForScheduleTMImport, apiUrl + 'api/transactionmonitoring/or/import/schedule', apiUrl + 'api/transactionmonitoring/or/import/schedule/disable', vm.importSchedule);\r\n $scope.productImportScheduled = isOn;\r\n }\r\n\r\n function updateProductScheduleStatus() {\r\n $scope.productImportScheduled = false;\r\n }\r\n\r\n async function updateTMSchedule(scheduleIsOn, frequency, dayOfWeek, dayOfMonth, startTime, scheduleUrl, disableUrl, downloadedSchedule) {\r\n vm.updateInProgress = new createSpinner();\r\n\r\n if (scheduleIsOn) {\r\n\r\n var dayOfMonthRequest;\r\n var dayOfWeekRequest;\r\n\r\n if (frequency === 'Daily') {\r\n dayOfMonthRequest = [];\r\n dayOfWeekRequest = [];\r\n } if (frequency === 'Weekly') {\r\n dayOfMonthRequest = [];\r\n dayOfWeekRequest = [dayOfWeek];\r\n } if (frequency === 'Monthly') {\r\n dayOfMonthRequest = [dayOfMonth.Value];\r\n dayOfWeekRequest = [];\r\n }\r\n\r\n let adjustedStartTime = new Date();\r\n adjustedStartTime.setHours(startTime.getHours());\r\n adjustedStartTime.setMinutes(startTime.getMinutes());\r\n adjustedStartTime = new Date(adjustedStartTime.toUTCString());\r\n adjustedStartTime = adjustedStartTime.toISOString();\r\n\r\n const putData = {\r\n \"Schedule\": {\r\n \"DayOfMonth\": dayOfMonthRequest[0],\r\n \"DayOfWeek\": dayOfWeekRequest[0],\r\n \"Frequency\": frequency,\r\n \"StartTime\": adjustedStartTime,\r\n \"TimeZone\": $rootScope.applicationTimeZone\r\n }\r\n };\r\n\r\n try {\r\n await $http.put(scheduleUrl, putData);\r\n getTMImportSchedule();\r\n helperService.successfulSaveButton(vm.updateInProgress);\r\n vm.updateInProgress.loadingValue = false;\r\n\r\n } catch (err) {\r\n helperService.showErrorMessage(err.data);\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n } if (scheduleIsOn == false) {\r\n if (downloadedSchedule) {\r\n try {\r\n await $http.put(disableUrl);\r\n getTMImportSchedule();\r\n vm.updateInProgress.loadingValue = false;\r\n } catch (err) {\r\n helperService.showErrorMessage(err.data);\r\n vm.updateInProgress.loadingValue = false;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/* transactionMonitoringSchedule.component.js */\r\n\r\nimport transactionMonitoringScheduleController from \"./transactionMonitoringSchedule.controller\";\r\n\r\n/**\r\n * @desc component to schedule Transaction Monitoring import\r\n * @example \r\n */\r\n\r\nconst transactionMonitoringSchedule = {\r\n controller: transactionMonitoringScheduleController,\r\n controllerAs: 'tmsvm',\r\n templateUrl: '/App/Components/Connections/Connection/Schedule/TransactionMonitoringSchedule/transactionMonitoringSchedule.tmpl.html'\r\n};\r\n\r\nexport default transactionMonitoringSchedule;","export default /*@ngInject*/ function ($rootScope) {\r\n const vm = this;\r\n\r\n vm.$onInit = init;\r\n\r\n async function init() {\r\n vm.hybridConnectionsArray = vm.hybridConnectionsArray;\r\n vm.helpObject = $rootScope.helpObject;\r\n }\r\n}","import hybridController from \"./partialHybridConnectionsInformation.controller\";\r\n\r\n/* partialHybridConnectionsInformation.component.js */\r\n\r\n/**\r\n * @desc component for displaying partial hybrid connection information\r\n * @example \r\n */\r\n\r\nconst partialHybridConnectionsInformation = {\r\n bindings: {\r\n hybridConnectionsArray: '<'\r\n },\r\n controller: hybridController,\r\n controllerAs: 'phcivm',\r\n templateUrl: '/App/Components/Connections/PartialHybridInformation/partialHybridConnectionsInformation.tmpl.html'\r\n};\r\n\r\nexport default partialHybridConnectionsInformation;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, $http, helperService, domain) {\r\n\r\n const vm = this;\r\n vm.cancel = cancel;\r\n vm.saveDomain = saveDomain;\r\n\r\n vm.domain = { ...domain };\r\n\r\n // Common functions\r\n function cancel() { $uibModalInstance.dismiss(); }\r\n\r\n async function saveDomain() {\r\n vm.savePending = new createSpinner();\r\n if (vm.domain.Id) {\r\n try {\r\n await $http.put(`${apiUrl}/api/plugins/activedirectory/domains/${vm.domain.Id}`, vm.domain);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n $uibModalInstance.close();\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n vm.savePending.loadingValue = false;\r\n }\r\n } else {\r\n try {\r\n await $http.post(`${apiUrl}/api/plugins/activedirectory/domains`, vm.domain);\r\n await helperService.successfulSaveButton(vm.savePending);\r\n $uibModalInstance.close();\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n vm.savePending.loadingValue = false;\r\n }\r\n }\r\n }\r\n\r\n}","import domainModalController from \"./domainModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($http, $uibModal, helperService) {\r\n\r\n const vm = this;\r\n\r\n vm.$onInit = activate;\r\n\r\n vm.openDomainModal = openDomainModal;\r\n vm.deleteDomain = deleteDomain;\r\n\r\n function activate() {\r\n getDomains();\r\n }\r\n\r\n async function getDomains() {\r\n let response = await $http.get(`${apiUrl}/api/plugins/activedirectory/domains`);\r\n vm.domainsDataSource = response.data;\r\n }\r\n\r\n async function openDomainModal(domain) {\r\n const domainModal = $uibModal.open({\r\n templateUrl: '/App/Components/Connections/activeDirectoryDomains/domainModal.html',\r\n controller: domainModalController,\r\n controllerAs: 'dmvm',\r\n backdrop: 'static',\r\n resolve: {\r\n domain: () => domain || {}\r\n }\r\n });\r\n\r\n try {\r\n await domainModal.result;\r\n getDomains();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n async function deleteDomain(domainId) {\r\n try {\r\n await $http.delete(`${apiUrl}/api/plugins/activedirectory/domains/${domainId}`);\r\n getDomains();\r\n } catch (error) {\r\n helperService.showErrorMessage(error.data);\r\n }\r\n }\r\n\r\n}","import activeDirectoryDomainsController from \"./activeDirectoryDomains.controller\";\r\n\r\n/* activeDirectoryDomains.component.js */\r\n\r\n/**\r\n * @desc component for displaying, adding, editing, and deleting active directory domains\r\n * @example \r\n */\r\n\r\nconst activeDirectoryDomains = {\r\n controller: activeDirectoryDomainsController,\r\n controllerAs: 'addvm',\r\n templateUrl: '/App/Components/Connections/activeDirectoryDomains/activeDirectoryDomains.tmpl.html'\r\n};\r\n\r\nexport default activeDirectoryDomains;","import angular from 'angular';\r\nimport connectionsDataService from '../Components/Connections/connectionsDataService.factory';\r\nimport connections from '../Components/Connections/connections.component';\r\nimport connection from '../Components/Connections/Connection/connection.component';\r\nimport connectionImport from '../Components/Connections/Connection/Import/connectionImport.component';\r\nimport connectionSchedule from '../Components/Connections/Connection/Schedule/connectionSchedule.component';\r\nimport connectionSettings from '../Components/Connections/Connection/Settings/connectionSettings.component';\r\nimport sapConnection from '../Components/Connections/SapConnection/sapConnection.component';\r\nimport sapConnectionSettings from '../Components/Connections/SapConnection/Settings/sapConnectionSettings.component';\r\nimport customProductConnection from '../Components/Connections/CustomProductConnection/customProductConnection.component';\r\nimport customProductConnectionSettings from '../Components/Connections/CustomProductConnection/Settings/customProductConnectionSettings.component';\r\nimport transactionMonitoringSchedule from '../Components/Connections/Connection/Schedule/TransactionMonitoringSchedule/transactionMonitoringSchedule.component';\r\nimport editProductNameModalController from '../Components/Connections/editProductNameModal.controller';\r\nimport partialHybridConnectionsInformation from '../Components/Connections/PartialHybridInformation/partialHybridConnectionsInformation.component';\r\nimport activeDirectoryDomains from '../Components/Connections/activeDirectoryDomains/activeDirectoryDomains.component';\r\n\r\nexport default angular\r\n .module('app.integrations.productConnections', [])\r\n .factory('connectionsDataService', connectionsDataService)\r\n .component(\"connections\", connections)\r\n .component(\"connection\", connection)\r\n .component(\"connectionImport\", connectionImport)\r\n .component(\"connectionSchedule\", connectionSchedule)\r\n .component(\"connectionSettings\", connectionSettings)\r\n .component(\"sapConnection\", sapConnection)\r\n .component(\"sapConnectionSettings\", sapConnectionSettings)\r\n .component(\"customProductConnection\", customProductConnection)\r\n .component(\"customProductConnectionSettings\", customProductConnectionSettings)\r\n .controller(\"editProductNameModalController\", editProductNameModalController)\r\n .component('transactionMonitoringSchedule', transactionMonitoringSchedule)\r\n .component('partialHybridConnectionsInformation', partialHybridConnectionsInformation)\r\n .component('activeDirectoryDomains', activeDirectoryDomains)\r\n .name;","export default /*@ngInject*/ function ($http, $injector, errorsDataService) {\r\n const factory = {\r\n createApiClient,\r\n updateApiClient,\r\n getApiClient,\r\n deleteApiClient,\r\n listApiClients,\r\n updateSecretStatus,\r\n generateSecret,\r\n deleteSecret\r\n };\r\n\r\n return factory;\r\n\r\n async function listApiClients() {\r\n return await $http.get(apiUrl + 'api/core/api-clients')\r\n .then(workComplete)\r\n .catch(workFailed); \r\n }\r\n\r\n async function getApiClient(apiClientId) {\r\n\r\n return await $http.get(apiUrl + 'api/core/api-clients/' + apiClientId)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n \r\n }\r\n\r\n async function createApiClient(apiClient) {\r\n\r\n return await $http.post(`${apiUrl}api/core/api-clients`, apiClient)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n \r\n }\r\n\r\n async function updateApiClient(id, apiClient) {\r\n return await $http.put(`${apiUrl}api/core/api-clients/` + id, apiClient)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n \r\n }\r\n async function deleteApiClient(id) {\r\n return await $http.delete(apiUrl + 'api/core/api-clients/' + id)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n \r\n }\r\n\r\n async function updateSecretStatus(apiClientId, secretId, active) {\r\n let routeStatus = active ? 'activate' : 'deactivate';\r\n return await $http.put(`${apiUrl}api/core/api-clients/${apiClientId}/secrets/${secretId}/${routeStatus}`)\r\n .then(workComplete)\r\n .catch(workFailed); \r\n }\r\n\r\n async function generateSecret(apiClientId) {\r\n let payload = {};\r\n let response = await $http.post(apiUrl + 'api/core/api-clients/' + apiClientId + '/secrets', payload)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n async function deleteSecret(apiClientId, secretId) {\r\n let payload = {};\r\n let response = await $http.delete(apiUrl + 'api/core/api-clients/' + apiClientId + '/secrets/' + secretId, payload)\r\n .then(workComplete)\r\n .catch(workFailed);\r\n }\r\n\r\n function workComplete(response) {\r\n return response;\r\n }\r\n\r\n function workFailed(response) {\r\n $injector.get('errorsDataService').catch(response);\r\n }\r\n}","import angular from 'angular';\r\nimport apiClientDataServiceFactory from '../Components/ApiClients/apiClientDataService.factory';\r\n\r\nexport default angular\r\n .module('app.integrations.factories', [])\r\n .factory('apiClientDataService', apiClientDataServiceFactory)\r\n .name;","import angular from 'angular';\r\n\r\n// module imports\r\nimport pluginsModule from './plugins.module';\r\nimport apiClientsModule from './apiClients.module';\r\nimport productConnectionsModule from './productConnections.module';\r\nimport integrationsFactoriesModule from './integrations.factories.module';\r\n\r\nexport default angular\r\n .module('app.integrations', [integrationsFactoriesModule, pluginsModule, apiClientsModule, productConnectionsModule])\r\n .name;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getRoles,\r\n getModules,\r\n getModulesByObjectId,\r\n getSecurableObjects,\r\n removeRole,\r\n removeRoleAccess,\r\n addRole,\r\n addRoleAccess\r\n };\r\n\r\n return service;\r\n\r\n // GET Calls\r\n async function getRoles() {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/Role`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getModules() {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/modules`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getModulesByObjectId(objectId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/objects/module/${objectId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getSecurableObjects(roleId, objectId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/roleaccesses/role/${roleId}/module/${objectId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n // DELETE calls\r\n async function removeRole(roleId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/core/Role/${roleId}`);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function removeRoleAccess(data) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/core/roleaccesses`, { data: data, headers: { 'Content-Type': 'application/json;charset=utf-8' } });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n // POST calls\r\n async function addRoleAccess(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/core/roleaccesses`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function addRole(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/core/Role`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n const service = {\r\n getRoleById,\r\n addAssignments,\r\n removeAssignments\r\n };\r\n\r\n return service;\r\n\r\n async function getRoleById(roleId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/users/role/${roleId}`);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addAssignments(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/core/userroles`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeAssignments(data) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/core/userroles`, { data: data, headers: { 'Content-Type': 'application/json;charset=utf-8' } });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n}","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getRolesByUserId,\r\n getUser,\r\n createUser,\r\n addSubstitute,\r\n setUserRole,\r\n changeSubstitute,\r\n updateUser,\r\n removeSubstitute,\r\n deleteUserRole,\r\n addOOFHours,\r\n removeOOFHours,\r\n importUsers,\r\n downloadUsersTemplate\r\n };\r\n\r\n return service;\r\n\r\n async function getRolesByUserId(userId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/role/user/${userId}`)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function getUser(userId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/users/${userId}`)\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function downloadUsersTemplate() {\r\n try {\r\n return await $http.get(`${apiUrl}api/core/users/export/usertemplate`, { responseType: \"blob\" });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n\r\n async function createUser(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/core/users`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addSubstitute(userId, data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/core/users/${userId}/substitutereviewer`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function setUserRole(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/core/userroles`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function changeSubstitute(userId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/core/users/${userId}/substitutereviewer`, data);\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function updateUser(userId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/core/users/${userId}`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function addOOFHours(userId, data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/core/users/${userId}/outofoffice`, data);\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function importUsers(fd) {\r\n try {\r\n return await $http.put(`${apiUrl}/api/core/users/import`, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n });\r\n } catch (err) {\r\n showError(err);\r\n sendError(err);\r\n }\r\n }\r\n\r\n async function removeSubstitute(userId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/core/users/${userId}/substitutereviewer`);\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n async function deleteUserRole(data) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/core/userroles`, { data: data, headers: { 'Content-Type': 'application/json;charset=utf-8' } });\r\n } catch (err) {\r\n showError(err);\r\n }\r\n }\r\n\r\n async function removeOOFHours(userId) {\r\n try {\r\n return await $http.delete(`${apiUrl}api/core/users/${userId}/outofoffice`);\r\n } catch (err) {\r\n errorsDataService.catch(err);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (passwordCriteriaDataService, helperService) {\r\n const vm = this;\r\n\r\n vm.helperService = helperService;\r\n vm.saveOrUpdatePasswordCriteria = saveOrUpdatePasswordCriteria;\r\n vm.criteriaValuesHaveChanged = criteriaValuesHaveChanged;\r\n vm.requireSpecialCharChanged = requireSpecialCharChanged;\r\n\r\n vm.$onInit = getCriteria;\r\n\r\n async function getCriteria() {\r\n vm.gettingCriteriaInProgress = true;\r\n\r\n try {\r\n const { data } = await passwordCriteriaDataService.getPasswordCriteria(vm.product.ID);\r\n\r\n vm.originalPasswordCriteria = data;\r\n vm.passwordCriteria = { ...vm.originalPasswordCriteria };\r\n\r\n if (data.SpecialChars) {\r\n vm.requireSpecialChar = true;\r\n }\r\n\r\n } catch (response) {\r\n if (response.status === 404) {\r\n vm.originalPasswordCriteria = {};\r\n vm.passwordCriteria = {};\r\n }\r\n }\r\n vm.gettingCriteriaInProgress = false;\r\n }\r\n\r\n async function saveOrUpdatePasswordCriteria() {\r\n vm.updatePasswordCriteriaPending = new createSpinner();\r\n\r\n let data = {\r\n ProductId: vm.product.ID,\r\n MinLength: vm.passwordCriteria.MinLength,\r\n MaxLength: vm.passwordCriteria.MaxLength,\r\n RequireCapitalLetter: vm.passwordCriteria.RequireCapitalLetter,\r\n RequireNumber: vm.passwordCriteria.RequireNumber,\r\n SpecialChars: vm.passwordCriteria.SpecialChars\r\n };\r\n\r\n if (Object.keys(vm.originalPasswordCriteria).length > 0) {\r\n try {\r\n await passwordCriteriaDataService.updatePasswordCriteria(data);\r\n vm.originalPasswordCriteria = { ...vm.passwordCriteria };\r\n await helperService.successfulSaveButton(vm.updatePasswordCriteriaPending);\r\n } catch {\r\n vm.updatePasswordCriteriaPending.loadingValue = false;\r\n }\r\n } else {\r\n try {\r\n await passwordCriteriaDataService.addPasswordCriteria(data);\r\n vm.originalPasswordCriteria = { ...vm.passwordCriteria };\r\n await helperService.successfulSaveButton(vm.updatePasswordCriteriaPending);\r\n } catch {\r\n vm.updatePasswordCriteriaPending.loadingValue = false;\r\n }\r\n }\r\n }\r\n\r\n function criteriaValuesHaveChanged(criteriaArray) {\r\n return helperService.returnTrueIfValuesDiffer(criteriaArray, vm.originalPasswordCriteria, vm.passwordCriteria);\r\n }\r\n\r\n function requireSpecialCharChanged() {\r\n if (vm.requireSpecialChar === false) {\r\n vm.passwordCriteria.SpecialChars = undefined;\r\n }\r\n }\r\n}","import passwordCriteriaController from \"./passwordCriteria.controller\";\r\n\r\n/* passwordCriteria.component.js */\r\n\r\n/**\r\n * @desc component for configuring password criteria\r\n * @example \r\n */\r\n\r\nconst passwordCriteria = {\r\n bindings: {\r\n product: '<'\r\n },\r\n controller: passwordCriteriaController,\r\n controllerAs: 'pcvm',\r\n templateUrl: '/App/Components/configuration/passwordCriteria/passwordCriteria.tmpl.html'\r\n};\r\n\r\nexport default passwordCriteria;","export default /*@ngInject*/ function ($http, errorsDataService) {\r\n\r\n const service = {\r\n getPasswordCriteria,\r\n addPasswordCriteria,\r\n updatePasswordCriteria\r\n };\r\n\r\n return service;\r\n\r\n async function getPasswordCriteria(productId) {\r\n try {\r\n return await $http.get(`${apiUrl}api/identitymanager/products/${productId}/passwordcriteria`);\r\n } catch (error) {\r\n if (error.status !== 404) {\r\n showError(error);\r\n }\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function addPasswordCriteria(data) {\r\n try {\r\n return await $http.post(`${apiUrl}api/identitymanager/products/${data.ProductId}/passwordcriteria`, data);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n async function updatePasswordCriteria(data) {\r\n try {\r\n return await $http.put(`${apiUrl}api/identitymanager/products/${data.ProductId}/passwordcriteria`, data);\r\n } catch (error) {\r\n showError(error);\r\n sendError(error);\r\n }\r\n }\r\n\r\n function sendError(err) {\r\n throw err;\r\n }\r\n\r\n function showError(err) {\r\n errorsDataService.catch(err);\r\n }\r\n}","import { customAutoCompleteFilter, customDatePickerFilter, standardGridPageSize } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, $scope, $filter, SavedReportSelectorService, objectIdDataService, CustomReportServices, $http, $timeout, helperService, reportsService, reportsDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.reportDetailsModel = [];\r\n\r\n vm.onApplyFilter = onApplyFilter;\r\n vm.onReadGrid = onReadGrid;\r\n vm.onClearFilters = onClearFilters;\r\n vm.populateCriteriaModel = populateCriteriaModel;\r\n vm.generateGridWithDynamicValues = generateGridWithDynamicValues;\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n vm.filterCriteria = {};\r\n vm.filterCriteria.query = [];\r\n vm.filterCriteria.dateQuery = [];\r\n // ---\r\n\r\n vm.hideExportOptionsFromSubmit = false;\r\n\r\n vm.filterManagerGridOptions = CustomReportServices.setfilterManagerGridOptions();\r\n vm.filterDropdownOptions = helperService.getFilterDropdownOptions();\r\n\r\n $scope.$on('kendoWidgetCreated', function () {\r\n if (vm.grid) {\r\n vm.gridReady = true;\r\n runSavedReport();\r\n }\r\n });\r\n\r\n activate();\r\n\r\n async function activate() {\r\n await getObjectId();\r\n\r\n // --- Grid Initialization ---\r\n await setGridLayout();\r\n // ---\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n await getReportMetadata();\r\n vm.filterCriteria.fields = reportsService.getFields(vm.reportMetadata.Columns);\r\n\r\n if ($rootScope.loadedSavedReport) {\r\n runSavedReport();\r\n }\r\n // ---\r\n\r\n // -- AUTO RUN REPORT ---\r\n if ($rootScope.UserPreferences.AutoRunDashboardReports === '1') {\r\n await generateGridWithDynamicValues();\r\n }\r\n // ---\r\n }\r\n\r\n async function getObjectId() {\r\n let objectId = await objectIdDataService.getObjectID();\r\n let securityObject = helperService.getSecurityObjectDetailsFromObjectId(objectId);\r\n\r\n vm.ObjectId = objectId;\r\n vm.reportName = securityObject.Name;\r\n vm.reportId = securityObject.ReportID;\r\n\r\n vm.filtersDataSource = CustomReportServices.setfiltersDataSource(vm.ObjectId);\r\n }\r\n\r\n async function setGridLayout() {\r\n const rowSettingsTemplate = ``;\r\n\r\n const ticketTemplate = `{{ dataItem.TicketProvider }}   {{dataItem.TicketId}}\r\n {{ dataItem.TicketProvider }}   {{dataItem.TicketId}}`;\r\n\r\n try {\r\n let savedLayoutColumns = await CustomReportServices.loadSavedDynamicGridLayout(vm)\r\n\r\n vm.auditLogGridOptions = helperService.setMainGridOptions(savedLayoutColumns, 600);\r\n vm.auditLogGridOptions.autoBind = false;\r\n await createGridDataSource();\r\n } catch {\r\n const auditLogGridColumns = [\r\n { title: \"\", template: rowSettingsTemplate, attributes: { \"class\": \"no-padding overflow-visible\" }, minResizableWidth: 22, width: 22 },\r\n { field: \"TicketDisplayName\", title: \"Ticket\", template: ticketTemplate, filterable: false, sortable: false },\r\n { field: \"ObjectName\", title: \"Report Name\", filterable: customAutoCompleteFilter },\r\n { field: \"ChangeType\", title: \"Change Type\", filterable: customAutoCompleteFilter },\r\n { field: \"ChangeDate\", title: \"Change Date\", template: \"{{ dataItem.ChangeDate | date:'short'}}\", filterable: customDatePickerFilter },\r\n { field: \"BeforeObject\", title: \"Before\", encoded: false, filterable: customAutoCompleteFilter },\r\n { field: \"AfterObject\", title: \"After\", encoded: false, filterable: customAutoCompleteFilter },\r\n { field: \"UserName\", title: \"User\", filterable: customAutoCompleteFilter },\r\n { field: \"TicketId\", title: \"Ticket Id\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"AuditId\", title: \"Audit Id\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"TicketUrl\", title: \"Ticket Url\", hidden: true, filterable: customAutoCompleteFilter },\r\n { field: \"TicketProvider\", title: \"Ticket Provider\", hidden: true, filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.auditLogGridOptions = helperService.setMainGridOptions(auditLogGridColumns, 600);\r\n vm.auditLogGridOptions.selectable = false;\r\n vm.auditLogGridOptions.autoBind = false;\r\n await createGridDataSource();\r\n }\r\n }\r\n\r\n function createGridDataSource() {\r\n vm.auditLogGridDataSource = new kendo.data.DataSource({\r\n pageSize: standardGridPageSize,\r\n schema: {\r\n model: {\r\n fields: {\r\n ChangeDate: { type: \"date\" }\r\n }\r\n }\r\n },\r\n transport: {\r\n read: async function (options) {\r\n delete $rootScope.loadedSavedReport;\r\n\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n\r\n let data = {};\r\n\r\n data = helperService.prepareSortsAndFilters(options);\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n if (vm.filterCriteria.query) {\r\n data.Filters = data.Filters.concat(vm.filterCriteria.query);\r\n data.DateFilters = vm.filterCriteria.dateQuery;\r\n }\r\n // ---\r\n\r\n try {\r\n let response = await $http({\r\n method: 'POST',\r\n url: apiUrl + 'api/core/auditlogs',\r\n data: data,\r\n params: {\r\n startDate: vm.startDate,\r\n endDate: vm.endDate\r\n }\r\n });\r\n options.success(response.data);\r\n vm.enableGrid = true;\r\n } catch (err) {\r\n options.error(err);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n function generateGridWithDynamicValues() {\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.dataSource._filter = null;\r\n vm.grid.dataSource._sort = null;\r\n }\r\n\r\n vm.hideExportOptionsFromSubmit = true;\r\n\r\n // Add back the sorting and filtering options if we are running the report for the first time\r\n if (!$rootScope.loadedSavedReport) {\r\n vm.grid.setOptions({\r\n filterable: {\r\n mode: \"row\"\r\n },\r\n sortable: true\r\n });\r\n }\r\n\r\n vm.auditLogGridDataSource.read();\r\n\r\n $timeout(async _ => {\r\n await SavedReportSelectorService.queryAuditLogsGridWithOptions($rootScope.loadedSavedReport, vm.grid, true);\r\n }, 500);\r\n }\r\n\r\n async function runSavedReport() {\r\n if (vm.gridReady && $rootScope.loadedSavedReport && vm.filterCriteria.fields) {\r\n vm.filterCriteria.query = reportsService.getSavedReportFilters();\r\n vm.filterCriteria.needsUpdate = true;\r\n await generateGridWithSelectedValues();\r\n } else if (vm.gridReady && !$rootScope.loadedSavedReport && vm.filterCriteria.fields) {\r\n populateCriteriaModel();\r\n }\r\n }\r\n\r\n function populateCriteriaModel() {\r\n // if tabs are on, save report info for the tab\r\n if ($rootScope.tabs.length > 0) {\r\n reportsService.saveTabReportInfo(vm);\r\n }\r\n\r\n vm.reportDetailsModel = [];\r\n }\r\n\r\n function onApplyFilter(selectedFilter) {\r\n const currentOptions = vm.grid.getOptions();\r\n\r\n if (selectedFilter && selectedFilter.Filters && selectedFilter.Filters.length > 0) {\r\n currentOptions.dataSource.filter = helperService.convertFiltersForGrid({}, selectedFilter.Filters);\r\n try {\r\n vm.grid.dataSource._filter = currentOptions.dataSource.filter;\r\n vm.grid.dataSource.read();\r\n }\r\n catch (err) {\r\n vm.auditLogGridDataSource.filter({});\r\n }\r\n }\r\n }\r\n\r\n function onReadGrid() {\r\n vm.auditLogGridDataSource.read();\r\n }\r\n\r\n function onClearFilters() {\r\n vm.auditLogGridDataSource.filter({});\r\n }\r\n\r\n // --- FOR ADVANCED FILTERING ---\r\n async function getReportMetadata() {\r\n let response = await reportsDataService.getReportMetadata(vm.reportId);\r\n\r\n vm.reportMetadata = response.data._embedded.reportData;\r\n vm.reportMetadata.Columns = $filter('orderBy')(vm.reportMetadata.Columns, 'DisplayName');\r\n\r\n return vm.reportMetadata;\r\n }\r\n\r\n}\r\n","import auditLogsController from \"./auditLogs.controller\";\r\n\r\n/* auditLogs.component.js */\r\n\r\n/**\r\n * @desc component for viewing audit logs\r\n * @example \r\n */\r\n\r\nconst auditLogs = {\r\n controller: auditLogsController,\r\n controllerAs: 'alvm',\r\n templateUrl: '/App/Components/AuditLogs/auditLogs.tmpl.html'\r\n};\r\n\r\nexport default auditLogs;","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (user, usersDataService, helperService, $uibModalInstance) {\r\n const vm = this;\r\n vm.user = { ...user };\r\n vm.cancel = cancel;\r\n vm.saveUser = saveUser;\r\n\r\n\r\n async function saveUser() {\r\n vm.savingUser = createSpinner();\r\n const data = {\r\n UserId: vm.user.UserID,\r\n Name: vm.user.UserLogonName,\r\n Active: vm.user.Active,\r\n Email: vm.user.Email\r\n }\r\n try {\r\n await usersDataService.updateUser(vm.user.UserID, data);\r\n await helperService.successfulSaveButton(vm.savingUser);\r\n $uibModalInstance.close();\r\n } catch (err) {\r\n vm.savingUser.loadingValue = false;\r\n return;\r\n }\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n}","import createSpinner from \"../../../Shared/Functions/createSpinner\";\r\n\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, FileSaver, usersDataService) {\r\n\r\n const vm = this;\r\n vm.cancel = cancel;\r\n vm.dismiss = dismiss;\r\n vm.disableButton = false;\r\n vm.importUsers = importUsers;\r\n vm.downloadUsersTemplate = downloadUsersTemplate;\r\n\r\n function cancel() { $uibModalInstance.close(); }\r\n function dismiss() { $uibModalInstance.dismiss(); }\r\n\r\n // Import Users\r\n async function importUsers(file) {\r\n vm.importPending = new createSpinner;\r\n vm.disableButton = true;\r\n let fd = new FormData();\r\n fd.append(file[0].name, file[0].file);\r\n try {\r\n await usersDataService.importUsers(fd);\r\n await helperService.successfulSaveButton(vm.importPending);\r\n cancel();\r\n } catch {\r\n vm.importPending.loadingValue = false;\r\n vm.disableButton = false;\r\n }\r\n }\r\n\r\n // Export Users\r\n async function downloadUsersTemplate() {\r\n vm.downloadPending = new createSpinner();\r\n try {\r\n let response = await usersDataService.downloadUsersTemplate();\r\n await helperService.successfulSaveButton(vm.downloadPending);\r\n FileSaver.saveAs(response.data, 'UsersTemplate.xlsx');\r\n vm.downloadPending.loadingValue = false;\r\n } catch {\r\n vm.downloadPending.loadingValue = false;\r\n }\r\n }\r\n\r\n}\r\n\r\n","import swal from \"sweetalert2\";\r\nimport createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function (allowLocalAccounts, $filter, $uibModalInstance, $http, helperService, configurationDataService, usersDataService, errorsDataService) {\r\n const vm = this;\r\n\r\n vm.user = {};\r\n vm.helperService = helperService;\r\n\r\n vm.cancel = cancel;\r\n vm.addNewUser = addNewUser;\r\n\r\n activate();\r\n\r\n function activate() {\r\n vm.needsProvider = null;\r\n getIdentityProviders();\r\n }\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n async function getIdentityProviders() {\r\n let response = await configurationDataService.getIdentityProviders();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n if (allowLocalAccounts !== \"1\") {\r\n response.data = response.data.filter(provider => provider.Protocol !== 'Local');\r\n }\r\n vm.providersList = response.data;\r\n }\r\n\r\n async function addNewUser() {\r\n vm.disableButton = new createSpinner();\r\n\r\n if (vm.needsProvider === null) {\r\n // we need to check the email for a matching existing account\r\n try {\r\n const accountExists = await checkEmail(vm.user.loginEmail);\r\n if (accountExists.data === true) {\r\n const existingUser = await getAccount(vm.user.loginEmail);\r\n vm.user.email = existingUser.data.EmailAddress;\r\n const existingProvider = vm.providersList.find(provider => provider.Name === existingUser.data.IdentityProvider)\r\n if (existingProvider) {\r\n vm.user.type = existingProvider.Id;\r\n } else {\r\n showInvalidIdpMessage(existingUser.data.IdentityProvider);\r\n vm.needsProvider = null;\r\n vm.disableButton.loadingValue = false;\r\n return;\r\n }\r\n vm.needsProvider = false;\r\n }\r\n else {\r\n vm.needsProvider = true;\r\n vm.user.email = vm.user.loginEmail;\r\n vm.disableButton.loadingValue = false;\r\n return;\r\n }\r\n\r\n } catch (error) {\r\n errorsDataService.catch(error);\r\n vm.disableButton.loadingValue = false;\r\n return;\r\n } \r\n }\r\n\r\n const data = {\r\n FirstName: vm.user.firstName,\r\n LastName: vm.user.lastName,\r\n Email: vm.user.email,\r\n IdentityProviderId: vm.user.type,\r\n IdentityUserId: vm.user.loginEmail\r\n };\r\n\r\n try {\r\n const response = await usersDataService.createUser(data);\r\n await helperService.successfulSaveButton(vm.disableButton);\r\n $uibModalInstance.close(response.data);\r\n } catch (error) {\r\n if (error.status === 400 && error.data.includes('already exists')) {\r\n vm.needsProvider = null;\r\n }\r\n vm.disableButton.loadingValue = false;\r\n }\r\n };\r\n\r\n async function showInvalidIdpMessage(identityProvider) {\r\n await swal({\r\n title: \"Identity Provider Not Found\",\r\n text: `The Identity Provider ${identityProvider} has not been associated with this tenant. Please contact support to add the ${identityProvider} Identity Provider to this tenant.`,\r\n type: \"warning\",\r\n showCancelButton: false,\r\n confirmButtonText: \"Close\",\r\n reverseButtons: false,\r\n showCloseButton: true\r\n });\r\n }\r\n\r\n async function checkEmail(email) {\r\n return await $http.get(`${apiUrl}api/auth/accounts/search`, { params: { 'email': email } });\r\n }\r\n\r\n async function getAccount(email) {\r\n return await $http.get(`${apiUrl}api/auth/accounts`, { params: { 'email': email } });\r\n }\r\n\r\n}","import swal from \"sweetalert2\";\r\nimport { customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\nimport editUserModalController from \"./EditModal/editUserModal.controller\";\r\nimport importUsersModalController from \"./ImportModal/importUsersModal.controller\";\r\nimport newUsersModalController from \"./newUsersModal.controller\";\r\nimport substituteModalController from \"./SubstituteModal/substituteModal.controller\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $uibModal, dataService, $filter, $rootScope, helperService, usersDataService) {\r\n const vm = this;\r\n\r\n vm.shouldBeOpen = true;\r\n vm.preselectUserId = null;\r\n vm.listOfUsers = null;\r\n vm.menuOptions = [\r\n {\r\n text: 'Edit',\r\n click: function ($itemScope, $event, modelValue) {\r\n const user = modelValue;\r\n vm.editUser(user);\r\n }\r\n },\r\n {\r\n text: 'Out of Office Manager',\r\n click: function ($itemScope, $event, modelValue) {\r\n const user = modelValue;\r\n vm.openSubstituteModal(user);\r\n },\r\n displayed: function (modelValue) {\r\n return $rootScope.UserSecurityList['2108'];\r\n }\r\n }\r\n ];\r\n\r\n vm.removeSubstitute = removeSubstitute;\r\n vm.removeOOFHours = removeOOFHours;\r\n vm.openSubstituteModal = openSubstituteModal;\r\n vm.changeRowSelected = changeRowSelected;\r\n vm.toggleUsersActiveState = toggleUsersActiveState;\r\n vm.toggleRoleState = toggleRoleState;\r\n vm.openNewModal = openNewModal;\r\n vm.editUser = editUser;\r\n vm.saveNameChange = saveNameChange;\r\n vm.openUserImportModal = openUserImportModal;\r\n\r\n $scope.$on('ImportUsers', function (event, data) {\r\n getUsers();\r\n });\r\n\r\n activate();\r\n\r\n function activate() {\r\n checkLocalAccounts();\r\n getUsers();\r\n setupAssignRolesGrid();\r\n }\r\n\r\n async function checkLocalAccounts() {\r\n let data = await helperService.getConfigurationValue('AllowLocalAccounts');\r\n vm.AllowLocalAccounts = data;\r\n }\r\n\r\n //Load List of users\r\n async function getUsers() {\r\n let response = await dataService.getUsers();\r\n vm.listOfUsers = $filter('orderBy')(response.data, 'UserLogonName');\r\n findSubstituteNames(vm.listOfUsers);\r\n if (vm.preselectUserId) {\r\n let user = response.data.find(e => vm.preselectUserId == e.UserID);\r\n vm.changeRowSelected(user);\r\n }\r\n }\r\n\r\n function changeRowSelected(dataItem) {\r\n\r\n let previousSelectedUser = { ...vm.selectedUser };\r\n vm.selectedUser = dataItem;\r\n\r\n if (previousSelectedUser && dataItem) {\r\n if (previousSelectedUser.UserID !== dataItem.UserID) {\r\n vm.assignRolesGridDataSource.read();\r\n }\r\n } else if (dataItem) {\r\n vm.assignRolesGridDataSource.read();\r\n }\r\n };\r\n\r\n function setupAssignRolesGrid() {\r\n vm.assignRolesGridOptions = {\r\n sortable: true,\r\n autoBind: false,\r\n height: 315,\r\n\r\n pageable: {\r\n numeric: false,\r\n previousNext: false,\r\n messages: {\r\n display: \"Total: {2}\"\r\n }\r\n },\r\n columns: [{\r\n title: \" \",\r\n template: \"\",\r\n width: 55,\r\n filterable: false\r\n },\r\n {\r\n field: \"Name\",\r\n filterable: customAutoCompleteFilter\r\n }\r\n\r\n ]\r\n };\r\n\r\n vm.assignRolesGridDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: async options => {\r\n\r\n let objectModel = function (ID, Name, ObjectID, SelectedRoleCheckbox) {\r\n this.ID = ID,\r\n this.Name = Name,\r\n this.ObjectID = ObjectID,\r\n this.SelectedRoleCheckbox = SelectedRoleCheckbox;\r\n };\r\n\r\n let allRoles = await dataService.getRoles();\r\n allRoles.data = $filter('orderBy')(allRoles.data, 'Name');\r\n let roles = [];\r\n allRoles.data.forEach(function (item) {\r\n roles.push(new objectModel(item.ID, item.Name, item.ObjectID, false));\r\n });\r\n\r\n let userRoles = await usersDataService.getRolesByUserId(vm.selectedUser.UserID);\r\n userRoles.data.forEach(item => {\r\n for (let j = 0; j < roles.length; j++) {\r\n if (roles[j].ID === item.ID) {\r\n roles[j].SelectedRoleCheckbox = true;\r\n break;\r\n }\r\n }\r\n });\r\n\r\n options.success(roles);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function toggleUsersActiveState(dataItem) {\r\n let response = await usersDataService.getUser(dataItem.UserID);\r\n let data = {\r\n UserId: response.data.UserID,\r\n Name: response.data.UserLogonName,\r\n Email: response.data.Email,\r\n Active: dataItem.Active\r\n };\r\n try {\r\n await usersDataService.updateUser(dataItem.UserID, data);\r\n } catch {\r\n dataItem.Active = !dataItem.Active;\r\n }\r\n }\r\n\r\n async function toggleRoleState(dataItem) {\r\n let data = {\r\n UserRoles: [{\r\n roleId: dataItem.ID,\r\n userId: vm.selectedUser.UserID\r\n }]\r\n };\r\n\r\n if (dataItem.SelectedRoleCheckbox === true) {\r\n // set the role for the user\r\n await usersDataService.setUserRole(data);\r\n } else {\r\n // delete the role for the user\r\n await usersDataService.deleteUserRole(data);\r\n }\r\n };\r\n\r\n async function openNewModal() {\r\n let newUserModal = $uibModal.open({\r\n templateUrl: '/App/Shared/Partials/newUserModal.html',\r\n controller: newUsersModalController,\r\n controllerAs: 'numvm',\r\n backdrop: 'static',\r\n resolve: {\r\n allowLocalAccounts: () => vm.AllowLocalAccounts\r\n }\r\n });\r\n\r\n try {\r\n vm.preselectUserId = await newUserModal.result;\r\n getUsers();\r\n } catch {\r\n return;\r\n }\r\n };\r\n\r\n\r\n async function editUser(user) {\r\n let modal = $uibModal.open({\r\n templateUrl: '/App/Components/Users/EditModal/editUserModal.html',\r\n controller: editUserModalController,\r\n controllerAs: 'eumvm',\r\n backdrop: 'static',\r\n resolve: {\r\n user: () => user\r\n }\r\n });\r\n\r\n try {\r\n await modal.result;\r\n getUsers();\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n //Save the new name\r\n async function saveNameChange(item) {\r\n let postItem = {\r\n 'UserId': item.UserID,\r\n 'Name': item.changeNameTo,\r\n 'Active': item.Active\r\n };\r\n await usersDataService.updateUser(item.UserID, postItem);\r\n item.editModeOn = false;\r\n item.UserLogonName = item.changeNameTo;\r\n };\r\n\r\n function findSubstituteNames(users) {\r\n users.forEach(user => {\r\n if (user.SubstituteReviewer) {\r\n user.SubstituteReviewer.UserLogonName = users.find(u => u.UserID === user.SubstituteReviewer.SubstituteUserId).UserLogonName;\r\n }\r\n });\r\n }\r\n\r\n async function openSubstituteModal(user) {\r\n let modal = $uibModal.open({\r\n templateUrl: '/App/Components/Users/SubstituteModal/substituteModal.html',\r\n controller: substituteModalController,\r\n controllerAs: 'smvm',\r\n backdrop: 'static',\r\n resolve: {\r\n user: () => user,\r\n source: () => 'usersPage'\r\n }\r\n });\r\n\r\n try {\r\n await modal.result;\r\n getUsers();\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function removeSubstitute(user) {\r\n\r\n const substituteName = user.SubstituteReviewer.UserLogonName;\r\n\r\n try {\r\n if (user.OutOfOfficeHours) {\r\n await swal(helperService.areYouSureParamsWithHTML('Remove Substitute', `
Are you sure you want to remove ${substituteName} as a substitute reviewer?
This will also remove associated out of office hours.
`, 'Remove'));\r\n }\r\n await usersDataService.removeSubstitute(user.UserID);\r\n getUsers();\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function removeOOFHours(user) {\r\n await usersDataService.removeOOFHours(user.UserID);\r\n getUsers();\r\n }\r\n\r\n\r\n async function openUserImportModal() {\r\n $uibModal.open({\r\n templateUrl: 'App/Components/Users/ImportModal/importUsersModal.html',\r\n controller: importUsersModalController,\r\n controllerAs: 'iumvm',\r\n backdrop: 'static',\r\n });\r\n\r\n };\r\n\r\n}\r\n\r\n","import usersController from \"./users.controller\";\r\n\r\n/* users.component.js */\r\n\r\n/**\r\n * @desc component for displaying and managing tenant users\r\n * @example \r\n */\r\n\r\nvar users = {\r\n controller: usersController,\r\n controllerAs: 'uvm',\r\n templateUrl: '/App/Components/Users/users.html'\r\n};\r\n\r\nexport default users;","import createSpinner from \"../../Shared/Functions/createSpinner\";\r\n\r\nexport default /*@ngInject*/ function ($uibModalInstance, helperService, rolesDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.cancel = cancel;\r\n vm.createRole = createRole;\r\n\r\n\r\n function cancel() {\r\n $uibModalInstance.dismiss();\r\n }\r\n\r\n async function createRole() {\r\n vm.saving = new createSpinner();\r\n let data = {\r\n \"Name\": vm.newRoleName\r\n };\r\n\r\n try {\r\n let response = await rolesDataService.addRole(data);\r\n await helperService.successfulSaveButton(vm.saving);\r\n $uibModalInstance.close(response.data);\r\n } catch {\r\n vm.saving.loadingValue = false;\r\n }\r\n\r\n }\r\n\r\n}","import newRoleModalController from \"./newRoleModal.controller\";\r\nimport swal from \"sweetalert2\";\r\nimport { customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, $uibModal, $filter, helperService, rolesDataService) {\r\n\r\n const vm = this;\r\n\r\n vm.openNewRoleModal = openNewRoleModal;\r\n vm.deleteRole = deleteRole;\r\n vm.selectedRoleChanged = selectedRoleChanged;\r\n vm.selectedModuleChanged = selectedModuleChanged;\r\n vm.search;\r\n vm.searchChanged = searchChanged;\r\n vm.changeFilter = changeFilter;\r\n vm.selectRoles = selectRoles;\r\n vm.selectAllRoles = selectAllRoles;\r\n vm.selectedType = {};\r\n vm.dropdownFilters = [\r\n { name: \"All Types\", id: null },\r\n { name: \"Place\", id: 2 },\r\n { name: \"Report\", id: 3 },\r\n { name: \"Dialog\", id: 4 },\r\n { name: \"Action\", id: 5 },\r\n { name: \"Data\", id: 6 }\r\n ]\r\n\r\n activate();\r\n\r\n async function activate() {\r\n vm.selectedType = {};\r\n vm.selectedRole = null;\r\n\r\n let response = await rolesDataService.getModules();\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.modulesDataSource = response.data;\r\n getRoles(null);\r\n }\r\n\r\n async function openNewRoleModal() {\r\n let newRoleModal = $uibModal.open({\r\n templateUrl: '/App/Components/Roles/newRoleModal.html',\r\n controller: newRoleModalController,\r\n controllerAs: 'nrmvm',\r\n backdrop: 'static'\r\n });\r\n\r\n try {\r\n let newRoleId = await newRoleModal.result;\r\n getRoles(newRoleId);\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n async function getRoles(preselect) {\r\n vm.selectedModule = null;\r\n\r\n let response = await rolesDataService.getRoles();\r\n if (preselect) {\r\n let mostRecentRole = response.data.find(r => r.ID === preselect);\r\n response.data = response.data.filter(i => i.ID !== preselect);\r\n response.data.unshift(mostRecentRole);\r\n vm.rolesDataSource = response.data;\r\n selectedRoleChanged(mostRecentRole);\r\n } else {\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n vm.selectedRole = null;\r\n vm.rolesDataSource = response.data;\r\n }\r\n }\r\n\r\n async function deleteRole(role) {\r\n try {\r\n await swal(helperService.areYouSureParams('Delete Role', 'Are you sure you want to delete role ' + role.Name + '?', 'Delete'));\r\n await rolesDataService.removeRole(role.ID);\r\n getRoles(null);\r\n } catch (_) {\r\n return;\r\n }\r\n }\r\n\r\n function selectedRoleChanged(event, selectedRole) {\r\n var isRemoval = event.target.classList.contains(\"fa-trash-o\");\r\n\r\n if (selectedRole !== vm.selectedRole && !isRemoval) {\r\n vm.selectedRole = selectedRole;\r\n vm.selectedModule = null;\r\n vm.selectedType = {};\r\n }\r\n }\r\n\r\n function selectedModuleChanged(selectedModule) {\r\n vm.selectedModule = selectedModule;\r\n if (!vm.homeRolesGridDataSource) {\r\n createHomeRolesGrid();\r\n } else {\r\n vm.homeRolesGridDataSource.read();\r\n vm.selectedType = {};\r\n changeFilter(null);\r\n }\r\n }\r\n\r\n async function selectRoles(roles) {\r\n vm.selectionProcessing = true;\r\n //The Value of the checkbox determines which event to fire\r\n let selectedCheckboxValue = roles[0]?.SelectedCheckbox;\r\n let data = {\r\n \"RoleAccesses\": []\r\n };\r\n roles.forEach(role => {\r\n data.RoleAccesses.push({\r\n \"RoleId\": vm.selectedRole.ID,\r\n \"ObjectId\": role.ObjectID\r\n });\r\n });\r\n if (selectedCheckboxValue === true) {\r\n await rolesDataService.addRoleAccess(data);\r\n } else {\r\n await rolesDataService.removeRoleAccess(data);\r\n }\r\n setColumnHeaderToggle(vm.homeRolesGridDataSource.view());\r\n vm.selectionProcessing = false;\r\n vm.allSelectionProcessing = false;\r\n $rootScope.$broadcast('navigation-or-security-change');\r\n }\r\n\r\n function changeFilter(dropdownFilter) {\r\n let dynamicFilter = {};\r\n\r\n if (!dropdownFilter?.id) {\r\n dynamicFilter = {};\r\n } else {\r\n dynamicFilter = { \"filters\": [{ \"operator\": \"eq\", \"value\": dropdownFilter.id, \"field\": \"TypeID\" }], \"logic\": \"and\" };\r\n }\r\n\r\n vm.homeRolesGridDataSource.filter(angular.fromJson(dynamicFilter));\r\n setColumnHeaderToggle(vm.homeRolesGridDataSource._data);\r\n searchChanged();\r\n }\r\n\r\n function createHomeRolesGrid() {\r\n function createObjectModel(TypeID, TypeName, Name, ObjectID, SelectedCheckbox) {\r\n let objectModel = {\r\n \"TypeName\": TypeName,\r\n \"TypeID\": TypeID,\r\n \"Name\": Name,\r\n \"ObjectID\": ObjectID,\r\n \"SelectedCheckbox\": SelectedCheckbox\r\n };\r\n\r\n return objectModel;\r\n }\r\n\r\n const homeRolesGridColumns = [\r\n { title: \" \", headerTemplate: ``, template: ``, width: 55, filterable: false },\r\n { field: \"Name\", filterable: customAutoCompleteFilter },\r\n { field: \"TypeName\", title: \"Type\", filterable: customAutoCompleteFilter }\r\n ];\r\n\r\n vm.homeRolesGridOptions = helperService.setNonPageableGridOptions(homeRolesGridColumns);\r\n\r\n vm.homeRolesGridOptions.noRecords = {\r\n template: \"
No Securable Objects
\"\r\n }\r\n\r\n vm.homeRolesGridDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: async options => {\r\n\r\n let modules = await rolesDataService.getModulesByObjectId(vm.selectedModule.ObjectID);\r\n\r\n //removes modules from grid\r\n modules.data.forEach(function (row, i) {\r\n if (row.TypeID === 1) {\r\n modules.data.splice(i, 1);\r\n }\r\n });\r\n\r\n modules.data = $filter('orderBy')(modules.data, 'Name');\r\n\r\n let objects = [];\r\n for (let i = 0; i < modules.data.length; i++) {\r\n let item = modules.data[i];\r\n objects.push(createObjectModel(item.TypeID, item.TypeName, item.Name, item.ObjectID, false));\r\n }\r\n\r\n let securableobjects = await rolesDataService.getSecurableObjects(vm.selectedRole.ID, vm.selectedModule.ObjectID);\r\n\r\n for (let i = 0; i < securableobjects.data.length; i++) {\r\n let item = securableobjects.data[i];\r\n\r\n for (let j = 0; j < objects.length; j++) {\r\n if (objects[j].ObjectID === item.ObjectID) {\r\n objects[j].SelectedCheckbox = true;\r\n break;\r\n }\r\n }\r\n\r\n }\r\n setColumnHeaderToggle(objects);\r\n options.success(objects);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async function selectAllRoles() {\r\n vm.allSelectionProcessing = true;\r\n kendo.ui.progress(vm.homeRolesGrid.element, true);\r\n let roles = vm.homeRolesGridDataSource._data.filter(role => role.SelectedCheckbox !== vm.allSelectedCheckbox);\r\n if (vm.selectedType.id) {\r\n roles = roles.filter(role => role.TypeID === vm.selectedType.id);\r\n roles.forEach(async role => {\r\n role.SelectedCheckbox = vm.allSelectedCheckbox;\r\n });\r\n } else {\r\n roles.forEach(async role => {\r\n if (role.SelectedCheckbox !== vm.allSelectedCheckbox) {\r\n role.SelectedCheckbox = vm.allSelectedCheckbox;\r\n }\r\n });\r\n }\r\n\r\n roles = roles.filter(role => !vm.search || role.Name.toLowerCase().includes(vm.search));\r\n\r\n if (roles.length) {\r\n await selectRoles(roles);\r\n } else {\r\n vm.allSelectedCheckbox = false;\r\n }\r\n\r\n vm.allSelectionProcessing = false;\r\n kendo.ui.progress(vm.homeRolesGrid.element, false);\r\n }\r\n\r\n function setColumnHeaderToggle(objects) {\r\n if (vm.selectedType.id) {\r\n objects = objects.filter(object => object.TypeID === vm.selectedType.id);\r\n }\r\n\r\n vm.allSelectedCheckbox = objects.length && objects.every(object => object.SelectedCheckbox);\r\n }\r\n\r\n function searchChanged() {\r\n let currentFilter = vm.homeRolesGridDataSource.filter(),\r\n dropdownFilter = currentFilter?.filters.length && currentFilter.filters.find(filter => filter.field === \"TypeID\") || {},\r\n filter = {\r\n filters: [\r\n { field: \"Name\", operator: \"contains\", value: `${vm.search}` }\r\n ]\r\n };\r\n\r\n if (dropdownFilter.field && vm.search) {\r\n filter.logic = \"and\";\r\n filter.filters.push(dropdownFilter);\r\n } else if (!dropdownFilter.field && !vm.search) {\r\n filter = {};\r\n } else if (dropdownFilter.field && !vm.search) {\r\n filter.filters = [dropdownFilter];\r\n }\r\n\r\n if (filter?.filters?.length) {\r\n vm.homeRolesGridDataSource.filter(filter);\r\n }\r\n\r\n setColumnHeaderToggle(vm.homeRolesGridDataSource.view());\r\n }\r\n}","import rolesController from \"./roles.controller\";\r\n\r\n/* roles.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining system roles\r\n * @example \r\n */\r\n\r\nconst roles = {\r\n controller: rolesController,\r\n controllerAs: 'rvm',\r\n templateUrl: '/App/Components/Roles/roles.html'\r\n};\r\n\r\nexport default roles;","import { customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($rootScope, dataService, $filter, helperService, securityAssignmentDataService) {\r\n const vm = this;\r\n\r\n vm.createUserDataSource = createUserDataSource;\r\n vm.helperService = helperService;\r\n vm.selectedRole = null;\r\n vm.roleChanged = roleChanged;\r\n vm.search;\r\n vm.searchChanged = searchChanged;\r\n vm.selectUsers = selectUsers;\r\n vm.selectAllUsers = selectAllUsers;\r\n vm.allSelectedCheckbox = false;\r\n\r\n function roleChanged(selectedRole) {\r\n if (selectedRole !== vm.selectedRole) {\r\n vm.selectedRole = selectedRole;\r\n vm.selectedModule = null;\r\n }\r\n\r\n vm.securityAssignmentUsersGridDataSource.read();\r\n };\r\n\r\n activate();\r\n\r\n async function activate () {\r\n let response = await dataService.getRoles();\r\n\r\n vm.search = \"\";\r\n\r\n response.data = $filter('orderBy')(response.data, 'Name');\r\n\r\n vm.rolesDataSource = response.data;\r\n vm.createUserDataSource();\r\n }\r\n\r\n var objectModelAssignUsersToRole = function (UserID, UserLogonName, Domain, Email, Active, SelectedUserCheckbox) {\r\n this.UserID = UserID,\r\n this.UserLogonName = UserLogonName,\r\n this.Domain = Domain;\r\n this.Email = Email,\r\n this.Active = Active,\r\n this.SelectedUserCheckbox = SelectedUserCheckbox;\r\n };\r\n\r\n function createUserDataSource () {\r\n vm.securityAssignmentUsersGridDataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: async function (options) {\r\n let response = await dataService.getUsers();\r\n response.data = $filter('orderBy')(response.data, 'UserLogonName');\r\n response.data = $filter('filter')(response.data, { Active: true });\r\n\r\n var users = response.data.map(item => {\r\n return new objectModelAssignUsersToRole(\r\n item.UserID,\r\n item.UserLogonName,\r\n item.Domain,\r\n item.Email,\r\n item.Active,\r\n false\r\n );\r\n });\r\n\r\n response = await securityAssignmentDataService.getRoleById(vm.selectedRole.ID);\r\n\r\n response.data.forEach(userRole => {\r\n let foundUser = users.find(user => userRole.UserID === user.UserID);\r\n\r\n if (foundUser) {\r\n foundUser.SelectedUserCheckbox = true;\r\n }\r\n });\r\n\r\n vm.allSelectedCheckbox = users.every(user => user.SelectedUserCheckbox);\r\n\r\n options.success(users);\r\n }\r\n }\r\n });\r\n\r\n };\r\n\r\n vm.securityAssignmentShowUsersGridOptions = helperService.setNonPageableGridOptions([\r\n { headerTemplate: ``, template: \"\", width: 55, filterable: false },\r\n { field: \"UserLogonName\", title: \"User Name\", filterable: customAutoCompleteFilter },\r\n { field: \"Email\", filterable: customAutoCompleteFilter }\r\n ]);\r\n\r\n\r\n async function selectAllUsers() {\r\n let users = vm.securityAssignmentUsersGridDataSource._data.filter(user => user.SelectedUserCheckbox !== vm.allSelectedCheckbox);\r\n\r\n kendo.ui.progress(vm.assignmentsGrid.element, true);\r\n\r\n users = users.filter(user => !vm.search || user.UserLogonName.toLowerCase().includes(vm.search) || user.Email.toLowerCase().includes(vm.search));\r\n\r\n users.forEach(user => {\r\n if (user.SelectedUserCheckbox !== vm.allSelectedCheckbox) {\r\n user.SelectedUserCheckbox = vm.allSelectedCheckbox;\r\n }\r\n });\r\n\r\n await selectUsers(users);\r\n }\r\n\r\n async function selectUsers (users) {\r\n let checked = users?.[0]?.SelectedUserCheckbox,\r\n data = {\r\n UserRoles: []\r\n };\r\n\r\n vm.selectionProcessing = true;\r\n\r\n users.forEach(user => {\r\n data.UserRoles.push({\r\n roleId: vm.selectedRole.ID,\r\n userId: user.UserID\r\n });\r\n });\r\n\r\n if (users.length) {\r\n try {\r\n\r\n if (checked && users.length) {\r\n await securityAssignmentDataService.addAssignments(data);\r\n } else if (users.length) {\r\n await securityAssignmentDataService.removeAssignments(data);\r\n }\r\n\r\n $rootScope.$broadcast('navigation-or-security-change');\r\n } catch (err) {\r\n activate();\r\n }\r\n }\r\n\r\n checkAllSelected();\r\n kendo.ui.progress(vm.assignmentsGrid.element, false);\r\n vm.selectionProcessing = false;\r\n }\r\n\r\n function searchChanged() {\r\n let filter = {\r\n logic: \"or\",\r\n filters: [\r\n { field: \"UserLogonName\", operator: \"contains\", value: `${vm.search}` },\r\n { field: \"Email\", operator: \"contains\", value: `${vm.search}` }\r\n ]\r\n };\r\n\r\n if (vm.search) {\r\n vm.securityAssignmentUsersGridDataSource.filter(filter);\r\n } else {\r\n vm.securityAssignmentUsersGridDataSource.filter({});\r\n }\r\n\r\n checkAllSelected();\r\n }\r\n\r\n function checkAllSelected() {\r\n let view = vm.securityAssignmentUsersGridDataSource.view();\r\n\r\n vm.allSelectedCheckbox = view.length && view.every(user => user.SelectedUserCheckbox);\r\n }\r\n}","import controller from \"./securityAssignment.controller\";\r\n\r\n/* securityAssignment.component.js */\r\n\r\n/**\r\n * @desc component for viewing and maintaining system roles\r\n * @example \r\n */\r\n\r\nconst securityAssignment = {\r\n controller: controller,\r\n controllerAs: 'savm',\r\n templateUrl: '/App/Components/securityAssignment/securityAssignment.tmpl.html'\r\n};\r\n\r\nexport default securityAssignment;","import angular from 'angular';\r\nimport rolesDataServiceFactory from '../Components/Roles/rolesDataService.factory';\r\nimport securityAssignmentDataServiceFactory from '../Components/securityAssignment/securityAssignmentDataService.factory';\r\nimport usersDataServiceFactory from '../Components/Users/usersDataService.factory';\r\nimport passwordCriteria from '../Components/Configuration/PasswordCriteria/passwordCriteria.component';\r\nimport passwordCriteriaDataServiceFactory from '../Components/Configuration/PasswordCriteria/passwordCriteriaDataService.factory';\r\nimport auditLogs from '../Components/AuditLogs/auditLogs.component';\r\nimport users from '../Components/Users/users.component';\r\nimport roles from '../Components/Roles/roles.component';\r\nimport securityAssignment from '../Components/securityAssignment/securityAssignment.component';\r\n\r\nexport default angular\r\n .module('app.securitySetup', [])\r\n .component('roles', roles)\r\n .factory('rolesDataService', rolesDataServiceFactory)\r\n .component('securityAssignment', securityAssignment)\r\n .factory('securityAssignmentDataService', securityAssignmentDataServiceFactory)\r\n .component('users', users)\r\n .factory('usersDataService', usersDataServiceFactory)\r\n .component('passwordCriteria', passwordCriteria)\r\n .factory('passwordCriteriaDataService', passwordCriteriaDataServiceFactory)\r\n .component('auditLogs', auditLogs)\r\n .name;","import angular from 'angular';\r\nimport appSharedModule from './Shared/shared.module';\r\nimport accessRiskMonitorModule from './AccessRiskMonitor/accessRiskMonitor.module';\r\nimport accessCertificationsModule from './AccessCertifications/accessCertifications.module';\r\nimport auditTrailModule from './AuditTrail/auditTrail.module';\r\nimport securityDesignerModule from './SecurityDesigner/securityDesigner.module';\r\nimport identityManagerModule from './IdentityManager/identityManager.module';\r\nimport reportManagementModule from './ReportManagement/reportManagement.module';\r\nimport transactionMonitoringModule from './TransactionMonitoring/transactionMonitoring.module';\r\nimport systemConfigurationModule from './SystemConfiguration/systemConfiguration.module';\r\nimport integrationsModule from './Integrations/integrations.module';\r\nimport securitySetupModule from './SecuritySetup/securitySetup.module';\r\n\r\nexport default angular\r\n .module('app', [\r\n appSharedModule,\r\n accessRiskMonitorModule,\r\n accessCertificationsModule,\r\n auditTrailModule,\r\n securityDesignerModule,\r\n identityManagerModule,\r\n reportManagementModule,\r\n transactionMonitoringModule,\r\n systemConfigurationModule,\r\n integrationsModule,\r\n securitySetupModule\r\n ])\r\n // constants\r\n .constant('config', {\r\n appName: 'Fastpath Stratus',\r\n appVersion: 1.0\r\n });","/**\r\n * INSPINIA - Responsive Admin Theme\r\n * 2.6.2\r\n *\r\n * Custom scripts\r\n */\r\n\r\n$(document).ready(function () {\r\n\r\n // Full height of sidebar\r\n function fix_height() {\r\n var heightWithoutNavbar = $(\"body > #wrapper\").height() - 61;\r\n $(\".sidebard-panel\").css(\"min-height\", heightWithoutNavbar + \"px\");\r\n\r\n var navbarHeigh = $('nav.navbar-default').height();\r\n var wrapperHeigh = $('#page-wrapper').height();\r\n\r\n if (navbarHeigh > wrapperHeigh) {\r\n $('#page-wrapper').css(\"min-height\", navbarHeigh + \"px\");\r\n }\r\n\r\n if (navbarHeigh < wrapperHeigh) {\r\n $('#page-wrapper').css(\"min-height\", $(window).height() + \"px\");\r\n }\r\n\r\n if ($('body').hasClass('fixed-nav')) {\r\n if (navbarHeigh > wrapperHeigh) {\r\n $('#page-wrapper').css(\"min-height\", navbarHeigh + \"px\");\r\n } else {\r\n $('#page-wrapper').css(\"min-height\", $(window).height() - 60 + \"px\");\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n $(window).bind(\"load resize scroll\", function () {\r\n if (!$(\"body\").hasClass('body-small')) {\r\n fix_height();\r\n }\r\n });\r\n\r\n // Move right sidebar top after scroll\r\n $(window).scroll(function () {\r\n if ($(window).scrollTop() > 0 && !$('body').hasClass('fixed-nav')) {\r\n $('#right-sidebar').addClass('sidebar-top');\r\n } else {\r\n $('#right-sidebar').removeClass('sidebar-top');\r\n }\r\n });\r\n\r\n // Move right sidebar notifications top after scroll\r\n $(window).scroll(function () {\r\n if ($(window).scrollTop() > 0 && !$('body').hasClass('fixed-nav')) {\r\n $('#right-sidebar-notifications').addClass('sidebar-top');\r\n } else {\r\n $('#right-sidebar-notifications').removeClass('sidebar-top');\r\n }\r\n });\r\n\r\n\r\n setTimeout(function () {\r\n fix_height();\r\n })\r\n});\r\n\r\n// Minimalize menu when screen is less than 768px\r\n$(function () {\r\n $(window).bind(\"load resize\", function () {\r\n if ($(document).width() < 769) {\r\n $('body').addClass('body-small')\r\n } else {\r\n $('body').removeClass('body-small')\r\n }\r\n })\r\n})\r\n","!function (a, b, c, d, e, f, g, h) {\r\n a.RaygunObject = e, a[e] = a[e] || function () {\r\n (a[e].o = a[e].o || []).push(arguments)\r\n }, f = b.createElement(c), g = b.getElementsByTagName(c)[0],\r\n f.async = 1, f.src = d, g.parentNode.insertBefore(f, g), h = a.onerror, a.onerror = function (b, c, d, f, g) {\r\n h && h(b, c, d, f, g), g || (g = new Error(b)), a[e].q = a[e].q || [], a[e].q.push({\r\n e: g\r\n })\r\n }\r\n}(window, document, \"script\", \"//cdn.raygun.io/raygun4js/raygun.min.js\", \"rg4js\");","/**\r\n * # angular-elastic-builder\r\n * ## Angular Module for building an Elasticsearch Query\r\n *\r\n * @version v1.5.1\r\n * @link https://github.com/dncrews/angular-elastic-builder.git\r\n * @license MIT\r\n * @author Dan Crews \r\n */\r\n\r\n/**\r\n * angular-elastic-builder\r\n *\r\n * /src/module.js\r\n *\r\n * Angular Module for building an Elasticsearch query\r\n */\r\n\r\n(function (angular) {\r\n 'use strict';\r\n\r\n angular.module('angular-elastic-builder', [\r\n 'RecursionHelper',\r\n 'ui.bootstrap',\r\n ]);\r\n\r\n})(window.angular);\r\n\r\n/**\r\n * angular-elastic-builder\r\n *\r\n * /src/directives/BuilderDirective.js\r\n *\r\n * Angular Directive for injecting a query builder form.\r\n */\r\n\r\n(function (angular) {\r\n 'use strict';\r\n\r\n angular.module('angular-elastic-builder')\r\n .directive('elasticBuilder', [\r\n 'elasticQueryService',\r\n\r\n function EB(elasticQueryService) {\r\n\r\n return {\r\n scope: {\r\n data: '=elasticBuilder',\r\n },\r\n\r\n templateUrl: 'angular-elastic-builder/BuilderDirective.html',\r\n\r\n link: function (scope) {\r\n var data = scope.data;\r\n\r\n scope.filters = [];\r\n\r\n /**\r\n * Removes either Group or Rule\r\n */\r\n scope.removeChild = function (idx) {\r\n scope.filters.splice(idx, 1);\r\n };\r\n\r\n /**\r\n * Adds a Single Rule\r\n */\r\n scope.addRule = function () {\r\n scope.filters.push({});\r\n };\r\n\r\n /**\r\n * Adds a Group of Rules\r\n */\r\n scope.addGroup = function () {\r\n scope.filters.push({\r\n type: 'group',\r\n subType: 'and',\r\n rules: [],\r\n });\r\n };\r\n\r\n /**\r\n * Any time \"outside forces\" change the query, they should tell us so via\r\n * `data.needsUpdate`\r\n */\r\n scope.$watch('data.needsUpdate', function (curr) {\r\n if (!curr) return;\r\n\r\n scope.filters = elasticQueryService.toFilters(data.query, scope.data.fields);\r\n if (data.dateQuery) {\r\n scope.filters = scope.filters.concat(elasticQueryService.toFilters(data.dateQuery, scope.data.fields));\r\n }\r\n scope.data.needsUpdate = false;\r\n });\r\n\r\n /**\r\n * Changes on the page update the Query\r\n */\r\n scope.$watch('filters', function (curr) {\r\n if (!curr) return;\r\n\r\n data.query = elasticQueryService.toQuery(scope.filters, scope.data.fields);\r\n data.dateQuery = elasticQueryService.toDateQuery(scope.filters, scope.data.fields);\r\n }, true);\r\n },\r\n };\r\n },\r\n\r\n ]);\r\n\r\n})(window.angular);\r\n\r\n/**\r\n * angular-elastic-builder\r\n *\r\n * /src/directives/Chooser.js\r\n *\r\n * This file is to help recursively, to decide whether to show a group or rule\r\n */\r\n\r\n(function (angular) {\r\n 'use strict';\r\n\r\n var app = angular.module('angular-elastic-builder');\r\n\r\n app.directive('elasticBuilderChooser', [\r\n 'RecursionHelper',\r\n 'groupClassHelper',\r\n\r\n function elasticBuilderChooser(RH, groupClassHelper) {\r\n\r\n return {\r\n scope: {\r\n elasticFields: '=',\r\n item: '=elasticBuilderChooser',\r\n onRemove: '&',\r\n },\r\n\r\n templateUrl: 'angular-elastic-builder/ChooserDirective.html',\r\n\r\n compile: function (element) {\r\n return RH.compile(element, function (scope, el, attrs) {\r\n var depth = scope.depth = (+attrs.depth)\r\n , item = scope.item;\r\n\r\n scope.getGroupClassName = function () {\r\n var level = depth;\r\n if (item.type === 'group') level++;\r\n\r\n return groupClassHelper(level);\r\n };\r\n });\r\n },\r\n };\r\n },\r\n\r\n ]);\r\n\r\n})(window.angular);\r\n\r\n/**\r\n * angular-elastic-builder\r\n *\r\n * /src/directives/Group.js\r\n */\r\n\r\n(function (angular) {\r\n 'use strict';\r\n\r\n var app = angular.module('angular-elastic-builder');\r\n\r\n app.directive('elasticBuilderGroup', [\r\n 'RecursionHelper',\r\n 'groupClassHelper',\r\n\r\n function elasticBuilderGroup(RH, groupClassHelper) {\r\n\r\n return {\r\n scope: {\r\n elasticFields: '=',\r\n group: '=elasticBuilderGroup',\r\n onRemove: '&',\r\n },\r\n\r\n templateUrl: 'angular-elastic-builder/GroupDirective.html',\r\n\r\n compile: function (element) {\r\n return RH.compile(element, function (scope, el, attrs) {\r\n var depth = scope.depth = (+attrs.depth);\r\n var group = scope.group;\r\n\r\n scope.addRule = function () {\r\n group.rules.push({});\r\n };\r\n scope.addGroup = function () {\r\n group.rules.push({\r\n type: 'group',\r\n subType: 'and',\r\n rules: [],\r\n });\r\n };\r\n\r\n scope.removeChild = function (idx) {\r\n group.rules.splice(idx, 1);\r\n };\r\n\r\n scope.getGroupClassName = function () {\r\n return groupClassHelper(depth + 1);\r\n };\r\n });\r\n },\r\n };\r\n },\r\n\r\n ]);\r\n\r\n})(window.angular);\r\n\r\n/**\r\n * angular-elastic-builder\r\n *\r\n * /src/directives/Rule.js\r\n */\r\n\r\n(function (angular) {\r\n 'use strict';\r\n\r\n var app = angular.module('angular-elastic-builder');\r\n\r\n app.directive('elasticBuilderRule', [\r\n\r\n function elasticBuilderRule() {\r\n return {\r\n scope: {\r\n elasticFields: '=',\r\n rule: '=elasticBuilderRule',\r\n onRemove: '&',\r\n },\r\n\r\n templateUrl: 'angular-elastic-builder/RuleDirective.html',\r\n\r\n link: function (scope) {\r\n scope.getType = function () {\r\n var fields = scope.elasticFields;\r\n\r\n if (scope.rule.field) {\r\n var field = fields.findIndex(function (item) {\r\n return item.displayName === scope.rule.field.displayName;\r\n });\r\n scope.rule.field.fieldIndex = field;\r\n }\r\n\r\n if (!fields || field === undefined) return;\r\n\r\n return fields[field].type;\r\n };\r\n scope.clearValues = function () {\r\n scope.rule.subType = null;\r\n scope.rule.values = null;\r\n scope.rule.value = null;\r\n };\r\n },\r\n };\r\n },\r\n\r\n ]);\r\n\r\n})(window.angular);\r\n\r\n/**\r\n * angular-elastic-builder\r\n *\r\n * /src/directives/RuleTypes.js\r\n *\r\n * Determines which Rule type should be displayed\r\n */\r\n\r\n(function (angular) {\r\n 'use strict';\r\n\r\n var app = angular.module('angular-elastic-builder');\r\n\r\n app.directive('elasticType', ['$http', '$rootScope', elasticType]);\r\n\r\n function elasticType($http, $rootScope) {\r\n return {\r\n scope: {\r\n type: '=elasticType',\r\n rule: '=',\r\n guide: '='\r\n },\r\n\r\n template: '',\r\n\r\n link: function (scope) {\r\n scope.getTemplateUrl = function () {\r\n var type = scope.type;\r\n if (!type) return;\r\n if (typeof type !== 'string') return;\r\n type = type.charAt(0).toUpperCase() + type.slice(1);\r\n\r\n return 'angular-elastic-builder/types/' + type + '.html';\r\n };\r\n\r\n // This is a weird hack to make sure these are numbers\r\n scope.booleans = ['False', 'True'];\r\n scope.booleansOrder = ['True', 'False'];\r\n\r\n scope.datesNeeded = function () {\r\n var needs = [\r\n 'Range'\r\n ];\r\n\r\n return ~needs.indexOf(scope.rule.subType);\r\n };\r\n\r\n scope.timeNeeded = function () {\r\n var needs = [\r\n 'Equals',\r\n 'LessThan',\r\n 'GreaterThan'\r\n ];\r\n\r\n return ~needs.indexOf(scope.rule.subType);\r\n };\r\n\r\n scope.inputNeeded = function () {\r\n var needs = [\r\n 'LastNumberOf',\r\n 'Equals',\r\n 'NotEquals',\r\n 'GreaterThan',\r\n 'GreaterThanOrEqual',\r\n 'LessThan',\r\n 'LessThanOrEqual',\r\n 'Contains',\r\n 'DoesNotContain',\r\n 'StartsWith',\r\n 'EndsWith'\r\n ];\r\n\r\n return ~needs.indexOf(scope.rule.subType);\r\n };\r\n\r\n scope.multiNeeded = function () {\r\n var needs = [\r\n 'Equals',\r\n 'NotEquals'\r\n ];\r\n\r\n return ~needs.indexOf(scope.rule.subType);\r\n };\r\n\r\n scope.periodNeeded = function () {\r\n var needs = [\r\n 'Previous',\r\n 'ToDate'\r\n ];\r\n\r\n return ~needs.indexOf(scope.rule.subType);\r\n };\r\n\r\n scope.pluralPeriodNeeded = function () {\r\n var needs = [\r\n 'LastNumberOf'\r\n ];\r\n\r\n return ~needs.indexOf(scope.rule.subType);\r\n };\r\n\r\n scope.today = function () {\r\n scope.rule.date = new Date();\r\n };\r\n scope.today();\r\n\r\n scope.clear = function () {\r\n scope.rule.date = null;\r\n };\r\n\r\n scope.startDateOptions = {\r\n dateDisabled: scope.disabled,\r\n formatYear: 'yy',\r\n maxDate: new Date(),\r\n startingDay: 1,\r\n showWeeks: false\r\n };\r\n\r\n scope.endDateOptions = {\r\n formatYear: 'yy',\r\n maxDate: new Date(),\r\n startingDay: 1,\r\n showWeeks: false\r\n };\r\n\r\n scope.disabled = function (data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && date > scope.rule.endDate;\r\n };\r\n\r\n scope.open1 = function () {\r\n scope.popup1.opened = true;\r\n };\r\n\r\n scope.open2 = function () {\r\n scope.popup2.opened = true;\r\n };\r\n\r\n scope.setDate = function (year, month, day) {\r\n scope.rule.date = new Date(year, month - 1, day);\r\n };\r\n\r\n scope.popup1 = { opened: false };\r\n scope.popup2 = { opened: false };\r\n\r\n if (!scope.rule.startTime && !scope.rule.endTime) {\r\n scope.rule.startTime = new Date;\r\n scope.rule.startTime.setHours(0, 0, 0, 0);\r\n scope.rule.endTime = new Date;\r\n scope.rule.endTime.setHours(0, 0, 0, 0);\r\n }\r\n\r\n scope.getChoices = function (criteria) {\r\n if (scope.rule.values && scope.rule.values.length > 0) {\r\n var defaultValues = angular.copy(scope.rule.values);\r\n }\r\n $http.get(apiUrl + criteria.link).then(function (response) {\r\n if (response.data.length === 0) { return; }\r\n if (response.data.some(function (choice) { return choice.UserHasAccess === false; })) {\r\n response.data = response.data.filter(function (choice) { return choice.UserHasAccess; });\r\n }\r\n var choices = angular.copy(response.data);\r\n var parentVm = scope.$parent.$parent.$parent.$parent.$parent.$parent.vm;\r\n if (choices.length > 0 && choices[0].RulesetId) {\r\n choices = choices.filter(function (row) {\r\n return row.RulesetId === parentVm.selectedRuleset.RulesetId;\r\n });\r\n }\r\n if (choices[0].ProductType && parentVm.selectedProducts && parentVm.selectedProducts.length === 1) {\r\n choices = choices.filter(function (row) {\r\n return row.ProductType === parentVm.selectedProducts[0].Type;\r\n });\r\n }\r\n if (choices[0].ProductType && parentVm.selectedProduct) {\r\n choices = choices.filter(function (row) {\r\n return row.ProductType === parentVm.selectedProduct.Type;\r\n });\r\n }\r\n var mappedData = choices.map(function (item) {\r\n return {\r\n 'Name': item[criteria.label],\r\n 'Id': item[criteria.identifier]\r\n };\r\n });\r\n scope.guide.choices = mappedData;\r\n if (defaultValues) {\r\n scope.rule.values = [];\r\n for (var i = 0; i < defaultValues.length; i++) {\r\n var defaultValue = defaultValues[i];\r\n var valueToAdd = mappedData.find(function (row) {\r\n return row.Id === defaultValue.Id;\r\n });\r\n if (!valueToAdd) {\r\n valueToAdd = mappedData.find(function (row) {\r\n return row.Name === defaultValue.Id;\r\n });\r\n }\r\n scope.rule.values.push(valueToAdd);\r\n scope.rule.values = scope.rule.values.filter(function (value) {\r\n return value.Name;\r\n });\r\n }\r\n }\r\n });\r\n };\r\n\r\n scope.clearValues = function (route) {\r\n scope.rule.values = null;\r\n scope.rule.value = null;\r\n };\r\n }\r\n\r\n };\r\n }\r\n\r\n})(window.angular);\r\n\r\n/**\r\n * angular-elastic-builder\r\n *\r\n * /src/services/GroupClassHelper.js\r\n *\r\n * This keeps all of the groups colored correctly\r\n */\r\n\r\n(function (angular) {\r\n 'use strict';\r\n\r\n angular.module('angular-elastic-builder')\r\n .factory('groupClassHelper', function groupClassHelper() {\r\n\r\n return function (level) {\r\n var levels = [\r\n '',\r\n 'list-group-item-info',\r\n 'list-group-item-success',\r\n 'list-group-item-warning',\r\n 'list-group-item-danger',\r\n ];\r\n\r\n return levels[level % levels.length];\r\n };\r\n });\r\n\r\n})(window.angular);\r\n\r\n/**\r\n * angular-elastic-builder\r\n *\r\n * /src/services/QueryService.js\r\n *\r\n * This file is used to convert filters into queries, and vice versa\r\n */\r\n\r\n(function (angular) {\r\n 'use strict';\r\n\r\n angular.module('angular-elastic-builder')\r\n .factory('elasticQueryService', [\r\n '$filter',\r\n\r\n function ($filter) {\r\n\r\n return {\r\n toFilters: toFilters,\r\n toQuery: function (userFilters, fields) {\r\n return toQuery(userFilters, fields, $filter);\r\n },\r\n toDateQuery: function (userFilters, fields) {\r\n return toDateQuery(userFilters, fields, $filter);\r\n }\r\n };\r\n }\r\n ]);\r\n\r\n function toFilters(query, fields) {\r\n var filters = parseQueryGroup(query, fields);\r\n\r\n return filters;\r\n }\r\n\r\n function toQuery(userFilters, fields, $filter) {\r\n var query = parseFilterGroup(userFilters, fields, $filter);\r\n return query;\r\n }\r\n\r\n function toDateQuery(userFilters, fields, $filter) {\r\n var dateQuery = parseDateFilterGroup(userFilters, fields);\r\n return dateQuery;\r\n }\r\n\r\n function parseQueryGroup(query, fields) {\r\n if (!fields || !query) return;\r\n\r\n var filtersArray = [];\r\n\r\n for (var i = 0; i < query.length; i++) {\r\n var filterObject = {};\r\n var queryObject = query[i];\r\n var matchingField = fields.find(function (field) {\r\n if (queryObject.DisplayName) {\r\n return field.displayName.toLowerCase() === queryObject.DisplayName.toLowerCase() && field.fieldName.toLowerCase() === queryObject.FieldName.toLowerCase();\r\n } else {\r\n return field.fieldName.toLowerCase() === queryObject.FieldName.toLowerCase();\r\n }\r\n });\r\n\r\n if (!matchingField) {\r\n // need to look for textField\r\n for (var key in fields) {\r\n if (fields[key].textField === queryObject.FieldName) {\r\n matchingField = fields[key];\r\n }\r\n }\r\n }\r\n // Operator needs to be capitalized\r\n var operator = queryObject.Operator;\r\n if (operator) {\r\n operator = operator.charAt(0).toUpperCase() + operator.substr(1);\r\n }\r\n\r\n filterObject.field = matchingField;\r\n\r\n if (matchingField.type === \"Multi\" && (operator === \"Equals\" || operator === \"NotEquals\")) {\r\n filterObject.subType = operator;\r\n filterObject.value = null;\r\n // First check if there's already an object for this Filter\r\n var existingFilterIndex = filtersArray.findIndex(function (f) { return f.field.fieldName === queryObject.FieldName; });\r\n if (existingFilterIndex >= 0) {\r\n // Take the value from this Filter and add it to the existing one\r\n var filterValueObject = {};\r\n filterValueObject.Name = queryObject.ValueName;\r\n filterValueObject.Id = queryObject.Value;\r\n filtersArray[existingFilterIndex].values.push(filterValueObject);\r\n } else {\r\n // We need to set up an array of values for the multi select\r\n filterObject.value = null;\r\n filterObject.values = [];\r\n var filterValueObject = {};\r\n filterValueObject.Name = queryObject.ValueName;\r\n filterValueObject.Id = queryObject.Value;\r\n filterObject.values.push(filterValueObject);\r\n filtersArray.push(filterObject);\r\n }\r\n } else if ((matchingField.type.toUpperCase() === \"DATE\" || matchingField.type.toUpperCase() === \"DATETIME\") && (queryObject.DateType || queryObject.Operator.includes('ThanOrEqual'))) {\r\n var date = new Date(queryObject.Value);\r\n if (queryObject.Operator === \"GreaterThanOrEqual\" || queryObject.Operator === \"LessThanOrEqual\") {\r\n var existingDateFilterIndex = filtersArray.findIndex(function (filter) { return filter.field.fieldName === queryObject.FieldName; });\r\n if (existingDateFilterIndex > -1) {\r\n if (matchingField.type === \"DateTime\") {\r\n filtersArray[existingDateFilterIndex].endTime = date;\r\n }\r\n filtersArray[existingDateFilterIndex].endDate = date;\r\n } else {\r\n filterObject.subType = 'Range';\r\n filterObject.startDate = date;\r\n filterObject.startTime = date;\r\n filtersArray.push(filterObject);\r\n }\r\n } else {\r\n // Handle non date range filters here\r\n filterObject.subType = queryObject.DateType;\r\n filterObject.periodType = queryObject.Period;\r\n filterObject.value = queryObject.Value;\r\n filtersArray.push(filterObject);\r\n }\r\n } else {\r\n filterObject.subType = operator;\r\n filterObject.value = query[i].Value;\r\n if (filterObject.value === true) { filterObject.value = 1; }\r\n if (filterObject.value === false) { filterObject.value = 0; }\r\n filterObject.values = null;\r\n filtersArray.push(filterObject);\r\n }\r\n }\r\n return filtersArray;\r\n\r\n }\r\n\r\n\r\n function parseFilterGroup(userFilters, fields, $filter) {\r\n if (!fields || !userFilters) return;\r\n\r\n var queryArray = [];\r\n\r\n for (var i = 0; i < userFilters.length; i++) {\r\n var filterObject = {};\r\n if (userFilters[i].field) {\r\n var fieldName = userFilters[i].field.fieldName;\r\n var fieldIndex = fields.findIndex(function (item) { return item.displayName === userFilters[i].field.displayName; });\r\n } else {\r\n continue;\r\n }\r\n\r\n var fieldData = fields[fieldIndex];\r\n\r\n if (fieldIndex < 0) continue;\r\n\r\n switch (fieldData.type.toUpperCase()) {\r\n case 'STRING':\r\n if (!userFilters[i].subType) continue;\r\n\r\n filterObject.FieldName = fieldName;\r\n filterObject.Value = userFilters[i].value;\r\n filterObject.Operator = userFilters[i].subType;\r\n break;\r\n case 'BOOLEAN':\r\n filterObject.FieldName = fieldName;\r\n filterObject.Value = userFilters[i].value;\r\n filterObject.Operator = 'Equals';\r\n break;\r\n case 'NUMBER':\r\n if (!userFilters[i].subType) continue;\r\n filterObject.FieldName = fieldName;\r\n filterObject.Value = userFilters[i].value;\r\n filterObject.Operator = userFilters[i].subType;\r\n break;\r\n case 'DATE':\r\n case 'DATETIME':\r\n if (fieldData.type.toUpperCase() === 'DATETIME' && (!userFilters[i].startTime || !userFilters[i].endTime)) continue;\r\n if (userFilters[i].subType === 'IsEmpty' || userFilters[i].subType === 'IsNotEmpty') {\r\n filterObject.FieldName = fieldName;\r\n filterObject.Value = userFilters[i].value;\r\n filterObject.Operator = userFilters[i].subType;\r\n queryArray.push(filterObject);\r\n continue;\r\n }\r\n\r\n if (userFilters[i].subType !== 'Range') continue;\r\n if (!userFilters[i].startDate || !userFilters[i].endDate) continue;\r\n var startDate = {};\r\n var endDate = {};\r\n startDate.FieldName = fieldName;\r\n startDate.Operator = 'GreaterThanOrEqual';\r\n startDate.Value = userFilters[i].startDate;\r\n endDate.FieldName = fieldName;\r\n endDate.Operator = 'LessThanOrEqual';\r\n endDate.Value = userFilters[i].endDate;\r\n\r\n if (fieldData.type.toUpperCase() === 'DATETIME') {\r\n if (!userFilters[i].startTime || !userFilters[i].endTime) continue;\r\n\r\n var startTimeHours = userFilters[i].startTime.getHours();\r\n var startTimeMinutes = userFilters[i].startTime.getMinutes();\r\n startDate.Value.setHours(startTimeHours);\r\n startDate.Value.setMinutes(startTimeMinutes);\r\n\r\n var endTimeHours = userFilters[i].endTime.getHours();\r\n var endTimeMinutes = userFilters[i].endTime.getMinutes();\r\n endDate.Value.setHours(endTimeHours);\r\n endDate.Value.setMinutes(endTimeMinutes);\r\n }\r\n\r\n if (startDate.Value && endDate.Value) {\r\n queryArray.push(startDate);\r\n queryArray.push(endDate);\r\n }\r\n break;\r\n case 'MULTI':\r\n if (!userFilters[i].subType) continue;\r\n switch (userFilters[i].subType) {\r\n case 'Contains':\r\n case 'DoesNotContain':\r\n case 'StartsWith':\r\n case 'EndsWith':\r\n case 'IsEmpty':\r\n case 'IsNotEmpty':\r\n if (!userFilters[i].value && userFilters[i].subType !== 'IsEmpty' && userFilters[i].subType !== 'IsNotEmpty') continue;\r\n filterObject.FieldName = userFilters[i].field.textField;\r\n filterObject.Operator = userFilters[i].subType;\r\n filterObject.Value = userFilters[i].value;\r\n break;\r\n case 'Equals':\r\n case 'NotEquals':\r\n if (!userFilters[i].values) continue;\r\n for (var a = 0; a < userFilters[i].values.length; a++) {\r\n var multiFilter = {};\r\n if (userFilters[i].values[a].Name) {\r\n multiFilter.FieldName = fieldName;\r\n } else {\r\n multiFilter.FieldName = userFilters[i].field.textField;\r\n }\r\n multiFilter.Operator = userFilters[i].subType;\r\n multiFilter.Value = userFilters[i].values[a].Id;\r\n multiFilter.CriteriaValue = userFilters[i].values[a].Name;\r\n multiFilter.CriteriaDisplayName = userFilters[i].field.displayName;\r\n queryArray.push(multiFilter);\r\n }\r\n }\r\n break;\r\n case 'TIME':\r\n if (!userFilters.subType) continue;\r\n\r\n filterObject.Value = formatDate($filter, userFilters[i].time, 'shortTime');\r\n filterObject.FieldName = fieldName;\r\n filterObject.Operator = userFilters[i].subType;\r\n break;\r\n default:\r\n break;\r\n }\r\n if (filterObject.Value !== undefined && fieldData.type !== 'Boolean') {\r\n queryArray.push(filterObject);\r\n } else if (fieldData.type === 'Boolean') {\r\n queryArray.push(filterObject);\r\n }\r\n }\r\n return queryArray;\r\n }\r\n\r\n function parseDateFilterGroup(userFilters, fields) {\r\n if (!fields || !userFilters) return;\r\n\r\n var dateQueryArray = [];\r\n\r\n for (var i = 0; i < userFilters.length; i++) {\r\n var filterObject = {};\r\n if (userFilters[i].field) {\r\n var fieldName = userFilters[i].field.fieldName;\r\n var fieldData = fields.find(function (f) {\r\n return f.fieldName === fieldName;\r\n });\r\n }\r\n if (!fieldData || !userFilters[i].subType || userFilters[i].subType === 'Range') continue;\r\n\r\n if (fieldData.type.toUpperCase() === 'DATE' || fieldData.type.toUpperCase() === 'DATETIME') {\r\n if (userFilters[i].subType === 'IsEmpty' || userFilters[i].subType === 'IsNotEmpty') continue;\r\n\r\n filterObject.DateType = userFilters[i].subType;\r\n filterObject.FieldName = fieldName;\r\n filterObject.Period = userFilters[i].periodType;\r\n filterObject.Value = userFilters[i].value;\r\n\r\n dateQueryArray.push(filterObject);\r\n }\r\n }\r\n\r\n return dateQueryArray;\r\n }\r\n\r\n function getFilterTemplate(type) {\r\n var templates = {\r\n group: {\r\n type: 'group',\r\n subType: '',\r\n rules: []\r\n },\r\n item: {\r\n field: '',\r\n subType: '',\r\n value: ''\r\n },\r\n number: {\r\n field: '',\r\n subType: '',\r\n value: null\r\n }\r\n };\r\n\r\n return angular.copy(templates[type]);\r\n }\r\n\r\n function formatDate($filter, date, dateFormat) {\r\n if (!angular.isDate(date)) return false;\r\n var fDate = $filter('date')(date, dateFormat);\r\n return fDate;\r\n }\r\n\r\n})(window.angular);\r\n\r\n(function(angular) {\"use strict\"; angular.module(\"angular-elastic-builder\").run([\"$templateCache\", function($templateCache) {$templateCache.put(\"angular-elastic-builder/BuilderDirective.html\",\"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\");\r\n$templateCache.put(\"angular-elastic-builder/ChooserDirective.html\",\"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\");\r\n$templateCache.put(\"angular-elastic-builder/GroupDirective.html\",\"
\\r\\n
\\r\\n If\\r\\n \\r\\n of these conditions are met\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\");\r\n$templateCache.put(\"angular-elastic-builder/RuleDirective.html\",\"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\");\r\n$templateCache.put(\"angular-elastic-builder/types/Boolean.html\",\"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\");\r\n$templateCache.put(\"angular-elastic-builder/types/Date.html\",\"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\");\r\n$templateCache.put(\"angular-elastic-builder/types/DateTime.html\",\"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\");\r\n$templateCache.put(\"angular-elastic-builder/types/Multi.html\",\"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\");\r\n$templateCache.put(\"angular-elastic-builder/types/Number.html\",\"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\");\r\n$templateCache.put(\"angular-elastic-builder/types/String.html\",\"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\");\r\n$templateCache.put(\"angular-elastic-builder/types/Time.html\",\"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\");}]);})(window.angular);","angular.module('oi.select', []);\r\nangular.module('oi.select')\r\n\r\n .provider('oiSelect', function () {\r\n return {\r\n options: {\r\n debounce: 500,\r\n searchFilter: 'oiSelectCloseIcon',\r\n dropdownFilter: 'oiSelectHighlight',\r\n listFilter: 'oiSelectAscSort',\r\n groupFilter: 'oiSelectGroup',\r\n editItem: false,\r\n newItem: false,\r\n closeList: true,\r\n saveTrigger: 'enter tab blur',\r\n minlength: 0\r\n },\r\n version: {\r\n full: '0.2.21',\r\n major: 0,\r\n minor: 2,\r\n dot: 21\r\n },\r\n $get: function () {\r\n return {\r\n options: this.options,\r\n version: this.version\r\n };\r\n }\r\n };\r\n })\r\n\r\n .factory('oiSelectEscape', function () {\r\n var rEscapableCharacters = /[-/\\\\^$*+?.()|[\\]{}<>]/g; // cache escape + match String\r\n var sEscapeMatch = '\\\\$&';\r\n\r\n return function (string) {\r\n return String(string).replace(rEscapableCharacters, sEscapeMatch);\r\n };\r\n })\r\n\r\n .factory('oiSelectEditItem', function () {\r\n return function (removedItem, lastQuery, getLabel, itemIsCorrected) {\r\n return itemIsCorrected ? '' : getLabel(removedItem);\r\n };\r\n })\r\n\r\n .factory('oiUtils', ['$document', '$timeout', function ($document, $timeout) {\r\n /**\r\n * Check to see if a DOM element is a descendant of another DOM element.\r\n *\r\n * @param {DOM element} container\r\n * @param {DOM element} contained\r\n * @param {string} class name of element in container\r\n * @returns {boolean}\r\n */\r\n function contains(container, contained, className) {\r\n var current = contained;\r\n\r\n while (current && current.ownerDocument && current.nodeType !== 11) {\r\n if (className) {\r\n if (current === container) {\r\n return false;\r\n }\r\n if (current.className.indexOf(className) >= 0) { //current.classList.contains(className) doesn't work in IE9\r\n return true;\r\n }\r\n } else {\r\n if (current === container) {\r\n return true;\r\n }\r\n }\r\n current = current.parentNode;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Simulate focus/blur events of the inner input element to the outer element\r\n *\r\n * @param {element} outer element\r\n * @param {element} inner input element\r\n * @returns {function} deregistration function for listeners.\r\n */\r\n function bindFocusBlur(element, inputElement) {\r\n var isFocused, isMousedown, isBlur;\r\n\r\n $document[0].addEventListener('click', clickHandler, true);\r\n element[0].addEventListener('mousedown', mousedownHandler, true);\r\n element[0].addEventListener('blur', blurHandler, true);\r\n inputElement.on('focus', focusHandler);\r\n\r\n function blurHandler(event) {\r\n if (event && event.target.nodeName !== 'INPUT') return; //for IE\r\n\r\n isBlur = false;\r\n\r\n if (isMousedown) {\r\n isBlur = true;\r\n return;\r\n }\r\n\r\n $timeout(function () {\r\n element.triggerHandler('blur'); //conflict with current live cycle (case: multiple=none + tab)\r\n });\r\n }\r\n\r\n function focusHandler() {\r\n if (!isFocused) {\r\n isFocused = true;\r\n\r\n $timeout(function () {\r\n element.triggerHandler('focus'); //conflict with current live cycle (case: multiple=none + tab)\r\n });\r\n }\r\n }\r\n\r\n function mousedownHandler() {\r\n isMousedown = true;\r\n }\r\n\r\n function clickHandler(event) {\r\n isMousedown = false;\r\n\r\n\r\n var activeElement = event.target;\r\n var isSelectElement = contains(element[0], activeElement);\r\n\r\n if (isBlur && !isSelectElement) {\r\n blurHandler();\r\n }\r\n\r\n if (isSelectElement && activeElement.nodeName !== 'INPUT') {\r\n $timeout(function () {\r\n inputElement[0].focus();\r\n });\r\n }\r\n\r\n if (!isSelectElement && isFocused) {\r\n isFocused = false;\r\n }\r\n }\r\n\r\n return function () {\r\n $document[0].removeEventListener('click', clickHandler, true);\r\n element[0].removeEventListener('mousedown', mousedownHandler, true);\r\n element[0].removeEventListener('blur', blurHandler, true);\r\n inputElement.off('focus', focusHandler);\r\n };\r\n }\r\n\r\n /**\r\n * Sets the selected item in the dropdown menu\r\n * of available options.\r\n *\r\n * @param {object} list\r\n * @param {object} item\r\n */\r\n function scrollActiveOption(list, item) {\r\n var y, height_menu, height_item, scroll, scroll_top, scroll_bottom;\r\n\r\n if (item) {\r\n height_menu = list.offsetHeight;\r\n height_item = getWidthOrHeight(item, 'height', 'margin'); //outerHeight(true);\r\n scroll = list.scrollTop || 0;\r\n y = getOffset(item).top - getOffset(list).top + scroll;\r\n scroll_top = y;\r\n scroll_bottom = y - height_menu + height_item;\r\n\r\n //TODO Make animation\r\n if (y + height_item > height_menu + scroll) {\r\n list.scrollTop = scroll_bottom;\r\n } else if (y < scroll) {\r\n list.scrollTop = scroll_top;\r\n }\r\n }\r\n }\r\n\r\n // Used for matching numbers\r\n var core_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\r\n var rnumnonpx = new RegExp(\"^(\" + core_pnum + \")(?!px)[a-z%]+$\", \"i\");\r\n\r\n function augmentWidthOrHeight(elem, name, extra, isBorderBox, styles) {\r\n var i = extra === (isBorderBox ? 'border' : 'content') ?\r\n // If we already have the right measurement, avoid augmentation\r\n 4 :\r\n // Otherwise initialize for horizontal or vertical properties\r\n name === 'width' ? 1 : 0,\r\n\r\n val = 0,\r\n cssExpand = ['Top', 'Right', 'Bottom', 'Left'];\r\n\r\n //TODO Use angular.element.css instead of getStyleValue after https://github.com/caitp/angular.js/commit/92bbb5e225253ebddd38ef5735d66ffef76b6a14 will be applied\r\n function getStyleValue(name) {\r\n return parseFloat(styles[name]);\r\n }\r\n\r\n for (; i < 4; i += 2) {\r\n // both box models exclude margin, so add it if we want it\r\n if (extra === 'margin') {\r\n val += getStyleValue(extra + cssExpand[i]);\r\n }\r\n\r\n if (isBorderBox) {\r\n // border-box includes padding, so remove it if we want content\r\n if (extra === 'content') {\r\n val -= getStyleValue('padding' + cssExpand[i]);\r\n }\r\n\r\n // at this point, extra isn't border nor margin, so remove border\r\n if (extra !== 'margin') {\r\n val -= getStyleValue('border' + cssExpand[i] + 'Width');\r\n }\r\n } else {\r\n val += getStyleValue('padding' + cssExpand[i]);\r\n\r\n // at this point, extra isn't content nor padding, so add border\r\n if (extra !== 'padding') {\r\n val += getStyleValue('border' + cssExpand[i] + 'Width');\r\n }\r\n }\r\n }\r\n\r\n return val;\r\n }\r\n\r\n function getOffset(elem) {\r\n var docElem, win,\r\n box = elem.getBoundingClientRect(),\r\n doc = elem && elem.ownerDocument;\r\n\r\n if (!doc) {\r\n return;\r\n }\r\n\r\n docElem = doc.documentElement;\r\n win = getWindow(doc);\r\n\r\n return {\r\n top: box.top + win.pageYOffset - docElem.clientTop,\r\n left: box.left + win.pageXOffset - docElem.clientLeft\r\n };\r\n }\r\n\r\n function getWindow(elem) {\r\n return elem != null && elem === elem.window ? elem : elem.nodeType === 9 && elem.defaultView;\r\n }\r\n\r\n function getWidthOrHeight(elem, name, extra) {\r\n\r\n // Start with offset property, which is equivalent to the border-box value\r\n var valueIsBorderBox = true,\r\n val = name === 'width' ? elem.offsetWidth : elem.offsetHeight,\r\n styles = window.getComputedStyle(elem, null),\r\n\r\n //TODO Make isBorderBox after https://github.com/caitp/angular.js/commit/92bbb5e225253ebddd38ef5735d66ffef76b6a14 will be applied\r\n isBorderBox = false; //jQuery.support.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\r\n\r\n // some non-html elements return undefined for offsetWidth, so check for null/undefined\r\n // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\r\n // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\r\n if (val <= 0 || val == null) {\r\n // Fall back to computed then uncomputed css if necessary\r\n val = styles[name];\r\n\r\n if (val < 0 || val == null) {\r\n val = elem.style[name];\r\n }\r\n\r\n // Computed unit is not pixels. Stop here and return.\r\n if (rnumnonpx.test(val)) {\r\n return val;\r\n }\r\n\r\n // we need the check for style in case a browser which returns unreliable values\r\n // for getComputedStyle silently falls back to the reliable elem.style\r\n //valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );\r\n\r\n // Normalize \"\", auto, and prepare for extra\r\n val = parseFloat(val) || 0;\r\n }\r\n\r\n // use the active box-sizing model to add/subtract irrelevant styles\r\n return val + augmentWidthOrHeight(elem, name, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles);\r\n }\r\n\r\n function groupsIsEmpty(groups) {\r\n for (var k in groups) {\r\n if (groups.hasOwnProperty(k) && groups[k].length) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n //lodash _.intersection + filter + invert\r\n function intersection(xArr, yArr, xFilter, yFilter, invert) {\r\n var i, j, n, filteredX, filteredY, out = invert ? [].concat(xArr) : [];\r\n\r\n for (i = 0, n = xArr.length; i < xArr.length; i++) {\r\n filteredX = xFilter ? xFilter(xArr[i]) : xArr[i];\r\n\r\n for (j = 0; j < yArr.length; j++) {\r\n filteredY = yFilter ? yFilter(yArr[j]) : yArr[j];\r\n\r\n if (angular.equals(filteredX, filteredY, xArr, yArr, i, j)) {\r\n invert ? out.splice(i + out.length - n, 1) : out.push(yArr[j]);\r\n break;\r\n }\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n function getValue(valueName, item, scope, getter) {\r\n var locals = {};\r\n\r\n //'name.subname' -> {name: {subname: item}} -> locals'\r\n valueName.split('.').reduce(function (previousValue, currentItem, index, arr) {\r\n return previousValue[currentItem] = index < arr.length - 1 ? {} : item;\r\n }, locals);\r\n\r\n return getter(scope, locals);\r\n }\r\n\r\n return {\r\n contains: contains,\r\n bindFocusBlur: bindFocusBlur,\r\n scrollActiveOption: scrollActiveOption,\r\n groupsIsEmpty: groupsIsEmpty,\r\n getValue: getValue,\r\n intersection: intersection\r\n };\r\n }]);\r\n\r\nangular.module('oi.select')\r\n\r\n .directive('oiSelect', ['$document', '$q', '$timeout', '$parse', '$interpolate', '$injector', '$filter', '$animate', 'oiUtils', 'oiSelect', function ($document, $q, $timeout, $parse, $interpolate, $injector, $filter, $animate, oiUtils, oiSelect) {\r\n var NG_OPTIONS_REGEXP = /^\\s*([\\s\\S]+?)(?:\\s+as\\s+([\\s\\S]+?))?(?:\\s+group\\s+by\\s+([\\s\\S]+?))?(?:\\s+disable\\s+when\\s+([\\s\\S]+?))?\\s+for\\s+(?:([\\$\\w][\\$\\w]*)|(?:\\(\\s*([\\$\\w][\\$\\w]*)\\s*,\\s*([\\$\\w][\\$\\w]*)\\s*\\)))\\s+in\\s+([\\s\\S]+?)(?:\\s+track\\s+by\\s+([\\s\\S]+?))?$/;\r\n var VALUES_REGEXP = /([^\\(\\)\\s\\|\\s]*)\\s*(\\(.*\\))?\\s*(\\|?\\s*.+)?/;\r\n\r\n return {\r\n restrict: 'AE',\r\n templateUrl: 'src/template.html',\r\n require: 'ngModel',\r\n scope: {},\r\n compile: function (element, attrs) {\r\n var optionsExp = attrs.oiOptions,\r\n match = optionsExp ? optionsExp.match(NG_OPTIONS_REGEXP) : ['', 'i', '', '', '', 'i', '', '', ''];\r\n\r\n if (!match) {\r\n throw new Error(\"Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_'\");\r\n }\r\n\r\n var selectAsName = / as /.test(match[0]) && match[1], //item.modelValue\r\n displayName = match[2] || match[1], //item.label\r\n valueName = match[5] || match[7], //item (value)\r\n keyName = match[6], //(key)\r\n groupByName = match[3] || '', //item.groupName\r\n disableWhenName = match[4] || '', //item.disableWhenName\r\n trackByName = match[9] || displayName, //item.id\r\n valueMatches = match[8].match(VALUES_REGEXP), //collection\r\n valueTitle = valueName,\r\n keyTitle = keyName;\r\n\r\n if (keyName) { //convert object data sources format to array data sources format\r\n valueName = 'i';\r\n selectAsName = valueName + '.' + (selectAsName || valueTitle);\r\n trackByName = valueName + '.' + keyName;\r\n displayName = valueName + '.' + displayName;\r\n keyName = valueName + '.' + keyName;\r\n groupByName = groupByName ? valueName + '.' + groupByName : undefined;\r\n disableWhenName = disableWhenName ? valueName + '.' + disableWhenName : undefined;\r\n }\r\n\r\n var valuesName = valueMatches[1], //collection\r\n filteredValuesName = valuesName + (valueMatches[3] || ''), //collection | filter\r\n valuesFnName = valuesName + (valueMatches[2] || ''); //collection()\r\n\r\n var selectAsFn = selectAsName && $parse(selectAsName),\r\n displayFn = $parse(displayName),\r\n groupByFn = $parse(groupByName),\r\n disableWhenFn = $parse(disableWhenName),\r\n filteredValuesFn = $parse(filteredValuesName),\r\n valuesFn = $parse(valuesFnName),\r\n trackByFn = $parse(trackByName);\r\n\r\n var multiplePlaceholderFn = $interpolate(attrs.multiplePlaceholder || ''),\r\n listPlaceholderFn = $interpolate(attrs.listPlaceholder || ''),\r\n placeholderFn = $interpolate(attrs.placeholder || ''),\r\n optionsFn = $parse(attrs.oiSelectOptions),\r\n isOldAngular = angular.version.major <= 1 && angular.version.minor <= 3;\r\n\r\n var keyUpDownWerePressed,\r\n matchesWereReset,\r\n timeoutPromise,\r\n lastQuery,\r\n removedItem,\r\n multiple,\r\n multipleLimit,\r\n newItemFn;\r\n\r\n return function (scope, element, attrs, ctrl) {\r\n // Override the standard $isEmpty because an empty array means the input is empty.\r\n ctrl.$isEmpty = function (value) { return !exists(value); };\r\n\r\n var inputElement = element.find('input'),\r\n listElement = angular.element(element[0].querySelector('.select-dropdown')),\r\n placeholder = placeholderFn(scope),\r\n multiplePlaceholder = multiplePlaceholderFn(scope),\r\n listPlaceholder = listPlaceholderFn(scope),\r\n elementOptions = optionsFn(scope.$parent) || {},\r\n options = angular.extend({ cleanModel: elementOptions.newItem === 'prompt' }, oiSelect.options, elementOptions),\r\n editItem = options.editItem,\r\n editItemIsCorrected = editItem === 'correct',\r\n waitTime = 0;\r\n\r\n if (editItem === true || editItem === 'correct') {\r\n editItem = 'oiSelectEditItem';\r\n }\r\n var editItemFn = editItem ? $injector.get(editItem) : angular.noop,\r\n removeItemFn = $parse(options.removeItemFn);\r\n\r\n match = options.searchFilter.split(':');\r\n var searchFilter = $filter(match[0]),\r\n searchFilterOptionsFn = $parse(match[1]);\r\n\r\n match = options.dropdownFilter.split(':');\r\n var dropdownFilter = $filter(match[0]),\r\n dropdownFilterOptionsFn = $parse(match[1]);\r\n\r\n match = options.listFilter.split(':');\r\n var listFilter = $filter(match[0]),\r\n listFilterOptionsFn = $parse(match[1]);\r\n\r\n match = options.groupFilter.split(':');\r\n var groupFilter = $filter(match[0]),\r\n groupFilterOptionsFn = $parse(match[1]);\r\n\r\n if (options.newItemFn) {\r\n newItemFn = $parse(options.newItemFn);\r\n\r\n } else {\r\n newItemFn = function (scope, locals) {\r\n return (optionsFn(locals) || {}).newItemModel || locals.$query;\r\n };\r\n }\r\n\r\n if (options.cleanModel && (!editItem || editItemIsCorrected)) {\r\n element.addClass('cleanMode');\r\n }\r\n\r\n var unbindFocusBlur = oiUtils.bindFocusBlur(element, inputElement);\r\n\r\n if (angular.isDefined(attrs.autofocus)) {\r\n $timeout(function () {\r\n inputElement[0].focus();\r\n });\r\n }\r\n\r\n if (angular.isDefined(attrs.readonly)) {\r\n inputElement.attr('readonly', true);\r\n }\r\n\r\n if (angular.isDefined(attrs.tabindex)) {\r\n inputElement.attr('tabindex', attrs.tabindex);\r\n element[0].removeAttribute('tabindex');\r\n }\r\n\r\n if (options.maxlength) {\r\n inputElement.attr('maxlength', options.maxlength);\r\n }\r\n\r\n attrs.$observe('disabled', function (value) {\r\n inputElement.prop('disabled', value);\r\n\r\n //hide empty string with input\r\n if (multiple && ctrl.$modelValue && ctrl.$modelValue.length) {\r\n scope.inputHide = value;\r\n }\r\n });\r\n\r\n scope.$on('$destroy', unbindFocusBlur);\r\n\r\n scope.$parent.$watch(attrs.multipleLimit, function (value) {\r\n multipleLimit = Number(value) || Infinity;\r\n });\r\n\r\n scope.$parent.$watch(attrs.multiple, function (multipleValue) {\r\n multiple = multipleValue === undefined ? angular.isDefined(attrs.multiple) : multipleValue;\r\n\r\n element[multiple ? 'addClass' : 'removeClass']('multiple');\r\n });\r\n\r\n function valueChangedManually() { //case: clean model; prompt + editItem: 'correct'; initial value = defined/undefined\r\n if (editItemIsCorrected) {\r\n element.removeClass('cleanMode');\r\n }\r\n editItemIsCorrected = false;\r\n }\r\n\r\n scope.$parent.$watch(attrs.ngModel, function (value, oldValue) {\r\n var output = compact(value),\r\n promise = $q.when(output);\r\n\r\n modifyPlaceholder();\r\n\r\n if (exists(oldValue) && value !== oldValue) {\r\n valueChangedManually();\r\n }\r\n\r\n if (!multiple) {\r\n restoreInput();\r\n }\r\n\r\n if (selectAsFn && exists(value)) {\r\n promise = getMatches(null, value)\r\n .then(function (collection) {\r\n return oiUtils.intersection(output, collection, null, selectAs);\r\n });\r\n timeoutPromise = null; //`resetMatches` should not cancel the `promise`\r\n }\r\n\r\n if (multiple && attrs.disabled && !exists(value)) { //case: multiple, disabled=true + remove all items\r\n scope.inputHide = false;\r\n }\r\n\r\n promise.then(function (collection) {\r\n scope.output = collection;\r\n\r\n if (collection.length !== output.length) {\r\n scope.removeItem(collection.length); //if newItem was not created\r\n }\r\n });\r\n });\r\n\r\n scope.$watch('query', function (inputValue, oldValue) {\r\n //terminated symbol\r\n if (saveOn(inputValue.slice(0, -1), inputValue.slice(-1))) return;\r\n\r\n //length less then minlength\r\n if (String(inputValue).length < options.minlength) return;\r\n\r\n //We don't get matches if nothing added into matches list\r\n if (inputValue !== oldValue && (!scope.oldQuery || inputValue) && !matchesWereReset) {\r\n listElement[0].scrollTop = 0;\r\n\r\n if (inputValue) {\r\n getMatches(inputValue);\r\n scope.oldQuery = null;\r\n } else if (multiple) {\r\n resetMatches();\r\n matchesWereReset = true;\r\n }\r\n }\r\n matchesWereReset = false;\r\n });\r\n\r\n scope.$watch('groups', function (groups) {\r\n if (oiUtils.groupsIsEmpty(groups)) {\r\n scope.isOpen = false;\r\n\r\n } else if (!scope.isOpen && !attrs.disabled) {\r\n scope.isOpen = true;\r\n scope.isFocused = true;\r\n }\r\n });\r\n\r\n scope.$watch('isFocused', function (isFocused) {\r\n $animate[isFocused ? 'addClass' : 'removeClass'](element, 'focused', !isOldAngular && {\r\n tempClasses: 'focused-animate'\r\n });\r\n });\r\n\r\n scope.$watch('isOpen', function (isOpen) {\r\n $animate[isOpen ? 'addClass' : 'removeClass'](element, 'open', !isOldAngular && {\r\n tempClasses: 'open-animate'\r\n });\r\n });\r\n\r\n scope.$watch('isEmptyList', function (isEmptyList) {\r\n $animate[isEmptyList ? 'addClass' : 'removeClass'](element, 'emptyList', !isOldAngular && {\r\n tempClasses: 'emptyList-animate'\r\n });\r\n });\r\n\r\n scope.$watch('showLoader', function (isLoading) {\r\n $animate[isLoading ? 'addClass' : 'removeClass'](element, 'loading', !isOldAngular && {\r\n tempClasses: 'loading-animate'\r\n });\r\n });\r\n\r\n scope.addItem = function addItem(option) {\r\n lastQuery = scope.query;\r\n\r\n //duplicate\r\n if (multiple && oiUtils.intersection(scope.output, [option], trackBy, trackBy).length) return;\r\n\r\n //limit is reached\r\n if (scope.output.length >= multipleLimit) {\r\n blinkClass('limited');\r\n\r\n return;\r\n }\r\n\r\n var optionGroup = scope.groups[getGroupName(option)] = scope.groups[getGroupName(option)] || [];\r\n var modelOption = selectAsFn ? selectAs(option) : option;\r\n\r\n optionGroup.splice(optionGroup.indexOf(option), 1);\r\n\r\n if (multiple) {\r\n ctrl.$setViewValue(angular.isArray(ctrl.$modelValue) ? ctrl.$modelValue.concat(modelOption) : [modelOption]);\r\n\r\n } else {\r\n ctrl.$setViewValue(modelOption);\r\n restoreInput();\r\n }\r\n\r\n if (oiUtils.groupsIsEmpty(scope.groups)) {\r\n scope.groups = {}; //it is necessary for groups watcher\r\n }\r\n\r\n if (!multiple && !options.closeList) {\r\n resetMatches({ query: true });\r\n }\r\n\r\n valueChangedManually();\r\n\r\n scope.oldQuery = scope.oldQuery || scope.query;\r\n if (multiple && !options.closeList) {\r\n\r\n } else {\r\n scope.query = '';\r\n }\r\n scope.backspaceFocus = false;\r\n };\r\n\r\n scope.removeItem = function removeItem(position) {\r\n if (attrs.disabled || multiple && position < 0) return;\r\n\r\n removedItem = multiple ? ctrl.$modelValue[position] : ctrl.$modelValue;\r\n\r\n $q.when(removeItemFn(scope.$parent, { $item: removedItem }))\r\n .then(function () {\r\n if (!multiple && !scope.inputHide) return;\r\n\r\n if (multiple) {\r\n ctrl.$modelValue.splice(position, 1);\r\n ctrl.$setViewValue([].concat(ctrl.$modelValue));\r\n\r\n } else {\r\n cleanInput();\r\n\r\n if (options.cleanModel) {\r\n ctrl.$setViewValue(undefined);\r\n }\r\n }\r\n\r\n if (multiple || !scope.backspaceFocus) {\r\n scope.query = editItemFn(removedItem, lastQuery, getLabel, editItemIsCorrected, element) || '';\r\n }\r\n\r\n if (multiple && options.closeList) {\r\n resetMatches({ query: true });\r\n }\r\n });\r\n };\r\n\r\n scope.setSelection = function (index) {\r\n if (!keyUpDownWerePressed && scope.selectorPosition !== index) {\r\n setOption(listElement, index);\r\n } else {\r\n keyUpDownWerePressed = false;\r\n }\r\n };\r\n\r\n scope.keyUp = function keyUp(event) { //scope.query is actual\r\n switch (event.keyCode) {\r\n case 8: /* backspace */\r\n if (!scope.query.length && (!multiple || !scope.output.length)) {\r\n resetMatches();\r\n }\r\n }\r\n };\r\n\r\n scope.keyDown = function keyDown(event) {\r\n var top = 0,\r\n bottom = scope.order.length - 1;\r\n\r\n switch (event.keyCode) {\r\n case 38: /* up */\r\n scope.selectorPosition = angular.isNumber(scope.selectorPosition) ? scope.selectorPosition : top;\r\n setOption(listElement, scope.selectorPosition === top ? bottom : scope.selectorPosition - 1);\r\n keyUpDownWerePressed = true;\r\n break;\r\n\r\n case 40: /* down */\r\n scope.selectorPosition = angular.isNumber(scope.selectorPosition) ? scope.selectorPosition : top - 1;\r\n setOption(listElement, scope.selectorPosition === bottom ? top : scope.selectorPosition + 1);\r\n keyUpDownWerePressed = true;\r\n if (!scope.query.length && !scope.isOpen) {\r\n getMatches();\r\n }\r\n if (scope.inputHide) {\r\n cleanInput();\r\n }\r\n\r\n break;\r\n\r\n case 37: /* left */\r\n case 39: /* right */\r\n break;\r\n\r\n case 9: /* tab */\r\n saveOn('tab');\r\n break;\r\n\r\n case 13: /* enter */\r\n saveOn('enter');\r\n event.preventDefault(); // Prevent the event from bubbling up as it might otherwise cause a form submission\r\n break;\r\n\r\n case 32: /* space */\r\n saveOn('space');\r\n break;\r\n\r\n case 27: /* esc */\r\n if (!multiple) {\r\n restoreInput();\r\n\r\n if (options.cleanModel) {\r\n ctrl.$setViewValue(removedItem);\r\n }\r\n }\r\n resetMatches();\r\n break;\r\n\r\n case 8: /* backspace */\r\n if (!scope.query.length) {\r\n if (!multiple || editItem) {\r\n scope.backspaceFocus = true;\r\n }\r\n if (scope.backspaceFocus && scope.output && (!multiple || scope.output.length)) { //prevent restoring last deleted option\r\n scope.removeItem(scope.output.length - 1);\r\n\r\n if (editItem) {\r\n event.preventDefault();\r\n }\r\n break;\r\n }\r\n scope.backspaceFocus = !scope.backspaceFocus;\r\n break;\r\n }\r\n default: /* any key */\r\n if (scope.inputHide) {\r\n cleanInput();\r\n }\r\n scope.backspaceFocus = false;\r\n return false; //preventDefaults\r\n }\r\n };\r\n\r\n scope.getSearchLabel = function (item) {\r\n var label = getLabel(item);\r\n\r\n label = label.replace(/<[^>]+>/g, ''); // strips tags\r\n label = label.replace(/\\{|\\}/gi, ''); // strips curly brackets\r\n return searchFilter(label, scope.oldQuery || scope.query, item, searchFilterOptionsFn(scope.$parent), element);\r\n };\r\n\r\n scope.getDropdownLabel = function (item) {\r\n var label = getLabel(item);\r\n\r\n return dropdownFilter(label, scope.oldQuery || scope.query, item, dropdownFilterOptionsFn(scope.$parent), element);\r\n };\r\n\r\n scope.getGroupLabel = function (group, items) {\r\n return groupFilter(group, scope.oldQuery || scope.query, items, groupFilterOptionsFn(scope.$parent), element);\r\n };\r\n\r\n scope.getDisableWhen = getDisableWhen;\r\n\r\n\r\n resetMatches();\r\n\r\n element[0].addEventListener('click', click, true); //triggered before add or delete item event\r\n scope.$on('$destroy', function () {\r\n element[0].removeEventListener('click', click, true);\r\n });\r\n element.on('focus', focus);\r\n element.on('blur', blur);\r\n\r\n function blinkClass(name, delay) {\r\n delay = delay || 150;\r\n\r\n element.addClass(name);\r\n\r\n $timeout(function () {\r\n element.removeClass(name);\r\n }, delay);\r\n }\r\n\r\n function cleanInput() {\r\n scope.listItemHide = true;\r\n scope.inputHide = false;\r\n }\r\n\r\n function restoreInput() {\r\n var modelExists = exists(ctrl.$modelValue);\r\n scope.listItemHide = !modelExists;\r\n scope.inputHide = modelExists;\r\n }\r\n\r\n function click(event) {\r\n //query length less then minlength\r\n if (scope.query.length < options.minlength) return;\r\n\r\n //option is disabled\r\n if (oiUtils.contains(element[0], event.target, 'disabled')) return;\r\n\r\n //limit is reached\r\n if (scope.output.length >= multipleLimit && oiUtils.contains(element[0], event.target, 'select-dropdown')) return;\r\n\r\n if (scope.inputHide) {\r\n scope.removeItem(0); //because click on border (not on chosen item) doesn't remove chosen element\r\n }\r\n\r\n if (scope.isOpen && options.closeList && (event.target.nodeName !== 'INPUT' || !scope.query.length)) { //do not reset if you are editing the query\r\n resetMatches({ query: options.editItem && !editItemIsCorrected });\r\n scope.$evalAsync();\r\n } else {\r\n getMatches(scope.query);\r\n }\r\n }\r\n\r\n function focus(event) {\r\n if (scope.isFocused) return;\r\n\r\n scope.isFocused = true;\r\n\r\n if (attrs.disabled) return;\r\n\r\n scope.backspaceFocus = false;\r\n }\r\n\r\n\r\n function blur(event) {\r\n scope.isFocused = false;\r\n\r\n if (!multiple) {\r\n restoreInput();\r\n }\r\n\r\n if (!saveOn('blur')) {\r\n resetMatches();\r\n }\r\n scope.$evalAsync();\r\n }\r\n\r\n function saveOn(query, triggerName) {\r\n if (!triggerName) {\r\n triggerName = query;\r\n query = scope.query;\r\n }\r\n\r\n var isTriggered = options.saveTrigger.split(' ').indexOf(triggerName) + 1,\r\n isNewItem = options.newItem && query,\r\n selectedOrder = triggerName !== 'blur' ? scope.order[scope.selectorPosition] : null, //do not save selected element in dropdown list on blur\r\n itemPromise;\r\n\r\n if (isTriggered && (isNewItem || selectedOrder && !getDisableWhen(selectedOrder))) {\r\n scope.showLoader = true;\r\n itemPromise = $q.when(selectedOrder || newItemFn(scope.$parent, { $query: query }));\r\n\r\n itemPromise\r\n .then(function (data) {\r\n if (data === undefined) {\r\n return $q.reject();\r\n }\r\n\r\n scope.addItem(data);\r\n\r\n var bottom = scope.order.length - 1;\r\n\r\n if (scope.selectorPosition === bottom) {\r\n setOption(listElement, 0); //TODO optimise when list will be closed\r\n }\r\n options.newItemFn && !selectedOrder || $timeout(angular.noop); //TODO $applyAsync work since Angular 1.3\r\n resetMatches();\r\n })\r\n .catch(function () {\r\n blinkClass('invalid-item');\r\n scope.showLoader = false;\r\n });\r\n\r\n return true;\r\n }\r\n }\r\n\r\n function modifyPlaceholder() {\r\n var currentPlaceholder = multiple && exists(ctrl.$modelValue) ? multiplePlaceholder : placeholder;\r\n inputElement.attr('placeholder', currentPlaceholder);\r\n }\r\n\r\n function trackBy(item) {\r\n return oiUtils.getValue(valueName, item, scope.$parent, trackByFn);\r\n }\r\n\r\n function selectAs(item) {\r\n return oiUtils.getValue(valueName, item, scope.$parent, selectAsFn);\r\n }\r\n\r\n function getLabel(item) {\r\n return oiUtils.getValue(valueName, item, scope.$parent, displayFn);\r\n }\r\n\r\n function getDisableWhen(item) {\r\n return scope.isEmptyList || oiUtils.getValue(valueName, item, scope.$parent, disableWhenFn);\r\n }\r\n\r\n function getGroupName(option) {\r\n return oiUtils.getValue(valueName, option, scope.$parent, groupByFn) || '';\r\n }\r\n\r\n function filter(list) {\r\n return oiUtils.getValue(valuesName, list, scope.$parent, filteredValuesFn);\r\n }\r\n\r\n function compact(value) {\r\n value = value instanceof Array ? value : value ? [value] : [];\r\n\r\n return value.filter(function (item) {\r\n return item !== undefined && (item instanceof Array && item.length || selectAsFn || getLabel(item));\r\n });\r\n }\r\n\r\n function exists(value) {\r\n return !!compact(value).length;\r\n }\r\n\r\n function getMatches(query, selectedAs) {\r\n scope.isEmptyList = false;\r\n\r\n if (timeoutPromise && waitTime) {\r\n $timeout.cancel(timeoutPromise); //cancel previous timeout\r\n }\r\n\r\n timeoutPromise = $timeout(function () {\r\n var values = valuesFn(scope.$parent, { $query: query, $selectedAs: selectedAs }) || '';\r\n\r\n scope.selectorPosition = options.newItem === 'prompt' ? false : 0;\r\n\r\n if (!query && !selectedAs) {\r\n scope.oldQuery = null;\r\n }\r\n\r\n if (values.$promise && !values.$resolved || angular.isFunction(values.then)) {\r\n waitTime = options.debounce;\r\n }\r\n\r\n scope.showLoader = true;\r\n\r\n return $q.when(values.$promise || values)\r\n .then(function (values) {\r\n\r\n scope.groups = {};\r\n\r\n if (values && keyName) {\r\n //convert object data sources format to array data sources format\r\n var arr = [];\r\n\r\n angular.forEach(values, function (value, key) {\r\n if (key.toString().charAt(0) !== '$') {\r\n var item = {};\r\n\r\n item[keyTitle] = key;\r\n item[valueTitle] = value;\r\n arr.push(item);\r\n }\r\n });\r\n\r\n values = arr;\r\n }\r\n\r\n if (values && !selectedAs) {\r\n var outputValues = multiple ? scope.output : [];\r\n var filteredList = listFilter(values, query, getLabel, listFilterOptionsFn(scope.$parent), element);\r\n var withoutIntersection = oiUtils.intersection(filteredList, outputValues, trackBy, trackBy, true);\r\n var filteredOutput = filter(withoutIntersection);\r\n\r\n //add element with placeholder to empty list\r\n if (!filteredOutput.length) {\r\n scope.isEmptyList = true;\r\n\r\n if (listPlaceholder) {\r\n var context = {};\r\n\r\n displayFn.assign(context, listPlaceholder);\r\n filteredOutput = [context[valueName]];\r\n }\r\n }\r\n\r\n scope.groups = group(filteredOutput);\r\n }\r\n updateGroupPos();\r\n\r\n return values;\r\n })\r\n .finally(function () {\r\n scope.showLoader = false;\r\n\r\n if (options.closeList && !options.cleanModel) { //case: prompt\r\n $timeout(function () {\r\n setOption(listElement, 0);\r\n });\r\n }\r\n });\r\n }, waitTime);\r\n\r\n return timeoutPromise;\r\n }\r\n\r\n function updateGroupPos() {\r\n var i, key, value, collectionKeys = [], groupCount = 0;\r\n\r\n scope.order = [];\r\n scope.groupPos = {};\r\n\r\n for (key in scope.groups) {\r\n if (scope.groups.hasOwnProperty(key) && key.charAt(0) != '$') {\r\n collectionKeys.push(key);\r\n }\r\n }\r\n\r\n if (isOldAngular) {\r\n collectionKeys.sort(); //TODO: Think of a way which does not depend on the order in which Angular displays objects by ngRepeat\r\n }\r\n\r\n for (i = 0; i < collectionKeys.length; i++) {\r\n key = collectionKeys[i];\r\n value = scope.groups[key];\r\n\r\n scope.order = scope.order.concat(value);\r\n scope.groupPos[key] = groupCount;\r\n groupCount += value.length;\r\n }\r\n }\r\n\r\n function resetMatches(options) {\r\n options = options || {};\r\n\r\n scope.oldQuery = null;\r\n scope.backspaceFocus = false; // clears focus on any chosen item for del\r\n scope.groups = {};\r\n scope.order = [];\r\n scope.showLoader = false;\r\n scope.isOpen = false;\r\n waitTime = 0;\r\n\r\n if (!options.query) {\r\n scope.query = '';\r\n }\r\n\r\n if (timeoutPromise) {\r\n $timeout.cancel(timeoutPromise);//cancel previous timeout\r\n }\r\n }\r\n\r\n function setOption(listElement, position) {\r\n scope.selectorPosition = position;\r\n oiUtils.scrollActiveOption(listElement[0], listElement.find('li')[position]);\r\n }\r\n\r\n function group(input) {\r\n var optionGroups = { '': [] },\r\n optionGroupName,\r\n optionGroup;\r\n\r\n for (var i = 0; i < input.length; i++) {\r\n optionGroupName = getGroupName(input[i]);\r\n\r\n if (!(optionGroup = optionGroups[optionGroupName])) {\r\n optionGroup = optionGroups[optionGroupName] = [];\r\n }\r\n optionGroup.push(input[i]);\r\n }\r\n\r\n return optionGroups;\r\n }\r\n };\r\n }\r\n };\r\n }]);\r\n\r\nangular.module('oi.select')\r\n\r\n .filter('oiSelectGroup', ['$sce', function ($sce) {\r\n return function (label) {\r\n return $sce.trustAsHtml(label);\r\n };\r\n }])\r\n\r\n .filter('oiSelectCloseIcon', ['$sce', function ($sce) {\r\n return function (label) {\r\n var closeIcon = '';\r\n\r\n return $sce.trustAsHtml(label + closeIcon);\r\n };\r\n }])\r\n\r\n .filter('oiSelectHighlight', ['$sce', 'oiSelectEscape', function ($sce, oiSelectEscape) {\r\n return function (label, query) {\r\n var html;\r\n\r\n if (query.length > 0 || angular.isNumber(query)) {\r\n label = label.toString();\r\n query = oiSelectEscape(query);\r\n html = label.replace(new RegExp(query, 'gi'), '$&');\r\n } else if (query.length === 0) {\r\n label = label.toString();\r\n html = label.replace(new RegExp(query, 'gi'), '$&');\r\n } else {\r\n html = label;\r\n }\r\n\r\n return $sce.trustAsHtml(html);\r\n };\r\n }])\r\n\r\n .filter('oiSelectAscSort', ['oiSelectEscape', function (oiSelectEscape) {\r\n function ascSort(input, query, getLabel, options) {\r\n var i, j, isFound, output, output1 = [], output2 = [], output3 = [], output4 = [];\r\n\r\n if (query) {\r\n query = oiSelectEscape(query).toLocaleLowerCase();\r\n\r\n for (i = 0, isFound = false; i < input.length; i++) {\r\n isFound = getLabel(input[i]).toLocaleLowerCase().match(new RegExp(query));\r\n\r\n if (!isFound && options && (options.length || options.fields)) {\r\n for (j = 0; j < options.length; j++) {\r\n if (isFound) break;\r\n\r\n isFound = String(input[i][options[j]]).toLocaleLowerCase().match(new RegExp(query));\r\n }\r\n }\r\n\r\n if (isFound) {\r\n output1.push(input[i]);\r\n }\r\n }\r\n for (i = 0; i < output1.length; i++) {\r\n if (getLabel(output1[i]).toLocaleLowerCase().match(new RegExp('^' + query))) {\r\n output2.push(output1[i]);\r\n } else {\r\n output3.push(output1[i]);\r\n }\r\n }\r\n output = output2.concat(output3);\r\n\r\n if (options && (options === true || options.all)) {\r\n inputLabel: for (i = 0; i < input.length; i++) {\r\n for (j = 0; j < output.length; j++) {\r\n if (input[i] === output[j]) {\r\n continue inputLabel;\r\n }\r\n }\r\n output4.push(input[i]);\r\n }\r\n output = output.concat(output4);\r\n }\r\n } else {\r\n output = [].concat(input);\r\n }\r\n\r\n return output;\r\n }\r\n\r\n return ascSort;\r\n }])\r\n\r\n .filter('none', function () {\r\n return function (input) {\r\n return input;\r\n };\r\n });\r\nangular.module(\"oi.select\").run([\"$templateCache\", function ($templateCache) { $templateCache.put(\"src/template.html\", \"
\"); }]);","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ax-security-designer .ax-security-designer-default-row {\\r\\n border: 1px solid #e7e7e7;\\r\\n}\\r\\n\\r\\n.ax-security-designer .inline {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.ax-security-designer .no-security-models-bold-text {\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.ax-security-designer .no-security-models-opacity {\\r\\n opacity: 0.35;\\r\\n}\\r\\n\\r\\n.ax-security-designer .roles-loading-spinner {\\r\\n position: relative; \\r\\n height: 375px;\\r\\n}\\r\\n\\r\\n.ax-security-designer .progress-bar-style {\\r\\n margin-bottom: 20px; \\r\\n height: 6px; \\r\\n width: 90%\\r\\n}\\r\\n\\r\\n.ax-security-designer .security-model-info-toggle {\\r\\n display: inline-block; \\r\\n margin:0 0 0px 4px;\\r\\n}\\r\\n\\r\\n.ax-security-designer .security-model-info-toggle-text-styles {\\r\\n display: inline-block; \\r\\n text-align: center; \\r\\n padding: 6px 0px; \\r\\n color: #8592A6; \\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.ax-security-designer .security-model-name-size {\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\n.ax-security-designer .rounded-error-banner {\\r\\n border-radius: 8px 8px 0px 0px;\\r\\n}\\r\\n\\r\\n.ax-security-designer .loading-affected-objects-block {\\r\\n height: auto;\\r\\n}\\r\\n\\r\\n\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Components/AXSecurityDesigner/AXSecurityDesigner.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,yBAAyB;AAC7B;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,kBAAkB;IAClB,aAAa;AACjB;;AAEA;IACI,mBAAmB;IACnB,WAAW;IACX;AACJ;;AAEA;IACI,qBAAqB;IACrB,kBAAkB;AACtB;;AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,cAAc;IACd,gBAAgB;AACpB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,8BAA8B;AAClC;;AAEA;IACI,YAAY;AAChB\",\"sourcesContent\":[\".ax-security-designer .ax-security-designer-default-row {\\r\\n border: 1px solid #e7e7e7;\\r\\n}\\r\\n\\r\\n.ax-security-designer .inline {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.ax-security-designer .no-security-models-bold-text {\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.ax-security-designer .no-security-models-opacity {\\r\\n opacity: 0.35;\\r\\n}\\r\\n\\r\\n.ax-security-designer .roles-loading-spinner {\\r\\n position: relative; \\r\\n height: 375px;\\r\\n}\\r\\n\\r\\n.ax-security-designer .progress-bar-style {\\r\\n margin-bottom: 20px; \\r\\n height: 6px; \\r\\n width: 90%\\r\\n}\\r\\n\\r\\n.ax-security-designer .security-model-info-toggle {\\r\\n display: inline-block; \\r\\n margin:0 0 0px 4px;\\r\\n}\\r\\n\\r\\n.ax-security-designer .security-model-info-toggle-text-styles {\\r\\n display: inline-block; \\r\\n text-align: center; \\r\\n padding: 6px 0px; \\r\\n color: #8592A6; \\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.ax-security-designer .security-model-name-size {\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\n.ax-security-designer .rounded-error-banner {\\r\\n border-radius: 8px 8px 0px 0px;\\r\\n}\\r\\n\\r\\n.ax-security-designer .loading-affected-objects-block {\\r\\n height: auto;\\r\\n}\\r\\n\\r\\n\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".approval-rules .dropdown-menu {\\r\\n min-width: 225px;\\r\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Components/ApprovalRules/approvalRules.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,gBAAgB;AACpB\",\"sourcesContent\":[\".approval-rules .dropdown-menu {\\r\\n min-width: 225px;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".oracle-cloud-data-changes .number-block {\\r\\n width: 91px;\\r\\n}\\r\\n\\r\\n.oracle-cloud-data-changes .number-input {\\r\\n width: 90px;\\r\\n background: white;\\r\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Components/DataChangesOracleCloud/oracleCloudDataChanges.css\"],\"names\":[],\"mappings\":\"AAAA;GACG,WAAW;AACd;;AAEA;GACG,WAAW;GACX,iBAAiB;AACpB\",\"sourcesContent\":[\".oracle-cloud-data-changes .number-block {\\r\\n width: 91px;\\r\\n}\\r\\n\\r\\n.oracle-cloud-data-changes .number-input {\\r\\n width: 90px;\\r\\n background: white;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".service-now-ticket-modal .k-grid-content {\\r\\n min-height: 330px;\\r\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Components/DataChanges/ServiceNow/ServiceNowTicketModal.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,iBAAiB;AACrB\",\"sourcesContent\":[\".service-now-ticket-modal .k-grid-content {\\r\\n min-height: 330px;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".netsuite-arm-quantification-selection p.description {\\r\\n height: 6rem;\\r\\n}\\r\\n\\r\\n.netsuite-arm-quantification-selection .tooltip-inner {\\r\\n word-break: normal;\\r\\n}\\r\\n\\r\\n.netsuite-arm-quantification-view-details-modal .k-grid-content {\\r\\n min-height: 290px;\\r\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Components/NetSuiteArmQuantification/NetSuiteArmQuantification.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,YAAY;AAChB;;AAEA;IACI,kBAAkB;AACtB;;AAEA;IACI,iBAAiB;AACrB\",\"sourcesContent\":[\".netsuite-arm-quantification-selection p.description {\\r\\n height: 6rem;\\r\\n}\\r\\n\\r\\n.netsuite-arm-quantification-selection .tooltip-inner {\\r\\n word-break: normal;\\r\\n}\\r\\n\\r\\n.netsuite-arm-quantification-view-details-modal .k-grid-content {\\r\\n min-height: 290px;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".notifications .product {\\r\\n background-color: #F5F5F5;\\r\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Components/Notifications/notifications.css\"],\"names\":[],\"mappings\":\"AAAA;GACG,yBAAyB;AAC5B\",\"sourcesContent\":[\".notifications .product {\\r\\n background-color: #F5F5F5;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ax7-person-search-modal .k-grid-content {\\r\\n min-height: 240px;\\r\\n}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Components/RequestManagement/AX7Person/ax7PersonSearch.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,iBAAiB;AACrB\",\"sourcesContent\":[\".ax7-person-search-modal .k-grid-content {\\r\\n min-height: 240px;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".access-effective-dates-panel {\\r\\n padding: 4px;\\r\\n border: 1px #ddd solid;\\r\\n background: #F9F9FA;\\r\\n height: 80px;\\r\\n border-radius: 4px;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Components/RequestManagement/WizardSteps/Universal/effectiveDates.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,YAAY;IACZ,sBAAsB;IACtB,mBAAmB;IACnB,YAAY;IACZ,kBAAkB;IAClB,eAAe;AACnB\",\"sourcesContent\":[\".access-effective-dates-panel {\\r\\n padding: 4px;\\r\\n border: 1px #ddd solid;\\r\\n background: #F9F9FA;\\r\\n height: 80px;\\r\\n border-radius: 4px;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".im-request-service-now-ticket-modal .k-grid-content {\\r\\n min-height: 330px;\\r\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Components/RequestManagement/WizardSteps/Universal/linkTickets/ServiceNow/IMRequestServiceNowTicketModal.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,iBAAiB;AACrB\",\"sourcesContent\":[\".im-request-service-now-ticket-modal .k-grid-content {\\r\\n min-height: 330px;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".im-request-summary .dropdown.dropdown-over-footer ul.dropdown-menu {\\r\\n z-index: 1001;\\r\\n}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Components/RequestManagement/WizardSteps/Universal/summary.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,aAAa;AACjB\",\"sourcesContent\":[\".im-request-summary .dropdown.dropdown-over-footer ul.dropdown-menu {\\r\\n z-index: 1001;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".users-view .user-toggle {\\r\\n margin-right: 20px;\\r\\n padding-bottom: 60px;\\r\\n}\\r\\n\\r\\n.users-view .change-name-to {\\r\\n width: 200px;\\r\\n}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Components/Users/usersView.css\"],\"names\":[],\"mappings\":\"AAAA;GACG,kBAAkB;GAClB,oBAAoB;AACvB;;AAEA;GACG,YAAY;AACf\",\"sourcesContent\":[\".users-view .user-toggle {\\r\\n margin-right: 20px;\\r\\n padding-bottom: 60px;\\r\\n}\\r\\n\\r\\n.users-view .change-name-to {\\r\\n width: 200px;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"../../../../Content/Images/SVG/icons8-Sort Down.svg\";\nimport ___CSS_LOADER_URL_IMPORT_1___ from \"../../../../Content/Images/SVG/x-circle-12.svg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".role-multiselect-dropdown .criteria-container > .k-multiselect > .k-multiselect-wrap {\\r\\n background-attachment: scroll;\\r\\n background-clip: border-box;\\r\\n background-color: rgb(255, 255, 255);\\r\\n background-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\r\\n background-origin: padding-box;\\r\\n background-position: 99% 50%;\\r\\n background-position-x: 99%;\\r\\n background-position-y: 50%;\\r\\n background-repeat: no-repeat;\\r\\n background-size: auto;\\r\\n border-bottom-color: #C2C4CC;\\r\\n border-bottom-left-radius: 2px;\\r\\n border-bottom-right-radius: 2px;\\r\\n border-bottom-style: solid;\\r\\n border-bottom-width: 1px;\\r\\n border-image-outset: 0;\\r\\n border-image-repeat: stretch;\\r\\n border-image-slice: 100%;\\r\\n border-image-source: none;\\r\\n border-image-width: 1;\\r\\n border-left-color: #C2C4CC;\\r\\n border-left-style: solid;\\r\\n border-left-width: 1px;\\r\\n border-right-color: #C2C4CC;\\r\\n border-right-style: solid;\\r\\n border-right-width: 1px;\\r\\n border-top-color: #C2C4CC;\\r\\n border-top-left-radius: 2px;\\r\\n border-top-right-radius: 2px;\\r\\n border-top-style: solid;\\r\\n border-top-width: 1px;\\r\\n box-shadow: none;\\r\\n box-sizing: border-box;\\r\\n color: rgb(103, 106, 108);\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n font-family: \\\"Manrope\\\", \\\"Manrope\\\", Helvetica, Arial, sans-serif;\\r\\n font-feature-settings: normal;\\r\\n font-kerning: auto;\\r\\n font-language-override: normal;\\r\\n font-optical-sizing: auto;\\r\\n font-size: 12px;\\r\\n font-size-adjust: none;\\r\\n font-stretch: 100%;\\r\\n font-style: normal;\\r\\n font-variant: normal;\\r\\n font-variant-alternates: normal;\\r\\n font-variant-caps: normal;\\r\\n font-variant-east-asian: normal;\\r\\n font-variant-ligatures: normal;\\r\\n font-variant-numeric: normal;\\r\\n font-variant-position: normal;\\r\\n font-variation-settings: normal;\\r\\n font-weight: 400;\\r\\n line-height: 17.15px;\\r\\n margin: 0px;\\r\\n max-height: 150px;\\r\\n min-height: 40px;\\r\\n overflow-y: auto;\\r\\n padding-bottom: 2px;\\r\\n padding-left: 2px;\\r\\n padding-right: 3px;\\r\\n padding-top: 2px;\\r\\n text-transform: none;\\r\\n vertical-align: middle;\\r\\n width: 280px;\\r\\n -moz-appearance: none;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .criteria-container > .k-multiselect > .k-multiselect-wrap, .k-floatwrap {\\r\\n border: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button {\\r\\n color: #121321;\\r\\n border-color: #C2C4CC;\\r\\n background-color: #EEEFF2;\\r\\n background-attachment: scroll;\\r\\n background-clip: border-box;\\r\\n background-image: none;\\r\\n background-origin: padding-box;\\r\\n background-position: 0% 0%;\\r\\n background-position-x: 0%;\\r\\n background-position-y: 0%;\\r\\n background-repeat: repeat;\\r\\n background-size: auto;\\r\\n border-bottom-color: #C2C4CC;\\r\\n border-bottom-left-radius: 8px;\\r\\n border-bottom-right-radius: 8px;\\r\\n border-bottom-style: solid;\\r\\n border-bottom-width: 1px;\\r\\n border-image-outset: 0;\\r\\n border-image-repeat: stretch;\\r\\n border-image-slice: 100%;\\r\\n border-image-source: none;\\r\\n border-image-width: 1;\\r\\n border-left-color: #C2C4CC;\\r\\n border-left-style: solid;\\r\\n border-left-width: 1px;\\r\\n border-right-color: #C2C4CC;\\r\\n border-right-style: solid;\\r\\n border-right-width: 1px;\\r\\n border-top-color: #C2C4CC;\\r\\n border-top-left-radius: 8px;\\r\\n border-top-right-radius: 8px;\\r\\n border-top-style: solid;\\r\\n border-top-width: 1px;\\r\\n box-sizing: border-box;\\r\\n color: #121321;\\r\\n cursor: pointer;\\r\\n display: block;\\r\\n font-family: \\\"Manrope\\\", \\\"Manrope\\\", Helvetica, Arial, sans-serif;\\r\\n font-size: 12px;\\r\\n font-weight: 400;\\r\\n line-height: 18px;\\r\\n list-style-image: none;\\r\\n list-style-position: outside;\\r\\n list-style-type: none;\\r\\n margin: 2px;\\r\\n padding-bottom: 6px;\\r\\n padding-left: 6px;\\r\\n padding-right: 20px;\\r\\n padding-top: 6px;\\r\\n text-align: left;\\r\\n touch-action: manipulation;\\r\\n user-select: none;\\r\\n white-space: normal;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button:hover {\\r\\n background-color: #f5f5f7;\\r\\n border-color: #e2e2e2;\\r\\n color: #121321;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button:active {\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect-wrap .k-select {\\r\\n top: 3px;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button .k-select {\\r\\n box-sizing: border-box;\\r\\n color: #121321;\\r\\n cursor: pointer;\\r\\n display: block;\\r\\n font-family: \\\"Manrope\\\", \\\"Manrope\\\", Helvetica, Arial, sans-serif;\\r\\n font-size: 18px;\\r\\n font-weight: 400;\\r\\n line-height: 18px;\\r\\n list-style-image: none;\\r\\n list-style-position: outside;\\r\\n list-style-type: none;\\r\\n opacity: 0.2;\\r\\n text-align: left;\\r\\n white-space: normal;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button .k-select:hover {\\r\\n opacity: 0.5;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-icon {\\r\\n font-size: 15px;\\r\\n background-repeat: no-repeat;\\r\\n background-size: contain;\\r\\n font-family: WebComponentsIcons;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button .k-select .k-icon, .k-i-close {\\r\\n font-size: 15px;\\r\\n font-family: none;\\r\\n margin-left: 4px;\\r\\n background-repeat: no-repeat;\\r\\n background-size: contain;\\r\\n background-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button .k-select .k-icon, .k-i-close::before {\\r\\n content: none;\\r\\n} \\r\\n\\r\\n/* placeholder styles */\\r\\n.role-multiselect-dropdown .criteria-container > .k-multiselect > .k-multiselect-wrap > .k-input {\\r\\npadding-top: 5px;\\r\\npadding-left: 0px;\\r\\nflex: 1;\\r\\ncolor: #121321;\\r\\nopacity: 1;\\r\\n}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Shared/Components/roleMultiselectDropdown/roleMultiselectDropdown.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".role-multiselect-dropdown .criteria-container > .k-multiselect > .k-multiselect-wrap {\\r\\n background-attachment: scroll;\\r\\n background-clip: border-box;\\r\\n background-color: rgb(255, 255, 255);\\r\\n background-image: url(\\\"../../../../Content/Images/SVG/icons8-Sort Down.svg\\\");\\r\\n background-origin: padding-box;\\r\\n background-position: 99% 50%;\\r\\n background-position-x: 99%;\\r\\n background-position-y: 50%;\\r\\n background-repeat: no-repeat;\\r\\n background-size: auto;\\r\\n border-bottom-color: #C2C4CC;\\r\\n border-bottom-left-radius: 2px;\\r\\n border-bottom-right-radius: 2px;\\r\\n border-bottom-style: solid;\\r\\n border-bottom-width: 1px;\\r\\n border-image-outset: 0;\\r\\n border-image-repeat: stretch;\\r\\n border-image-slice: 100%;\\r\\n border-image-source: none;\\r\\n border-image-width: 1;\\r\\n border-left-color: #C2C4CC;\\r\\n border-left-style: solid;\\r\\n border-left-width: 1px;\\r\\n border-right-color: #C2C4CC;\\r\\n border-right-style: solid;\\r\\n border-right-width: 1px;\\r\\n border-top-color: #C2C4CC;\\r\\n border-top-left-radius: 2px;\\r\\n border-top-right-radius: 2px;\\r\\n border-top-style: solid;\\r\\n border-top-width: 1px;\\r\\n box-shadow: none;\\r\\n box-sizing: border-box;\\r\\n color: rgb(103, 106, 108);\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n font-family: \\\"Manrope\\\", \\\"Manrope\\\", Helvetica, Arial, sans-serif;\\r\\n font-feature-settings: normal;\\r\\n font-kerning: auto;\\r\\n font-language-override: normal;\\r\\n font-optical-sizing: auto;\\r\\n font-size: 12px;\\r\\n font-size-adjust: none;\\r\\n font-stretch: 100%;\\r\\n font-style: normal;\\r\\n font-variant: normal;\\r\\n font-variant-alternates: normal;\\r\\n font-variant-caps: normal;\\r\\n font-variant-east-asian: normal;\\r\\n font-variant-ligatures: normal;\\r\\n font-variant-numeric: normal;\\r\\n font-variant-position: normal;\\r\\n font-variation-settings: normal;\\r\\n font-weight: 400;\\r\\n line-height: 17.15px;\\r\\n margin: 0px;\\r\\n max-height: 150px;\\r\\n min-height: 40px;\\r\\n overflow-y: auto;\\r\\n padding-bottom: 2px;\\r\\n padding-left: 2px;\\r\\n padding-right: 3px;\\r\\n padding-top: 2px;\\r\\n text-transform: none;\\r\\n vertical-align: middle;\\r\\n width: 280px;\\r\\n -moz-appearance: none;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .criteria-container > .k-multiselect > .k-multiselect-wrap, .k-floatwrap {\\r\\n border: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button {\\r\\n color: #121321;\\r\\n border-color: #C2C4CC;\\r\\n background-color: #EEEFF2;\\r\\n background-attachment: scroll;\\r\\n background-clip: border-box;\\r\\n background-image: none;\\r\\n background-origin: padding-box;\\r\\n background-position: 0% 0%;\\r\\n background-position-x: 0%;\\r\\n background-position-y: 0%;\\r\\n background-repeat: repeat;\\r\\n background-size: auto;\\r\\n border-bottom-color: #C2C4CC;\\r\\n border-bottom-left-radius: 8px;\\r\\n border-bottom-right-radius: 8px;\\r\\n border-bottom-style: solid;\\r\\n border-bottom-width: 1px;\\r\\n border-image-outset: 0;\\r\\n border-image-repeat: stretch;\\r\\n border-image-slice: 100%;\\r\\n border-image-source: none;\\r\\n border-image-width: 1;\\r\\n border-left-color: #C2C4CC;\\r\\n border-left-style: solid;\\r\\n border-left-width: 1px;\\r\\n border-right-color: #C2C4CC;\\r\\n border-right-style: solid;\\r\\n border-right-width: 1px;\\r\\n border-top-color: #C2C4CC;\\r\\n border-top-left-radius: 8px;\\r\\n border-top-right-radius: 8px;\\r\\n border-top-style: solid;\\r\\n border-top-width: 1px;\\r\\n box-sizing: border-box;\\r\\n color: #121321;\\r\\n cursor: pointer;\\r\\n display: block;\\r\\n font-family: \\\"Manrope\\\", \\\"Manrope\\\", Helvetica, Arial, sans-serif;\\r\\n font-size: 12px;\\r\\n font-weight: 400;\\r\\n line-height: 18px;\\r\\n list-style-image: none;\\r\\n list-style-position: outside;\\r\\n list-style-type: none;\\r\\n margin: 2px;\\r\\n padding-bottom: 6px;\\r\\n padding-left: 6px;\\r\\n padding-right: 20px;\\r\\n padding-top: 6px;\\r\\n text-align: left;\\r\\n touch-action: manipulation;\\r\\n user-select: none;\\r\\n white-space: normal;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button:hover {\\r\\n background-color: #f5f5f7;\\r\\n border-color: #e2e2e2;\\r\\n color: #121321;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button:active {\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect-wrap .k-select {\\r\\n top: 3px;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button .k-select {\\r\\n box-sizing: border-box;\\r\\n color: #121321;\\r\\n cursor: pointer;\\r\\n display: block;\\r\\n font-family: \\\"Manrope\\\", \\\"Manrope\\\", Helvetica, Arial, sans-serif;\\r\\n font-size: 18px;\\r\\n font-weight: 400;\\r\\n line-height: 18px;\\r\\n list-style-image: none;\\r\\n list-style-position: outside;\\r\\n list-style-type: none;\\r\\n opacity: 0.2;\\r\\n text-align: left;\\r\\n white-space: normal;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button .k-select:hover {\\r\\n opacity: 0.5;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-icon {\\r\\n font-size: 15px;\\r\\n background-repeat: no-repeat;\\r\\n background-size: contain;\\r\\n font-family: WebComponentsIcons;\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button .k-select .k-icon, .k-i-close {\\r\\n font-size: 15px;\\r\\n font-family: none;\\r\\n margin-left: 4px;\\r\\n background-repeat: no-repeat;\\r\\n background-size: contain;\\r\\n background-image: url(/Content/Images/SVG/x-circle-12.svg);\\r\\n}\\r\\n\\r\\n.role-multiselect-dropdown .k-multiselect .k-button .k-select .k-icon, .k-i-close::before {\\r\\n content: none;\\r\\n} \\r\\n\\r\\n/* placeholder styles */\\r\\n.role-multiselect-dropdown .criteria-container > .k-multiselect > .k-multiselect-wrap > .k-input {\\r\\npadding-top: 5px;\\r\\npadding-left: 0px;\\r\\nflex: 1;\\r\\ncolor: #121321;\\r\\nopacity: 1;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".list-view-body {\\r\\n height: 650px;\\r\\n overflow: auto;\\r\\n overflow-x: hidden;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.list-view-body-below-input {\\r\\n height: 575px;\\r\\n overflow: auto;\\r\\n overflow-x: hidden;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\ndiv[list-view] {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n div[list-view] .disabled {\\r\\n opacity: .6;\\r\\n pointer-events: none;\\r\\n }\\r\\n\\r\\n.list-item-top-right-link {\\r\\n position: absolute;\\r\\n top: 5px;\\r\\n right: 5px;\\r\\n}\\r\\n\\r\\n.list-item-right-settings-button {\\r\\n padding-right: 40px;\\r\\n}\\r\\n\\r\\nlist-item {\\r\\n display: inherit;\\r\\n border-bottom: 1px solid #C2C4CC;\\r\\n padding: 20px;\\r\\n background-color: white;\\r\\n position: relative;\\r\\n word-wrap: break-word;\\r\\n}\\r\\n\\r\\n.vc-list-item {\\r\\n margin-left: 15px;\\r\\n display: inherit;\\r\\n background-color: white;\\r\\n position: relative;\\r\\n word-wrap: break-word;\\r\\n}\\r\\n\\r\\n.list-item {\\r\\n display: inherit;\\r\\n border-bottom: 1px solid #C2C4CC;\\r\\n padding: 20px;\\r\\n background-color: white;\\r\\n position: relative;\\r\\n word-wrap: break-word;\\r\\n}\\r\\n\\r\\nlist-item.clickable {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.list-item.selected {\\r\\n background-color: #e0e0e0;\\r\\n}\\r\\n\\r\\nlist-item:hover {\\r\\n background-color: #e0e0e0;\\r\\n}\\r\\n\\r\\n\\r\\nlist-item.selected {\\r\\n background-color: #e0e0e0;\\r\\n}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/angular-list-view.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,uBAAuB;AAC3B;;AAEA;IACI,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,uBAAuB;AAC3B;;AAEA;IACI,uBAAuB;AAC3B;;IAEI;QACI,WAAW;QACX,oBAAoB;IACxB;;AAEJ;IACI,kBAAkB;IAClB,QAAQ;IACR,UAAU;AACd;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,gBAAgB;IAChB,gCAAgC;IAChC,aAAa;IACb,uBAAuB;IACvB,kBAAkB;IAClB,qBAAqB;AACzB;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;IAChB,uBAAuB;IACvB,kBAAkB;IAClB,qBAAqB;AACzB;;AAEA;IACI,gBAAgB;IAChB,gCAAgC;IAChC,aAAa;IACb,uBAAuB;IACvB,kBAAkB;IAClB,qBAAqB;AACzB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,yBAAyB;AAC7B;;AAEA;IACI,yBAAyB;AAC7B;;;AAGA;IACI,yBAAyB;AAC7B\",\"sourcesContent\":[\".list-view-body {\\r\\n height: 650px;\\r\\n overflow: auto;\\r\\n overflow-x: hidden;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.list-view-body-below-input {\\r\\n height: 575px;\\r\\n overflow: auto;\\r\\n overflow-x: hidden;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\ndiv[list-view] {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n div[list-view] .disabled {\\r\\n opacity: .6;\\r\\n pointer-events: none;\\r\\n }\\r\\n\\r\\n.list-item-top-right-link {\\r\\n position: absolute;\\r\\n top: 5px;\\r\\n right: 5px;\\r\\n}\\r\\n\\r\\n.list-item-right-settings-button {\\r\\n padding-right: 40px;\\r\\n}\\r\\n\\r\\nlist-item {\\r\\n display: inherit;\\r\\n border-bottom: 1px solid #C2C4CC;\\r\\n padding: 20px;\\r\\n background-color: white;\\r\\n position: relative;\\r\\n word-wrap: break-word;\\r\\n}\\r\\n\\r\\n.vc-list-item {\\r\\n margin-left: 15px;\\r\\n display: inherit;\\r\\n background-color: white;\\r\\n position: relative;\\r\\n word-wrap: break-word;\\r\\n}\\r\\n\\r\\n.list-item {\\r\\n display: inherit;\\r\\n border-bottom: 1px solid #C2C4CC;\\r\\n padding: 20px;\\r\\n background-color: white;\\r\\n position: relative;\\r\\n word-wrap: break-word;\\r\\n}\\r\\n\\r\\nlist-item.clickable {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.list-item.selected {\\r\\n background-color: #e0e0e0;\\r\\n}\\r\\n\\r\\nlist-item:hover {\\r\\n background-color: #e0e0e0;\\r\\n}\\r\\n\\r\\n\\r\\nlist-item.selected {\\r\\n background-color: #e0e0e0;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".steps-indicator li a:before,.steps-indicator:before{background-color:#e6e6e6;content:''}.steps-indicator li.current,.steps-indicator li.default,.steps-indicator li.editing{pointer-events:none}.steps-indicator{right:0;bottom:0;left:0;margin:0;padding:20px 0 0;height:30px;list-style:none}.steps-indicator:before{position:absolute;height:1px}.steps-indicator.steps-2:before{left:calc(100% / 2 / 2);right:calc(100% / 2 / 2)}.steps-indicator.steps-3:before{left:calc(100% / 3 / 2);right:calc(100% / 3 / 2)}.steps-indicator.steps-4:before{left:calc(100% / 4 / 2);right:calc(100% / 4 / 2)}.steps-indicator.steps-5:before{left:calc(100% / 5 / 2);right:calc(100% / 5 / 2)}.steps-indicator.steps-6:before{left:calc(100% / 6 / 2);right:calc(100% / 6 / 2)}.steps-indicator.steps-7:before{left:calc(100% / 7 / 2);right:calc(100% / 7 / 2)}.steps-indicator.steps-8:before{left:calc(100% / 8 / 2);right:calc(100% / 8 / 2)}.steps-indicator.steps-9:before{left:calc(100% / 9 / 2);right:calc(100% / 9 / 2)}.steps-indicator.steps-10:before{left:calc(100% / 10 / 2);right:calc(100% / 10 / 2)}.steps-indicator *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.steps-indicator li{position:relative;float:left;margin:0;padding:0;padding-top:10px;text-align:center;line-height:15px}.steps-indicator li a{color:grey;text-decoration:none;text-transform:uppercase;font-weight:700;transition:.25s;cursor:pointer}.steps-indicator li a:before{position:absolute;top:-7px;left:calc(50% - 7px);width:14px;height:14px;border-radius:100%;transition:.25s}.steps-indicator li a:hover{color:#4d4d4d}.steps-indicator.steps-2 li{width:calc(100% / 2)}.steps-indicator.steps-3 li{width:calc(100% / 3)}.steps-indicator.steps-4 li{width:calc(100% / 4)}.steps-indicator.steps-5 li{width:calc(100% / 5)}.steps-indicator.steps-6 li{width:calc(100% / 6)}.steps-indicator.steps-7 li{width:calc(100% / 7)}.steps-indicator.steps-8 li{width:calc(100% / 8)}.steps-indicator.steps-9 li{width:calc(100% / 9)}.steps-indicator.steps-10 li{width:calc(100% / 10)}.steps-indicator.steps-11 li{width:calc(100% / 11)}.steps-indicator li.default a:hover{color:grey}.steps-indicator li.current a:before{background-color:grey}.steps-indicator li.done a:before{background-color:#393}.steps-indicator li.editing a:before{background-color:red}\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/angular-wizard.min.css\"],\"names\":[],\"mappings\":\"AAAA,qDAAqD,wBAAwB,CAAC,UAAU,CAAC,oFAAoF,mBAAmB,CAAC,iBAAiB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,eAAe,CAAC,wBAAwB,iBAAiB,CAAC,UAAU,CAAC,gCAAgC,uBAAuB,CAAC,wBAAwB,CAAC,gCAAgC,uBAAuB,CAAC,wBAAwB,CAAC,gCAAgC,uBAAuB,CAAC,wBAAwB,CAAC,gCAAgC,uBAAuB,CAAC,wBAAwB,CAAC,gCAAgC,uBAAuB,CAAC,wBAAwB,CAAC,gCAAgC,uBAAuB,CAAC,wBAAwB,CAAC,gCAAgC,uBAAuB,CAAC,wBAAwB,CAAC,gCAAgC,uBAAuB,CAAC,wBAAwB,CAAC,iCAAiC,wBAAwB,CAAC,yBAAyB,CAAC,mBAAmB,6BAA6B,CAAC,0BAA0B,CAAC,qBAAqB,CAAC,oBAAoB,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,sBAAsB,UAAU,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,eAAe,CAAC,eAAe,CAAC,cAAc,CAAC,6BAA6B,iBAAiB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,eAAe,CAAC,4BAA4B,aAAa,CAAC,4BAA4B,oBAAoB,CAAC,4BAA4B,oBAAoB,CAAC,4BAA4B,oBAAoB,CAAC,4BAA4B,oBAAoB,CAAC,4BAA4B,oBAAoB,CAAC,4BAA4B,oBAAoB,CAAC,4BAA4B,oBAAoB,CAAC,4BAA4B,oBAAoB,CAAC,6BAA6B,qBAAqB,CAAC,6BAA6B,qBAAqB,CAAC,oCAAoC,UAAU,CAAC,qCAAqC,qBAAqB,CAAC,kCAAkC,qBAAqB,CAAC,qCAAqC,oBAAoB\",\"sourcesContent\":[\".steps-indicator li a:before,.steps-indicator:before{background-color:#e6e6e6;content:''}.steps-indicator li.current,.steps-indicator li.default,.steps-indicator li.editing{pointer-events:none}.steps-indicator{right:0;bottom:0;left:0;margin:0;padding:20px 0 0;height:30px;list-style:none}.steps-indicator:before{position:absolute;height:1px}.steps-indicator.steps-2:before{left:calc(100% / 2 / 2);right:calc(100% / 2 / 2)}.steps-indicator.steps-3:before{left:calc(100% / 3 / 2);right:calc(100% / 3 / 2)}.steps-indicator.steps-4:before{left:calc(100% / 4 / 2);right:calc(100% / 4 / 2)}.steps-indicator.steps-5:before{left:calc(100% / 5 / 2);right:calc(100% / 5 / 2)}.steps-indicator.steps-6:before{left:calc(100% / 6 / 2);right:calc(100% / 6 / 2)}.steps-indicator.steps-7:before{left:calc(100% / 7 / 2);right:calc(100% / 7 / 2)}.steps-indicator.steps-8:before{left:calc(100% / 8 / 2);right:calc(100% / 8 / 2)}.steps-indicator.steps-9:before{left:calc(100% / 9 / 2);right:calc(100% / 9 / 2)}.steps-indicator.steps-10:before{left:calc(100% / 10 / 2);right:calc(100% / 10 / 2)}.steps-indicator *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.steps-indicator li{position:relative;float:left;margin:0;padding:0;padding-top:10px;text-align:center;line-height:15px}.steps-indicator li a{color:grey;text-decoration:none;text-transform:uppercase;font-weight:700;transition:.25s;cursor:pointer}.steps-indicator li a:before{position:absolute;top:-7px;left:calc(50% - 7px);width:14px;height:14px;border-radius:100%;transition:.25s}.steps-indicator li a:hover{color:#4d4d4d}.steps-indicator.steps-2 li{width:calc(100% / 2)}.steps-indicator.steps-3 li{width:calc(100% / 3)}.steps-indicator.steps-4 li{width:calc(100% / 4)}.steps-indicator.steps-5 li{width:calc(100% / 5)}.steps-indicator.steps-6 li{width:calc(100% / 6)}.steps-indicator.steps-7 li{width:calc(100% / 7)}.steps-indicator.steps-8 li{width:calc(100% / 8)}.steps-indicator.steps-9 li{width:calc(100% / 9)}.steps-indicator.steps-10 li{width:calc(100% / 10)}.steps-indicator.steps-11 li{width:calc(100% / 11)}.steps-indicator li.default a:hover{color:grey}.steps-indicator li.current a:before{background-color:grey}.steps-indicator li.done a:before{background-color:#393}.steps-indicator li.editing a:before{background-color:red}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\r\\n\\r\\n/*!\\r\\nAnimate.css - http://daneden.me/animate\\r\\nLicensed under the MIT license\\r\\n\\r\\nCopyright (c) 2013 Daniel Eden\\r\\n\\r\\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \\\"Software\\\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\\r\\n\\r\\nThe above copyright notice and this permission notice shall be \\r\\n \\r\\n d in all copies or substantial portions of the Software.\\r\\n\\r\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\\r\\n*/\\r\\n\\r\\n.animated {\\r\\n -webkit-animation-duration: 1s;\\r\\n animation-duration: 1s;\\r\\n -webkit-animation-fill-mode: both;\\r\\n animation-fill-mode: both;\\r\\n z-index: 100;\\r\\n}\\r\\n\\r\\n.animated.infinite {\\r\\n -webkit-animation-iteration-count: infinite;\\r\\n animation-iteration-count: infinite;\\r\\n}\\r\\n\\r\\n.animated.hinge {\\r\\n -webkit-animation-duration: 2s;\\r\\n animation-duration: 2s;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounce {\\r\\n 0%, 20%, 50%, 80%, 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: translateY(-30px);\\r\\n transform: translateY(-30px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateY(-15px);\\r\\n transform: translateY(-15px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounce {\\r\\n 0%, 20%, 50%, 80%, 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: translateY(-30px);\\r\\n -ms-transform: translateY(-30px);\\r\\n transform: translateY(-30px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateY(-15px);\\r\\n -ms-transform: translateY(-15px);\\r\\n transform: translateY(-15px);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounce {\\r\\n -webkit-animation-name: bounce;\\r\\n animation-name: bounce;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flash {\\r\\n 0%, 50%, 100% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 25%, 75% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flash {\\r\\n 0%, 50%, 100% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 25%, 75% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.flash {\\r\\n -webkit-animation-name: flash;\\r\\n animation-name: flash;\\r\\n}\\r\\n\\r\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\r\\n\\r\\n@-webkit-keyframes pulse {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: scale(1.1);\\r\\n transform: scale(1.1);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes pulse {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: scale(1.1);\\r\\n -ms-transform: scale(1.1);\\r\\n transform: scale(1.1);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n.pulse {\\r\\n -webkit-animation-name: pulse;\\r\\n animation-name: pulse;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rubberBand {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: scaleX(1.25) scaleY(0.75);\\r\\n transform: scaleX(1.25) scaleY(0.75);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scaleX(0.75) scaleY(1.25);\\r\\n transform: scaleX(0.75) scaleY(1.25);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: scaleX(1.15) scaleY(0.85);\\r\\n transform: scaleX(1.15) scaleY(0.85);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rubberBand {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: scaleX(1.25) scaleY(0.75);\\r\\n -ms-transform: scaleX(1.25) scaleY(0.75);\\r\\n transform: scaleX(1.25) scaleY(0.75);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scaleX(0.75) scaleY(1.25);\\r\\n -ms-transform: scaleX(0.75) scaleY(1.25);\\r\\n transform: scaleX(0.75) scaleY(1.25);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: scaleX(1.15) scaleY(0.85);\\r\\n -ms-transform: scaleX(1.15) scaleY(0.85);\\r\\n transform: scaleX(1.15) scaleY(0.85);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n.rubberBand {\\r\\n -webkit-animation-name: rubberBand;\\r\\n animation-name: rubberBand;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes shake {\\r\\n 0%, 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 10%, 30%, 50%, 70%, 90% {\\r\\n -webkit-transform: translateX(-10px);\\r\\n transform: translateX(-10px);\\r\\n }\\r\\n\\r\\n 20%, 40%, 60%, 80% {\\r\\n -webkit-transform: translateX(10px);\\r\\n transform: translateX(10px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes shake {\\r\\n 0%, 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 10%, 30%, 50%, 70%, 90% {\\r\\n -webkit-transform: translateX(-10px);\\r\\n -ms-transform: translateX(-10px);\\r\\n transform: translateX(-10px);\\r\\n }\\r\\n\\r\\n 20%, 40%, 60%, 80% {\\r\\n -webkit-transform: translateX(10px);\\r\\n -ms-transform: translateX(10px);\\r\\n transform: translateX(10px);\\r\\n }\\r\\n}\\r\\n\\r\\n.shake {\\r\\n -webkit-animation-name: shake;\\r\\n animation-name: shake;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes swing {\\r\\n 20% {\\r\\n -webkit-transform: rotate(15deg);\\r\\n transform: rotate(15deg);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: rotate(-10deg);\\r\\n transform: rotate(-10deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: rotate(5deg);\\r\\n transform: rotate(5deg);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: rotate(-5deg);\\r\\n transform: rotate(-5deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes swing {\\r\\n 20% {\\r\\n -webkit-transform: rotate(15deg);\\r\\n -ms-transform: rotate(15deg);\\r\\n transform: rotate(15deg);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: rotate(-10deg);\\r\\n -ms-transform: rotate(-10deg);\\r\\n transform: rotate(-10deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: rotate(5deg);\\r\\n -ms-transform: rotate(5deg);\\r\\n transform: rotate(5deg);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: rotate(-5deg);\\r\\n -ms-transform: rotate(-5deg);\\r\\n transform: rotate(-5deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n -ms-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n}\\r\\n\\r\\n.swing {\\r\\n -webkit-transform-origin: top center;\\r\\n -ms-transform-origin: top center;\\r\\n transform-origin: top center;\\r\\n -webkit-animation-name: swing;\\r\\n animation-name: swing;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes tada {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 10%, 20% {\\r\\n -webkit-transform: scale(0.9) rotate(-3deg);\\r\\n transform: scale(0.9) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 30%, 50%, 70%, 90% {\\r\\n -webkit-transform: scale(1.1) rotate(3deg);\\r\\n transform: scale(1.1) rotate(3deg);\\r\\n }\\r\\n\\r\\n 40%, 60%, 80% {\\r\\n -webkit-transform: scale(1.1) rotate(-3deg);\\r\\n transform: scale(1.1) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1) rotate(0);\\r\\n transform: scale(1) rotate(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes tada {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 10%, 20% {\\r\\n -webkit-transform: scale(0.9) rotate(-3deg);\\r\\n -ms-transform: scale(0.9) rotate(-3deg);\\r\\n transform: scale(0.9) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 30%, 50%, 70%, 90% {\\r\\n -webkit-transform: scale(1.1) rotate(3deg);\\r\\n -ms-transform: scale(1.1) rotate(3deg);\\r\\n transform: scale(1.1) rotate(3deg);\\r\\n }\\r\\n\\r\\n 40%, 60%, 80% {\\r\\n -webkit-transform: scale(1.1) rotate(-3deg);\\r\\n -ms-transform: scale(1.1) rotate(-3deg);\\r\\n transform: scale(1.1) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1) rotate(0);\\r\\n -ms-transform: scale(1) rotate(0);\\r\\n transform: scale(1) rotate(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.tada {\\r\\n -webkit-animation-name: tada;\\r\\n animation-name: tada;\\r\\n}\\r\\n\\r\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\r\\n\\r\\n@-webkit-keyframes wobble {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0%);\\r\\n transform: translateX(0%);\\r\\n }\\r\\n\\r\\n 15% {\\r\\n -webkit-transform: translateX(-25%) rotate(-5deg);\\r\\n transform: translateX(-25%) rotate(-5deg);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: translateX(20%) rotate(3deg);\\r\\n transform: translateX(20%) rotate(3deg);\\r\\n }\\r\\n\\r\\n 45% {\\r\\n -webkit-transform: translateX(-15%) rotate(-3deg);\\r\\n transform: translateX(-15%) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateX(10%) rotate(2deg);\\r\\n transform: translateX(10%) rotate(2deg);\\r\\n }\\r\\n\\r\\n 75% {\\r\\n -webkit-transform: translateX(-5%) rotate(-1deg);\\r\\n transform: translateX(-5%) rotate(-1deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0%);\\r\\n transform: translateX(0%);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes wobble {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0%);\\r\\n -ms-transform: translateX(0%);\\r\\n transform: translateX(0%);\\r\\n }\\r\\n\\r\\n 15% {\\r\\n -webkit-transform: translateX(-25%) rotate(-5deg);\\r\\n -ms-transform: translateX(-25%) rotate(-5deg);\\r\\n transform: translateX(-25%) rotate(-5deg);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: translateX(20%) rotate(3deg);\\r\\n -ms-transform: translateX(20%) rotate(3deg);\\r\\n transform: translateX(20%) rotate(3deg);\\r\\n }\\r\\n\\r\\n 45% {\\r\\n -webkit-transform: translateX(-15%) rotate(-3deg);\\r\\n -ms-transform: translateX(-15%) rotate(-3deg);\\r\\n transform: translateX(-15%) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateX(10%) rotate(2deg);\\r\\n -ms-transform: translateX(10%) rotate(2deg);\\r\\n transform: translateX(10%) rotate(2deg);\\r\\n }\\r\\n\\r\\n 75% {\\r\\n -webkit-transform: translateX(-5%) rotate(-1deg);\\r\\n -ms-transform: translateX(-5%) rotate(-1deg);\\r\\n transform: translateX(-5%) rotate(-1deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0%);\\r\\n -ms-transform: translateX(0%);\\r\\n transform: translateX(0%);\\r\\n }\\r\\n}\\r\\n\\r\\n.wobble {\\r\\n -webkit-animation-name: wobble;\\r\\n animation-name: wobble;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: scale(.3);\\r\\n transform: scale(.3);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1.05);\\r\\n transform: scale(1.05);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: scale(.9);\\r\\n transform: scale(.9);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: scale(.3);\\r\\n -ms-transform: scale(.3);\\r\\n transform: scale(.3);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1.05);\\r\\n -ms-transform: scale(1.05);\\r\\n transform: scale(1.05);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: scale(.9);\\r\\n -ms-transform: scale(.9);\\r\\n transform: scale(.9);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceIn {\\r\\n -webkit-animation-name: bounceIn;\\r\\n animation-name: bounceIn;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(30px);\\r\\n transform: translateY(30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateY(-10px);\\r\\n transform: translateY(-10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(30px);\\r\\n -ms-transform: translateY(30px);\\r\\n transform: translateY(30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateY(-10px);\\r\\n -ms-transform: translateY(-10px);\\r\\n transform: translateY(-10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceInDown {\\r\\n -webkit-animation-name: bounceInDown;\\r\\n animation-name: bounceInDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(30px);\\r\\n transform: translateX(30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(-10px);\\r\\n transform: translateX(-10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(30px);\\r\\n -ms-transform: translateX(30px);\\r\\n transform: translateX(30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(-10px);\\r\\n -ms-transform: translateX(-10px);\\r\\n transform: translateX(-10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceInLeft {\\r\\n -webkit-animation-name: bounceInLeft;\\r\\n animation-name: bounceInLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(-30px);\\r\\n transform: translateX(-30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(10px);\\r\\n transform: translateX(10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(-30px);\\r\\n -ms-transform: translateX(-30px);\\r\\n transform: translateX(-30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(10px);\\r\\n -ms-transform: translateX(10px);\\r\\n transform: translateX(10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceInRight {\\r\\n -webkit-animation-name: bounceInRight;\\r\\n animation-name: bounceInRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceInUp {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(-30px);\\r\\n transform: translateY(-30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateY(10px);\\r\\n transform: translateY(10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceInUp {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n -ms-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(-30px);\\r\\n -ms-transform: translateY(-30px);\\r\\n transform: translateY(-30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateY(10px);\\r\\n -ms-transform: translateY(10px);\\r\\n transform: translateY(10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceInUp {\\r\\n -webkit-animation-name: bounceInUp;\\r\\n animation-name: bounceInUp;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceOut {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 25% {\\r\\n -webkit-transform: scale(.95);\\r\\n transform: scale(.95);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1.1);\\r\\n transform: scale(1.1);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: scale(.3);\\r\\n transform: scale(.3);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceOut {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 25% {\\r\\n -webkit-transform: scale(.95);\\r\\n -ms-transform: scale(.95);\\r\\n transform: scale(.95);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1.1);\\r\\n -ms-transform: scale(1.1);\\r\\n transform: scale(1.1);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: scale(.3);\\r\\n -ms-transform: scale(.3);\\r\\n transform: scale(.3);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceOut {\\r\\n -webkit-animation-name: bounceOut;\\r\\n animation-name: bounceOut;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceOutDown {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceOutDown {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(-20px);\\r\\n -ms-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n -ms-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceOutDown {\\r\\n -webkit-animation-name: bounceOutDown;\\r\\n animation-name: bounceOutDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceOutLeft {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(20px);\\r\\n transform: translateX(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceOutLeft {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(20px);\\r\\n -ms-transform: translateX(20px);\\r\\n transform: translateX(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceOutLeft {\\r\\n -webkit-animation-name: bounceOutLeft;\\r\\n animation-name: bounceOutLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceOutRight {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceOutRight {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(-20px);\\r\\n -ms-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceOutRight {\\r\\n -webkit-animation-name: bounceOutRight;\\r\\n animation-name: bounceOutRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceOutUp {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceOutUp {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(20px);\\r\\n -ms-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceOutUp {\\r\\n -webkit-animation-name: bounceOutUp;\\r\\n animation-name: bounceOutUp;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeIn {\\r\\n -webkit-animation-name: fadeIn;\\r\\n animation-name: fadeIn;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-20px);\\r\\n -ms-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInDown {\\r\\n -webkit-animation-name: fadeInDown;\\r\\n animation-name: fadeInDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInDownBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInDownBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInDownBig {\\r\\n -webkit-animation-name: fadeInDownBig;\\r\\n animation-name: fadeInDownBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-20px);\\r\\n -ms-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInLeft {\\r\\n -webkit-animation-name: fadeInLeft;\\r\\n animation-name: fadeInLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInLeftBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInLeftBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInLeftBig {\\r\\n -webkit-animation-name: fadeInLeftBig;\\r\\n animation-name: fadeInLeftBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(20px);\\r\\n transform: translateX(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(40px);\\r\\n -ms-transform: translateX(40px);\\r\\n transform: translateX(40px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInRight {\\r\\n -webkit-animation-name: fadeInRight;\\r\\n animation-name: fadeInRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInRightBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInRightBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInRightBig {\\r\\n -webkit-animation-name: fadeInRightBig;\\r\\n animation-name: fadeInRightBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInUp {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInUp {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(20px);\\r\\n -ms-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInUp {\\r\\n -webkit-animation-name: fadeInUp;\\r\\n animation-name: fadeInUp;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInUpBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInUpBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n -ms-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInUpBig {\\r\\n -webkit-animation-name: fadeInUpBig;\\r\\n animation-name: fadeInUpBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOut {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOut {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOut {\\r\\n -webkit-animation-name: fadeOut;\\r\\n animation-name: fadeOut;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutDown {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutDown {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(20px);\\r\\n -ms-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutDown {\\r\\n -webkit-animation-name: fadeOutDown;\\r\\n animation-name: fadeOutDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutDownBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutDownBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n -ms-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutDownBig {\\r\\n -webkit-animation-name: fadeOutDownBig;\\r\\n animation-name: fadeOutDownBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutLeft {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutLeft {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-20px);\\r\\n -ms-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutLeft {\\r\\n -webkit-animation-name: fadeOutLeft;\\r\\n animation-name: fadeOutLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutLeftBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutLeftBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutLeftBig {\\r\\n -webkit-animation-name: fadeOutLeftBig;\\r\\n animation-name: fadeOutLeftBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutRight {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(20px);\\r\\n transform: translateX(20px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutRight {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(20px);\\r\\n -ms-transform: translateX(20px);\\r\\n transform: translateX(20px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutRight {\\r\\n -webkit-animation-name: fadeOutRight;\\r\\n animation-name: fadeOutRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutRightBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutRightBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutRightBig {\\r\\n -webkit-animation-name: fadeOutRightBig;\\r\\n animation-name: fadeOutRightBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutUp {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutUp {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-20px);\\r\\n -ms-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutUp {\\r\\n -webkit-animation-name: fadeOutUp;\\r\\n animation-name: fadeOutUp;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutUpBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutUpBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutUpBig {\\r\\n -webkit-animation-name: fadeOutUpBig;\\r\\n animation-name: fadeOutUpBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flip {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(0) scale(1);\\r\\n transform: perspective(400px) translateZ(0) rotateY(0) scale(1);\\r\\n -webkit-animation-timing-function: ease-out;\\r\\n animation-timing-function: ease-out;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);\\r\\n transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-out;\\r\\n animation-timing-function: ease-out;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\\r\\n transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);\\r\\n transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);\\r\\n transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flip {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(0) scale(1);\\r\\n -ms-transform: perspective(400px) translateZ(0) rotateY(0) scale(1);\\r\\n transform: perspective(400px) translateZ(0) rotateY(0) scale(1);\\r\\n -webkit-animation-timing-function: ease-out;\\r\\n animation-timing-function: ease-out;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);\\r\\n -ms-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);\\r\\n transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-out;\\r\\n animation-timing-function: ease-out;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\\r\\n -ms-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\\r\\n transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);\\r\\n -ms-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);\\r\\n transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);\\r\\n -ms-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);\\r\\n transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n}\\r\\n\\r\\n.animated.flip {\\r\\n -webkit-backface-visibility: visible;\\r\\n -ms-backface-visibility: visible;\\r\\n backface-visibility: visible;\\r\\n -webkit-animation-name: flip;\\r\\n animation-name: flip;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flipInX {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateX(90deg);\\r\\n transform: perspective(400px) rotateX(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) rotateX(-10deg);\\r\\n transform: perspective(400px) rotateX(-10deg);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: perspective(400px) rotateX(10deg);\\r\\n transform: perspective(400px) rotateX(10deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateX(0deg);\\r\\n transform: perspective(400px) rotateX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flipInX {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateX(90deg);\\r\\n -ms-transform: perspective(400px) rotateX(90deg);\\r\\n transform: perspective(400px) rotateX(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) rotateX(-10deg);\\r\\n -ms-transform: perspective(400px) rotateX(-10deg);\\r\\n transform: perspective(400px) rotateX(-10deg);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: perspective(400px) rotateX(10deg);\\r\\n -ms-transform: perspective(400px) rotateX(10deg);\\r\\n transform: perspective(400px) rotateX(10deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateX(0deg);\\r\\n -ms-transform: perspective(400px) rotateX(0deg);\\r\\n transform: perspective(400px) rotateX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.flipInX {\\r\\n -webkit-backface-visibility: visible !important;\\r\\n -ms-backface-visibility: visible !important;\\r\\n backface-visibility: visible !important;\\r\\n -webkit-animation-name: flipInX;\\r\\n animation-name: flipInX;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flipInY {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateY(90deg);\\r\\n transform: perspective(400px) rotateY(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) rotateY(-10deg);\\r\\n transform: perspective(400px) rotateY(-10deg);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: perspective(400px) rotateY(10deg);\\r\\n transform: perspective(400px) rotateY(10deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateY(0deg);\\r\\n transform: perspective(400px) rotateY(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flipInY {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateY(90deg);\\r\\n -ms-transform: perspective(400px) rotateY(90deg);\\r\\n transform: perspective(400px) rotateY(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) rotateY(-10deg);\\r\\n -ms-transform: perspective(400px) rotateY(-10deg);\\r\\n transform: perspective(400px) rotateY(-10deg);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: perspective(400px) rotateY(10deg);\\r\\n -ms-transform: perspective(400px) rotateY(10deg);\\r\\n transform: perspective(400px) rotateY(10deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateY(0deg);\\r\\n -ms-transform: perspective(400px) rotateY(0deg);\\r\\n transform: perspective(400px) rotateY(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.flipInY {\\r\\n -webkit-backface-visibility: visible !important;\\r\\n -ms-backface-visibility: visible !important;\\r\\n backface-visibility: visible !important;\\r\\n -webkit-animation-name: flipInY;\\r\\n animation-name: flipInY;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flipOutX {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateX(0deg);\\r\\n transform: perspective(400px) rotateX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateX(90deg);\\r\\n transform: perspective(400px) rotateX(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flipOutX {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateX(0deg);\\r\\n -ms-transform: perspective(400px) rotateX(0deg);\\r\\n transform: perspective(400px) rotateX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateX(90deg);\\r\\n -ms-transform: perspective(400px) rotateX(90deg);\\r\\n transform: perspective(400px) rotateX(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.flipOutX {\\r\\n -webkit-animation-name: flipOutX;\\r\\n animation-name: flipOutX;\\r\\n -webkit-backface-visibility: visible !important;\\r\\n -ms-backface-visibility: visible !important;\\r\\n backface-visibility: visible !important;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flipOutY {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateY(0deg);\\r\\n transform: perspective(400px) rotateY(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateY(90deg);\\r\\n transform: perspective(400px) rotateY(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flipOutY {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateY(0deg);\\r\\n -ms-transform: perspective(400px) rotateY(0deg);\\r\\n transform: perspective(400px) rotateY(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateY(90deg);\\r\\n -ms-transform: perspective(400px) rotateY(90deg);\\r\\n transform: perspective(400px) rotateY(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.flipOutY {\\r\\n -webkit-backface-visibility: visible !important;\\r\\n -ms-backface-visibility: visible !important;\\r\\n backface-visibility: visible !important;\\r\\n -webkit-animation-name: flipOutY;\\r\\n animation-name: flipOutY;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes lightSpeedIn {\\r\\n 0% {\\r\\n -webkit-transform: translateX(100%) skewX(-30deg);\\r\\n transform: translateX(100%) skewX(-30deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateX(-20%) skewX(30deg);\\r\\n transform: translateX(-20%) skewX(30deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(0%) skewX(-15deg);\\r\\n transform: translateX(0%) skewX(-15deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0%) skewX(0deg);\\r\\n transform: translateX(0%) skewX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes lightSpeedIn {\\r\\n 0% {\\r\\n -webkit-transform: translateX(100%) skewX(-30deg);\\r\\n -ms-transform: translateX(100%) skewX(-30deg);\\r\\n transform: translateX(100%) skewX(-30deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateX(-20%) skewX(30deg);\\r\\n -ms-transform: translateX(-20%) skewX(30deg);\\r\\n transform: translateX(-20%) skewX(30deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(0%) skewX(-15deg);\\r\\n -ms-transform: translateX(0%) skewX(-15deg);\\r\\n transform: translateX(0%) skewX(-15deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0%) skewX(0deg);\\r\\n -ms-transform: translateX(0%) skewX(0deg);\\r\\n transform: translateX(0%) skewX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.lightSpeedIn {\\r\\n -webkit-animation-name: lightSpeedIn;\\r\\n animation-name: lightSpeedIn;\\r\\n -webkit-animation-timing-function: ease-out;\\r\\n animation-timing-function: ease-out;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes lightSpeedOut {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0%) skewX(0deg);\\r\\n transform: translateX(0%) skewX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(100%) skewX(-30deg);\\r\\n transform: translateX(100%) skewX(-30deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes lightSpeedOut {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0%) skewX(0deg);\\r\\n -ms-transform: translateX(0%) skewX(0deg);\\r\\n transform: translateX(0%) skewX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(100%) skewX(-30deg);\\r\\n -ms-transform: translateX(100%) skewX(-30deg);\\r\\n transform: translateX(100%) skewX(-30deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.lightSpeedOut {\\r\\n -webkit-animation-name: lightSpeedOut;\\r\\n animation-name: lightSpeedOut;\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateIn {\\r\\n 0% {\\r\\n -webkit-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(-200deg);\\r\\n transform: rotate(-200deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateIn {\\r\\n 0% {\\r\\n -webkit-transform-origin: center center;\\r\\n -ms-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(-200deg);\\r\\n -ms-transform: rotate(-200deg);\\r\\n transform: rotate(-200deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: center center;\\r\\n -ms-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateIn {\\r\\n -webkit-animation-name: rotateIn;\\r\\n animation-name: rotateIn;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateInDownLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateInDownLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n -ms-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateInDownLeft {\\r\\n -webkit-animation-name: rotateInDownLeft;\\r\\n animation-name: rotateInDownLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateInDownRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateInDownRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n -ms-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateInDownRight {\\r\\n -webkit-animation-name: rotateInDownRight;\\r\\n animation-name: rotateInDownRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateInUpLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateInUpLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n -ms-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateInUpLeft {\\r\\n -webkit-animation-name: rotateInUpLeft;\\r\\n animation-name: rotateInUpLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateInUpRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateInUpRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n -ms-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateInUpRight {\\r\\n -webkit-animation-name: rotateInUpRight;\\r\\n animation-name: rotateInUpRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateOut {\\r\\n 0% {\\r\\n -webkit-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(200deg);\\r\\n transform: rotate(200deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateOut {\\r\\n 0% {\\r\\n -webkit-transform-origin: center center;\\r\\n -ms-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: center center;\\r\\n -ms-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(200deg);\\r\\n -ms-transform: rotate(200deg);\\r\\n transform: rotate(200deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateOut {\\r\\n -webkit-animation-name: rotateOut;\\r\\n animation-name: rotateOut;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateOutDownLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateOutDownLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n -ms-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateOutDownLeft {\\r\\n -webkit-animation-name: rotateOutDownLeft;\\r\\n animation-name: rotateOutDownLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateOutDownRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateOutDownRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n -ms-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateOutDownRight {\\r\\n -webkit-animation-name: rotateOutDownRight;\\r\\n animation-name: rotateOutDownRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateOutUpLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateOutUpLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n -ms-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateOutUpLeft {\\r\\n -webkit-animation-name: rotateOutUpLeft;\\r\\n animation-name: rotateOutUpLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateOutUpRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateOutUpRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n -ms-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateOutUpRight {\\r\\n -webkit-animation-name: rotateOutUpRight;\\r\\n animation-name: rotateOutUpRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideInDown {\\r\\n -webkit-animation-name: slideInDown;\\r\\n animation-name: slideInDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideInLeft {\\r\\n -webkit-animation-name: slideInLeft;\\r\\n animation-name: slideInLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideInRight {\\r\\n -webkit-animation-name: slideInRight;\\r\\n animation-name: slideInRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideOutLeft {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideOutLeft {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideOutLeft {\\r\\n -webkit-animation-name: slideOutLeft;\\r\\n animation-name: slideOutLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideOutRight {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideOutRight {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideOutRight {\\r\\n -webkit-animation-name: slideOutRight;\\r\\n animation-name: slideOutRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideOutUp {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideOutUp {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideOutUp {\\r\\n -webkit-animation-name: slideOutUp;\\r\\n animation-name: slideOutUp;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideOutDown {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideOutDown {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n -ms-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideOutDown {\\r\\n -webkit-animation-name: slideOutDown;\\r\\n animation-name: slideOutDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes hinge {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n -webkit-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 20%, 60% {\\r\\n -webkit-transform: rotate(80deg);\\r\\n transform: rotate(80deg);\\r\\n -webkit-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: rotate(60deg);\\r\\n transform: rotate(60deg);\\r\\n -webkit-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: rotate(60deg) translateY(0);\\r\\n transform: rotate(60deg) translateY(0);\\r\\n -webkit-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(700px);\\r\\n transform: translateY(700px);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes hinge {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n -webkit-transform-origin: top left;\\r\\n -ms-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 20%, 60% {\\r\\n -webkit-transform: rotate(80deg);\\r\\n -ms-transform: rotate(80deg);\\r\\n transform: rotate(80deg);\\r\\n -webkit-transform-origin: top left;\\r\\n -ms-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: rotate(60deg);\\r\\n -ms-transform: rotate(60deg);\\r\\n transform: rotate(60deg);\\r\\n -webkit-transform-origin: top left;\\r\\n -ms-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: rotate(60deg) translateY(0);\\r\\n -ms-transform: rotate(60deg) translateY(0);\\r\\n transform: rotate(60deg) translateY(0);\\r\\n -webkit-transform-origin: top left;\\r\\n -ms-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(700px);\\r\\n -ms-transform: translateY(700px);\\r\\n transform: translateY(700px);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.hinge {\\r\\n -webkit-animation-name: hinge;\\r\\n animation-name: hinge;\\r\\n}\\r\\n\\r\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\r\\n\\r\\n@-webkit-keyframes rollIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-100%) rotate(-120deg);\\r\\n transform: translateX(-100%) rotate(-120deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0px) rotate(0deg);\\r\\n transform: translateX(0px) rotate(0deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rollIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-100%) rotate(-120deg);\\r\\n -ms-transform: translateX(-100%) rotate(-120deg);\\r\\n transform: translateX(-100%) rotate(-120deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0px) rotate(0deg);\\r\\n -ms-transform: translateX(0px) rotate(0deg);\\r\\n transform: translateX(0px) rotate(0deg);\\r\\n }\\r\\n}\\r\\n\\r\\n.rollIn {\\r\\n -webkit-animation-name: rollIn;\\r\\n animation-name: rollIn;\\r\\n}\\r\\n\\r\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\r\\n\\r\\n@-webkit-keyframes rollOut {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0px) rotate(0deg);\\r\\n transform: translateX(0px) rotate(0deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(100%) rotate(120deg);\\r\\n transform: translateX(100%) rotate(120deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rollOut {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0px) rotate(0deg);\\r\\n -ms-transform: translateX(0px) rotate(0deg);\\r\\n transform: translateX(0px) rotate(0deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(100%) rotate(120deg);\\r\\n -ms-transform: translateX(100%) rotate(120deg);\\r\\n transform: translateX(100%) rotate(120deg);\\r\\n }\\r\\n}\\r\\n\\r\\n.rollOut {\\r\\n -webkit-animation-name: rollOut;\\r\\n animation-name: rollOut;\\r\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/animate.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\r\\n\\r\\n/*!\\r\\nAnimate.css - http://daneden.me/animate\\r\\nLicensed under the MIT license\\r\\n\\r\\nCopyright (c) 2013 Daniel Eden\\r\\n\\r\\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \\\"Software\\\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\\r\\n\\r\\nThe above copyright notice and this permission notice shall be \\r\\n \\r\\n d in all copies or substantial portions of the Software.\\r\\n\\r\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\\r\\n*/\\r\\n\\r\\n.animated {\\r\\n -webkit-animation-duration: 1s;\\r\\n animation-duration: 1s;\\r\\n -webkit-animation-fill-mode: both;\\r\\n animation-fill-mode: both;\\r\\n z-index: 100;\\r\\n}\\r\\n\\r\\n.animated.infinite {\\r\\n -webkit-animation-iteration-count: infinite;\\r\\n animation-iteration-count: infinite;\\r\\n}\\r\\n\\r\\n.animated.hinge {\\r\\n -webkit-animation-duration: 2s;\\r\\n animation-duration: 2s;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounce {\\r\\n 0%, 20%, 50%, 80%, 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: translateY(-30px);\\r\\n transform: translateY(-30px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateY(-15px);\\r\\n transform: translateY(-15px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounce {\\r\\n 0%, 20%, 50%, 80%, 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: translateY(-30px);\\r\\n -ms-transform: translateY(-30px);\\r\\n transform: translateY(-30px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateY(-15px);\\r\\n -ms-transform: translateY(-15px);\\r\\n transform: translateY(-15px);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounce {\\r\\n -webkit-animation-name: bounce;\\r\\n animation-name: bounce;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flash {\\r\\n 0%, 50%, 100% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 25%, 75% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flash {\\r\\n 0%, 50%, 100% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 25%, 75% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.flash {\\r\\n -webkit-animation-name: flash;\\r\\n animation-name: flash;\\r\\n}\\r\\n\\r\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\r\\n\\r\\n@-webkit-keyframes pulse {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: scale(1.1);\\r\\n transform: scale(1.1);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes pulse {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: scale(1.1);\\r\\n -ms-transform: scale(1.1);\\r\\n transform: scale(1.1);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n.pulse {\\r\\n -webkit-animation-name: pulse;\\r\\n animation-name: pulse;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rubberBand {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: scaleX(1.25) scaleY(0.75);\\r\\n transform: scaleX(1.25) scaleY(0.75);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scaleX(0.75) scaleY(1.25);\\r\\n transform: scaleX(0.75) scaleY(1.25);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: scaleX(1.15) scaleY(0.85);\\r\\n transform: scaleX(1.15) scaleY(0.85);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rubberBand {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: scaleX(1.25) scaleY(0.75);\\r\\n -ms-transform: scaleX(1.25) scaleY(0.75);\\r\\n transform: scaleX(1.25) scaleY(0.75);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scaleX(0.75) scaleY(1.25);\\r\\n -ms-transform: scaleX(0.75) scaleY(1.25);\\r\\n transform: scaleX(0.75) scaleY(1.25);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: scaleX(1.15) scaleY(0.85);\\r\\n -ms-transform: scaleX(1.15) scaleY(0.85);\\r\\n transform: scaleX(1.15) scaleY(0.85);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n.rubberBand {\\r\\n -webkit-animation-name: rubberBand;\\r\\n animation-name: rubberBand;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes shake {\\r\\n 0%, 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 10%, 30%, 50%, 70%, 90% {\\r\\n -webkit-transform: translateX(-10px);\\r\\n transform: translateX(-10px);\\r\\n }\\r\\n\\r\\n 20%, 40%, 60%, 80% {\\r\\n -webkit-transform: translateX(10px);\\r\\n transform: translateX(10px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes shake {\\r\\n 0%, 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 10%, 30%, 50%, 70%, 90% {\\r\\n -webkit-transform: translateX(-10px);\\r\\n -ms-transform: translateX(-10px);\\r\\n transform: translateX(-10px);\\r\\n }\\r\\n\\r\\n 20%, 40%, 60%, 80% {\\r\\n -webkit-transform: translateX(10px);\\r\\n -ms-transform: translateX(10px);\\r\\n transform: translateX(10px);\\r\\n }\\r\\n}\\r\\n\\r\\n.shake {\\r\\n -webkit-animation-name: shake;\\r\\n animation-name: shake;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes swing {\\r\\n 20% {\\r\\n -webkit-transform: rotate(15deg);\\r\\n transform: rotate(15deg);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: rotate(-10deg);\\r\\n transform: rotate(-10deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: rotate(5deg);\\r\\n transform: rotate(5deg);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: rotate(-5deg);\\r\\n transform: rotate(-5deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes swing {\\r\\n 20% {\\r\\n -webkit-transform: rotate(15deg);\\r\\n -ms-transform: rotate(15deg);\\r\\n transform: rotate(15deg);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: rotate(-10deg);\\r\\n -ms-transform: rotate(-10deg);\\r\\n transform: rotate(-10deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: rotate(5deg);\\r\\n -ms-transform: rotate(5deg);\\r\\n transform: rotate(5deg);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: rotate(-5deg);\\r\\n -ms-transform: rotate(-5deg);\\r\\n transform: rotate(-5deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n -ms-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n}\\r\\n\\r\\n.swing {\\r\\n -webkit-transform-origin: top center;\\r\\n -ms-transform-origin: top center;\\r\\n transform-origin: top center;\\r\\n -webkit-animation-name: swing;\\r\\n animation-name: swing;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes tada {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 10%, 20% {\\r\\n -webkit-transform: scale(0.9) rotate(-3deg);\\r\\n transform: scale(0.9) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 30%, 50%, 70%, 90% {\\r\\n -webkit-transform: scale(1.1) rotate(3deg);\\r\\n transform: scale(1.1) rotate(3deg);\\r\\n }\\r\\n\\r\\n 40%, 60%, 80% {\\r\\n -webkit-transform: scale(1.1) rotate(-3deg);\\r\\n transform: scale(1.1) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1) rotate(0);\\r\\n transform: scale(1) rotate(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes tada {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 10%, 20% {\\r\\n -webkit-transform: scale(0.9) rotate(-3deg);\\r\\n -ms-transform: scale(0.9) rotate(-3deg);\\r\\n transform: scale(0.9) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 30%, 50%, 70%, 90% {\\r\\n -webkit-transform: scale(1.1) rotate(3deg);\\r\\n -ms-transform: scale(1.1) rotate(3deg);\\r\\n transform: scale(1.1) rotate(3deg);\\r\\n }\\r\\n\\r\\n 40%, 60%, 80% {\\r\\n -webkit-transform: scale(1.1) rotate(-3deg);\\r\\n -ms-transform: scale(1.1) rotate(-3deg);\\r\\n transform: scale(1.1) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1) rotate(0);\\r\\n -ms-transform: scale(1) rotate(0);\\r\\n transform: scale(1) rotate(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.tada {\\r\\n -webkit-animation-name: tada;\\r\\n animation-name: tada;\\r\\n}\\r\\n\\r\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\r\\n\\r\\n@-webkit-keyframes wobble {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0%);\\r\\n transform: translateX(0%);\\r\\n }\\r\\n\\r\\n 15% {\\r\\n -webkit-transform: translateX(-25%) rotate(-5deg);\\r\\n transform: translateX(-25%) rotate(-5deg);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: translateX(20%) rotate(3deg);\\r\\n transform: translateX(20%) rotate(3deg);\\r\\n }\\r\\n\\r\\n 45% {\\r\\n -webkit-transform: translateX(-15%) rotate(-3deg);\\r\\n transform: translateX(-15%) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateX(10%) rotate(2deg);\\r\\n transform: translateX(10%) rotate(2deg);\\r\\n }\\r\\n\\r\\n 75% {\\r\\n -webkit-transform: translateX(-5%) rotate(-1deg);\\r\\n transform: translateX(-5%) rotate(-1deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0%);\\r\\n transform: translateX(0%);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes wobble {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0%);\\r\\n -ms-transform: translateX(0%);\\r\\n transform: translateX(0%);\\r\\n }\\r\\n\\r\\n 15% {\\r\\n -webkit-transform: translateX(-25%) rotate(-5deg);\\r\\n -ms-transform: translateX(-25%) rotate(-5deg);\\r\\n transform: translateX(-25%) rotate(-5deg);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: translateX(20%) rotate(3deg);\\r\\n -ms-transform: translateX(20%) rotate(3deg);\\r\\n transform: translateX(20%) rotate(3deg);\\r\\n }\\r\\n\\r\\n 45% {\\r\\n -webkit-transform: translateX(-15%) rotate(-3deg);\\r\\n -ms-transform: translateX(-15%) rotate(-3deg);\\r\\n transform: translateX(-15%) rotate(-3deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateX(10%) rotate(2deg);\\r\\n -ms-transform: translateX(10%) rotate(2deg);\\r\\n transform: translateX(10%) rotate(2deg);\\r\\n }\\r\\n\\r\\n 75% {\\r\\n -webkit-transform: translateX(-5%) rotate(-1deg);\\r\\n -ms-transform: translateX(-5%) rotate(-1deg);\\r\\n transform: translateX(-5%) rotate(-1deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0%);\\r\\n -ms-transform: translateX(0%);\\r\\n transform: translateX(0%);\\r\\n }\\r\\n}\\r\\n\\r\\n.wobble {\\r\\n -webkit-animation-name: wobble;\\r\\n animation-name: wobble;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: scale(.3);\\r\\n transform: scale(.3);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1.05);\\r\\n transform: scale(1.05);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: scale(.9);\\r\\n transform: scale(.9);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: scale(.3);\\r\\n -ms-transform: scale(.3);\\r\\n transform: scale(.3);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1.05);\\r\\n -ms-transform: scale(1.05);\\r\\n transform: scale(1.05);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: scale(.9);\\r\\n -ms-transform: scale(.9);\\r\\n transform: scale(.9);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceIn {\\r\\n -webkit-animation-name: bounceIn;\\r\\n animation-name: bounceIn;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(30px);\\r\\n transform: translateY(30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateY(-10px);\\r\\n transform: translateY(-10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(30px);\\r\\n -ms-transform: translateY(30px);\\r\\n transform: translateY(30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateY(-10px);\\r\\n -ms-transform: translateY(-10px);\\r\\n transform: translateY(-10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceInDown {\\r\\n -webkit-animation-name: bounceInDown;\\r\\n animation-name: bounceInDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(30px);\\r\\n transform: translateX(30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(-10px);\\r\\n transform: translateX(-10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(30px);\\r\\n -ms-transform: translateX(30px);\\r\\n transform: translateX(30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(-10px);\\r\\n -ms-transform: translateX(-10px);\\r\\n transform: translateX(-10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceInLeft {\\r\\n -webkit-animation-name: bounceInLeft;\\r\\n animation-name: bounceInLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(-30px);\\r\\n transform: translateX(-30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(10px);\\r\\n transform: translateX(10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(-30px);\\r\\n -ms-transform: translateX(-30px);\\r\\n transform: translateX(-30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(10px);\\r\\n -ms-transform: translateX(10px);\\r\\n transform: translateX(10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceInRight {\\r\\n -webkit-animation-name: bounceInRight;\\r\\n animation-name: bounceInRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceInUp {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(-30px);\\r\\n transform: translateY(-30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateY(10px);\\r\\n transform: translateY(10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceInUp {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n -ms-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(-30px);\\r\\n -ms-transform: translateY(-30px);\\r\\n transform: translateY(-30px);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateY(10px);\\r\\n -ms-transform: translateY(10px);\\r\\n transform: translateY(10px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceInUp {\\r\\n -webkit-animation-name: bounceInUp;\\r\\n animation-name: bounceInUp;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceOut {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 25% {\\r\\n -webkit-transform: scale(.95);\\r\\n transform: scale(.95);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1.1);\\r\\n transform: scale(1.1);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: scale(.3);\\r\\n transform: scale(.3);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceOut {\\r\\n 0% {\\r\\n -webkit-transform: scale(1);\\r\\n -ms-transform: scale(1);\\r\\n transform: scale(1);\\r\\n }\\r\\n\\r\\n 25% {\\r\\n -webkit-transform: scale(.95);\\r\\n -ms-transform: scale(.95);\\r\\n transform: scale(.95);\\r\\n }\\r\\n\\r\\n 50% {\\r\\n opacity: 1;\\r\\n -webkit-transform: scale(1.1);\\r\\n -ms-transform: scale(1.1);\\r\\n transform: scale(1.1);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: scale(.3);\\r\\n -ms-transform: scale(.3);\\r\\n transform: scale(.3);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceOut {\\r\\n -webkit-animation-name: bounceOut;\\r\\n animation-name: bounceOut;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceOutDown {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceOutDown {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(-20px);\\r\\n -ms-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n -ms-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceOutDown {\\r\\n -webkit-animation-name: bounceOutDown;\\r\\n animation-name: bounceOutDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceOutLeft {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(20px);\\r\\n transform: translateX(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceOutLeft {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(20px);\\r\\n -ms-transform: translateX(20px);\\r\\n transform: translateX(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceOutLeft {\\r\\n -webkit-animation-name: bounceOutLeft;\\r\\n animation-name: bounceOutLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceOutRight {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceOutRight {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(-20px);\\r\\n -ms-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceOutRight {\\r\\n -webkit-animation-name: bounceOutRight;\\r\\n animation-name: bounceOutRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes bounceOutUp {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes bounceOutUp {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(20px);\\r\\n -ms-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.bounceOutUp {\\r\\n -webkit-animation-name: bounceOutUp;\\r\\n animation-name: bounceOutUp;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeIn {\\r\\n -webkit-animation-name: fadeIn;\\r\\n animation-name: fadeIn;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-20px);\\r\\n -ms-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInDown {\\r\\n -webkit-animation-name: fadeInDown;\\r\\n animation-name: fadeInDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInDownBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInDownBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInDownBig {\\r\\n -webkit-animation-name: fadeInDownBig;\\r\\n animation-name: fadeInDownBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-20px);\\r\\n -ms-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInLeft {\\r\\n -webkit-animation-name: fadeInLeft;\\r\\n animation-name: fadeInLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInLeftBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInLeftBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInLeftBig {\\r\\n -webkit-animation-name: fadeInLeftBig;\\r\\n animation-name: fadeInLeftBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(20px);\\r\\n transform: translateX(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(40px);\\r\\n -ms-transform: translateX(40px);\\r\\n transform: translateX(40px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInRight {\\r\\n -webkit-animation-name: fadeInRight;\\r\\n animation-name: fadeInRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInRightBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInRightBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInRightBig {\\r\\n -webkit-animation-name: fadeInRightBig;\\r\\n animation-name: fadeInRightBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInUp {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInUp {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(20px);\\r\\n -ms-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInUp {\\r\\n -webkit-animation-name: fadeInUp;\\r\\n animation-name: fadeInUp;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeInUpBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeInUpBig {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n -ms-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeInUpBig {\\r\\n -webkit-animation-name: fadeInUpBig;\\r\\n animation-name: fadeInUpBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOut {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOut {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOut {\\r\\n -webkit-animation-name: fadeOut;\\r\\n animation-name: fadeOut;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutDown {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutDown {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(20px);\\r\\n -ms-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutDown {\\r\\n -webkit-animation-name: fadeOutDown;\\r\\n animation-name: fadeOutDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutDownBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutDownBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n -ms-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutDownBig {\\r\\n -webkit-animation-name: fadeOutDownBig;\\r\\n animation-name: fadeOutDownBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutLeft {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutLeft {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-20px);\\r\\n -ms-transform: translateX(-20px);\\r\\n transform: translateX(-20px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutLeft {\\r\\n -webkit-animation-name: fadeOutLeft;\\r\\n animation-name: fadeOutLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutLeftBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutLeftBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutLeftBig {\\r\\n -webkit-animation-name: fadeOutLeftBig;\\r\\n animation-name: fadeOutLeftBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutRight {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(20px);\\r\\n transform: translateX(20px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutRight {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(20px);\\r\\n -ms-transform: translateX(20px);\\r\\n transform: translateX(20px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutRight {\\r\\n -webkit-animation-name: fadeOutRight;\\r\\n animation-name: fadeOutRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutRightBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutRightBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutRightBig {\\r\\n -webkit-animation-name: fadeOutRightBig;\\r\\n animation-name: fadeOutRightBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutUp {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutUp {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-20px);\\r\\n -ms-transform: translateY(-20px);\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutUp {\\r\\n -webkit-animation-name: fadeOutUp;\\r\\n animation-name: fadeOutUp;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes fadeOutUpBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes fadeOutUpBig {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.fadeOutUpBig {\\r\\n -webkit-animation-name: fadeOutUpBig;\\r\\n animation-name: fadeOutUpBig;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flip {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(0) scale(1);\\r\\n transform: perspective(400px) translateZ(0) rotateY(0) scale(1);\\r\\n -webkit-animation-timing-function: ease-out;\\r\\n animation-timing-function: ease-out;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);\\r\\n transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-out;\\r\\n animation-timing-function: ease-out;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\\r\\n transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);\\r\\n transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);\\r\\n transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flip {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(0) scale(1);\\r\\n -ms-transform: perspective(400px) translateZ(0) rotateY(0) scale(1);\\r\\n transform: perspective(400px) translateZ(0) rotateY(0) scale(1);\\r\\n -webkit-animation-timing-function: ease-out;\\r\\n animation-timing-function: ease-out;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);\\r\\n -ms-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);\\r\\n transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-out;\\r\\n animation-timing-function: ease-out;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\\r\\n -ms-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\\r\\n transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);\\r\\n -ms-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);\\r\\n transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);\\r\\n -ms-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);\\r\\n transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n }\\r\\n}\\r\\n\\r\\n.animated.flip {\\r\\n -webkit-backface-visibility: visible;\\r\\n -ms-backface-visibility: visible;\\r\\n backface-visibility: visible;\\r\\n -webkit-animation-name: flip;\\r\\n animation-name: flip;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flipInX {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateX(90deg);\\r\\n transform: perspective(400px) rotateX(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) rotateX(-10deg);\\r\\n transform: perspective(400px) rotateX(-10deg);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: perspective(400px) rotateX(10deg);\\r\\n transform: perspective(400px) rotateX(10deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateX(0deg);\\r\\n transform: perspective(400px) rotateX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flipInX {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateX(90deg);\\r\\n -ms-transform: perspective(400px) rotateX(90deg);\\r\\n transform: perspective(400px) rotateX(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) rotateX(-10deg);\\r\\n -ms-transform: perspective(400px) rotateX(-10deg);\\r\\n transform: perspective(400px) rotateX(-10deg);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: perspective(400px) rotateX(10deg);\\r\\n -ms-transform: perspective(400px) rotateX(10deg);\\r\\n transform: perspective(400px) rotateX(10deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateX(0deg);\\r\\n -ms-transform: perspective(400px) rotateX(0deg);\\r\\n transform: perspective(400px) rotateX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.flipInX {\\r\\n -webkit-backface-visibility: visible !important;\\r\\n -ms-backface-visibility: visible !important;\\r\\n backface-visibility: visible !important;\\r\\n -webkit-animation-name: flipInX;\\r\\n animation-name: flipInX;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flipInY {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateY(90deg);\\r\\n transform: perspective(400px) rotateY(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) rotateY(-10deg);\\r\\n transform: perspective(400px) rotateY(-10deg);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: perspective(400px) rotateY(10deg);\\r\\n transform: perspective(400px) rotateY(10deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateY(0deg);\\r\\n transform: perspective(400px) rotateY(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flipInY {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateY(90deg);\\r\\n -ms-transform: perspective(400px) rotateY(90deg);\\r\\n transform: perspective(400px) rotateY(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: perspective(400px) rotateY(-10deg);\\r\\n -ms-transform: perspective(400px) rotateY(-10deg);\\r\\n transform: perspective(400px) rotateY(-10deg);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: perspective(400px) rotateY(10deg);\\r\\n -ms-transform: perspective(400px) rotateY(10deg);\\r\\n transform: perspective(400px) rotateY(10deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateY(0deg);\\r\\n -ms-transform: perspective(400px) rotateY(0deg);\\r\\n transform: perspective(400px) rotateY(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.flipInY {\\r\\n -webkit-backface-visibility: visible !important;\\r\\n -ms-backface-visibility: visible !important;\\r\\n backface-visibility: visible !important;\\r\\n -webkit-animation-name: flipInY;\\r\\n animation-name: flipInY;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flipOutX {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateX(0deg);\\r\\n transform: perspective(400px) rotateX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateX(90deg);\\r\\n transform: perspective(400px) rotateX(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flipOutX {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateX(0deg);\\r\\n -ms-transform: perspective(400px) rotateX(0deg);\\r\\n transform: perspective(400px) rotateX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateX(90deg);\\r\\n -ms-transform: perspective(400px) rotateX(90deg);\\r\\n transform: perspective(400px) rotateX(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.flipOutX {\\r\\n -webkit-animation-name: flipOutX;\\r\\n animation-name: flipOutX;\\r\\n -webkit-backface-visibility: visible !important;\\r\\n -ms-backface-visibility: visible !important;\\r\\n backface-visibility: visible !important;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes flipOutY {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateY(0deg);\\r\\n transform: perspective(400px) rotateY(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateY(90deg);\\r\\n transform: perspective(400px) rotateY(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes flipOutY {\\r\\n 0% {\\r\\n -webkit-transform: perspective(400px) rotateY(0deg);\\r\\n -ms-transform: perspective(400px) rotateY(0deg);\\r\\n transform: perspective(400px) rotateY(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(400px) rotateY(90deg);\\r\\n -ms-transform: perspective(400px) rotateY(90deg);\\r\\n transform: perspective(400px) rotateY(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.flipOutY {\\r\\n -webkit-backface-visibility: visible !important;\\r\\n -ms-backface-visibility: visible !important;\\r\\n backface-visibility: visible !important;\\r\\n -webkit-animation-name: flipOutY;\\r\\n animation-name: flipOutY;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes lightSpeedIn {\\r\\n 0% {\\r\\n -webkit-transform: translateX(100%) skewX(-30deg);\\r\\n transform: translateX(100%) skewX(-30deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateX(-20%) skewX(30deg);\\r\\n transform: translateX(-20%) skewX(30deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(0%) skewX(-15deg);\\r\\n transform: translateX(0%) skewX(-15deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0%) skewX(0deg);\\r\\n transform: translateX(0%) skewX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes lightSpeedIn {\\r\\n 0% {\\r\\n -webkit-transform: translateX(100%) skewX(-30deg);\\r\\n -ms-transform: translateX(100%) skewX(-30deg);\\r\\n transform: translateX(100%) skewX(-30deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translateX(-20%) skewX(30deg);\\r\\n -ms-transform: translateX(-20%) skewX(30deg);\\r\\n transform: translateX(-20%) skewX(30deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: translateX(0%) skewX(-15deg);\\r\\n -ms-transform: translateX(0%) skewX(-15deg);\\r\\n transform: translateX(0%) skewX(-15deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0%) skewX(0deg);\\r\\n -ms-transform: translateX(0%) skewX(0deg);\\r\\n transform: translateX(0%) skewX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.lightSpeedIn {\\r\\n -webkit-animation-name: lightSpeedIn;\\r\\n animation-name: lightSpeedIn;\\r\\n -webkit-animation-timing-function: ease-out;\\r\\n animation-timing-function: ease-out;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes lightSpeedOut {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0%) skewX(0deg);\\r\\n transform: translateX(0%) skewX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(100%) skewX(-30deg);\\r\\n transform: translateX(100%) skewX(-30deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes lightSpeedOut {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0%) skewX(0deg);\\r\\n -ms-transform: translateX(0%) skewX(0deg);\\r\\n transform: translateX(0%) skewX(0deg);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(100%) skewX(-30deg);\\r\\n -ms-transform: translateX(100%) skewX(-30deg);\\r\\n transform: translateX(100%) skewX(-30deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.lightSpeedOut {\\r\\n -webkit-animation-name: lightSpeedOut;\\r\\n animation-name: lightSpeedOut;\\r\\n -webkit-animation-timing-function: ease-in;\\r\\n animation-timing-function: ease-in;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateIn {\\r\\n 0% {\\r\\n -webkit-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(-200deg);\\r\\n transform: rotate(-200deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateIn {\\r\\n 0% {\\r\\n -webkit-transform-origin: center center;\\r\\n -ms-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(-200deg);\\r\\n -ms-transform: rotate(-200deg);\\r\\n transform: rotate(-200deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: center center;\\r\\n -ms-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateIn {\\r\\n -webkit-animation-name: rotateIn;\\r\\n animation-name: rotateIn;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateInDownLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateInDownLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n -ms-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateInDownLeft {\\r\\n -webkit-animation-name: rotateInDownLeft;\\r\\n animation-name: rotateInDownLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateInDownRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateInDownRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n -ms-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateInDownRight {\\r\\n -webkit-animation-name: rotateInDownRight;\\r\\n animation-name: rotateInDownRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateInUpLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateInUpLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n -ms-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateInUpLeft {\\r\\n -webkit-animation-name: rotateInUpLeft;\\r\\n animation-name: rotateInUpLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateInUpRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateInUpRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n -ms-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateInUpRight {\\r\\n -webkit-animation-name: rotateInUpRight;\\r\\n animation-name: rotateInUpRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateOut {\\r\\n 0% {\\r\\n -webkit-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(200deg);\\r\\n transform: rotate(200deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateOut {\\r\\n 0% {\\r\\n -webkit-transform-origin: center center;\\r\\n -ms-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: center center;\\r\\n -ms-transform-origin: center center;\\r\\n transform-origin: center center;\\r\\n -webkit-transform: rotate(200deg);\\r\\n -ms-transform: rotate(200deg);\\r\\n transform: rotate(200deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateOut {\\r\\n -webkit-animation-name: rotateOut;\\r\\n animation-name: rotateOut;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateOutDownLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateOutDownLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n -ms-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateOutDownLeft {\\r\\n -webkit-animation-name: rotateOutDownLeft;\\r\\n animation-name: rotateOutDownLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateOutDownRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateOutDownRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n -ms-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateOutDownRight {\\r\\n -webkit-animation-name: rotateOutDownRight;\\r\\n animation-name: rotateOutDownRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateOutUpLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateOutUpLeft {\\r\\n 0% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: left bottom;\\r\\n -ms-transform-origin: left bottom;\\r\\n transform-origin: left bottom;\\r\\n -webkit-transform: rotate(-90deg);\\r\\n -ms-transform: rotate(-90deg);\\r\\n transform: rotate(-90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateOutUpLeft {\\r\\n -webkit-animation-name: rotateOutUpLeft;\\r\\n animation-name: rotateOutUpLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateOutUpRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotateOutUpRight {\\r\\n 0% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform-origin: right bottom;\\r\\n -ms-transform-origin: right bottom;\\r\\n transform-origin: right bottom;\\r\\n -webkit-transform: rotate(90deg);\\r\\n -ms-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.rotateOutUpRight {\\r\\n -webkit-animation-name: rotateOutUpRight;\\r\\n animation-name: rotateOutUpRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideInDown {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideInDown {\\r\\n -webkit-animation-name: slideInDown;\\r\\n animation-name: slideInDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideInLeft {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideInLeft {\\r\\n -webkit-animation-name: slideInLeft;\\r\\n animation-name: slideInLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideInRight {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideInRight {\\r\\n -webkit-animation-name: slideInRight;\\r\\n animation-name: slideInRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideOutLeft {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideOutLeft {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-2000px);\\r\\n -ms-transform: translateX(-2000px);\\r\\n transform: translateX(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideOutLeft {\\r\\n -webkit-animation-name: slideOutLeft;\\r\\n animation-name: slideOutLeft;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideOutRight {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideOutRight {\\r\\n 0% {\\r\\n -webkit-transform: translateX(0);\\r\\n -ms-transform: translateX(0);\\r\\n transform: translateX(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(2000px);\\r\\n -ms-transform: translateX(2000px);\\r\\n transform: translateX(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideOutRight {\\r\\n -webkit-animation-name: slideOutRight;\\r\\n animation-name: slideOutRight;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideOutUp {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideOutUp {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(-2000px);\\r\\n -ms-transform: translateY(-2000px);\\r\\n transform: translateY(-2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideOutUp {\\r\\n -webkit-animation-name: slideOutUp;\\r\\n animation-name: slideOutUp;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes slideOutDown {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes slideOutDown {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0);\\r\\n -ms-transform: translateY(0);\\r\\n transform: translateY(0);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateY(2000px);\\r\\n -ms-transform: translateY(2000px);\\r\\n transform: translateY(2000px);\\r\\n }\\r\\n}\\r\\n\\r\\n.slideOutDown {\\r\\n -webkit-animation-name: slideOutDown;\\r\\n animation-name: slideOutDown;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes hinge {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n -webkit-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 20%, 60% {\\r\\n -webkit-transform: rotate(80deg);\\r\\n transform: rotate(80deg);\\r\\n -webkit-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: rotate(60deg);\\r\\n transform: rotate(60deg);\\r\\n -webkit-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: rotate(60deg) translateY(0);\\r\\n transform: rotate(60deg) translateY(0);\\r\\n -webkit-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(700px);\\r\\n transform: translateY(700px);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes hinge {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0);\\r\\n -ms-transform: rotate(0);\\r\\n transform: rotate(0);\\r\\n -webkit-transform-origin: top left;\\r\\n -ms-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 20%, 60% {\\r\\n -webkit-transform: rotate(80deg);\\r\\n -ms-transform: rotate(80deg);\\r\\n transform: rotate(80deg);\\r\\n -webkit-transform-origin: top left;\\r\\n -ms-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: rotate(60deg);\\r\\n -ms-transform: rotate(60deg);\\r\\n transform: rotate(60deg);\\r\\n -webkit-transform-origin: top left;\\r\\n -ms-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: rotate(60deg) translateY(0);\\r\\n -ms-transform: rotate(60deg) translateY(0);\\r\\n transform: rotate(60deg) translateY(0);\\r\\n -webkit-transform-origin: top left;\\r\\n -ms-transform-origin: top left;\\r\\n transform-origin: top left;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: translateY(700px);\\r\\n -ms-transform: translateY(700px);\\r\\n transform: translateY(700px);\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.hinge {\\r\\n -webkit-animation-name: hinge;\\r\\n animation-name: hinge;\\r\\n}\\r\\n\\r\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\r\\n\\r\\n@-webkit-keyframes rollIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-100%) rotate(-120deg);\\r\\n transform: translateX(-100%) rotate(-120deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0px) rotate(0deg);\\r\\n transform: translateX(0px) rotate(0deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rollIn {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(-100%) rotate(-120deg);\\r\\n -ms-transform: translateX(-100%) rotate(-120deg);\\r\\n transform: translateX(-100%) rotate(-120deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0px) rotate(0deg);\\r\\n -ms-transform: translateX(0px) rotate(0deg);\\r\\n transform: translateX(0px) rotate(0deg);\\r\\n }\\r\\n}\\r\\n\\r\\n.rollIn {\\r\\n -webkit-animation-name: rollIn;\\r\\n animation-name: rollIn;\\r\\n}\\r\\n\\r\\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\\r\\n\\r\\n@-webkit-keyframes rollOut {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0px) rotate(0deg);\\r\\n transform: translateX(0px) rotate(0deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(100%) rotate(120deg);\\r\\n transform: translateX(100%) rotate(120deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rollOut {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n -webkit-transform: translateX(0px) rotate(0deg);\\r\\n -ms-transform: translateX(0px) rotate(0deg);\\r\\n transform: translateX(0px) rotate(0deg);\\r\\n }\\r\\n\\r\\n 100% {\\r\\n opacity: 0;\\r\\n -webkit-transform: translateX(100%) rotate(120deg);\\r\\n -ms-transform: translateX(100%) rotate(120deg);\\r\\n transform: translateX(100%) rotate(120deg);\\r\\n }\\r\\n}\\r\\n\\r\\n.rollOut {\\r\\n -webkit-animation-name: rollOut;\\r\\n animation-name: rollOut;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".navigation-sub-heading {\\r\\n font-size: 10px;\\r\\n color: white;\\r\\n font-weight: 700;\\r\\n text-transform: uppercase;\\r\\n border-bottom: 1px solid white;\\r\\n display: inline-flex;\\r\\n background-color: #242633;\\r\\n}\\r\\n\\r\\nselect::-ms-expand {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.nav > li > span > a {\\r\\n color: white;\\r\\n background-color: #242633;\\r\\n font-weight: 600;\\r\\n padding: 14px 20px 14px 25px;\\r\\n}\\r\\n\\r\\n.nav > li > span > a {\\r\\n position: relative;\\r\\n display: block;\\r\\n padding-top: 5px;\\r\\n padding-right: 5px;\\r\\n padding-bottom: 5px;\\r\\n padding-left: 15px;\\r\\n}\\r\\n\\r\\n.nav > li.active > span > a {\\r\\n color: white;\\r\\n background-color: white;\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\n.navbar-default .nav > li > span > a:hover, .navbar-default .nav > li > span > a:focus, .navbar-default .nav > li > span > a.active {\\r\\n background-color: #341F7F;\\r\\n color: #00FF5A;\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\n.nav-second-level li span a {\\r\\n padding-left: 52px;\\r\\n background-color: #242633;\\r\\n}\\r\\n\\r\\n.mini-navbar .nav-second-level .navigation-sub-heading {\\r\\n margin-left: 0px;\\r\\n}\\r\\n\\r\\n.nav-second-level .navigation-sub-heading {\\r\\n margin-left: 52px;\\r\\n}\\r\\n\\r\\n.nav-third-level li span a {\\r\\n padding-left: 62px;\\r\\n background-color: #242633;\\r\\n}\\r\\n\\r\\n.mini-navbar .nav-third-level .navigation-sub-heading {\\r\\n margin-left: 0px;\\r\\n}\\r\\n\\r\\n.nav-third-level .navigation-sub-heading {\\r\\n margin-left: 62px;\\r\\n background-color: #242633;\\r\\n}\\r\\n\\r\\n.hasSubHeading > span > a {\\r\\n margin-left: 6px;\\r\\n background-color: #242633;\\r\\n}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/customSubHeadingNavigation.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,yBAAyB;IACzB,8BAA8B;IAC9B,oBAAoB;IACpB,yBAAyB;AAC7B;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,YAAY;IACZ,yBAAyB;IACzB,gBAAgB;IAChB,4BAA4B;AAChC;;AAEA;IACI,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;AACtB;;AAEA;IACI,YAAY;IACZ,uBAAuB;IACvB,yBAAyB;AAC7B;;AAEA;IACI,yBAAyB;IACzB,cAAc;IACd,yBAAyB;AAC7B;;AAEA;IACI,kBAAkB;IAClB,yBAAyB;AAC7B;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,kBAAkB;IAClB,yBAAyB;AAC7B;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,iBAAiB;IACjB,yBAAyB;AAC7B;;AAEA;IACI,gBAAgB;IAChB,yBAAyB;AAC7B\",\"sourcesContent\":[\".navigation-sub-heading {\\r\\n font-size: 10px;\\r\\n color: white;\\r\\n font-weight: 700;\\r\\n text-transform: uppercase;\\r\\n border-bottom: 1px solid white;\\r\\n display: inline-flex;\\r\\n background-color: #242633;\\r\\n}\\r\\n\\r\\nselect::-ms-expand {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.nav > li > span > a {\\r\\n color: white;\\r\\n background-color: #242633;\\r\\n font-weight: 600;\\r\\n padding: 14px 20px 14px 25px;\\r\\n}\\r\\n\\r\\n.nav > li > span > a {\\r\\n position: relative;\\r\\n display: block;\\r\\n padding-top: 5px;\\r\\n padding-right: 5px;\\r\\n padding-bottom: 5px;\\r\\n padding-left: 15px;\\r\\n}\\r\\n\\r\\n.nav > li.active > span > a {\\r\\n color: white;\\r\\n background-color: white;\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\n.navbar-default .nav > li > span > a:hover, .navbar-default .nav > li > span > a:focus, .navbar-default .nav > li > span > a.active {\\r\\n background-color: #341F7F;\\r\\n color: #00FF5A;\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\n.nav-second-level li span a {\\r\\n padding-left: 52px;\\r\\n background-color: #242633;\\r\\n}\\r\\n\\r\\n.mini-navbar .nav-second-level .navigation-sub-heading {\\r\\n margin-left: 0px;\\r\\n}\\r\\n\\r\\n.nav-second-level .navigation-sub-heading {\\r\\n margin-left: 52px;\\r\\n}\\r\\n\\r\\n.nav-third-level li span a {\\r\\n padding-left: 62px;\\r\\n background-color: #242633;\\r\\n}\\r\\n\\r\\n.mini-navbar .nav-third-level .navigation-sub-heading {\\r\\n margin-left: 0px;\\r\\n}\\r\\n\\r\\n.nav-third-level .navigation-sub-heading {\\r\\n margin-left: 62px;\\r\\n background-color: #242633;\\r\\n}\\r\\n\\r\\n.hasSubHeading > span > a {\\r\\n margin-left: 6px;\\r\\n background-color: #242633;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\r\\n.tab-container ul.nav-tabs {\\r\\n margin: 0;\\r\\n list-style-type: none;\\r\\n line-height: 40px;\\r\\n max-height: 40px;\\r\\n overflow: hidden;\\r\\n display: inline-block;\\r\\n display: -webkit-flex;\\r\\n display: flex;\\r\\n padding-right: 1px;\\r\\n border-bottom: 0;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li {\\r\\n margin: 0 -2px 0 0;\\r\\n padding: 0 28px 3px 5px;\\r\\n /*height: 170px;*/\\r\\n background: white;\\r\\n position: relative;\\r\\n border-radius: 4px;\\r\\n -moz-box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);\\r\\n -webkit-box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);\\r\\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);\\r\\n width: auto;\\r\\n max-width: 400px;\\r\\n min-width: 20px;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li:hover {\\r\\n background-color: #F5F5F5;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li:first-child {\\r\\n margin-left: 0;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li:last-of-type {\\r\\n margin-right: 0;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li > a {\\r\\n display: block;\\r\\n max-width: 100%;\\r\\n font-weight: 400;\\r\\n text-decoration: none;\\r\\n color: #121321;\\r\\n padding: 3px 7px;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li > a span {\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n display: block;\\r\\n margin-top: 4px;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li > a:focus, .tab-container ul.nav-tabs > li > a:hover {\\r\\n background-color: transparent;\\r\\n border-color: transparent;\\r\\n color: #121321;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li.active {\\r\\n z-index: 2;\\r\\n background-color:#e0e0e0;\\r\\n border-top: 4px solid #291972;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li.active > a {\\r\\n background-color: transparent;\\r\\n border-color: transparent;\\r\\n border-bottom-color: transparent;\\r\\n color: #121321;\\r\\n font-weight: 600;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li.active > a:focus, .tab-container ul.nav-tabs > li.active > a:hover {\\r\\n background-color: transparent;\\r\\n border-color: transparent;\\r\\n border-bottom-color: transparent;\\r\\n}\\r\\n.tab-container ul.nav-tabs .btn.btn-default {\\r\\n background: #c3d5e6;\\r\\n}\\r\\n.tab-container ul.nav-tabs .btn.btn-default:hover {\\r\\n background: white;\\r\\n}\\r\\n.tab-container ul.nav-tabs .btn.btn-default:active {\\r\\n background: #9cb5cc;\\r\\n}\\r\\n.tab-container .tab-pane {\\r\\n padding: 0px 0px;\\r\\n text-align: left;\\r\\n}\\r\\n.tabsDarkHeader {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li > a .fa-thumb-tack {\\r\\n color: #121321;\\r\\n display: inline-block;\\r\\n padding: 3px 5px;\\r\\n font-size: 10px;\\r\\n position: absolute;\\r\\n z-index: 10;\\r\\n top: 7px;\\r\\n right: -15px;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li > a .fa-thumb-tack:hover {\\r\\n color: #291972;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li > a .fa-times {\\r\\n color: #121321;\\r\\n display: inline-block;\\r\\n padding: 3px;\\r\\n font-size: 10px;\\r\\n position: absolute;\\r\\n z-index: 10;\\r\\n top: 7px;\\r\\n right: -30px;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li > a .fa-times:hover {\\r\\n color: #BA0003;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/dynamicTabsDark.css\"],\"names\":[],\"mappings\":\";AACA;EACE,SAAS;EACT,qBAAqB;EACrB,iBAAiB;EACjB,gBAAgB;EAChB,gBAAgB;EAChB,qBAAqB;EACrB,qBAAqB;EACrB,aAAa;EACb,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,kBAAkB;EAClB,uBAAuB;EACvB,iBAAiB;EACjB,iBAAiB;EACjB,kBAAkB;EAClB,kBAAkB;EAClB,6CAA6C;EAC7C,gDAAgD;EAChD,wCAAwC;EACxC,WAAW;EACX,gBAAgB;EAChB,eAAe;AACjB;;AAEA;IACI,yBAAyB;AAC7B;;AAEA;EACE,cAAc;AAChB;AACA;EACE,eAAe;AACjB;AACA;EACE,cAAc;EACd,eAAe;EACf,gBAAgB;EAChB,qBAAqB;EACrB,cAAc;EACd,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,cAAc;EACd,eAAe;AACjB;AACA;EACE,6BAA6B;EAC7B,yBAAyB;EACzB,cAAc;AAChB;AACA;EACE,UAAU;EACV,wBAAwB;EACxB,6BAA6B;AAC/B;AACA;EACE,6BAA6B;EAC7B,yBAAyB;EACzB,gCAAgC;EAChC,cAAc;EACd,gBAAgB;AAClB;AACA;EACE,6BAA6B;EAC7B,yBAAyB;EACzB,gCAAgC;AAClC;AACA;EACE,mBAAmB;AACrB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,gBAAgB;AAClB;AACA;IACI,uBAAuB;AAC3B;;AAEA;EACE,cAAc;EACd,qBAAqB;EACrB,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,WAAW;EACX,QAAQ;EACR,YAAY;AACd;;AAEA;IACI,cAAc;IACd,eAAe;AACnB;;AAEA;EACE,cAAc;EACd,qBAAqB;EACrB,YAAY;EACZ,eAAe;EACf,kBAAkB;EAClB,WAAW;EACX,QAAQ;EACR,YAAY;AACd;;AAEA;IACI,cAAc;IACd,eAAe;AACnB\",\"sourcesContent\":[\"\\r\\n.tab-container ul.nav-tabs {\\r\\n margin: 0;\\r\\n list-style-type: none;\\r\\n line-height: 40px;\\r\\n max-height: 40px;\\r\\n overflow: hidden;\\r\\n display: inline-block;\\r\\n display: -webkit-flex;\\r\\n display: flex;\\r\\n padding-right: 1px;\\r\\n border-bottom: 0;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li {\\r\\n margin: 0 -2px 0 0;\\r\\n padding: 0 28px 3px 5px;\\r\\n /*height: 170px;*/\\r\\n background: white;\\r\\n position: relative;\\r\\n border-radius: 4px;\\r\\n -moz-box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);\\r\\n -webkit-box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);\\r\\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);\\r\\n width: auto;\\r\\n max-width: 400px;\\r\\n min-width: 20px;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li:hover {\\r\\n background-color: #F5F5F5;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li:first-child {\\r\\n margin-left: 0;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li:last-of-type {\\r\\n margin-right: 0;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li > a {\\r\\n display: block;\\r\\n max-width: 100%;\\r\\n font-weight: 400;\\r\\n text-decoration: none;\\r\\n color: #121321;\\r\\n padding: 3px 7px;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li > a span {\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n display: block;\\r\\n margin-top: 4px;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li > a:focus, .tab-container ul.nav-tabs > li > a:hover {\\r\\n background-color: transparent;\\r\\n border-color: transparent;\\r\\n color: #121321;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li.active {\\r\\n z-index: 2;\\r\\n background-color:#e0e0e0;\\r\\n border-top: 4px solid #291972;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li.active > a {\\r\\n background-color: transparent;\\r\\n border-color: transparent;\\r\\n border-bottom-color: transparent;\\r\\n color: #121321;\\r\\n font-weight: 600;\\r\\n}\\r\\n.tab-container ul.nav-tabs > li.active > a:focus, .tab-container ul.nav-tabs > li.active > a:hover {\\r\\n background-color: transparent;\\r\\n border-color: transparent;\\r\\n border-bottom-color: transparent;\\r\\n}\\r\\n.tab-container ul.nav-tabs .btn.btn-default {\\r\\n background: #c3d5e6;\\r\\n}\\r\\n.tab-container ul.nav-tabs .btn.btn-default:hover {\\r\\n background: white;\\r\\n}\\r\\n.tab-container ul.nav-tabs .btn.btn-default:active {\\r\\n background: #9cb5cc;\\r\\n}\\r\\n.tab-container .tab-pane {\\r\\n padding: 0px 0px;\\r\\n text-align: left;\\r\\n}\\r\\n.tabsDarkHeader {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li > a .fa-thumb-tack {\\r\\n color: #121321;\\r\\n display: inline-block;\\r\\n padding: 3px 5px;\\r\\n font-size: 10px;\\r\\n position: absolute;\\r\\n z-index: 10;\\r\\n top: 7px;\\r\\n right: -15px;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li > a .fa-thumb-tack:hover {\\r\\n color: #291972;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li > a .fa-times {\\r\\n color: #121321;\\r\\n display: inline-block;\\r\\n padding: 3px;\\r\\n font-size: 10px;\\r\\n position: absolute;\\r\\n z-index: 10;\\r\\n top: 7px;\\r\\n right: -30px;\\r\\n}\\r\\n\\r\\n.tab-container ul.nav-tabs > li > a .fa-times:hover {\\r\\n color: #BA0003;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"../fonts/Collection 1-b8f80e9f63.eot\";\nimport ___CSS_LOADER_URL_IMPORT_1___ from \"../fonts/Collection 1-b8f80e9f63.woff2\";\nimport ___CSS_LOADER_URL_IMPORT_2___ from \"../fonts/Collection 1-b8f80e9f63.woff\";\nimport ___CSS_LOADER_URL_IMPORT_3___ from \"../fonts/Collection 1-b8f80e9f63.ttf\";\nimport ___CSS_LOADER_URL_IMPORT_4___ from \"../fonts/Collection 1-b8f80e9f63.svg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___, { hash: \"#font\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___, { hash: \"#Collection 1-b8f80e9f63\" });\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*!\\r\\n * Icon Font Collection 1-b8f80e9f63\\r\\n * Made with love by Icons8 [ https://icons8.com/ ] using webfont [ https://github.com/itgalaxy/webfont ]\\r\\n *\\r\\n * Contacts:\\r\\n * [ https://icons8.com/contact ]\\r\\n *\\r\\n * Follow Icon8 on\\r\\n * Twitter [ https://twitter.com/icons_8 ]\\r\\n * Facebook [ https://www.facebook.com/Icons8 ]\\r\\n * Google+ [ https://plus.google.com/+Icons8 ]\\r\\n * GitHub [ https://github.com/icons8 ]\\r\\n */\\r\\n@font-face{font-family:\\\"Collection 1-b8f80e9f63\\\";src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \")format(\\\"embedded-opentype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \")format(\\\"woff2\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \")format(\\\"woff\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \")format(\\\"truetype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \")format(\\\"svg\\\");font-weight:normal;font-style:normal;}@media screen and(-webkit-min-device-pixel-ratio:0){@font-face{font-family:\\\"Collection 1-b8f80e9f63\\\";src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \")format(\\\"svg\\\");}}[data-icons8]:before{content:attr(data-icons8);}.icons8-delete-filled:before,.icons8-refresh-shield:before,.icons8-restart:before,.icons8-downloading-updates:before,.icons8-template:before,.icons8-home:before,.icons8-play:before,.icons8-christmas-star:before,.icons8-xml-filled:before,.icons8-rules:before,.icons8-parse-from-clipboard-filled:before,.icons8-help:before,.icons8-info:before,.icons8-sort:before,.icons8-multiply-filled:before,.icons8-filled-circle:before,.icons8-menu-filled:before,.icons8-clock:before,.icons8-calendar:before,.icons8-trash:before,.icons8-search:before,.icons8-pin:before,.icons8-attention:before,.icons8-checkmark-filled:before,.icons8-refresh:before,.icons8-circle:before,.icons8-sort-up-filled:before,.icons8-sort-down-filled:before,.icons8-sort-left-filled:before,.icons8-sort-right-filled:before,.icons8-plus:before,.icons8-minus:before,.icons8-forward:before,.icons8-double-right:before,.icons8-double-left:before,.icons8-double-up:before,.icons8-double-down:before,.icons8-checked:before,.icons8-filled-filter:before,.icons8-lock:before,.icons8-undo:before,.icons8-redo:before,.icons8-open:before,.icons8-microsoft-excel:before,.icons8-open-book:before,.icons8-save:before,.icons8-menu:before,.icons8-columns:before,.icons8-toggle-on:before,.icons8-toggle-off:before,.icons8-settings:before,.icons8-gears:before,.icons8-notification:before,.icons8-exit:before,.icons8-undo-2:before,.icons8-redo-2:before,.icons8-copy:before,.icons8-user-menu-male:before,.icons8-business-building:before,.icons8-leave:before,.icons8-combo-chart:before,.icons8-doughnut-chart:before,.icons8-geography:before,.icons8-play-2:before,.icons8-star:before,.icons8-conflict:before,.icons8-briefcase:before,.icons8-user-avatar:before,.icons8-globe:before,.icons8-warning-shield:before,.icons8-new-window:before,.icons8-submit-progress:before,.icons8-pencil-tip:before,.icons8-download:before,.icons8-checked-2:before,.icons8-approval:before,.icons8-plus-2:before,.icons8-upload:before,.icons8-expand-arrow:before,.icons8-collapse-arrow:before,.icons8-back:before,.icons8-playlist:before,.icons8,[data-icons8]:before{display:inline-block;font-family:\\\"Collection 1-b8f80e9f63\\\";font-style:normal;font-weight:normal;font-variant:normal;line-height:1;text-decoration:inherit;text-rendering:optimizeLegibility;text-transform:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;}.icons8-delete-filled:before{content:\\\"\\\\f100\\\";}.icons8-refresh-shield:before{content:\\\"\\\\f101\\\";}.icons8-restart:before{content:\\\"\\\\f102\\\";}.icons8-downloading-updates:before{content:\\\"\\\\f103\\\";}.icons8-template:before{content:\\\"\\\\f104\\\";}.icons8-home:before{content:\\\"\\\\f105\\\";}.icons8-play:before{content:\\\"\\\\f106\\\";}.icons8-christmas-star:before{content:\\\"\\\\f107\\\";}.icons8-xml-filled:before{content:\\\"\\\\f108\\\";}.icons8-rules:before{content:\\\"\\\\f109\\\";}.icons8-parse-from-clipboard-filled:before{content:\\\"\\\\f10a\\\";}.icons8-help:before{content:\\\"\\\\f10b\\\";}.icons8-info:before{content:\\\"\\\\f10c\\\";}.icons8-sort:before{content:\\\"\\\\f10d\\\";}.icons8-multiply-filled:before{content:\\\"\\\\f10e\\\";}.icons8-filled-circle:before{content:\\\"\\\\f10f\\\";}.icons8-menu-filled:before{content:\\\"\\\\f110\\\";}.icons8-clock:before{content:\\\"\\\\f111\\\";}.icons8-calendar:before{content:\\\"\\\\f112\\\";}.icons8-trash:before{content:\\\"\\\\f113\\\";}.icons8-search:before{content:\\\"\\\\f114\\\";}.icons8-pin:before{content:\\\"\\\\f115\\\";}.icons8-attention:before{content:\\\"\\\\f116\\\";}.icons8-checkmark-filled:before{content:\\\"\\\\f117\\\";}.icons8-refresh:before{content:\\\"\\\\f118\\\";}.icons8-circle:before{content:\\\"\\\\f119\\\";}.icons8-sort-up-filled:before{content:\\\"\\\\f11a\\\";}.icons8-sort-down-filled:before{content:\\\"\\\\f11b\\\";}.icons8-sort-left-filled:before{content:\\\"\\\\f11c\\\";}.icons8-sort-right-filled:before{content:\\\"\\\\f11d\\\";}.icons8-plus:before{content:\\\"\\\\f11e\\\";}.icons8-minus:before{content:\\\"\\\\f11f\\\";}.icons8-forward:before{content:\\\"\\\\f120\\\";}.icons8-double-right:before{content:\\\"\\\\f121\\\";}.icons8-double-left:before{content:\\\"\\\\f122\\\";}.icons8-double-up:before{content:\\\"\\\\f123\\\";}.icons8-double-down:before{content:\\\"\\\\f124\\\";}.icons8-checked:before{content:\\\"\\\\f125\\\";}.icons8-filled-filter:before{content:\\\"\\\\f126\\\";}.icons8-lock:before{content:\\\"\\\\f127\\\";}.icons8-undo:before{content:\\\"\\\\f128\\\";}.icons8-redo:before{content:\\\"\\\\f129\\\";}.icons8-open:before{content:\\\"\\\\f12a\\\";}.icons8-microsoft-excel:before{content:\\\"\\\\f12b\\\";}.icons8-open-book:before{content:\\\"\\\\f12c\\\";}.icons8-save:before{content:\\\"\\\\f12d\\\";}.icons8-menu:before{content:\\\"\\\\f12e\\\";}.icons8-columns:before{content:\\\"\\\\f12f\\\";}.icons8-toggle-on:before{content:\\\"\\\\f130\\\";}.icons8-toggle-off:before{content:\\\"\\\\f131\\\";}.icons8-settings:before{content:\\\"\\\\f132\\\";}.icons8-gears:before{content:\\\"\\\\f133\\\";}.icons8-notification:before{content:\\\"\\\\f134\\\";}.icons8-exit:before{content:\\\"\\\\f135\\\";}.icons8-undo-2:before{content:\\\"\\\\f136\\\";}.icons8-redo-2:before{content:\\\"\\\\f137\\\";}.icons8-copy:before{content:\\\"\\\\f138\\\";}.icons8-user-menu-male:before{content:\\\"\\\\f139\\\";}.icons8-business-building:before{content:\\\"\\\\f13a\\\";}.icons8-leave:before{content:\\\"\\\\f13b\\\";}.icons8-combo-chart:before{content:\\\"\\\\f13c\\\";}.icons8-doughnut-chart:before{content:\\\"\\\\f13d\\\";}.icons8-geography:before{content:\\\"\\\\f13e\\\";}.icons8-play-2:before{content:\\\"\\\\f13f\\\";}.icons8-star:before{content:\\\"\\\\f140\\\";}.icons8-conflict:before{content:\\\"\\\\f141\\\";}.icons8-briefcase:before{content:\\\"\\\\f142\\\";}.icons8-user-avatar:before{content:\\\"\\\\f143\\\";}.icons8-globe:before{content:\\\"\\\\f144\\\";}.icons8-warning-shield:before{content:\\\"\\\\f145\\\";}.icons8-new-window:before{content:\\\"\\\\f146\\\";}.icons8-submit-progress:before{content:\\\"\\\\f147\\\";}.icons8-pencil-tip:before{content:\\\"\\\\f148\\\";}.icons8-download:before{content:\\\"\\\\f149\\\";}.icons8-checked-2:before{content:\\\"\\\\f14a\\\";}.icons8-approval:before{content:\\\"\\\\f14b\\\";}.icons8-plus-2:before{content:\\\"\\\\f14c\\\";}.icons8-upload:before{content:\\\"\\\\f14d\\\";}.icons8-expand-arrow:before{content:\\\"\\\\f14e\\\";}.icons8-collapse-arrow:before{content:\\\"\\\\f14f\\\";}.icons8-back:before{content:\\\"\\\\f150\\\";}.icons8-playlist:before{content:\\\"\\\\f151\\\";}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/icons8/css/styles.min.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;;;;;;EAYE;AACF,WAAW,qCAAqC,CAAC,2CAA+C,CAAC,kSAAqU,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,oDAAoD,WAAW,qCAAqC,CAAC,wDAAoF,CAAC,CAAC,CAAC,qBAAqB,yBAAyB,CAAC,CAAC,giEAAgiE,oBAAoB,CAAC,qCAAqC,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,aAAa,CAAC,uBAAuB,CAAC,iCAAiC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,CAAC,6BAA6B,eAAe,CAAC,CAAC,8BAA8B,eAAe,CAAC,CAAC,uBAAuB,eAAe,CAAC,CAAC,mCAAmC,eAAe,CAAC,CAAC,wBAAwB,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,8BAA8B,eAAe,CAAC,CAAC,0BAA0B,eAAe,CAAC,CAAC,qBAAqB,eAAe,CAAC,CAAC,2CAA2C,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,+BAA+B,eAAe,CAAC,CAAC,6BAA6B,eAAe,CAAC,CAAC,2BAA2B,eAAe,CAAC,CAAC,qBAAqB,eAAe,CAAC,CAAC,wBAAwB,eAAe,CAAC,CAAC,qBAAqB,eAAe,CAAC,CAAC,sBAAsB,eAAe,CAAC,CAAC,mBAAmB,eAAe,CAAC,CAAC,yBAAyB,eAAe,CAAC,CAAC,gCAAgC,eAAe,CAAC,CAAC,uBAAuB,eAAe,CAAC,CAAC,sBAAsB,eAAe,CAAC,CAAC,8BAA8B,eAAe,CAAC,CAAC,gCAAgC,eAAe,CAAC,CAAC,gCAAgC,eAAe,CAAC,CAAC,iCAAiC,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,qBAAqB,eAAe,CAAC,CAAC,uBAAuB,eAAe,CAAC,CAAC,4BAA4B,eAAe,CAAC,CAAC,2BAA2B,eAAe,CAAC,CAAC,yBAAyB,eAAe,CAAC,CAAC,2BAA2B,eAAe,CAAC,CAAC,uBAAuB,eAAe,CAAC,CAAC,6BAA6B,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,+BAA+B,eAAe,CAAC,CAAC,yBAAyB,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,uBAAuB,eAAe,CAAC,CAAC,yBAAyB,eAAe,CAAC,CAAC,0BAA0B,eAAe,CAAC,CAAC,wBAAwB,eAAe,CAAC,CAAC,qBAAqB,eAAe,CAAC,CAAC,4BAA4B,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,sBAAsB,eAAe,CAAC,CAAC,sBAAsB,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,8BAA8B,eAAe,CAAC,CAAC,iCAAiC,eAAe,CAAC,CAAC,qBAAqB,eAAe,CAAC,CAAC,2BAA2B,eAAe,CAAC,CAAC,8BAA8B,eAAe,CAAC,CAAC,yBAAyB,eAAe,CAAC,CAAC,sBAAsB,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,wBAAwB,eAAe,CAAC,CAAC,yBAAyB,eAAe,CAAC,CAAC,2BAA2B,eAAe,CAAC,CAAC,qBAAqB,eAAe,CAAC,CAAC,8BAA8B,eAAe,CAAC,CAAC,0BAA0B,eAAe,CAAC,CAAC,+BAA+B,eAAe,CAAC,CAAC,0BAA0B,eAAe,CAAC,CAAC,wBAAwB,eAAe,CAAC,CAAC,yBAAyB,eAAe,CAAC,CAAC,wBAAwB,eAAe,CAAC,CAAC,sBAAsB,eAAe,CAAC,CAAC,sBAAsB,eAAe,CAAC,CAAC,4BAA4B,eAAe,CAAC,CAAC,8BAA8B,eAAe,CAAC,CAAC,oBAAoB,eAAe,CAAC,CAAC,wBAAwB,eAAe,CAAC\",\"sourcesContent\":[\"/*!\\r\\n * Icon Font Collection 1-b8f80e9f63\\r\\n * Made with love by Icons8 [ https://icons8.com/ ] using webfont [ https://github.com/itgalaxy/webfont ]\\r\\n *\\r\\n * Contacts:\\r\\n * [ https://icons8.com/contact ]\\r\\n *\\r\\n * Follow Icon8 on\\r\\n * Twitter [ https://twitter.com/icons_8 ]\\r\\n * Facebook [ https://www.facebook.com/Icons8 ]\\r\\n * Google+ [ https://plus.google.com/+Icons8 ]\\r\\n * GitHub [ https://github.com/icons8 ]\\r\\n */\\r\\n@font-face{font-family:\\\"Collection 1-b8f80e9f63\\\";src:url(\\\"../fonts/Collection 1-b8f80e9f63.eot\\\");src:url(\\\"../fonts/Collection 1-b8f80e9f63.eot?#iefix\\\")format(\\\"embedded-opentype\\\"),url(\\\"../fonts/Collection 1-b8f80e9f63.woff2\\\")format(\\\"woff2\\\"),url(\\\"../fonts/Collection 1-b8f80e9f63.woff\\\")format(\\\"woff\\\"),url(\\\"../fonts/Collection 1-b8f80e9f63.ttf\\\")format(\\\"truetype\\\"),url(\\\"../fonts/Collection 1-b8f80e9f63.svg#font\\\")format(\\\"svg\\\");font-weight:normal;font-style:normal;}@media screen and(-webkit-min-device-pixel-ratio:0){@font-face{font-family:\\\"Collection 1-b8f80e9f63\\\";src:url(\\\"../fonts/Collection 1-b8f80e9f63.svg#Collection 1-b8f80e9f63\\\")format(\\\"svg\\\");}}[data-icons8]:before{content:attr(data-icons8);}.icons8-delete-filled:before,.icons8-refresh-shield:before,.icons8-restart:before,.icons8-downloading-updates:before,.icons8-template:before,.icons8-home:before,.icons8-play:before,.icons8-christmas-star:before,.icons8-xml-filled:before,.icons8-rules:before,.icons8-parse-from-clipboard-filled:before,.icons8-help:before,.icons8-info:before,.icons8-sort:before,.icons8-multiply-filled:before,.icons8-filled-circle:before,.icons8-menu-filled:before,.icons8-clock:before,.icons8-calendar:before,.icons8-trash:before,.icons8-search:before,.icons8-pin:before,.icons8-attention:before,.icons8-checkmark-filled:before,.icons8-refresh:before,.icons8-circle:before,.icons8-sort-up-filled:before,.icons8-sort-down-filled:before,.icons8-sort-left-filled:before,.icons8-sort-right-filled:before,.icons8-plus:before,.icons8-minus:before,.icons8-forward:before,.icons8-double-right:before,.icons8-double-left:before,.icons8-double-up:before,.icons8-double-down:before,.icons8-checked:before,.icons8-filled-filter:before,.icons8-lock:before,.icons8-undo:before,.icons8-redo:before,.icons8-open:before,.icons8-microsoft-excel:before,.icons8-open-book:before,.icons8-save:before,.icons8-menu:before,.icons8-columns:before,.icons8-toggle-on:before,.icons8-toggle-off:before,.icons8-settings:before,.icons8-gears:before,.icons8-notification:before,.icons8-exit:before,.icons8-undo-2:before,.icons8-redo-2:before,.icons8-copy:before,.icons8-user-menu-male:before,.icons8-business-building:before,.icons8-leave:before,.icons8-combo-chart:before,.icons8-doughnut-chart:before,.icons8-geography:before,.icons8-play-2:before,.icons8-star:before,.icons8-conflict:before,.icons8-briefcase:before,.icons8-user-avatar:before,.icons8-globe:before,.icons8-warning-shield:before,.icons8-new-window:before,.icons8-submit-progress:before,.icons8-pencil-tip:before,.icons8-download:before,.icons8-checked-2:before,.icons8-approval:before,.icons8-plus-2:before,.icons8-upload:before,.icons8-expand-arrow:before,.icons8-collapse-arrow:before,.icons8-back:before,.icons8-playlist:before,.icons8,[data-icons8]:before{display:inline-block;font-family:\\\"Collection 1-b8f80e9f63\\\";font-style:normal;font-weight:normal;font-variant:normal;line-height:1;text-decoration:inherit;text-rendering:optimizeLegibility;text-transform:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;}.icons8-delete-filled:before{content:\\\"\\\\f100\\\";}.icons8-refresh-shield:before{content:\\\"\\\\f101\\\";}.icons8-restart:before{content:\\\"\\\\f102\\\";}.icons8-downloading-updates:before{content:\\\"\\\\f103\\\";}.icons8-template:before{content:\\\"\\\\f104\\\";}.icons8-home:before{content:\\\"\\\\f105\\\";}.icons8-play:before{content:\\\"\\\\f106\\\";}.icons8-christmas-star:before{content:\\\"\\\\f107\\\";}.icons8-xml-filled:before{content:\\\"\\\\f108\\\";}.icons8-rules:before{content:\\\"\\\\f109\\\";}.icons8-parse-from-clipboard-filled:before{content:\\\"\\\\f10a\\\";}.icons8-help:before{content:\\\"\\\\f10b\\\";}.icons8-info:before{content:\\\"\\\\f10c\\\";}.icons8-sort:before{content:\\\"\\\\f10d\\\";}.icons8-multiply-filled:before{content:\\\"\\\\f10e\\\";}.icons8-filled-circle:before{content:\\\"\\\\f10f\\\";}.icons8-menu-filled:before{content:\\\"\\\\f110\\\";}.icons8-clock:before{content:\\\"\\\\f111\\\";}.icons8-calendar:before{content:\\\"\\\\f112\\\";}.icons8-trash:before{content:\\\"\\\\f113\\\";}.icons8-search:before{content:\\\"\\\\f114\\\";}.icons8-pin:before{content:\\\"\\\\f115\\\";}.icons8-attention:before{content:\\\"\\\\f116\\\";}.icons8-checkmark-filled:before{content:\\\"\\\\f117\\\";}.icons8-refresh:before{content:\\\"\\\\f118\\\";}.icons8-circle:before{content:\\\"\\\\f119\\\";}.icons8-sort-up-filled:before{content:\\\"\\\\f11a\\\";}.icons8-sort-down-filled:before{content:\\\"\\\\f11b\\\";}.icons8-sort-left-filled:before{content:\\\"\\\\f11c\\\";}.icons8-sort-right-filled:before{content:\\\"\\\\f11d\\\";}.icons8-plus:before{content:\\\"\\\\f11e\\\";}.icons8-minus:before{content:\\\"\\\\f11f\\\";}.icons8-forward:before{content:\\\"\\\\f120\\\";}.icons8-double-right:before{content:\\\"\\\\f121\\\";}.icons8-double-left:before{content:\\\"\\\\f122\\\";}.icons8-double-up:before{content:\\\"\\\\f123\\\";}.icons8-double-down:before{content:\\\"\\\\f124\\\";}.icons8-checked:before{content:\\\"\\\\f125\\\";}.icons8-filled-filter:before{content:\\\"\\\\f126\\\";}.icons8-lock:before{content:\\\"\\\\f127\\\";}.icons8-undo:before{content:\\\"\\\\f128\\\";}.icons8-redo:before{content:\\\"\\\\f129\\\";}.icons8-open:before{content:\\\"\\\\f12a\\\";}.icons8-microsoft-excel:before{content:\\\"\\\\f12b\\\";}.icons8-open-book:before{content:\\\"\\\\f12c\\\";}.icons8-save:before{content:\\\"\\\\f12d\\\";}.icons8-menu:before{content:\\\"\\\\f12e\\\";}.icons8-columns:before{content:\\\"\\\\f12f\\\";}.icons8-toggle-on:before{content:\\\"\\\\f130\\\";}.icons8-toggle-off:before{content:\\\"\\\\f131\\\";}.icons8-settings:before{content:\\\"\\\\f132\\\";}.icons8-gears:before{content:\\\"\\\\f133\\\";}.icons8-notification:before{content:\\\"\\\\f134\\\";}.icons8-exit:before{content:\\\"\\\\f135\\\";}.icons8-undo-2:before{content:\\\"\\\\f136\\\";}.icons8-redo-2:before{content:\\\"\\\\f137\\\";}.icons8-copy:before{content:\\\"\\\\f138\\\";}.icons8-user-menu-male:before{content:\\\"\\\\f139\\\";}.icons8-business-building:before{content:\\\"\\\\f13a\\\";}.icons8-leave:before{content:\\\"\\\\f13b\\\";}.icons8-combo-chart:before{content:\\\"\\\\f13c\\\";}.icons8-doughnut-chart:before{content:\\\"\\\\f13d\\\";}.icons8-geography:before{content:\\\"\\\\f13e\\\";}.icons8-play-2:before{content:\\\"\\\\f13f\\\";}.icons8-star:before{content:\\\"\\\\f140\\\";}.icons8-conflict:before{content:\\\"\\\\f141\\\";}.icons8-briefcase:before{content:\\\"\\\\f142\\\";}.icons8-user-avatar:before{content:\\\"\\\\f143\\\";}.icons8-globe:before{content:\\\"\\\\f144\\\";}.icons8-warning-shield:before{content:\\\"\\\\f145\\\";}.icons8-new-window:before{content:\\\"\\\\f146\\\";}.icons8-submit-progress:before{content:\\\"\\\\f147\\\";}.icons8-pencil-tip:before{content:\\\"\\\\f148\\\";}.icons8-download:before{content:\\\"\\\\f149\\\";}.icons8-checked-2:before{content:\\\"\\\\f14a\\\";}.icons8-approval:before{content:\\\"\\\\f14b\\\";}.icons8-plus-2:before{content:\\\"\\\\f14c\\\";}.icons8-upload:before{content:\\\"\\\\f14d\\\";}.icons8-expand-arrow:before{content:\\\"\\\\f14e\\\";}.icons8-collapse-arrow:before{content:\\\"\\\\f14f\\\";}.icons8-back:before{content:\\\"\\\\f150\\\";}.icons8-playlist:before{content:\\\"\\\\f151\\\";}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"oi-select {\\r\\n color: #121321 !important;\\r\\n}\\r\\n\\r\\noi-select .btn {\\r\\n color: #121321 !important;\\r\\n}\\r\\n\\r\\noi-select .select-search-list-item {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\noi-select .select-dropdown {\\r\\n font-size: 12px;\\r\\n max-height: 300px;\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\noi-select .select-search {\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\noi-select .select-dropdown-optgroup-option {\\r\\n padding: 3px;\\r\\n}\\r\\n\\r\\noi-select .select-dropdown-optgroup-option.active:not(.disabled) {\\r\\n background-color: #f5f5f5;\\r\\n color: #121321;\\r\\n cursor: default;\\r\\n}\\r\\n\\r\\noi-select .select-search-list {\\r\\n max-height: 150px;\\r\\n overflow-y: auto;\\r\\n}\\r\\n\\r\\noi-select .select-search-list-item_selection {\\r\\n padding-top: 5px;\\r\\n cursor: pointer;\\r\\n border-radius: 8px;\\r\\n background: #EEEFF2;\\r\\n border-width: 1px;\\r\\n border-color: #C2C4CC;\\r\\n gap: 4px;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\noi-select .select-search-list-item_selection:active {\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\noi-select .select-search-list-item_selection.focused {\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\noi-select.open .select-search {\\r\\n border-radius: 0;\\r\\n}\\r\\n\\r\\noi-select.focused .select-search {\\r\\n border-color: #66afe9 !important;\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\n.select-search-list-item_input {\\r\\n line-height: 25px;\\r\\n}\\r\\n\\r\\n.close.select-search-list-item_selection-remove {\\r\\n font-size: 18px;\\r\\n stroke: #121321;\\r\\n}\\r\\n/* removes large input when something is selected */\\r\\noi-select.ng-not-empty .select-search-list-item_input input {\\r\\n max-width: 30px;\\r\\n}\\r\\n/* transparent dropdown */\\r\\noi-select.transparent-oi-select:not(.multiple) .select-search-list-item_selection {\\r\\n font-size: 16px;\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\noi-select.transparent-oi-select .select-search {\\r\\n background-color: transparent;\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\noi-select.transparent-oi-select:hover .select-search {\\r\\n background-color: white;\\r\\n border-color: white;\\r\\n}\\r\\n\\r\\noi-select.transparent-oi-select .select-dropdown-optgroup-option {\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\noi-select.transparent-oi-select .select-search-list-item_input input {\\r\\n max-width: 30px;\\r\\n background-color: transparent;\\r\\n}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/oi-select-custom-changes.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,yBAAyB;AAC7B;;AAEA;IACI,yBAAyB;AAC7B;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;IACf,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,yBAAyB;IACzB,kBAAkB;AACtB;;AAEA;IACI,YAAY;AAChB;;AAEA;IACI,yBAAyB;IACzB,cAAc;IACd,eAAe;AACnB;;AAEA;IACI,iBAAiB;IACjB,gBAAgB;AACpB;;AAEA;IACI,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,qBAAqB;IACrB,QAAQ;IACR,gBAAgB;AACpB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,gCAAgC;IAChC,gBAAgB;AACpB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,eAAe;IACf,eAAe;AACnB;AACA,mDAAmD;AACnD;IACI,eAAe;AACnB;AACA,yBAAyB;AACzB;IACI,eAAe;IACf,yBAAyB;AAC7B;;AAEA;IACI,6BAA6B;IAC7B,yBAAyB;AAC7B;;AAEA;IACI,uBAAuB;IACvB,mBAAmB;AACvB;;AAEA;IACI,eAAe;AACnB;;AAEA;IACI,eAAe;IACf,6BAA6B;AACjC\",\"sourcesContent\":[\"oi-select {\\r\\n color: #121321 !important;\\r\\n}\\r\\n\\r\\noi-select .btn {\\r\\n color: #121321 !important;\\r\\n}\\r\\n\\r\\noi-select .select-search-list-item {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\noi-select .select-dropdown {\\r\\n font-size: 12px;\\r\\n max-height: 300px;\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\noi-select .select-search {\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\noi-select .select-dropdown-optgroup-option {\\r\\n padding: 3px;\\r\\n}\\r\\n\\r\\noi-select .select-dropdown-optgroup-option.active:not(.disabled) {\\r\\n background-color: #f5f5f5;\\r\\n color: #121321;\\r\\n cursor: default;\\r\\n}\\r\\n\\r\\noi-select .select-search-list {\\r\\n max-height: 150px;\\r\\n overflow-y: auto;\\r\\n}\\r\\n\\r\\noi-select .select-search-list-item_selection {\\r\\n padding-top: 5px;\\r\\n cursor: pointer;\\r\\n border-radius: 8px;\\r\\n background: #EEEFF2;\\r\\n border-width: 1px;\\r\\n border-color: #C2C4CC;\\r\\n gap: 4px;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\noi-select .select-search-list-item_selection:active {\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\noi-select .select-search-list-item_selection.focused {\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\noi-select.open .select-search {\\r\\n border-radius: 0;\\r\\n}\\r\\n\\r\\noi-select.focused .select-search {\\r\\n border-color: #66afe9 !important;\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\n.select-search-list-item_input {\\r\\n line-height: 25px;\\r\\n}\\r\\n\\r\\n.close.select-search-list-item_selection-remove {\\r\\n font-size: 18px;\\r\\n stroke: #121321;\\r\\n}\\r\\n/* removes large input when something is selected */\\r\\noi-select.ng-not-empty .select-search-list-item_input input {\\r\\n max-width: 30px;\\r\\n}\\r\\n/* transparent dropdown */\\r\\noi-select.transparent-oi-select:not(.multiple) .select-search-list-item_selection {\\r\\n font-size: 16px;\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\noi-select.transparent-oi-select .select-search {\\r\\n background-color: transparent;\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\noi-select.transparent-oi-select:hover .select-search {\\r\\n background-color: white;\\r\\n border-color: white;\\r\\n}\\r\\n\\r\\noi-select.transparent-oi-select .select-dropdown-optgroup-option {\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\noi-select.transparent-oi-select .select-search-list-item_input input {\\r\\n max-width: 30px;\\r\\n background-color: transparent;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\r\\n/*Slider CSS*/\\r\\n.contentrow {\\r\\n min-height: 50px;\\r\\n -webkit-box-flex: 1;\\r\\n -webkit-flex: 1;\\r\\n -ms-flex: 1;\\r\\n flex: 1;\\r\\n display: -webkit-box;\\r\\n display: -webkit-flex;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-flex-flow: row nowrap;\\r\\n -ms-flex-flow: row nowrap;\\r\\n flex-flow: row nowrap;\\r\\n -webkit-justify-content: space-around;\\r\\n -ms-flex-pack: distribute;\\r\\n justify-content: space-around;\\r\\n -webkit-align-content: space-around;\\r\\n -ms-flex-line-pack: distribute;\\r\\n align-content: space-around;\\r\\n}\\r\\n\\r\\n.row.resizable {\\r\\n -webkit-box-flex: 0;\\r\\n -webkit-flex: 0 0 300px;\\r\\n -ms-flex: 0 0 300px;\\r\\n flex: 0 0 300px;\\r\\n}\\r\\n\\r\\nsection {\\r\\n box-sizing: border-box;\\r\\n border-radius: 0px;\\r\\n padding: .0em .0em;\\r\\n -webkit-box-flex: 1;\\r\\n -webkit-flex: 1;\\r\\n -ms-flex: 1;\\r\\n flex: 1;\\r\\n min-width: 30px;\\r\\n}\\r\\n\\r\\n section.resizable {\\r\\n border-left: 15px solid #fff;\\r\\n -webkit-box-flex: 0;\\r\\n -webkit-flex: 0 0 20%;\\r\\n -ms-flex: 0 0 20%;\\r\\n flex: 0 0 20%;\\r\\n }\\r\\n\\r\\n.resizable {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n .resizable.no-transition {\\r\\n -webkit-transition: none !important;\\r\\n transition: none !important;\\r\\n }\\r\\n\\r\\n.rg-right, .rg-left, .rg-top, .rg-bottom {\\r\\n display: block;\\r\\n width: 14px;\\r\\n height: 14px;\\r\\n line-height: 14px;\\r\\n position: absolute;\\r\\n z-index: 1;\\r\\n -moz-user-select: -moz-none;\\r\\n -ms-user-select: none;\\r\\n -webkit-user-select: none;\\r\\n user-select: none;\\r\\n}\\r\\n\\r\\n .rg-right span, .rg-left span, .rg-top span, .rg-bottom span {\\r\\n position: absolute;\\r\\n box-sizing: border-box;\\r\\n display: block;\\r\\n border: 1px solid #ccc;\\r\\n }\\r\\n\\r\\n .rg-right span, .rg-left span {\\r\\n border-width: 0 1px;\\r\\n top: 50%;\\r\\n margin-top: -10px;\\r\\n margin: -10px 0 0 3.5px;\\r\\n height: 20px;\\r\\n width: 7px;\\r\\n }\\r\\n\\r\\n .rg-top span, .rg-bottom span {\\r\\n border-width: 1px 0;\\r\\n left: 50%;\\r\\n margin: 2px 0 0 -10px;\\r\\n width: 20px;\\r\\n height: 7px;\\r\\n }\\r\\n\\r\\n.rg-top {\\r\\n cursor: row-resize;\\r\\n width: 100%;\\r\\n top: 0;\\r\\n left: 0;\\r\\n margin-top: -7px;\\r\\n}\\r\\n\\r\\n.rg-right {\\r\\n cursor: col-resize;\\r\\n height: 100%;\\r\\n right: 0;\\r\\n top: 0;\\r\\n margin-right: -14px;\\r\\n}\\r\\n\\r\\n.rg-bottom {\\r\\n cursor: row-resize;\\r\\n width: 100%;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n margin-bottom: -7px;\\r\\n}\\r\\n\\r\\n.rg-left {\\r\\n cursor: col-resize;\\r\\n height: 100%;\\r\\n left: 0;\\r\\n top: 0;\\r\\n margin-left: -14px;\\r\\n border-left: 1px solid #dadada;\\r\\n border-right: 1px solid #dadada;\\r\\n}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/resizable.css\"],\"names\":[],\"mappings\":\";AACA,aAAa;AACb;IACI,gBAAgB;IAChB,mBAAmB;IACnB,eAAe;IACf,WAAW;IACX,OAAO;IACP,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,aAAa;IACb,6BAA6B;IAC7B,yBAAyB;IACzB,qBAAqB;IACrB,qCAAqC;IACrC,yBAAyB;IACzB,6BAA6B;IAC7B,mCAAmC;IACnC,8BAA8B;IAC9B,2BAA2B;AAC/B;;AAEA;IACI,mBAAmB;IACnB,uBAAuB;IACvB,mBAAmB;IACnB,eAAe;AACnB;;AAEA;IACI,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,eAAe;IACf,WAAW;IACX,OAAO;IACP,eAAe;AACnB;;IAEI;QACI,4BAA4B;QAC5B,mBAAmB;QACnB,qBAAqB;QACrB,iBAAiB;QACjB,aAAa;IACjB;;AAEJ;IACI,kBAAkB;AACtB;;IAEI;QACI,mCAAmC;QACnC,2BAA2B;IAC/B;;AAEJ;IACI,cAAc;IACd,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,UAAU;IACV,2BAA2B;IAC3B,qBAAqB;IACrB,yBAAyB;IACzB,iBAAiB;AACrB;;IAEI;QACI,kBAAkB;QAClB,sBAAsB;QACtB,cAAc;QACd,sBAAsB;IAC1B;;IAEA;QACI,mBAAmB;QACnB,QAAQ;QACR,iBAAiB;QACjB,uBAAuB;QACvB,YAAY;QACZ,UAAU;IACd;;IAEA;QACI,mBAAmB;QACnB,SAAS;QACT,qBAAqB;QACrB,WAAW;QACX,WAAW;IACf;;AAEJ;IACI,kBAAkB;IAClB,WAAW;IACX,MAAM;IACN,OAAO;IACP,gBAAgB;AACpB;;AAEA;IACI,kBAAkB;IAClB,YAAY;IACZ,QAAQ;IACR,MAAM;IACN,mBAAmB;AACvB;;AAEA;IACI,kBAAkB;IAClB,WAAW;IACX,SAAS;IACT,OAAO;IACP,mBAAmB;AACvB;;AAEA;IACI,kBAAkB;IAClB,YAAY;IACZ,OAAO;IACP,MAAM;IACN,kBAAkB;IAClB,8BAA8B;IAC9B,+BAA+B;AACnC\",\"sourcesContent\":[\"\\r\\n/*Slider CSS*/\\r\\n.contentrow {\\r\\n min-height: 50px;\\r\\n -webkit-box-flex: 1;\\r\\n -webkit-flex: 1;\\r\\n -ms-flex: 1;\\r\\n flex: 1;\\r\\n display: -webkit-box;\\r\\n display: -webkit-flex;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-flex-flow: row nowrap;\\r\\n -ms-flex-flow: row nowrap;\\r\\n flex-flow: row nowrap;\\r\\n -webkit-justify-content: space-around;\\r\\n -ms-flex-pack: distribute;\\r\\n justify-content: space-around;\\r\\n -webkit-align-content: space-around;\\r\\n -ms-flex-line-pack: distribute;\\r\\n align-content: space-around;\\r\\n}\\r\\n\\r\\n.row.resizable {\\r\\n -webkit-box-flex: 0;\\r\\n -webkit-flex: 0 0 300px;\\r\\n -ms-flex: 0 0 300px;\\r\\n flex: 0 0 300px;\\r\\n}\\r\\n\\r\\nsection {\\r\\n box-sizing: border-box;\\r\\n border-radius: 0px;\\r\\n padding: .0em .0em;\\r\\n -webkit-box-flex: 1;\\r\\n -webkit-flex: 1;\\r\\n -ms-flex: 1;\\r\\n flex: 1;\\r\\n min-width: 30px;\\r\\n}\\r\\n\\r\\n section.resizable {\\r\\n border-left: 15px solid #fff;\\r\\n -webkit-box-flex: 0;\\r\\n -webkit-flex: 0 0 20%;\\r\\n -ms-flex: 0 0 20%;\\r\\n flex: 0 0 20%;\\r\\n }\\r\\n\\r\\n.resizable {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n .resizable.no-transition {\\r\\n -webkit-transition: none !important;\\r\\n transition: none !important;\\r\\n }\\r\\n\\r\\n.rg-right, .rg-left, .rg-top, .rg-bottom {\\r\\n display: block;\\r\\n width: 14px;\\r\\n height: 14px;\\r\\n line-height: 14px;\\r\\n position: absolute;\\r\\n z-index: 1;\\r\\n -moz-user-select: -moz-none;\\r\\n -ms-user-select: none;\\r\\n -webkit-user-select: none;\\r\\n user-select: none;\\r\\n}\\r\\n\\r\\n .rg-right span, .rg-left span, .rg-top span, .rg-bottom span {\\r\\n position: absolute;\\r\\n box-sizing: border-box;\\r\\n display: block;\\r\\n border: 1px solid #ccc;\\r\\n }\\r\\n\\r\\n .rg-right span, .rg-left span {\\r\\n border-width: 0 1px;\\r\\n top: 50%;\\r\\n margin-top: -10px;\\r\\n margin: -10px 0 0 3.5px;\\r\\n height: 20px;\\r\\n width: 7px;\\r\\n }\\r\\n\\r\\n .rg-top span, .rg-bottom span {\\r\\n border-width: 1px 0;\\r\\n left: 50%;\\r\\n margin: 2px 0 0 -10px;\\r\\n width: 20px;\\r\\n height: 7px;\\r\\n }\\r\\n\\r\\n.rg-top {\\r\\n cursor: row-resize;\\r\\n width: 100%;\\r\\n top: 0;\\r\\n left: 0;\\r\\n margin-top: -7px;\\r\\n}\\r\\n\\r\\n.rg-right {\\r\\n cursor: col-resize;\\r\\n height: 100%;\\r\\n right: 0;\\r\\n top: 0;\\r\\n margin-right: -14px;\\r\\n}\\r\\n\\r\\n.rg-bottom {\\r\\n cursor: row-resize;\\r\\n width: 100%;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n margin-bottom: -7px;\\r\\n}\\r\\n\\r\\n.rg-left {\\r\\n cursor: col-resize;\\r\\n height: 100%;\\r\\n left: 0;\\r\\n top: 0;\\r\\n margin-left: -14px;\\r\\n border-left: 1px solid #dadada;\\r\\n border-right: 1px solid #dadada;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".switch input {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.switch i {\\r\\n display: inline-block;\\r\\n cursor: pointer;\\r\\n padding-right: 20px;\\r\\n transition: all ease 0.2s;\\r\\n -webkit-transition: all ease 0.2s;\\r\\n border-radius: 20px;\\r\\n box-shadow: inset 0 0 1px rgba(0,0,1,.5);\\r\\n background: #F1F1F1;\\r\\n}\\r\\n\\r\\n.switch i:before {\\r\\n display: block;\\r\\n content: '';\\r\\n width: 20px;\\r\\n height: 20px;\\r\\n border-radius: 20px;\\r\\n background: white;\\r\\n box-shadow: 0 1px 2px rgba(0,0,0,.5);\\r\\n}\\r\\n\\r\\n.switch :checked + i {\\r\\n padding-right: 0;\\r\\n padding-left: 20px;\\r\\n box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px #291972;\\r\\n -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px #291972;\\r\\n}\\r\\n\\r\\n.switch :disabled + i {\\r\\n opacity: .4;\\r\\n cursor:not-allowed;\\r\\n}\\r\\n\\r\\n.switch.redSwitch :checked + i {\\r\\n box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px red;\\r\\n -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px red;\\r\\n}\\r\\n\\r\\n.switch.yellowSwitch :checked + i {\\r\\n box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px #ffd800;\\r\\n -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px #ffd800;\\r\\n}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/switchery.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,aAAa;AACjB;;AAEA;IACI,qBAAqB;IACrB,eAAe;IACf,mBAAmB;IACnB,yBAAyB;IACzB,iCAAiC;IACjC,mBAAmB;IACnB,wCAAwC;IACxC,mBAAmB;AACvB;;AAEA;IACI,cAAc;IACd,WAAW;IACX,WAAW;IACX,YAAY;IACZ,mBAAmB;IACnB,iBAAiB;IACjB,oCAAoC;AACxC;;AAEA;IACI,gBAAgB;IAChB,kBAAkB;IAClB,gEAAgE;IAChE,wEAAwE;AAC5E;;AAEA;IACI,WAAW;IACX,kBAAkB;AACtB;;AAEA;IACI,4DAA4D;IAC5D,oEAAoE;AACxE;;AAEA;IACI,gEAAgE;IAChE,wEAAwE;AAC5E\",\"sourcesContent\":[\".switch input {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.switch i {\\r\\n display: inline-block;\\r\\n cursor: pointer;\\r\\n padding-right: 20px;\\r\\n transition: all ease 0.2s;\\r\\n -webkit-transition: all ease 0.2s;\\r\\n border-radius: 20px;\\r\\n box-shadow: inset 0 0 1px rgba(0,0,1,.5);\\r\\n background: #F1F1F1;\\r\\n}\\r\\n\\r\\n.switch i:before {\\r\\n display: block;\\r\\n content: '';\\r\\n width: 20px;\\r\\n height: 20px;\\r\\n border-radius: 20px;\\r\\n background: white;\\r\\n box-shadow: 0 1px 2px rgba(0,0,0,.5);\\r\\n}\\r\\n\\r\\n.switch :checked + i {\\r\\n padding-right: 0;\\r\\n padding-left: 20px;\\r\\n box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px #291972;\\r\\n -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px #291972;\\r\\n}\\r\\n\\r\\n.switch :disabled + i {\\r\\n opacity: .4;\\r\\n cursor:not-allowed;\\r\\n}\\r\\n\\r\\n.switch.redSwitch :checked + i {\\r\\n box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px red;\\r\\n -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px red;\\r\\n}\\r\\n\\r\\n.switch.yellowSwitch :checked + i {\\r\\n box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px #ffd800;\\r\\n -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.5), inset 0 0 40px #ffd800;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".toggle_radio {\\r\\n position: relative;\\r\\n background: rgba(255,255,255,.1);\\r\\n overflow: hidden;\\r\\n padding: 0 !important;\\r\\n -webkit-border-radius: 50px;\\r\\n -moz-border-radius: 50px;\\r\\n border-radius: 50px;\\r\\n position: relative;\\r\\n height: 26px;\\r\\n width: 212px;\\r\\n}\\r\\n\\r\\n .toggle_radio > * {\\r\\n float: left;\\r\\n }\\r\\n\\r\\n .toggle_radio input[type=radio] {\\r\\n display: none;\\r\\n /*position: fixed;*/\\r\\n }\\r\\n\\r\\n .toggle_radio label {\\r\\n color: rgba(255,255,255,.9);\\r\\n z-index: 0;\\r\\n font-weight: 600;\\r\\n display: block;\\r\\n width: 100px;\\r\\n height: 20px;\\r\\n margin: 4px 3px;\\r\\n -webkit-border-radius: 50px;\\r\\n -moz-border-radius: 50px;\\r\\n border-radius: 50px;\\r\\n cursor: pointer;\\r\\n z-index: 1;\\r\\n text-align: center;\\r\\n }\\r\\n\\r\\n.toggle_option_slider {\\r\\n\\r\\n width: 100px;\\r\\n height: 20px;\\r\\n position: absolute;\\r\\n top: 3px;\\r\\n -webkit-border-radius: 50px;\\r\\n -moz-border-radius: 50px;\\r\\n border-radius: 50px;\\r\\n -webkit-transition: all .4s ease;\\r\\n -moz-transition: all .4s ease;\\r\\n -o-transition: all .4s ease;\\r\\n -ms-transition: all .4s ease;\\r\\n transition: all .4s ease;\\r\\n}\\r\\n\\r\\n#first_toggle:checked ~ .toggle_option_slider {\\r\\n background: rgba(255,255,255,.3);\\r\\n left: 3px;\\r\\n}\\r\\n\\r\\n#second_toggle:checked ~ .toggle_option_slider {\\r\\n background: rgba(255,255,255,.3);\\r\\n left: 109px;\\r\\n}\\r\\n\\r\\n#third_toggle:checked ~ .toggle_option_slider {\\r\\n background: rgba(255,255,255,.3);\\r\\n left: 215px;\\r\\n}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./css/toggle-radio.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,kBAAkB;IAClB,gCAAgC;IAChC,gBAAgB;IAChB,qBAAqB;IACrB,2BAA2B;IAC3B,wBAAwB;IACxB,mBAAmB;IACnB,kBAAkB;IAClB,YAAY;IACZ,YAAY;AAChB;;IAEI;QACI,WAAW;IACf;;IAEA;QACI,aAAa;QACb,mBAAmB;IACvB;;IAEA;QACI,2BAA2B;QAC3B,UAAU;QACV,gBAAgB;QAChB,cAAc;QACd,YAAY;QACZ,YAAY;QACZ,eAAe;QACf,2BAA2B;QAC3B,wBAAwB;QACxB,mBAAmB;QACnB,eAAe;QACf,UAAU;QACV,kBAAkB;IACtB;;AAEJ;;IAEI,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,QAAQ;IACR,2BAA2B;IAC3B,wBAAwB;IACxB,mBAAmB;IACnB,gCAAgC;IAChC,6BAA6B;IAC7B,2BAA2B;IAC3B,4BAA4B;IAC5B,wBAAwB;AAC5B;;AAEA;IACI,gCAAgC;IAChC,SAAS;AACb;;AAEA;IACI,gCAAgC;IAChC,WAAW;AACf;;AAEA;IACI,gCAAgC;IAChC,WAAW;AACf\",\"sourcesContent\":[\".toggle_radio {\\r\\n position: relative;\\r\\n background: rgba(255,255,255,.1);\\r\\n overflow: hidden;\\r\\n padding: 0 !important;\\r\\n -webkit-border-radius: 50px;\\r\\n -moz-border-radius: 50px;\\r\\n border-radius: 50px;\\r\\n position: relative;\\r\\n height: 26px;\\r\\n width: 212px;\\r\\n}\\r\\n\\r\\n .toggle_radio > * {\\r\\n float: left;\\r\\n }\\r\\n\\r\\n .toggle_radio input[type=radio] {\\r\\n display: none;\\r\\n /*position: fixed;*/\\r\\n }\\r\\n\\r\\n .toggle_radio label {\\r\\n color: rgba(255,255,255,.9);\\r\\n z-index: 0;\\r\\n font-weight: 600;\\r\\n display: block;\\r\\n width: 100px;\\r\\n height: 20px;\\r\\n margin: 4px 3px;\\r\\n -webkit-border-radius: 50px;\\r\\n -moz-border-radius: 50px;\\r\\n border-radius: 50px;\\r\\n cursor: pointer;\\r\\n z-index: 1;\\r\\n text-align: center;\\r\\n }\\r\\n\\r\\n.toggle_option_slider {\\r\\n\\r\\n width: 100px;\\r\\n height: 20px;\\r\\n position: absolute;\\r\\n top: 3px;\\r\\n -webkit-border-radius: 50px;\\r\\n -moz-border-radius: 50px;\\r\\n border-radius: 50px;\\r\\n -webkit-transition: all .4s ease;\\r\\n -moz-transition: all .4s ease;\\r\\n -o-transition: all .4s ease;\\r\\n -ms-transition: all .4s ease;\\r\\n transition: all .4s ease;\\r\\n}\\r\\n\\r\\n#first_toggle:checked ~ .toggle_option_slider {\\r\\n background: rgba(255,255,255,.3);\\r\\n left: 3px;\\r\\n}\\r\\n\\r\\n#second_toggle:checked ~ .toggle_option_slider {\\r\\n background: rgba(255,255,255,.3);\\r\\n left: 109px;\\r\\n}\\r\\n\\r\\n#third_toggle:checked ~ .toggle_option_slider {\\r\\n background: rgba(255,255,255,.3);\\r\\n left: 215px;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../node_modules/css-loader/dist/cjs.js!./animate.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_1___ from \"-!../node_modules/css-loader/dist/cjs.js!../node_modules/@progress/kendo-ui/css/web/kendo.common-bootstrap.min.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_2___ from \"-!../node_modules/css-loader/dist/cjs.js!../node_modules/@progress/kendo-ui/css/web/kendo.bootstrap.min.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_3___ from \"-!../node_modules/css-loader/dist/cjs.js!../node_modules/bootstrap/dist/css/bootstrap.min.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_4___ from \"-!../node_modules/css-loader/dist/cjs.js!../node_modules/oi.select/dist/select.min.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_5___ from \"-!../node_modules/css-loader/dist/cjs.js!./oi-select-custom-changes.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_6___ from \"-!../node_modules/css-loader/dist/cjs.js!../node_modules/sweetalert2/dist/sweetalert2.min.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_7___ from \"-!../node_modules/css-loader/dist/cjs.js!./switchery.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_8___ from \"-!../node_modules/css-loader/dist/cjs.js!../node_modules/v-accordion/dist/v-accordion.min.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_9___ from \"-!../node_modules/css-loader/dist/cjs.js!./angular-list-view.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_10___ from \"-!../node_modules/css-loader/dist/cjs.js!./customSubHeadingNavigation.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_11___ from \"-!../node_modules/css-loader/dist/cjs.js!./resizable.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_12___ from \"-!../node_modules/css-loader/dist/cjs.js!./dynamicTabsDark.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_13___ from \"-!../node_modules/css-loader/dist/cjs.js!./toggle-radio.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_14___ from \"-!../node_modules/css-loader/dist/cjs.js!./angular-wizard.min.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_15___ from \"-!../node_modules/css-loader/dist/cjs.js!./icons8/css/styles.min.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_16___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Shared/Components/roleMultiselectDropdown/roleMultiselectDropdown.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_17___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Components/Notifications/notifications.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_18___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Components/Users/usersView.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_19___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Components/DataChanges/ServiceNow/ServiceNowTicketModal.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_20___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Components/AXSecurityDesigner/AXSecurityDesigner.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_21___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Components/ApprovalRules/approvalRules.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_22___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Components/RequestManagement/WizardSteps/Universal/linkTickets/ServiceNow/IMRequestServiceNowTicketModal.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_23___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Components/NetSuiteArmQuantification/NetSuiteArmQuantification.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_24___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Components/DataChangesOracleCloud/oracleCloudDataChanges.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_25___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Components/RequestManagement/AX7Person/ax7PersonSearch.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_26___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Components/RequestManagement/WizardSteps/Universal/summary.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_27___ from \"-!../node_modules/css-loader/dist/cjs.js!../App/Components/RequestManagement/WizardSteps/Universal/effectiveDates.css\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"./patterns/header-profile.png\";\nimport ___CSS_LOADER_URL_IMPORT_1___ from \"./patterns/shattered.png\";\nimport ___CSS_LOADER_URL_IMPORT_2___ from \"./patterns/header-profile-skin-1.png\";\nimport ___CSS_LOADER_URL_IMPORT_3___ from \"./patterns/header-profile-skin-3.png\";\nimport ___CSS_LOADER_URL_IMPORT_4___ from \"./patterns/header-profile-skin-2.png\";\nimport ___CSS_LOADER_URL_IMPORT_5___ from \"../Content/Images/SVG/icons8-Info Squared.svg\";\nimport ___CSS_LOADER_URL_IMPORT_6___ from \"../Content/Images/SVG/icons8-WarningRed.svg\";\nimport ___CSS_LOADER_URL_IMPORT_7___ from \"../Content/Images/SVG/icons8-Ok.svg\";\nimport ___CSS_LOADER_URL_IMPORT_8___ from \"../Content/Images/SVG/icons8-Warning.svg\";\nimport ___CSS_LOADER_URL_IMPORT_9___ from \"../node_modules/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0\";\nimport ___CSS_LOADER_URL_IMPORT_10___ from \"../node_modules/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\";\nimport ___CSS_LOADER_URL_IMPORT_11___ from \"../node_modules/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0\";\nimport ___CSS_LOADER_URL_IMPORT_12___ from \"../node_modules/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0\";\nimport ___CSS_LOADER_URL_IMPORT_13___ from \"../node_modules/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0\";\nimport ___CSS_LOADER_URL_IMPORT_14___ from \"../node_modules/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\";\nimport ___CSS_LOADER_URL_IMPORT_15___ from \"../Content/Images/SVG/16Spinner.svg\";\nimport ___CSS_LOADER_URL_IMPORT_16___ from \"./plugins/kendo/Bootstrap/loading-image-spinner.gif\";\nimport ___CSS_LOADER_URL_IMPORT_17___ from \"../Content/Images/SVG/SecurityDesignerCircleOnlyIcon.svg\";\nimport ___CSS_LOADER_URL_IMPORT_18___ from \"../Content/Images/SVG/SecurityDesignerRiskAnalysisResults.svg\";\nimport ___CSS_LOADER_URL_IMPORT_19___ from \"../Content/Images/SVG/icons8-Submit Progress.svg\";\nimport ___CSS_LOADER_URL_IMPORT_20___ from \"../Content/Images/SVG/DefaultMit.svg\";\nimport ___CSS_LOADER_URL_IMPORT_21___ from \"../Content/Images/SVG/ConnectionsWhite.svg\";\nimport ___CSS_LOADER_URL_IMPORT_22___ from \"../Content/Images/SVG/ConnectionsPurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_23___ from \"../Content/Images/SVG/Change ThemeWhite.svg\";\nimport ___CSS_LOADER_URL_IMPORT_24___ from \"../Content/Images/SVG/Change ThemePurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_25___ from \"../Content/Images/SVG/AccessRiskMonitorWhite.svg\";\nimport ___CSS_LOADER_URL_IMPORT_26___ from \"../Content/Images/SVG/AccessRiskMonitorPurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_27___ from \"../Content/Images/SVG/certificationsWhite.svg\";\nimport ___CSS_LOADER_URL_IMPORT_28___ from \"../Content/Images/SVG/certificationsPurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_29___ from \"../Content/Images/SVG/SettingsWhite.svg\";\nimport ___CSS_LOADER_URL_IMPORT_30___ from \"../Content/Images/SVG/SettingsPurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_31___ from \"../Content/Images/SVG/SecuritySetupWhite.svg\";\nimport ___CSS_LOADER_URL_IMPORT_32___ from \"../Content/Images/SVG/SecuritySetupPurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_33___ from \"../Content/Images/SVG/CalendarWhite.svg\";\nimport ___CSS_LOADER_URL_IMPORT_34___ from \"../Content/Images/SVG/CalendarPurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_35___ from \"../Content/Images/SVG/DataTransferPurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_36___ from \"../Content/Images/SVG/SecurityDesignerIconWhite.svg\";\nimport ___CSS_LOADER_URL_IMPORT_37___ from \"../Content/Images/SVG/SecurityDesignerIconPurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_38___ from \"../Content/Images/SVG/Electronic Identity CardWhite.svg\";\nimport ___CSS_LOADER_URL_IMPORT_39___ from \"../Content/Images/SVG/Electronic Identity CardPurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_40___ from \"../Content/Images/SVG/icons8-surveyWhite.svg\";\nimport ___CSS_LOADER_URL_IMPORT_41___ from \"../Content/Images/SVG/icons8-surveyPurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_42___ from \"../Content/Images/SVG/x-circle-12.svg\";\nimport ___CSS_LOADER_URL_IMPORT_43___ from \"../Content/Images/SVG/UploadPurple.svg\";\nimport ___CSS_LOADER_URL_IMPORT_44___ from \"../Content/Images/SVG/PurgeDataChanges.svg\";\nimport ___CSS_LOADER_URL_IMPORT_45___ from \"../Content/Images/SVG/CollectDataChanges.svg\";\nimport ___CSS_LOADER_URL_IMPORT_46___ from \"../Content/Images/SVG/ArchiveDataCanges.svg\";\nimport ___CSS_LOADER_URL_IMPORT_47___ from \"../Content/Images/SVG/RestoreDataChanges.svg\";\nimport ___CSS_LOADER_URL_IMPORT_48___ from \"../Content/Images/SVG/CollectSnapshot.svg\";\nimport ___CSS_LOADER_URL_IMPORT_49___ from \"../Content/Images/SVG/Application Shield.svg\";\nimport ___CSS_LOADER_URL_IMPORT_50___ from \"../Content/Images/SVG/XML.svg\";\nimport ___CSS_LOADER_URL_IMPORT_51___ from \"../Content/Images/SVG/securityDesigner/icons8-info.svg\";\nimport ___CSS_LOADER_URL_IMPORT_52___ from \"../Content/Images/SVG/securityDesigner/icons8-info-fade.svg\";\nimport ___CSS_LOADER_URL_IMPORT_53___ from \"../Content/Images/ApplicationLogos/IMTiles/NetSuiteIMTile.svg\";\nimport ___CSS_LOADER_URL_IMPORT_54___ from \"../Content/Images/ApplicationLogos/IMTiles/Dynamics365IMTile.svg\";\nimport ___CSS_LOADER_URL_IMPORT_55___ from \"../Content/Images/ApplicationLogos/IMTiles/SAPIMTile.svg\";\nimport ___CSS_LOADER_URL_IMPORT_56___ from \"../Content/Images/ApplicationLogos/IMTiles/OracleIMTile.svg\";\nimport ___CSS_LOADER_URL_IMPORT_57___ from \"../Content/Images/ApplicationLogos/IMTiles/DynamicsGPIMTile.svg\";\nimport ___CSS_LOADER_URL_IMPORT_58___ from \"../Content/Images/ApplicationLogos/IMTiles/DynamicsAXIMTile.svg\";\nimport ___CSS_LOADER_URL_IMPORT_59___ from \"../Content/Images/ApplicationLogos/IMTiles/DynamicsNAVIMTile.svg\";\nimport ___CSS_LOADER_URL_IMPORT_60___ from \"../Content/Images/ApplicationLogos/IMTiles/Dynamics365CustomerEngagementIMTile.svg\";\nimport ___CSS_LOADER_URL_IMPORT_61___ from \"../Content/Images/ApplicationLogos/IMTiles/OracleCloudIMTile.svg\";\nimport ___CSS_LOADER_URL_IMPORT_62___ from \"../Content/Images/ApplicationLogos/AzureActiveDirectory.svg\";\nimport ___CSS_LOADER_URL_IMPORT_63___ from \"../Content/Images/ApplicationLogos/IMTiles/UniversalProduct.svg\";\nimport ___CSS_LOADER_URL_IMPORT_64___ from \"../Content/Images/ApplicationLogos/IMTiles/PeopleSoftIMTile.svg\";\nimport ___CSS_LOADER_URL_IMPORT_65___ from \"../Content/Images/ApplicationLogos/SalesforceLogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_66___ from \"../Content/Images/ApplicationLogos/IntacctLogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_67___ from \"../Content/Images/SVG/fp-circle-success.svg\";\nimport ___CSS_LOADER_URL_IMPORT_68___ from \"../Content/Images/SVG/fp-circle-inactive.svg\";\nimport ___CSS_LOADER_URL_IMPORT_69___ from \"../Content/Images/FileTypeIcons/xlsx_64.png\";\nimport ___CSS_LOADER_URL_IMPORT_70___ from \"../Content/Images/FileTypeIcons/pdf_64.png\";\nimport ___CSS_LOADER_URL_IMPORT_71___ from \"../Content/Images/FileTypeIcons/docx_64.png\";\nimport ___CSS_LOADER_URL_IMPORT_72___ from \"../Content/Images/FileTypeIcons/xlsx_16.png\";\nimport ___CSS_LOADER_URL_IMPORT_73___ from \"../Content/Images/FileTypeIcons/pdf_16.png\";\nimport ___CSS_LOADER_URL_IMPORT_74___ from \"../Content/Images/FileTypeIcons/csv-16.png\";\nimport ___CSS_LOADER_URL_IMPORT_75___ from \"../Content/Images/FileTypeIcons/default-16.png\";\nimport ___CSS_LOADER_URL_IMPORT_76___ from \"../Content/Images/FileTypeIcons/default-64.png\";\nimport ___CSS_LOADER_URL_IMPORT_77___ from \"../Content/Images/FileTypeIcons/docx_16.png\";\nimport ___CSS_LOADER_URL_IMPORT_78___ from \"../Content/Images/FileTypeIcons/xlsx_32.png\";\nimport ___CSS_LOADER_URL_IMPORT_79___ from \"../Content/Images/FileTypeIcons/pdf_32.png\";\nimport ___CSS_LOADER_URL_IMPORT_80___ from \"../Content/Images/FileTypeIcons/csv-64.png\";\nimport ___CSS_LOADER_URL_IMPORT_81___ from \"../Content/Images/FileTypeIcons/docx_32.png\";\nimport ___CSS_LOADER_URL_IMPORT_82___ from \"../Content/Images/ApplicationLogos/AcumaticaSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_83___ from \"../Content/Images/ApplicationLogos/OracleLogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_84___ from \"../Content/Images/ApplicationLogos/OracleJDEdwardsSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_85___ from \"../Content/Images/ApplicationLogos/OracleCloudFinLogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_86___ from \"../Content/Images/ApplicationLogos/PeopleSoftSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_87___ from \"../Content/Images/ApplicationLogos/CoupaSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_88___ from \"../Content/Images/ApplicationLogos/Dynamics365SVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_89___ from \"../Content/Images/ApplicationLogos/Dynamics365SalesSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_90___ from \"../Content/Images/ApplicationLogos/DynamicsNav2019BusinessCentral.svg\";\nimport ___CSS_LOADER_URL_IMPORT_91___ from \"../Content/Images/ApplicationLogos/DynamicsGPSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_92___ from \"../Content/Images/ApplicationLogos/DynamicsAXSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_93___ from \"../Content/Images/ApplicationLogos/DynamicsSLSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_94___ from \"../Content/Images/ApplicationLogos/netsuite-oracle.svg\";\nimport ___CSS_LOADER_URL_IMPORT_95___ from \"../Content/Images/ApplicationLogos/SAPB1LogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_96___ from \"../Content/Images/ApplicationLogos/SAPLogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_97___ from \"../Content/Images/ApplicationLogos/DynamicsNAVSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_98___ from \"../Content/Images/ApplicationLogos/ZendeskLogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_99___ from \"../Content/Images/ApplicationLogos/JiraLogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_100___ from \"../Content/Images/ApplicationLogos/WorkdaySVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_101___ from \"../Content/Images/ApplicationLogos/WorkivaLogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_102___ from \"../Content/Images/ApplicationLogos/AzureSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_103___ from \"../Content/Images/ApplicationLogos/microsoftActiveDirectory.svg\";\nimport ___CSS_LOADER_URL_IMPORT_104___ from \"../Content/Images/ApplicationLogos/service-now.svg\";\nimport ___CSS_LOADER_URL_IMPORT_105___ from \"../Content/Images/ApplicationLogos/ZuoraLogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_106___ from \"../Content/Images/ApplicationLogos/ALA_Logo.svg\";\nimport ___CSS_LOADER_URL_IMPORT_107___ from \"../Content/Images/ApplicationLogos/AribaLogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_108___ from \"../Content/Images/ApplicationLogos/FreshserviceLogo.svg\";\nimport ___CSS_LOADER_URL_IMPORT_109___ from \"../Content/Images/ApplicationLogos/AuditBoardLogo.svg\";\nimport ___CSS_LOADER_URL_IMPORT_110___ from \"../Content/Images/ApplicationLogos/AzureDevOpsLogoSVG.svg\";\nimport ___CSS_LOADER_URL_IMPORT_111___ from \"../Content/Images/ApplicationLogos/SAPConcurLogo.svg\";\nimport ___CSS_LOADER_URL_IMPORT_112___ from \"../Content/Images/SVG/LinkClippedWithDropdown.svg\";\nimport ___CSS_LOADER_URL_IMPORT_113___ from \"../Content/Images/SVG/icons8-Sort Down.svg\";\nimport ___CSS_LOADER_URL_IMPORT_114___ from \"../Content/Images/ApplicationLogos/Microsoft_logo.png\";\nimport ___CSS_LOADER_URL_IMPORT_115___ from \"../Content/Images/SVG/fastpath-white-mono.svg\";\nimport ___CSS_LOADER_URL_IMPORT_116___ from \"../Content/Images/ApplicationLogos/SAML-logo.svg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_1___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_2___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_3___);\n___CSS_LOADER_EXPORT___.push([module.id, \"@import url(https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap);\"]);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_4___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_5___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_6___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_7___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_8___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_9___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_10___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_11___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_12___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_13___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_14___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_15___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_16___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_17___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_18___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_19___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_20___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_21___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_22___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_23___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_24___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_25___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_26___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_27___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___, { hash: \"?#iefix&v=4.7.0\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\nvar ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);\nvar ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___, { hash: \"#fontawesomeregular\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___);\nvar ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___);\nvar ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___);\nvar ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___);\nvar ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___);\nvar ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___);\nvar ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___);\nvar ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___);\nvar ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___);\nvar ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___);\nvar ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___);\nvar ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___);\nvar ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_27___);\nvar ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___);\nvar ___CSS_LOADER_URL_REPLACEMENT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_29___);\nvar ___CSS_LOADER_URL_REPLACEMENT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_30___);\nvar ___CSS_LOADER_URL_REPLACEMENT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_31___);\nvar ___CSS_LOADER_URL_REPLACEMENT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_32___);\nvar ___CSS_LOADER_URL_REPLACEMENT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_33___);\nvar ___CSS_LOADER_URL_REPLACEMENT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_34___);\nvar ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_35___);\nvar ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_36___);\nvar ___CSS_LOADER_URL_REPLACEMENT_37___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___);\nvar ___CSS_LOADER_URL_REPLACEMENT_38___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___);\nvar ___CSS_LOADER_URL_REPLACEMENT_39___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_39___);\nvar ___CSS_LOADER_URL_REPLACEMENT_40___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_40___);\nvar ___CSS_LOADER_URL_REPLACEMENT_41___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_41___);\nvar ___CSS_LOADER_URL_REPLACEMENT_42___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_42___);\nvar ___CSS_LOADER_URL_REPLACEMENT_43___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_43___);\nvar ___CSS_LOADER_URL_REPLACEMENT_44___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_44___);\nvar ___CSS_LOADER_URL_REPLACEMENT_45___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_45___);\nvar ___CSS_LOADER_URL_REPLACEMENT_46___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_46___);\nvar ___CSS_LOADER_URL_REPLACEMENT_47___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_47___);\nvar ___CSS_LOADER_URL_REPLACEMENT_48___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_48___);\nvar ___CSS_LOADER_URL_REPLACEMENT_49___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_49___);\nvar ___CSS_LOADER_URL_REPLACEMENT_50___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_50___);\nvar ___CSS_LOADER_URL_REPLACEMENT_51___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_51___);\nvar ___CSS_LOADER_URL_REPLACEMENT_52___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_52___);\nvar ___CSS_LOADER_URL_REPLACEMENT_53___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_53___);\nvar ___CSS_LOADER_URL_REPLACEMENT_54___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_54___);\nvar ___CSS_LOADER_URL_REPLACEMENT_55___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_55___);\nvar ___CSS_LOADER_URL_REPLACEMENT_56___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_56___);\nvar ___CSS_LOADER_URL_REPLACEMENT_57___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_57___);\nvar ___CSS_LOADER_URL_REPLACEMENT_58___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_58___);\nvar ___CSS_LOADER_URL_REPLACEMENT_59___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_59___);\nvar ___CSS_LOADER_URL_REPLACEMENT_60___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_60___);\nvar ___CSS_LOADER_URL_REPLACEMENT_61___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_61___);\nvar ___CSS_LOADER_URL_REPLACEMENT_62___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_62___);\nvar ___CSS_LOADER_URL_REPLACEMENT_63___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_63___);\nvar ___CSS_LOADER_URL_REPLACEMENT_64___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_64___);\nvar ___CSS_LOADER_URL_REPLACEMENT_65___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_65___);\nvar ___CSS_LOADER_URL_REPLACEMENT_66___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_66___);\nvar ___CSS_LOADER_URL_REPLACEMENT_67___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_67___);\nvar ___CSS_LOADER_URL_REPLACEMENT_68___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_68___);\nvar ___CSS_LOADER_URL_REPLACEMENT_69___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_69___);\nvar ___CSS_LOADER_URL_REPLACEMENT_70___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_70___);\nvar ___CSS_LOADER_URL_REPLACEMENT_71___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_71___);\nvar ___CSS_LOADER_URL_REPLACEMENT_72___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_72___);\nvar ___CSS_LOADER_URL_REPLACEMENT_73___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_73___);\nvar ___CSS_LOADER_URL_REPLACEMENT_74___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_74___);\nvar ___CSS_LOADER_URL_REPLACEMENT_75___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_75___);\nvar ___CSS_LOADER_URL_REPLACEMENT_76___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_76___);\nvar ___CSS_LOADER_URL_REPLACEMENT_77___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_77___);\nvar ___CSS_LOADER_URL_REPLACEMENT_78___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_78___);\nvar ___CSS_LOADER_URL_REPLACEMENT_79___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_79___);\nvar ___CSS_LOADER_URL_REPLACEMENT_80___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_80___);\nvar ___CSS_LOADER_URL_REPLACEMENT_81___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_81___);\nvar ___CSS_LOADER_URL_REPLACEMENT_82___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_82___);\nvar ___CSS_LOADER_URL_REPLACEMENT_83___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_83___);\nvar ___CSS_LOADER_URL_REPLACEMENT_84___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_84___);\nvar ___CSS_LOADER_URL_REPLACEMENT_85___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_85___);\nvar ___CSS_LOADER_URL_REPLACEMENT_86___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_86___);\nvar ___CSS_LOADER_URL_REPLACEMENT_87___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_87___);\nvar ___CSS_LOADER_URL_REPLACEMENT_88___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_88___);\nvar ___CSS_LOADER_URL_REPLACEMENT_89___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_89___);\nvar ___CSS_LOADER_URL_REPLACEMENT_90___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_90___);\nvar ___CSS_LOADER_URL_REPLACEMENT_91___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_91___);\nvar ___CSS_LOADER_URL_REPLACEMENT_92___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_92___);\nvar ___CSS_LOADER_URL_REPLACEMENT_93___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_93___);\nvar ___CSS_LOADER_URL_REPLACEMENT_94___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_94___);\nvar ___CSS_LOADER_URL_REPLACEMENT_95___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_95___);\nvar ___CSS_LOADER_URL_REPLACEMENT_96___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_96___);\nvar ___CSS_LOADER_URL_REPLACEMENT_97___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_97___);\nvar ___CSS_LOADER_URL_REPLACEMENT_98___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_98___);\nvar ___CSS_LOADER_URL_REPLACEMENT_99___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_99___);\nvar ___CSS_LOADER_URL_REPLACEMENT_100___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_100___);\nvar ___CSS_LOADER_URL_REPLACEMENT_101___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_101___);\nvar ___CSS_LOADER_URL_REPLACEMENT_102___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_102___);\nvar ___CSS_LOADER_URL_REPLACEMENT_103___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_103___);\nvar ___CSS_LOADER_URL_REPLACEMENT_104___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_104___);\nvar ___CSS_LOADER_URL_REPLACEMENT_105___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_105___);\nvar ___CSS_LOADER_URL_REPLACEMENT_106___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_106___);\nvar ___CSS_LOADER_URL_REPLACEMENT_107___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_107___);\nvar ___CSS_LOADER_URL_REPLACEMENT_108___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_108___);\nvar ___CSS_LOADER_URL_REPLACEMENT_109___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_109___);\nvar ___CSS_LOADER_URL_REPLACEMENT_110___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_110___);\nvar ___CSS_LOADER_URL_REPLACEMENT_111___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_111___);\nvar ___CSS_LOADER_URL_REPLACEMENT_112___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_112___);\nvar ___CSS_LOADER_URL_REPLACEMENT_113___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_113___);\nvar ___CSS_LOADER_URL_REPLACEMENT_114___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_114___);\nvar ___CSS_LOADER_URL_REPLACEMENT_115___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_115___);\nvar ___CSS_LOADER_URL_REPLACEMENT_116___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_116___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"h1,h2,h3,h4,h5,h6{font-weight:100}h1{font-size:30px}h2{font-size:27px}h3{font-size:16px}h4{font-size:14px}h5{font-size:12px}h6{font-size:10px}h3,h4,h5{margin-top:5px;font-weight:600}.nav>li>a{color:#fff;font-weight:600;padding:14px 20px 14px 25px}.nav.navbar-right>li>a{color:#291972;background:#fff}.nav>li.active>a{background-color:rgb(51.6822429907,31.0093457944,126.9906542056);color:#00ff5a;border-color:rgba(0,0,0,0)}.navbar-default .nav>li>a:hover,.navbar-default .nav>li>a:focus{background-color:rgb(51.6822429907,31.0093457944,126.9906542056);color:#00ff5a;border-color:rgba(0,0,0,0)}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background:#fff;background-color:rgba(0,0,0,0)}.nav.navbar-top-links>li>a:hover,.nav.navbar-top-links>li>a:focus{background-color:rgba(0,0,0,0)}.nav>li>a i{margin-right:6px}.navbar{border:0}.navbar-default{background-color:rgba(0,0,0,0);border-color:#c1c1c1}.navbar-top-links li{display:inline-block}.navbar-top-links li:last-child{margin-right:40px}.navbar-top-links li a{padding:14px 3px;min-height:50px}.dropdown-menu{border:medium none;border-radius:3px;box-shadow:0 0 3px rgba(86,96,117,.7);display:none;float:left;font-size:12px;left:0;list-style:none outside none;padding:0;position:absolute;text-shadow:none;top:100%;z-index:1000}.dropdown-menu>li>a{border-radius:3px;color:inherit;line-height:25px;margin:4px;text-align:left;font-weight:normal}.dropdown-menu>li>a.font-bold{font-weight:600}.navbar-top-links .dropdown-menu li{display:block}.navbar-top-links .dropdown-menu li:last-child{margin-right:0}.navbar-top-links .dropdown-menu li a{padding:3px 20px;min-height:0}.navbar-top-links .dropdown-menu li a div{white-space:normal}.navbar-top-links .dropdown-messages,.navbar-top-links .dropdown-tasks,.navbar-top-links .dropdown-alerts{width:500px;min-width:0}.navbar-top-links .dropdown-messages{margin-left:5px}.navbar-top-links .dropdown-tasks{margin-left:-59px}.navbar-top-links .dropdown-alerts{margin-left:-123px}.navbar-top-links .dropdown-user{right:0;left:auto}.dropdown-messages,.dropdown-alerts{padding:10px 10px 10px 10px}.dropdown-messages li a,.dropdown-alerts li a{font-size:12px}.dropdown-messages li em,.dropdown-alerts li em{font-size:10px}.nav.navbar-top-links .dropdown-alerts a{font-size:12px}.nav-header{padding:5px 25px 33px 25px;background:image-url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") no-repeat}.nav-header .dropdown-menu{height:500px;overflow-y:scroll}.pace-done .nav-header{transition-duration:.5s}.nav>li.active{background:#242633;border-left:4px solid #00ff5a;color:#fff}.nav.nav-second-level>li.active{border:none;background:#242633;color:#fff}.nav.nav-second-level.collapse[style]{height:auto !important;color:#fff;background-color:#242633}.nav-header a{color:#dfe4ed}.nav-header .text-muted{color:#8095a8}.minimalize-styl-2{padding:4px 12px;margin:14px 5px 5px 20px;font-size:14px;float:left}.navbar-form-custom{float:left;height:50px;padding:0;width:200px;display:inline-table}.navbar-form-custom .form-group{margin-bottom:0}.nav.navbar-top-links a{font-size:14px}.navbar-form-custom .form-control{background:none repeat scroll 0 0 rgba(0,0,0,0);border:medium none;font-size:14px;height:60px;margin:0;z-index:1000;color:#121321}.count-info .label{line-height:12px;padding:2px 5px;position:absolute;right:6px;top:12px}.arrow{float:right}.mini-navbar .nav-second-level li>a>.arrow{display:inline-block !important}.fa.arrow:before{content:\\\"\\\"}.active>a>.fa.arrow:before{content:\\\"\\\"}.nav-third-level{overflow-y:scroll;max-height:185px}.nav-scroll{scrollbar-width:thin;scrollbar-color:#c2c4cc}.nav-scroll::-webkit-scrollbar{width:12px;border:1px solid #c2c4cc}.nav-scroll::-webkit-scrollbar-track{background:#c2c4cc}.nav-scroll::-webkit-scrollbar-thumb{background-color:#c2c4cc;border-radius:5px;border:1px solid #c2c4cc}.nav-second-level li,.nav-third-level li{border-bottom:none !important}.nav-second-level li a{color:#fff;background-color:#242633;padding:7px 10px 7px 10px;padding-left:52px;border-radius:4px}.nav-third-level li a{padding-left:62px}.nav-second-level li:last-child{margin-bottom:10px}.nav-third-level{overflow-y:scroll;max-height:165px}.nav-scroll{scrollbar-width:thin;scrollbar-color:#c2c4cc}.nav-scroll::-webkit-scrollbar{width:12px;border:1px solid #fff}.nav-scroll::-webkit-scrollbar-track{background:#c2c4cc}.nav-scroll::-webkit-scrollbar-thumb{background-color:#fff;border-radius:5px;border:3px solid #c2c4cc}body:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav li:hover>.nav-second-level,.mini-navbar .nav li:focus>.nav-second-level{display:block;border-radius:0 2px 2px 0;min-width:140px;height:auto}body.mini-navbar .navbar-default .nav>li>.nav-second-level li a{font-size:13px;border-radius:3px}.fixed-nav .slimScrollDiv #side-menu{padding-bottom:60px}.mini-navbar .nav-second-level li a{padding:10px 10px 10px 15px}.mini-navbar .nav-second-level{position:absolute;left:70px;top:0px;background-color:#242633;padding:10px 10px 10px 10px;font-size:13px}.canvas-menu.mini-navbar .nav-second-level{background:#242633}.mini-navbar li.active .nav-second-level{left:65px}.navbar-default .special_link a{background:#291972;color:#fff}.navbar-default .special_link a:hover{background:#17987e !important;color:#fff}.navbar-default .special_link a span.label{background:#fff;color:#291972}.navbar-default .landing_link a{background:rgb(45.5129496403,27.7517985612,126.5482014388);color:#fff}.navbar-default .landing_link a:hover{background:#291972 !important;color:#fff}.navbar-default .landing_link a span.label{background:#fff;color:rgb(45.5129496403,27.7517985612,126.5482014388)}.logo-element{text-align:center;font-size:18px;font-weight:600;color:#fff;display:none;padding:18px 0}.pace-done .navbar-static-side,.pace-done .nav-header,.pace-done li.active,.pace-done #page-wrapper,.pace-done .footer{-webkit-transition:all .5s;-moz-transition:all .5s;-o-transition:all .5s;transition:all .5s}.navbar-fixed-top{background:#fff;transition-duration:.5s;border-bottom:1px solid #c2c4cc !important;z-index:1030}.navbar-fixed-top,.navbar-static-top{background:#f3f3f4}.fixed-nav #wrapper{margin-top:0}body.fixed-nav #wrapper .navbar-static-side,body.fixed-nav #wrapper #page-wrapper{margin-top:60px}.fixed-nav .minimalize-styl-2{margin:14px 5px 5px 15px}.body-small .navbar-fixed-top{margin-left:0px}body.mini-navbar .navbar-static-side{width:70px}body.mini-navbar .profile-element,body.mini-navbar .nav-label,body.mini-navbar .navbar-default .nav li a span{display:none}body.canvas-menu .profile-element{display:block}body:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav-second-level{display:none}body.mini-navbar .navbar-default .nav>li>a{font-size:16px}body.mini-navbar .logo-element{display:block}body.canvas-menu .logo-element{display:none}body.mini-navbar .nav-header{padding:0;background-color:#291972}body.canvas-menu .nav-header{padding:33px 25px}body.mini-navbar #page-wrapper{margin:0 0 0 70px}body.fixed-sidebar.mini-navbar .footer,body.canvas-menu.mini-navbar .footer{margin:0 0 0 0 !important}body.canvas-menu.mini-navbar #page-wrapper,body.canvas-menu.mini-navbar .footer{margin:0 0 0 0}body.fixed-sidebar .navbar-static-side,body.canvas-menu .navbar-static-side{position:fixed;width:220px;z-index:1001;height:100%}body.fixed-sidebar.mini-navbar .navbar-static-side{width:0px}body.fixed-sidebar.mini-navbar #page-wrapper{margin:0 0 0 0px}body.body-small.fixed-sidebar.mini-navbar #page-wrapper{margin:0 0 0 220px}body.body-small.fixed-sidebar.mini-navbar .navbar-static-side{width:220px}.fixed-sidebar.mini-navbar .nav li:focus>.nav-second-level,.canvas-menu.mini-navbar .nav li:focus>.nav-second-level{display:block;height:auto}body.canvas-menu.mini-navbar .navbar-default .nav>li>.nav-second-level li a{font-size:13px;border-radius:3px}.fixed-sidebar.mini-navbar .nav-second-level li a,.canvas-menu.mini-navbar .nav-second-level li a{padding:10px 10px 10px 15px}.fixed-sidebar.mini-navbar .nav-second-level,.canvas-menu.mini-navbar .nav-second-level{position:relative;padding:0;font-size:13px}.fixed-sidebar.mini-navbar li.active .nav-second-level,.canvas-menu.mini-navbar li.active .nav-second-level{left:0px}body.fixed-sidebar.mini-navbar .navbar-default .nav>li>a,body.canvas-menu.mini-navbar .navbar-default .nav>li>a{font-size:13px}body.fixed-sidebar.mini-navbar .nav-label,body.fixed-sidebar.mini-navbar .navbar-default .nav li a span,body.canvas-menu.mini-navbar .nav-label,body.canvas-menu.mini-navbar .navbar-default .nav li a span{display:inline}body.canvas-menu.mini-navbar .navbar-default .nav li .profile-element a span{display:block}.canvas-menu.mini-navbar .nav-second-level li a,.fixed-sidebar.mini-navbar .nav-second-level li a{padding:7px 10px 7px 52px}.fixed-sidebar.mini-navbar .nav-second-level,.canvas-menu.mini-navbar .nav-second-level{left:0px}body.canvas-menu nav.navbar-static-side{z-index:1001;background:#231556;height:100%;position:fixed;display:none}body.canvas-menu.mini-navbar nav.navbar-static-side{display:block;width:220px}.top-navigation #page-wrapper{margin-left:0}.top-navigation .navbar-nav .dropdown-menu>.active>a{background:#fff;color:#291972;font-weight:bold}.white-bg .navbar-fixed-top,.white-bg .navbar-static-top{background:#fff}.top-navigation .navbar{margin-bottom:0}.top-navigation .nav>li>a{padding:15px 20px;color:#676a6c}.top-navigation .nav>li a:hover,.top-navigation .nav>li a:focus{background:#fff;color:#291972}.top-navigation .nav>li.active{background:#fff;border:none}.top-navigation .nav>li.active>a{color:#291972}.top-navigation .navbar-right{margin-right:10px}.top-navigation .navbar-nav .dropdown-menu{box-shadow:none;border:1px solid #c2c4cc}.top-navigation .dropdown-menu>li>a{margin:0;padding:7px 20px}.navbar .dropdown-menu{margin-top:0px}.top-navigation .navbar-brand{background:#291972;color:#fff;padding:15px 25px}.top-navigation .navbar-top-links li:last-child{margin-right:0}.top-navigation.mini-navbar #page-wrapper,.top-navigation.body-small.fixed-sidebar.mini-navbar #page-wrapper,.mini-navbar .top-navigation #page-wrapper,.body-small.fixed-sidebar.mini-navbar .top-navigation #page-wrapper,.canvas-menu #page-wrapper{margin:0}.top-navigation.fixed-nav #wrapper,.fixed-nav #wrapper.top-navigation{margin-top:50px}.top-navigation .footer.fixed{margin-left:0 !important}.top-navigation .wrapper.wrapper-content{padding:40px}.top-navigation.body-small .wrapper.wrapper-content,.body-small .top-navigation .wrapper.wrapper-content{padding:40px 0px 40px 0px}.navbar-toggle{background-color:#291972;color:#fff;padding:6px 12px;font-size:14px}.top-navigation .navbar-nav .open .dropdown-menu>li>a,.top-navigation .navbar-nav .open .dropdown-menu .dropdown-header{padding:10px 15px 10px 20px}@media(max-width: 768px){.top-navigation .navbar-header{display:block;float:none}}.menu-visible-lg,.menu-visible-md{display:none !important}@media(min-width: 1200px){.menu-visible-lg{display:block !important}}@media(min-width: 992px){.menu-visible-md{display:block !important}}@media(max-width: 767px){.menu-visible-md{display:block !important}.menu-visible-lg{display:block !important}}.btn{border-radius:20px}.float-e-margins .btn{margin-bottom:5px}.btn-w-m{min-width:120px}.btn-primary.btn-outline{color:#291972}.btn-success.btn-outline{color:#007138}.btn-info.btn-outline{color:#291972}.btn-warning.btn-outline{color:#ff8120}.btn-danger.btn-outline{color:#ba0003}.btn-primary.btn-outline:hover,.btn-success.btn-outline:hover,.btn-info.btn-outline:hover,.btn-warning.btn-outline:hover,.btn-danger.btn-outline:hover{color:#fff}.btn-primary{background-color:#291972;border-color:#291972;color:#fff}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary:active:focus,.btn-primary.active,.btn-primary.active:focus,.open .dropdown-toggle.btn-primary{background-color:#261769;border-color:#261769;color:#00ff5a}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled]:active,.btn-primary.active[disabled],fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{opacity:60%}.btn-success{background-color:#007138;border-color:#007138;color:#fff}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-color:rgb(0,97.7,48.417699115);border-color:rgb(0,97.7,48.417699115);color:#fff}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled]:active,.btn-success.active[disabled],fieldset[disabled] .btn-success,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success.active{background-color:rgb(0,133.4,66.1097345133);border-color:rgb(0,133.4,66.1097345133)}.btn-info{background-color:#291972;border-color:#291972;color:#fff}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-color:rgb(36.4870503597,22.2482014388,101.4517985612);border-color:rgb(36.4870503597,22.2482014388,101.4517985612);color:#fff}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled]:active,.btn-info.active[disabled],fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:rgb(255,221.1015873016,86.4);border-color:rgb(255,221.1015873016,86.4)}.btn-default{background-color:#291972;border-color:rgba(0,0,0,0);color:#fff}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-color:rgb(34.9827338129,21.3309352518,97.2690647482);color:#00ff5a}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default.active[disabled],fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:rgb(47.0172661871,28.6690647482,130.7309352518)}.btn-warning{background-color:#ff8120;border-color:#ff8120;color:#fff}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-color:rgb(255,120.3551569507,16.7);border-color:rgb(255,120.3551569507,16.7);color:#fff}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled]:active,.btn-warning.active[disabled],fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:rgb(255,140.5264573991,52.4);border-color:rgb(255,140.5264573991,52.4)}.btn-danger{background-color:#ba0003;border-color:rgba(0,0,0,0);color:#fff}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-color:rgb(165.6,0,2.6709677419);color:#ffd5d6}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled]:active,.btn-danger.active[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:rgb(206.4,0,3.3290322581);border-color:rgb(206.4,0,3.3290322581)}.btn-link{color:inherit}.btn-link:hover,.btn-link:focus,.btn-link:active,.btn-link.active,.open .dropdown-toggle.btn-link{color:#121321;text-decoration:none}.btn-link:active,.btn-link.active,.open .dropdown-toggle.btn-link{background-image:none}.btn-link.disabled,.btn-link.disabled:hover,.btn-link.disabled:focus,.btn-link.disabled:active,.btn-link.disabled.active,.btn-link[disabled],.btn-link[disabled]:hover,.btn-link[disabled]:focus,.btn-link[disabled]:active,.btn-link.active[disabled],fieldset[disabled] .btn-link,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:active,fieldset[disabled] .btn-link.active{color:#cacaca}.btn-white{color:inherit;background:#fff;border:1px solid #c2c4cc}.btn-white:hover,.btn-white:focus,.btn-white:active,.btn-white.active,.open .dropdown-toggle.btn-white{color:inherit;border:1px solid #d2d2d2}.btn-white:active,.btn-white.active{box-shadow:0 2px 5px rgba(0,0,0,.15) inset}.btn-white:active,.btn-white.active,.open .dropdown-toggle.btn-white{background-image:none}.btn-white.disabled,.btn-white.disabled:hover,.btn-white.disabled:focus,.btn-white.disabled:active,.btn-white.disabled.active,.btn-white[disabled],.btn-white[disabled]:hover,.btn-white[disabled]:focus,.btn-white[disabled]:active,.btn-white.active[disabled],fieldset[disabled] .btn-white,fieldset[disabled] .btn-white:hover,fieldset[disabled] .btn-white:focus,fieldset[disabled] .btn-white:active,fieldset[disabled] .btn-white.active{color:#cacaca}.form-control,.form-control:focus,.has-error .form-control:focus,.has-success .form-control:focus,.has-warning .form-control:focus,.navbar-collapse,.navbar-form,.navbar-form-custom .form-control:focus,.navbar-form-custom .form-control:hover,.open .btn.dropdown-toggle,.panel,.popover,.progress,.progress-bar{box-shadow:none}.btn-outline{color:inherit;background-color:rgba(0,0,0,0);transition:all .5s}.btn-rounded{border-radius:50px}.btn-large-dim{width:90px;height:90px;font-size:42px}button.dim{display:inline-block;color:#fff;text-decoration:none;text-transform:uppercase;text-align:center;padding-top:6px;margin-right:10px;position:relative;cursor:pointer;border-radius:5px;font-weight:600;margin-bottom:20px !important}button.dim:active{top:3px}button.btn-primary.dim{box-shadow:inset 0px 0px 0px rgb(31.9741007194,19.4964028777,88.9035971223),0px 5px 0px 0px rgb(31.9741007194,19.4964028777,88.9035971223),0px 10px 5px #999}button.btn-primary.dim:active{box-shadow:inset 0px 0px 0px rgb(31.9741007194,19.4964028777,88.9035971223),0px 2px 0px 0px rgb(31.9741007194,19.4964028777,88.9035971223),0px 5px 3px #999}button.btn-default.dim{box-shadow:inset 0px 0px 0px rgb(178.7,178.7,178.7),0px 5px 0px 0px rgb(178.7,178.7,178.7),0px 10px 5px #999}button.btn-default.dim:active{box-shadow:inset 0px 0px 0px rgb(178.7,178.7,178.7),0px 2px 0px 0px rgb(178.7,178.7,178.7),0px 5px 3px #999}button.btn-warning.dim{box-shadow:inset 0px 0px 0px rgb(255,111.7103139013,1.4),0px 5px 0px 0px rgb(255,111.7103139013,1.4),0px 10px 5px #999}button.btn-warning.dim:active{box-shadow:inset 0px 0px 0px rgb(255,111.7103139013,1.4),0px 2px 0px 0px rgb(255,111.7103139013,1.4),0px 5px 3px #999}button.btn-info.dim{box-shadow:inset 0px 0px 0px rgb(255,210.8476190476,35.4),0px 5px 0px 0px rgb(255,210.8476190476,35.4),0px 10px 5px #999}button.btn-info.dim:active{box-shadow:inset 0px 0px 0px rgb(255,210.8476190476,35.4),0px 2px 0px 0px rgb(255,210.8476190476,35.4),0px 5px 3px #999}button.btn-success.dim{box-shadow:inset 0px 0px 0px rgb(0,82.4,40.8353982301),0px 5px 0px 0px rgb(0,82.4,40.8353982301),0px 10px 5px #999}button.btn-success.dim:active{box-shadow:inset 0px 0px 0px rgb(0,82.4,40.8353982301),0px 2px 0px 0px rgb(0,82.4,40.8353982301),0px 5px 3px #999}button.btn-danger.dim{box-shadow:inset 0px 0px 0px rgb(155.4,0,2.5064516129),0px 5px 0px 0px rgb(155.4,0,2.5064516129),0px 10px 5px #999}button.btn-danger.dim:active{box-shadow:inset 0px 0px 0px rgb(155.4,0,2.5064516129),0px 2px 0px 0px rgb(155.4,0,2.5064516129),0px 5px 3px #999}button.dim:before{font-size:50px;line-height:1em;font-weight:normal;color:#fff;display:block;padding-top:10px}button.dim:active:before{top:7px;font-size:50px}.label{background-color:#eeeff2;color:#121321;border:1px solid #121321;font-family:\\\"Manrope\\\";font-size:10px;padding:4px 10px;border-radius:8px;text-shadow:none}.badge{background-color:#eeeff2;color:#121321;border:1px solid #121321;font-family:\\\"Manrope\\\";font-size:11px;font-weight:600;padding-bottom:4px;padding-left:6px;padding-right:6px;text-shadow:none}.label-primary,.badge-primary{background-color:#291972;color:#fff;border:1px solid #231556}.label-success,.badge-success{background-color:#bafcd4;color:#007138;border:1px solid #007138}.label-warning,.badge-warning{background-color:#ffd7b8;color:#820;border:1px solid #ff8120}.label-warning-light,.badge-warning-light{background-color:#ffd7b8;color:#820;border:1px solid #ff8120}.label-danger,.badge-danger{background-color:#ffd5d6;color:#ba0003;border:1px solid #f91d21}.label-info,.badge-info{background-color:#fff0be;color:#664b00;border:1px solid #ffd942}.label-inverse,.badge-inverse{background-color:#262626;color:#fff}.label-white,.badge-white{background-color:#fff;color:#5e5e5e}.label-white,.badge-disable{background-color:#2a2e36;color:#8b91a0}.onoffswitch{position:relative;width:64px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{display:none}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #291972;border-radius:2px}.onoffswitch-inner{width:200%;margin-left:-100%;-moz-transition:margin .3s ease-in 0s;-webkit-transition:margin .3s ease-in 0s;-o-transition:margin .3s ease-in 0s;transition:margin .3s ease-in 0s}.onoffswitch-inner:before,.onoffswitch-inner:after{float:left;width:50%;height:20px;padding:0;line-height:20px;font-size:12px;color:#fff;font-family:Trebuchet,Arial,sans-serif;font-weight:bold;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.onoffswitch-inner:before{content:\\\"ON\\\";padding-left:10px;background-color:#291972;color:#fff}.onoffswitch-inner:after{content:\\\"OFF\\\";padding-right:10px;background-color:#fff;color:#999;text-align:right}.onoffswitch-switch{width:20px;margin:0px;background:#fff;border:2px solid #291972;border-radius:2px;position:absolute;top:0;bottom:0;right:44px;-moz-transition:all .3s ease-in 0s;-webkit-transition:all .3s ease-in 0s;-o-transition:all .3s ease-in 0s;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-left:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:0px}.chosen-container-single .chosen-single{background:#fff;box-shadow:none;-moz-box-sizing:border-box;background-color:#fff;border:1px solid #cbd5dd;border-radius:2px;cursor:text;height:auto !important;margin:0;min-height:30px;overflow:hidden;padding:4px 12px;position:relative;width:100%}.chosen-container-multi .chosen-choices li.search-choice{background:#f1f1f1;border:1px solid #ededed;border-radius:2px;box-shadow:none;color:#333;cursor:default;line-height:13px;margin:3px 0 3px 5px;padding:3px 20px 3px 5px;position:relative}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{color:#fff;background-color:#291972;border-color:#291972;cursor:default;z-index:2}.pagination>li>a,.pagination>li>span{background-color:#fff;border:1px solid #ddd;color:inherit;float:left;line-height:1.42857;margin-left:-1px;padding:4px 10px;position:relative;text-decoration:none}.tooltip-inner{background-color:#291972}.tooltip.top .tooltip-arrow{border-top-color:#2f4050}.tooltip.right .tooltip-arrow{border-right-color:#2f4050}.tooltip.bottom .tooltip-arrow{border-bottom-color:#2f4050}.tooltip.left .tooltip-arrow{border-left-color:#2f4050}.easypiechart{position:relative;text-align:center}.easypiechart .h2{margin-left:10px;margin-top:10px;display:inline-block}.easypiechart canvas{top:0;left:0}.easypiechart .easypie-text{line-height:1;position:absolute;top:33px;width:100%;z-index:1}.easypiechart img{margin-top:-4px}.jqstooltip{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-state-default{background-color:#fff;background-image:none;background-repeat:repeat-x;box-shadow:none;color:#333;text-shadow:none}.fc-state-default{border:1px solid}.fc-button{color:inherit;border:1px solid #c2c4cc;cursor:pointer;display:inline-block;height:1.9em;line-height:1.9em;overflow:hidden;padding:0 .6em;position:relative;white-space:nowrap}.fc-state-active{background-color:#291972;border-color:#291972;color:#fff}.fc-header-title h2{font-size:16px;font-weight:600;color:inherit}.fc-content .fc-widget-header,.fc-content .fc-widget-content{border-color:#c2c4cc;font-weight:normal}.fc-border-separate tbody{background-color:#f8f8f8}.fc-state-highlight{background:none repeat scroll 0 0 #fcf8e3}.external-event{padding:5px 10px;border-radius:2px;cursor:pointer;margin-bottom:5px}.fc-ltr .fc-event-hori.fc-event-end,.fc-rtl .fc-event-hori.fc-event-start{border-radius:2px}.fc-event,.fc-agenda .fc-event-time,.fc-event a{padding:4px 6px;background-color:#291972;border-color:#291972}.fc-event-time,.fc-event-title{color:#717171;padding:0 1px}.ui-calendar .fc-event-time,.ui-calendar .fc-event-title{color:#fff}.chat-activity-list .chat-element{border-bottom:1px solid #c2c4cc}.chat-element:first-child{margin-top:0}.chat-element{padding-bottom:15px}.chat-element,.chat-element .media{margin-top:15px}.chat-element,.media-body{overflow:hidden}.chat-element .media-body{display:block}.media-body{display:block}.chat-element>.pull-left{margin-right:10px}.chat-element img.img-circle,.dropdown-messages-box img.img-circle{width:38px;height:38px}.chat-element .well{border:1px solid #c2c4cc;box-shadow:none;margin-top:10px;margin-bottom:5px;padding:10px 20px;font-size:11px;line-height:16px}.chat-element .actions{margin-top:10px}.chat-element .photos{margin:10px 0}.right.chat-element>.pull-right{margin-left:10px}.chat-photo{max-height:180px;border-radius:4px;overflow:hidden;margin-right:10px;margin-bottom:10px}.chat{margin:0;padding:0;list-style:none}.chat li{margin-bottom:10px;padding-bottom:5px;border-bottom:1px dotted #b3a9a9}.chat li.left .chat-body{margin-left:60px}.chat li.right .chat-body{margin-right:60px}.chat li .chat-body p{margin:0;color:#777}.panel .slidedown .glyphicon,.chat .glyphicon{margin-right:5px}.chat-panel .panel-body{height:350px;overflow-y:scroll}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{background-color:#291972;border-color:#291972;color:#fff;z-index:2}.list-group-item-heading{margin-top:10px;color:#231556}.list-group-item-text{margin:0 0 10px;color:#231556;font-size:12px;line-height:inherit}.no-padding .list-group-item{border-left:none;border-right:none;border-bottom:none}.no-padding .list-group-item:first-child{border-left:none;border-right:none;border-bottom:none;border-top:none}.no-padding .list-group{margin-bottom:0}.list-group-item{background-color:inherit;border:1px solid #c2c4cc;display:block;margin-bottom:-1px;padding:10px 15px;position:relative}.elements-list .list-group-item{border-left:none;border-right:none;padding:15px 25px}.elements-list .list-group-item:first-child{border-left:none;border-right:none;border-top:none !important}.elements-list .list-group{margin-bottom:0}.elements-list a{color:inherit}.elements-list .list-group-item.active,.elements-list .list-group-item:hover{background:#f3f3f4;color:inherit;border-color:#c2c4cc;border-radius:0}.elements-list li.active{transition:none}.element-detail-box{padding:25px}.flot-chart{display:block;height:200px}.widget .flot-chart.dashboard-chart{display:block;height:120px;margin-top:40px}.flot-chart.dashboard-chart{display:block;height:180px;margin-top:40px}.flot-chart-content{width:100%;height:100%}.flot-chart-pie-content{width:200px;height:200px;margin:auto}.jqstooltip{position:absolute;display:block;left:0px;top:0px;visibility:hidden;background:#2b303a;background-color:rgba(43,48,58,.8);color:#fff;text-align:left;white-space:nowrap;z-index:10000;padding:5px 5px 5px 5px;min-height:22px;border-radius:3px}.jqsfield{color:#fff;text-align:left}.h-200{min-height:200px}.legendLabel{padding-left:5px}.stat-list li:first-child{margin-top:0}.stat-list{list-style:none;padding:0;margin:0}.stat-percent{float:right}.stat-list li{margin-top:15px;position:relative}table.dataTable thead .sorting,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{background:rgba(0,0,0,0)}table.dataTable thead .sorting_asc:after{float:right;font-family:fontawesome}table.dataTable thead .sorting_desc:after{content:\\\"\\\";float:right;font-family:fontawesome}table.dataTable thead .sorting:after{content:\\\"\\\";float:right;font-family:fontawesome;color:rgba(50,50,50,.5)}.dataTables_wrapper{padding-bottom:30px}.img-circle{border-radius:50%}.btn-circle{width:30px;height:30px;padding:6px 0;border-radius:15px;text-align:center;font-size:12px;line-height:1.42857}.btn-circle.btn-lg{width:50px;height:50px;padding:10px 16px;border-radius:25px;font-size:18px;line-height:1.33}.btn-circle.btn-xl{width:70px;height:70px;padding:10px 16px;border-radius:35px;font-size:24px;line-height:1.33}.show-grid [class^=col-]{padding-top:10px;padding-bottom:10px;border:1px solid #ddd;background-color:#eee !important}.show-grid{margin:15px 0}.css-animation-box h1{font-size:44px}.animation-efect-links a{padding:4px 6px;font-size:12px}#animation_box{background-color:#f9f8f8;border-radius:16px;width:80%;margin:0 auto;padding-top:80px}.animation-text-box{position:absolute;margin-top:40px;left:50%;margin-left:-100px;width:200px}.animation-text-info{position:absolute;margin-top:-60px;left:50%;margin-left:-100px;width:200px;font-size:10px}.animation-text-box h2{font-size:54px;font-weight:600;margin-bottom:5px}.animation-text-box p{font-size:12px;text-transform:uppercase}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#291972;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px}.pace-inactive{display:none}.widget{border-radius:4px;padding:15px 20px;margin-bottom:10px;margin-top:10px}.widget.style1 h2{font-size:30px}.widget h2,.widget h3{margin-top:5px;margin-bottom:0}.widget-text-box{padding:20px;border:1px solid #c2c4cc;background:#fff}.widget-head-color-box{border-radius:5px 5px 0px 0px;margin-top:10px}.widget .flot-chart{height:100px}.vertical-align div{display:inline-block;vertical-align:middle}.vertical-align h2,.vertical-align h3{margin:0}.todo-list{list-style:none outside none;margin:0;padding:0;font-size:14px}.todo-list.small-list{font-size:12px}.todo-list.small-list>li{background:#f3f3f4;border-left:none;border-right:none;border-radius:4px;color:inherit;margin-bottom:2px;padding:6px 6px 6px 12px}.todo-list.small-list .btn-xs,.todo-list.small-list .btn-group-xs>.btn{border-radius:5px;font-size:10px;line-height:1.5;padding:1px 2px 1px 5px}.todo-list>li{background:#f3f3f4;border-left:6px solid #c2c4cc;border-right:6px solid #c2c4cc;border-radius:4px;color:inherit;margin-bottom:2px;padding:10px}.todo-list .handle{cursor:move;display:inline-block;font-size:16px;margin:0 5px}.todo-list>li .label{font-size:9px;margin-left:10px}.check-link{font-size:16px}.todo-completed{text-decoration:line-through}.geo-statistic h1{font-size:36px;margin-bottom:0}.glyphicon.fa{font-family:\\\"FontAwesome\\\"}.inline{display:inline-block !important}.input-s-sm{width:120px}.input-s{width:200px}.input-s-lg{width:250px}.i-checks{padding-left:0}.form-control,.single-line{background-color:#fff;background-image:none;border:1px solid #e5e6e7;border-radius:1px;color:inherit;display:block;padding:6px 12px;transition:border-color .15s ease-in-out 0s,box-shadow .15s ease-in-out 0s;width:100%}.form-control:focus,.single-line:focus{border-color:#291972 !important}.has-success .form-control{border-color:#291972}.has-warning .form-control{border-color:#ff8120}.has-error .form-control{border-color:#ba0003}.has-success .control-label{color:#291972}.has-warning .control-label{color:#ff8120}.has-error .control-label{color:#ba0003}.input-group-addon{background-color:#fff;border:1px solid #c2c4cc;border-radius:4px;color:inherit;font-size:14px;font-weight:400;line-height:1;padding:6px 12px;text-align:center}.spinner-buttons.input-group-btn .btn-xs{line-height:1.13}.spinner-buttons.input-group-btn{width:20%}.noUi-connect{background:none repeat scroll 0 0 #291972;box-shadow:none}.slider_red .noUi-connect{background:none repeat scroll 0 0 #ba0003;box-shadow:none}.ui-sortable .ibox-title{cursor:move}.ui-sortable-placeholder{border:1px dashed #cecece !important;visibility:visible !important;background:#c2c4cc}.ibox.ui-sortable-placeholder{margin:0px 0px 23px !important}.onoffswitch{position:relative;width:54px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{display:none}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #1ab394;border-radius:3px}.onoffswitch-inner{display:block;width:200%;margin-left:-100%;-moz-transition:margin .3s ease-in 0s;-webkit-transition:margin .3s ease-in 0s;-o-transition:margin .3s ease-in 0s;transition:margin .3s ease-in 0s}.onoffswitch-inner:before,.onoffswitch-inner:after{display:block;float:left;width:50%;height:16px;padding:0;line-height:16px;font-size:10px;color:#fff;font-family:Trebuchet,Arial,sans-serif;font-weight:bold;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.onoffswitch-inner:before{content:\\\"ON\\\";padding-left:7px;background-color:#1ab394;color:#fff}.onoffswitch-inner:after{content:\\\"OFF\\\";padding-right:7px;background-color:#fff;color:#919191;text-align:right}.onoffswitch-switch{display:block;width:18px;margin:0px;background:#fff;border:2px solid #1ab394;border-radius:3px;position:absolute;top:0;bottom:0;right:36px;-moz-transition:all .3s ease-in 0s;-webkit-transition:all .3s ease-in 0s;-o-transition:all .3s ease-in 0s;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-left:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:0px}.ui-jqgrid{-moz-box-sizing:content-box}.ui-jqgrid-btable{border-collapse:separate}.ui-jqgrid-htable{border-collapse:separate}.ui-jqgrid-titlebar{height:40px;line-height:15px;color:#676a6c;background-color:#f9f9f9;text-shadow:0 1px 0 hsla(0,0%,100%,.5)}.ui-jqgrid .ui-jqgrid-title{float:left;margin:1.1em 1em .2em}.ui-jqgrid .ui-jqgrid-titlebar{position:relative;border-left:0px solid;border-right:0px solid;border-top:0px solid}.ui-widget-header{background:none;background-image:none;background-color:#f5f5f6;text-transform:uppercase;border-top-left-radius:0px;border-top-right-radius:0px}.ui-jqgrid tr.ui-row-ltr td{border-right-color:inherit;border-right-style:solid;border-right-width:1px;text-align:left;border-color:#ddd;background-color:inherit}.ui-search-toolbar input[type=text]{font-size:12px;height:15px;border:1px solid #ccc;border-radius:0px}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{background:#f9f9f9;border:1px solid #ddd;line-height:15px;font-weight:bold;color:#676a6c;text-shadow:0 1px 0 hsla(0,0%,100%,.5)}.ui-widget-content{box-sizing:content-box}.ui-icon-triangle-1-n{background-position:1px -16px}.ui-jqgrid tr.ui-search-toolbar th{border-top-width:0px !important;border-top-color:inherit !important;border-top-style:ridge !important}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{background:#f5f5f5;border-collapse:separate}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{background:#f2fbff}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #ddd;background:#fff;font-weight:normal;color:#212121}.ui-jqgrid .ui-pg-input{font-size:inherit;width:50px;border:1px solid #ccc;height:15px}.ui-jqgrid .ui-pg-selbox{display:block;font-size:1em;height:25px;line-height:18px;margin:0;width:auto}.ui-jqgrid .ui-pager-control{position:relative}.ui-jqgrid .ui-jqgrid-pager{height:32px;position:relative}.ui-pg-table .navtable .ui-corner-all{border-radius:0px}.ui-jqgrid .ui-pg-button:hover{padding:1px;border:0px}.ui-jqgrid .loading{position:absolute;top:45%;left:45%;width:auto;height:auto;z-index:101;padding:6px;margin:5px;text-align:center;font-weight:bold;display:none;border-width:2px !important;font-size:11px}.ui-jqgrid .form-control{height:10px;width:auto;display:inline;padding:10px 12px}.ui-jqgrid-pager{height:32px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:0}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:0}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:0}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:0}.ui-widget-content{border:1px solid #ddd}.ui-jqgrid .ui-jqgrid-titlebar{padding:0}.ui-jqgrid .ui-jqgrid-titlebar{border-bottom:1px solid #ddd}.ui-jqgrid tr.jqgrow td{padding:6px}.ui-jqdialog .ui-jqdialog-titlebar{padding:10px 10px}.ui-jqdialog .ui-jqdialog-title{float:none !important}.ui-jqdialog>.ui-resizable-se{position:absolute}.dd{position:relative;display:block;margin:0;padding:0;list-style:none;font-size:13px;line-height:20px}.dd-list{display:block;position:relative;margin:0;padding:0;list-style:none}.dd-list .dd-list{padding-left:30px}.dd-collapsed .dd-list{display:none}.dd-item,.dd-empty,.dd-placeholder{display:block;position:relative;margin:0;padding:0;min-height:20px;font-size:13px;line-height:20px}.dd-handle{display:block;margin:5px 0;padding:5px 10px;color:#333;text-decoration:none;border:1px solid #c2c4cc;background:#f5f5f5;-webkit-border-radius:3px;border-radius:3px;box-sizing:border-box;-moz-box-sizing:border-box}.dd-handle span{font-weight:bold}.dd-handle:hover{background:#f0f0f0;cursor:pointer;font-weight:bold}.dd-item>button{display:block;position:relative;cursor:pointer;float:left;width:25px;height:20px;margin:5px 0;padding:0;text-indent:100%;white-space:nowrap;overflow:hidden;border:0;background:rgba(0,0,0,0);font-size:12px;line-height:1;text-align:center;font-weight:bold}.dd-item>button:before{content:\\\"+\\\";display:block;position:absolute;width:100%;text-align:center;text-indent:0}.dd-item>button[data-action=collapse]:before{content:\\\"-\\\"}#nestable2 .dd-item>button{font-family:FontAwesome;height:34px;width:33px;color:#c1c1c1}#nestable2 .dd-item>button:before{content:\\\"\\\"}#nestable2 .dd-item>button[data-action=collapse]:before{content:\\\"\\\"}.dd-placeholder,.dd-empty{margin:5px 0;padding:0;min-height:30px;background:#f2fbff;border:1px dashed #b6bcbf;box-sizing:border-box;-moz-box-sizing:border-box}.dd-empty{border:1px dashed #bbb;min-height:100px;background-color:#e5e5e5;background-image:-webkit-linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white),-webkit-linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white);background-image:-moz-linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white),-moz-linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white);background-image:linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white),linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white);background-size:60px 60px;background-position:0 0,30px 30px}.dd-dragel{position:absolute;z-index:9999;pointer-events:none}.dd-dragel>.dd-item .dd-handle{margin-top:0}.dd-dragel .dd-handle{-webkit-box-shadow:2px 4px 6px 0 rgba(0,0,0,.1);box-shadow:2px 4px 6px 0 rgba(0,0,0,.1)}.nestable-lists{display:block;clear:both;padding:30px 0;width:100%;border:0;border-top:2px solid #ddd;border-bottom:2px solid #ddd}#nestable-menu{padding:0;margin:10px 0 20px 0}#nestable-output,#nestable2-output{width:100%;font-size:.75em;line-height:1.33333em;font-family:open sans,lucida grande,lucida sans unicode,helvetica,arial,sans-serif;padding:5px;box-sizing:border-box;-moz-box-sizing:border-box}#nestable2 .dd-handle{color:inherit;border:1px dashed #c2c4cc;background:#f3f3f4;padding:10px}#nestable2 span.label{margin-right:10px}#nestable-output,#nestable2-output{font-size:12px;padding:25px;box-sizing:border-box;-moz-box-sizing:border-box}.CodeMirror{border:1px solid #eee;height:auto}.CodeMirror-scroll{overflow-y:hidden;overflow-x:auto}.google-map{height:300px}label.error{color:#cc5965;display:inline-block;margin-left:5px}.form-control.error{border:1px dotted #cc5965}.gridStyle{border:1px solid #d4d4d4;width:100%;height:400px}.gridStyle2{border:1px solid #d4d4d4;width:500px;height:300px}.ngHeaderCell{border-right:none;border-bottom:1px solid #c2c4cc}.ngCell{border-right:none}.ngTopPanel{background:#f5f5f6}.ngRow.even{background:#f9f9f9}.ngRow.selected{background:#ebf2f1}.ngRow{border-bottom:1px solid #c2c4cc}.ngCell{background-color:rgba(0,0,0,0)}.ngHeaderCell{border-right:none}#toast-container>.toast{background-image:none !important}#toast-container>.toast:before{position:fixed;font-family:FontAwesome;font-size:24px;line-height:24px;float:left;color:#fff;padding-right:.5em;margin:auto .5em auto -1.5em}#toast-container>.toast-warning:before{content:\\\"\\\"}#toast-container>.toast-error:before{content:\\\"\\\"}#toast-container>.toast-info:before{content:\\\"\\\"}#toast-container>.toast-success:before{content:\\\"\\\"}#toast-container>div{-moz-box-shadow:0 0 3px #999;-webkit-box-shadow:0 0 3px #999;box-shadow:0 0 3px #999;opacity:.9;-ms-filter:alpha(Opacity=90);filter:alpha(opacity=90)}#toast-container>:hover{-moz-box-shadow:0 0 4px #999;-webkit-box-shadow:0 0 4px #999;box-shadow:0 0 4px #999;opacity:1;-ms-filter:alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}.toast{background-color:#291972}.toast-success{background-color:#291972}.toast-error{background-color:#ba0003}.toast-info{background-color:#ffd942}.toast-warning{background-color:#ff8120}.toast-top-full-width{margin-top:20px}.toast-bottom-full-width{margin-bottom:20px}.cg-notify-message.inspinia-notify{background:#fff;padding:0;box-shadow:0 0 1px rgba(0,0,0,.1),0 2px 4px rgba(0,0,0,.2);-webkit-box-shadow:0 0 1 px rgba(0,0,0,.1),0 2 px 4 px rgba(0,0,0,.2);-moz-box-shadow:0 0 1 px rgba(0,0,0,.1),0 2 px 4 px rgba(0,0,0,.2);border:none;margin-top:30px;color:inherit}.inspinia-notify.alert-warning{border-left:6px solid #ff8120}.inspinia-notify.alert-success{border-left:6px solid #007138}.inspinia-notify.alert-danger{border-left:6px solid #ba0003}.inspinia-notify.alert-info{border-left:6px solid #291972}.img-container,.img-preview{overflow:hidden;text-align:center;width:100%}.img-preview-sm{height:130px;width:200px}.forum-post-container .media{margin:10px 10px 10px 10px;padding:20px 10px 20px 10px;border-bottom:1px solid #f1f1f1}.forum-avatar{float:left;margin-right:20px;text-align:center;width:110px}.forum-avatar .img-circle{height:48px;width:48px}.author-info{color:#676a6c;font-size:11px;margin-top:5px;text-align:center}.forum-post-info{padding:9px 12px 6px 12px;background:#f9f9f9;border:1px solid #f1f1f1}.media-body>.media{background:#f9f9f9;border-radius:3px;border:1px solid #f1f1f1}.forum-post-container .media-body .photos{margin:10px 0}.forum-photo{max-width:140px;border-radius:3px}.media-body>.media .forum-avatar{width:70px;margin-right:10px}.media-body>.media .forum-avatar .img-circle{height:38px;width:38px}.mid-icon{font-size:66px}.forum-item{margin:10px 0;padding:10px 0 20px;border-bottom:1px solid #f1f1f1}.views-number{font-size:24px;line-height:18px;font-weight:400}.forum-container,.forum-post-container{padding:30px !important}.forum-item small{color:#999}.forum-item .forum-sub-title{color:#999;margin-left:50px}.forum-title{margin:15px 0 15px 0}.forum-info{text-align:center}.forum-desc{color:#999}.forum-icon{float:left;width:30px;margin-right:20px;text-align:center}a.forum-item-title{color:inherit;display:block;font-size:18px;font-weight:600}a.forum-item-title:hover{color:inherit}.forum-icon .fa{font-size:30px;margin-top:8px;color:#9b9b9b}.forum-item.active .fa{color:#291972}.forum-item.active a.forum-item-title{color:#291972}@media(max-width: 992px){.forum-info{margin:15px 0 10px 0px;display:none}.forum-desc{float:none !important}}.vertical-container{width:90%;max-width:1170px;margin:0 auto}.vertical-container::after{content:\\\"\\\";display:table;clear:both}#vertical-timeline{position:relative;padding:0;margin-top:2em;margin-bottom:2em}#vertical-timeline::before{content:\\\"\\\";position:absolute;top:0;left:18px;height:100%;width:4px;background:#f1f1f1}.vertical-timeline-content .btn{float:right}#vertical-timeline.light-timeline:before{background:#e7eaec}.dark-timeline .vertical-timeline-content:before{border-color:rgba(0,0,0,0) #f5f5f5 rgba(0,0,0,0) rgba(0,0,0,0)}.dark-timeline.center-orientation .vertical-timeline-content:before{border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #f5f5f5}.dark-timeline .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before,.dark-timeline.center-orientation .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before{border-color:rgba(0,0,0,0) #f5f5f5 rgba(0,0,0,0) rgba(0,0,0,0)}.dark-timeline .vertical-timeline-content,.dark-timeline.center-orientation .vertical-timeline-content{background:#f5f5f5}@media only screen and (min-width: 1170px){#vertical-timeline.center-orientation{margin-top:3em;margin-bottom:3em}#vertical-timeline.center-orientation:before{left:50%;margin-left:-2px}}@media only screen and (max-width: 1170px){.center-orientation.dark-timeline .vertical-timeline-content:before{border-color:rgba(0,0,0,0) #f5f5f5 rgba(0,0,0,0) rgba(0,0,0,0)}}.vertical-timeline-block{position:relative;margin:2em 0}.vertical-timeline-block:after{content:\\\"\\\";display:table;clear:both}.vertical-timeline-block:first-child{margin-top:0}.vertical-timeline-block:last-child{margin-bottom:0}@media only screen and (min-width: 1170px){.center-orientation .vertical-timeline-block{margin:4em 0}.center-orientation .vertical-timeline-block:first-child{margin-top:0}.center-orientation .vertical-timeline-block:last-child{margin-bottom:0}}.vertical-timeline-icon{position:absolute;top:0;left:0;width:40px;height:40px;border-radius:50%;font-size:16px;border:3px solid #f1f1f1;text-align:center}.vertical-timeline-icon i{display:block;width:24px;height:24px;position:relative;left:50%;top:50%;margin-left:-12px;margin-top:-9px}@media only screen and (min-width: 1170px){.center-orientation .vertical-timeline-icon{width:50px;height:50px;left:50%;margin-left:-25px;-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;font-size:19px}.center-orientation .vertical-timeline-icon i{margin-left:-12px;margin-top:-10px}.center-orientation .cssanimations .vertical-timeline-icon.is-hidden{visibility:hidden}}.vertical-timeline-content{position:relative;margin-left:60px;background:#fff;border-radius:.25em;padding:1em}.vertical-timeline-content:after{content:\\\"\\\";display:table;clear:both}.vertical-timeline-content h2{font-weight:400;margin-top:4px}.vertical-timeline-content p{margin:1em 0;line-height:1.6}.vertical-timeline-content .vertical-date{float:left;font-weight:500}.vertical-date small{color:#291972;font-weight:400}.vertical-timeline-content::before{content:\\\"\\\";position:absolute;top:16px;right:100%;height:0;width:0;border:7px solid rgba(0,0,0,0);border-right:7px solid #fff}@media only screen and (min-width: 768px){.vertical-timeline-content h2{font-size:18px}.vertical-timeline-content p{font-size:13px}}@media only screen and (min-width: 1170px){.center-orientation .vertical-timeline-content{margin-left:0;padding:1.6em;width:45%}.center-orientation .vertical-timeline-content::before{top:24px;left:100%;border-color:rgba(0,0,0,0);border-left-color:#fff}.center-orientation .vertical-timeline-content .btn{float:left}.center-orientation .vertical-timeline-content .vertical-date{position:absolute;width:100%;left:122%;top:2px;font-size:14px}.center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content{float:right}.center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content::before{top:24px;left:auto;right:100%;border-color:rgba(0,0,0,0);border-right-color:#fff}.center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .btn{float:right}.center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .vertical-date{left:auto;right:122%;text-align:right}.center-orientation .cssanimations .vertical-timeline-content.is-hidden{visibility:hidden}}.tabs-container .panel-body{background:#fff;border:1px solid #c2c4cc;border-radius:2px;padding:20px;position:relative}.tabs-container .nav-tabs>li.active>a,.tabs-container .nav-tabs>li.active>a:hover,.tabs-container .nav-tabs>li.active>a:focus{border:1px solid #c2c4cc;border-bottom-color:rgba(0,0,0,0);background-color:#fff}.tabs-container .nav-tabs>li{float:left;margin-bottom:-1px}.tabs-container .tab-pane .panel-body{border-top:none}.tabs-container .nav-tabs>li.active>a,.tabs-container .nav-tabs>li.active>a:hover,.tabs-container .nav-tabs>li.active>a:focus{border:1px solid #c2c4cc;border-bottom-color:rgba(0,0,0,0)}.tabs-container .nav-tabs{border-bottom:1px solid #c2c4cc}.tabs-container .tab-pane .panel-body{border-top:none}.tabs-container .tabs-left .tab-pane .panel-body,.tabs-container .tabs-right .tab-pane .panel-body{border-top:1px solid #c2c4cc}.tabs-container .nav-tabs>li a:hover{background:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.tabs-container .tabs-below>.nav-tabs,.tabs-container .tabs-right>.nav-tabs,.tabs-container .tabs-left>.nav-tabs{border-bottom:0}.tabs-container .tabs-left .panel-body{position:static}.tabs-container .tabs-left>.nav-tabs,.tabs-container .tabs-right>.nav-tabs{width:20%}.tabs-container .tabs-left .panel-body{width:80%;margin-left:20%}.tabs-container .tabs-right .panel-body{width:80%;margin-right:20%}.tabs-container .tab-content>.tab-pane,.tabs-container .pill-content>.pill-pane{display:none}.tabs-container .tab-content>.active,.tabs-container .pill-content>.active{display:block}.tabs-container .tabs-below>.nav-tabs{border-top:1px solid #c2c4cc}.tabs-container .tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-container .tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-container .tabs-below>.nav-tabs>li>a:hover,.tabs-container .tabs-below>.nav-tabs>li>a:focus{border-top-color:#c2c4cc;border-bottom-color:rgba(0,0,0,0)}.tabs-container .tabs-left>.nav-tabs>li,.tabs-container .tabs-right>.nav-tabs>li{float:none}.tabs-container .tabs-left>.nav-tabs>li>a,.tabs-container .tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-container .tabs-left>.nav-tabs{float:left;margin-right:19px}.tabs-container .tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-container .tabs-left>.nav-tabs .active>a,.tabs-container .tabs-left>.nav-tabs .active>a:hover,.tabs-container .tabs-left>.nav-tabs .active>a:focus{border-color:#c2c4cc rgba(0,0,0,0) #c2c4cc #c2c4cc;*border-right-color:#fff}.tabs-container .tabs-right>.nav-tabs{float:right;margin-left:19px}.tabs-container .tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-container .tabs-right>.nav-tabs .active>a,.tabs-container .tabs-right>.nav-tabs .active>a:hover,.tabs-container .tabs-right>.nav-tabs .active>a:focus{border-color:#c2c4cc #c2c4cc #c2c4cc rgba(0,0,0,0);*border-left-color:#fff;z-index:1}.jvectormap-container{width:100%;height:100%;position:relative;overflow:hidden}.jvectormap-tip{position:absolute;display:none;border:solid 1px #cdcdcd;border-radius:3px;background:#292929;color:#fff;font-family:sans-serif,Verdana;font-size:smaller;padding:5px}.jvectormap-zoomin,.jvectormap-zoomout,.jvectormap-goback{position:absolute;left:10px;border-radius:3px;background:#291972;padding:3px;color:#fff;cursor:pointer;line-height:10px;text-align:center;box-sizing:content-box}.jvectormap-zoomin,.jvectormap-zoomout{width:10px;height:10px}.jvectormap-zoomin{top:10px}.jvectormap-zoomout{top:30px}.jvectormap-goback{bottom:10px;z-index:1000;padding:6px}.jvectormap-spinner{position:absolute;left:0;top:0;right:0;bottom:0;background:center no-repeat url(data:image/gif;base64,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)}.jvectormap-legend-title{font-weight:bold;font-size:14px;text-align:center}.jvectormap-legend-cnt{position:absolute}.jvectormap-legend-cnt-h{bottom:0;right:0}.jvectormap-legend-cnt-v{top:0;right:0}.jvectormap-legend{background:#000;color:#fff;border-radius:3px}.jvectormap-legend-cnt-h .jvectormap-legend{float:left;margin:0 10px 10px 0;padding:3px 3px 1px 3px}.jvectormap-legend-cnt-h .jvectormap-legend .jvectormap-legend-tick{float:left}.jvectormap-legend-cnt-v .jvectormap-legend{margin:10px 10px 0 0;padding:3px}.jvectormap-legend-cnt-h .jvectormap-legend-tick{width:40px}.jvectormap-legend-cnt-h .jvectormap-legend-tick-sample{height:15px}.jvectormap-legend-cnt-v .jvectormap-legend-tick-sample{height:20px;width:20px;display:inline-block;vertical-align:middle}.jvectormap-legend-tick-text{font-size:12px}.jvectormap-legend-cnt-h .jvectormap-legend-tick-text{text-align:center}.jvectormap-legend-cnt-v .jvectormap-legend-tick-text{display:inline-block;vertical-align:middle;line-height:20px;padding-left:3px}.sidebard-panel{width:220px;background:hsl(240,4.347826087%,92.4901960784%);padding:10px 20px;position:absolute;right:0}.sidebard-panel .feed-element img.img-circle{width:32px;height:32px}.sidebard-panel .feed-element,.media-body,.sidebard-panel p{font-size:12px}.sidebard-panel .feed-element{margin-top:20px;padding-bottom:0}.sidebard-panel .list-group{margin-bottom:10px}.sidebard-panel .list-group .list-group-item{padding:5px 0;font-size:12px;border:0}.sidebar-content .wrapper{padding-right:230px}.sidebar-content .wrapper,.wrapper.sidebar-content{padding-right:230px !important}.body-small .sidebar-content .wrapper,.body-small .wrapper.sidebar-content{padding-right:20px !important}#right-sidebar{background-color:#fff;border-left:1px solid #c2c4cc;border-top:1px solid #c2c4cc;overflow:hidden;position:fixed;top:60px;width:260px !important;z-index:1009;bottom:0;right:-260px}#right-sidebar.sidebar-open{right:0}#right-sidebar.sidebar-open.sidebar-top{top:0;border-top:none}.sidebar-container ul.nav-tabs{border:none}.sidebar-container ul.nav-tabs.navs-4 li{width:25%}.sidebar-container ul.nav-tabs.navs-3 li{width:33.3333%}.sidebar-container ul.nav-tabs.navs-2 li{width:50%}.sidebar-container ul.nav-tabs li{border:none}.sidebar-container ul.nav-tabs li a{border:none;padding:12px 10px;margin:0;border-radius:0;background:#231556;color:#fff;text-align:center;border-right:1px solid rgb(38.3364485981,23.0018691589,94.1981308411)}.sidebar-container ul.nav-tabs li.active a{border:none;background:#f9f9f9;color:#121321;font-weight:bold}.sidebar-container .nav-tabs>li.active>a:hover,.sidebar-container .nav-tabs>li.active>a:focus{border:none}.sidebar-container ul.sidebar-list{margin:0;padding:0}.sidebar-container ul.sidebar-list li{border-bottom:1px solid #c2c4cc;padding:15px 20px;list-style:none;font-size:12px}.sidebar-container .sidebar-message:nth-child(2n+2){background:#f9f9f9}.sidebar-container ul.sidebar-list li a{text-decoration:none;color:inherit}.sidebar-container .sidebar-content{padding:15px 20px;font-size:12px}.sidebar-container .sidebar-title{background:#fff;padding:20px;border-bottom:1px solid #c2c4cc}.sidebar-container .sidebar-title h3{margin-bottom:3px;padding-left:2px}.sidebar-container .tab-content h4{margin-bottom:5px}.sidebar-container .sidebar-message>a>.pull-left{margin-right:10px}.sidebar-container .sidebar-message>a{text-decoration:none;color:inherit}.sidebar-container .sidebar-message{padding:15px 20px}.sidebar-container .sidebar-message .message-avatar{height:38px;width:38px;border-radius:50%}.sidebar-container .setings-item{padding:15px 20px;border-bottom:1px solid #c2c4cc}body{font-family:\\\"Manrope\\\",\\\"Manrope\\\",Helvetica,Arial,sans-serif;background-color:#231556;font-size:13px;color:#121321;overflow-x:hidden}html,body{height:100%}body.full-height-layout #wrapper,body.full-height-layout #page-wrapper{height:100%}#page-wrapper{min-height:auto}body.boxed-layout{background:image-url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \")}body.boxed-layout #wrapper{background-color:#2f4050;max-width:1200px;margin:0 auto;-webkit-box-shadow:0px 0px 5px 0px rgba(0,0,0,.75);-moz-box-shadow:0px 0px 5px 0px rgba(0,0,0,.75);box-shadow:0px 0px 5px 0px rgba(0,0,0,.75)}.top-navigation.boxed-layout #wrapper,.boxed-layout #wrapper.top-navigation{max-width:1300px !important}.block{display:block}.clear{display:block;overflow:hidden}a{cursor:pointer;color:#291972}a:hover,a:focus{text-decoration:none;color:#121321}.border-bottom{border-bottom:1px solid #c2c4cc !important}.border-top{border-top:1px solid #c2c4cc !important}.font-bold{font-weight:600}.font-noraml{font-weight:400}.text-uppercase{text-transform:uppercase}.b-r{border-right:1px solid #c2c4cc}.hr-line-dashed{border-top:1px dashed #c2c4cc;color:#fff;background-color:#fff;height:1px;margin:20px 0}.hr-line-solid{border-bottom:1px solid #c2c4cc;background-color:rgba(0,0,0,0);border-style:solid !important;margin-top:15px;margin-bottom:15px}video{width:100% !important;height:auto !important}.gallery>.row>div{margin-bottom:15px}.fancybox img{margin-bottom:5px;width:24%}.note-editor{height:auto;min-height:300px}.modal-content{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,0);border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.3);outline:0 none;position:relative}.modal-dialog{z-index:2200}.modal-body{padding:20px 30px 30px 30px}.inmodal .modal-body{background:#f8fafb}.inmodal .modal-header{padding:30px 15px;text-align:center}.animated.modal.fade .modal-dialog{-webkit-transform:none;-ms-transform:none;-o-transform:none;transform:none}.inmodal .modal-title{font-size:26px}.inmodal .modal-icon{font-size:84px;color:#e2e3e3}.modal-footer{margin-top:0}#wrapper{width:100%;overflow-x:hidden}.wrapper{padding:0 20px}.wrapper-content{padding:20px 10px 40px}#page-wrapper{padding:0 15px;min-height:568px;position:relative !important}@media(min-width: 768px){#page-wrapper{position:inherit;margin:0 0 0 240px;min-height:1000px}}.title-action{text-align:right;padding-top:30px}.ibox-content h1,.ibox-content h2,.ibox-content h3,.ibox-content h4,.ibox-content h5,.ibox-title h1,.ibox-title h2,.ibox-title h3,.ibox-title h4,.ibox-title h5{margin-top:5px;color:#fff}ul.unstyled,ol.unstyled{list-style:none outside none;margin-left:0}.big-icon{font-size:160px !important;color:#291972}.footer{background:none repeat scroll 0 0 #fff;border-top:1px solid #c2c4cc;bottom:0;left:0;padding:10px 20px;position:absolute;right:0}.footer.fixed_full{position:absolute;bottom:0;left:0;right:0;z-index:1000;padding:10px 20px;background:#fff;border-top:1px solid #c2c4cc}.footer.fixed{position:absolute;bottom:0;left:0;right:0;z-index:1000;padding:10px 20px;background:#fff;border-top:2px solid #c2c4cc;margin:0 !important}body.mini-navbar .footer.fixed,body.body-small.mini-navbar .footer.fixed{margin:0}body.mini-navbar.canvas-menu .footer.fixed,body.canvas-menu .footer.fixed{margin:0 !important}body.fixed-sidebar.body-small.mini-navbar .footer.fixed{margin:0}body.body-small .footer.fixed{margin-left:0px}.page-heading{border:0;padding:10px 0px 10px 0px}.panel-heading h1,.panel-heading h2{margin-bottom:5px}.table-bordered{border:1px solid #ebebeb}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{background-color:#f5f5f6;border-bottom-width:1px}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #e7e7e7}.table>thead>tr>th{border-bottom:1px solid #ddd;vertical-align:bottom}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{border-top:1px solid #c2c4cc;line-height:1.42857;padding:8px;vertical-align:top}.panel.blank-panel{background:none;margin:0}.blank-panel .panel-heading{padding-bottom:0}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{-moz-border-bottom-colors:none;-moz-border-left-colors:none;-moz-border-right-colors:none;-moz-border-top-colors:none;background:none;border-color:#ddd #ddd rgba(0,0,0,0);border-bottom:#f3f3f4;border-image:none;border-style:solid;border-width:1px;color:#555;cursor:default}.nav.nav-tabs li{background:none;border:none}.nav-tabs>li>a{color:#a7b1c2;font-weight:600;padding:10px 20px 10px 25px}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{background-color:#e6e6e6;color:#121321}.ui-tab .tab-content{padding:20px 0px}.no-padding{padding:0 !important}.no-borders{border:none !important}.no-margins{margin:0 !important}.no-top-border{border-top:0 !important}.ibox-content.text-box{padding-bottom:0px;padding-top:15px}.border-left-right{border-left:1px solid #c2c4cc;border-right:1px solid #c2c4cc;border-top:none;border-bottom:none}.border-left{border-left:1px solid #c2c4cc;border-right:none;border-top:none;border-bottom:none}.border-right{border-left:none;border-right:1px solid #c2c4cc;border-top:none;border-bottom:none}.full-width{width:100% !important}.link-block{font-size:12px;padding:10px}.nav.navbar-top-links .link-block a{font-size:12px}.link-block a{font-size:10px;color:inherit}body.mini-navbar .branding{display:none}img.circle-border{border:6px solid #fff;border-radius:50%}.branding{float:left;color:#fff;font-size:18px;font-weight:600;padding:17px 20px;text-align:center;background-color:#291972}.login-panel{margin-top:25%}.icons-box h3{margin-top:10px;margin-bottom:10px}.icons-box .infont a i{font-size:25px;display:block;color:#121321}.icons-box .infont a{color:#a6a8a9}.icons-box .infont a{padding:10px;margin:1px;display:block}.ui-draggable .ibox-title{cursor:move}.breadcrumb{background-color:#fff;padding:0;margin-bottom:0}.breadcrumb>li a{color:inherit}.breadcrumb>.active{color:inherit}code{background-color:#f9f2f4;border-radius:4px;color:#ca4440;font-size:90%;padding:2px 4px;white-space:nowrap}.ibox{clear:both;margin-bottom:25px;margin-top:0;padding:0}.ibox.collapsed .ibox-content{display:none}.ibox.collapsed .fa.fa-chevron-up:before{content:\\\"\\\"}.ibox.collapsed .fa.fa-chevron-down:before{content:\\\"\\\"}.ibox:after,.ibox:before{display:table}.ibox-title{-moz-border-bottom-colors:none;-moz-border-left-colors:none;-moz-border-right-colors:none;-moz-border-top-colors:none;background-color:#fff;border-color:#c2c4cc;border-image:none;border-style:solid solid none;border-width:0px 0px 0;color:inherit;margin-bottom:0;padding:14px 15px 7px;min-height:48px}.ibox-content{background-color:#fff;color:inherit;padding:15px 20px 20px 20px;border-color:#c2c4cc;border-image:none;border-style:solid;border-width:1px;border-radius:4px}.ibox-footer{color:inherit;border-top:1px solid #c2c4cc;font-size:90%;background:#fff;padding:10px 15px}table.table-mail tr td{padding:12px}.table-mail .check-mail{padding-left:20px}.table-mail .mail-date{padding-right:20px}.star-mail,.check-mail{width:40px}.unread td a,.unread td{font-weight:600;color:inherit}.read td a,.read td{font-weight:normal;color:inherit}.unread td{background-color:#f9f8f8}.ibox-content{clear:both}.ibox-heading{background-color:#f3f6fb;border-bottom:none}.ibox-heading h3{font-weight:200;font-size:24px}.ibox-title h5{display:inline-block;font-size:14px;margin:0 0 7px;padding:0;text-overflow:ellipsis;float:left}.ibox-title .label{float:left;margin-left:4px}.ibox-tools{display:inline-block;float:right;margin-top:0;position:relative;padding:0}.ibox-tools a{cursor:pointer;margin-left:5px;color:#c4c4c4}.ibox-tools a.btn-primary{color:#fff}.ibox-tools .dropdown-menu>li>a{padding:4px 10px;font-size:12px}.ibox .open>.dropdown-menu{left:auto;right:0}.gray-bg{background-color:#f3f3f4}.white-bg{background-color:#fff}.navy-bg{background-color:#291972;color:#fff}.blue-bg{background-color:#007138;color:#fff}.lazur-bg{background-color:#ffd942;color:#fff}.yellow-bg{background-color:#ff8120;color:#fff}.red-bg{background-color:#ba0003;color:#fff}.black-bg{background-color:#262626}.panel-primary{border-color:#291972}.panel-primary>.panel-heading{background-color:#291972;border-color:#291972}.panel-success{border-color:#007138}.panel-success>.panel-heading{background-color:#007138;border-color:#007138;color:#fff}.panel-info{border-color:#ffd942}.panel-info>.panel-heading{background-color:#ffd942;border-color:#ffd942;color:#fff}.panel-warning{border-color:#ff8120}.panel-warning>.panel-heading{background-color:#ff8120;border-color:#ff8120;color:#fff}.panel-danger{border-color:#ba0003}.panel-danger>.panel-heading{background-color:#ba0003;border-color:#ba0003;color:#fff}.progress-bar{background-color:#291972}.progress-small,.progress-small .progress-bar{height:10px}.progress-small,.progress-mini{margin-top:5px}.progress-mini,.progress-mini .progress-bar{height:5px;margin-bottom:0px}.progress-bar-navy-light{background-color:#3dc7ab}.progress-bar-success{background-color:#007138}.progress-bar-info{background-color:#ffd942}.progress-bar-warning{background-color:#ff8120}.progress-bar-danger{background-color:#ba0003}.panel-title{font-size:inherit}.jumbotron{border-radius:6px;padding:40px}.jumbotron h1{margin-top:0}.text-navy{color:#291972}.text-primary{color:inherit}.text-success{color:#007138}.text-info{color:#291972}.text-warning{color:#ff8120}.text-danger{color:#ba0003}.text-muted{color:#121321}.simple_tag{background-color:#f3f3f4;border:1px solid #c2c4cc;border-radius:2px;color:inherit;font-size:10px;margin-right:5px;margin-top:5px;padding:5px 12px;display:inline-block}.img-shadow{-webkit-box-shadow:0px 0px 3px 0px #919191;-moz-box-shadow:0px 0px 3px 0px #919191;box-shadow:0px 0px 3px 0px #919191}.dashboards\\\\.dashboard_2 nav.navbar,.dashboards\\\\.dashboard_3 nav.navbar,.mailbox\\\\.inbox nav.navbar,.mailbox\\\\.email_view nav.navbar,.mailbox\\\\.email_compose nav.navbar,.dashboards\\\\.dashboard_4_1 nav.navbar,.metrics nav.navbar,.metrics\\\\.index nav.navbar{background:#fff}.Dashboard_2 .navbar.navbar-static-top,.Dashboard_3 .navbar.navbar-static-top,.Dashboard_4_1 .navbar.navbar-static-top,.ComposeEmail .navbar.navbar-static-top,.EmailView .navbar.navbar-static-top,.Inbox .navbar.navbar-static-top,.Metrics .navbar.navbar-static-top{background:#fff}a.close-canvas-menu{position:absolute;top:10px;right:15px;z-index:1011;color:#a7b1c2}a.close-canvas-menu:hover{color:#fff}.full-height{height:100%}.fh-breadcrumb{height:calc(100% - 196px);margin:0 -15px;position:relative}.fh-no-breadcrumb{height:calc(100% - 99px);margin:0 -15px;position:relative}.fh-column{background:#fff;height:100%;width:240px;float:left}.spiner-example{height:200px;padding-top:70px}.p-xxs{padding:5px}.p-xs{padding:10px}.p-sm{padding:15px}.p-m{padding:20px}.p-md{padding:25px}.p-lg{padding:30px}.p-xl{padding:40px}.m-xxs{margin:2px 4px}.m-xs{margin:5px}.m-sm{margin:10px}.m{margin:15px}.m-md{margin:20px}.m-lg{margin:30px}.m-xl{margin:50px}.m-n{margin:0 !important}.m-l-none{margin-left:0}.m-l-none-i{margin-left:0 !important}.m-l-xs{margin-left:5px}.m-l-sm{margin-left:10px}.m-l{margin-left:15px}.m-l-md{margin-left:20px}.m-l-lg{margin-left:30px}.m-l-xl{margin-left:40px}.m-l-n-xxs{margin-left:-1px}.m-l-n-xs{margin-left:-5px}.m-l-n-sm{margin-left:-10px}.m-l-n{margin-left:-15px}.m-l-n-md{margin-left:-20px}.m-l-n-lg{margin-left:-30px}.m-l-n-xl{margin-left:-40px}.m-t-none{margin-top:0}.m-t-none-i{margin-top:0 !important}.m-t-xxs{margin-top:1px}.m-t-xs{margin-top:5px}.m-t-sm{margin-top:10px}.m-t{margin-top:15px}.m-t-md{margin-top:20px}.m-t-lg{margin-top:30px}.m-t-xl{margin-top:40px}.m-t-n-xxs{margin-top:-1px}.m-t-n-xs{margin-top:-5px}.m-t-n-sm{margin-top:-10px}.m-t-n{margin-top:-15px}.m-t-n-md{margin-top:-20px}.m-t-n-lg{margin-top:-30px}.m-t-n-xl{margin-top:-40px}.m-r-none{margin-right:0}.m-r-none-i{margin-right:0 !important}.m-r-xxs{margin-right:1px}.m-r-xs{margin-right:5px}.m-r-sm{margin-right:10px}.m-r{margin-right:15px}.m-r-md{margin-right:20px}.m-r-lg{margin-right:30px}.m-r-xl{margin-right:40px}.m-r-n-xxs{margin-right:-1px}.m-r-n-xs{margin-right:-5px}.m-r-n-sm{margin-right:-10px}.m-r-n{margin-right:-15px}.m-r-n-md{margin-right:-20px}.m-r-n-lg{margin-right:-30px}.m-r-n-xl{margin-right:-40px}.m-b-none{margin-bottom:0}.m-b-none-i{margin-bottom:0 !important}.m-b-xxs{margin-bottom:1px}.m-b-xs{margin-bottom:5px}.m-b-sm{margin-bottom:10px}.m-b{margin-bottom:15px}.m-b-md{margin-bottom:20px}.m-b-lg{margin-bottom:30px}.m-b-xl{margin-bottom:40px}.m-b-n-xxs{margin-bottom:-1px}.m-b-n-xs{margin-bottom:-5px}.m-b-n-sm{margin-bottom:-10px}.m-b-n{margin-bottom:-15px}.m-b-n-md{margin-bottom:-20px}.m-b-n-lg{margin-bottom:-30px}.m-b-n-xl{margin-bottom:-40px}.space-15{margin:15px 0}.space-20{margin:20px 0}.space-25{margin:25px 0}.space-30{margin:30px 0}body.modal-open{padding-right:inherit !important}.jvectormap-zoomin,.jvectormap-zoomout{width:15px;height:15px;background:#1ab394}.search-form{margin-top:10px}.search-result h3{margin-bottom:0;color:#1e0fbe}.search-result .search-link{color:#006621}.search-result p{font-size:12px;margin-top:5px}.contact-box{background-color:#fff;border:1px solid #c2c4cc;padding:20px;margin-bottom:20px}.contact-box a{color:inherit}.invoice-table tbody>tr>td:last-child,.invoice-table tbody>tr>td:nth-child(4),.invoice-table tbody>tr>td:nth-child(3),.invoice-table tbody>tr>td:nth-child(2){text-align:right}.invoice-table thead>tr>th:last-child,.invoice-table thead>tr>th:nth-child(4),.invoice-table thead>tr>th:nth-child(3),.invoice-table thead>tr>th:nth-child(2){text-align:right}.invoice-total>tbody>tr>td:first-child{text-align:right}.invoice-total>tbody>tr>td{border:0 none}.invoice-total>tbody>tr>td:last-child{border-bottom:1px solid #ddd;text-align:right;width:15%}.middle-box{max-width:400px;z-index:100;margin:0 auto;padding-top:40px}.lockscreen.middle-box{width:200px;padding-top:110px}.loginscreen.middle-box{width:300px}.loginColumns{max-width:800px;margin:0 auto;padding:100px 20px 20px 20px}.passwordBox{max-width:460px;margin:0 auto;padding:100px 20px 20px 20px}.logo-name{color:#e6e6e6;font-size:180px;font-weight:800;letter-spacing:-10px;margin-bottom:0px}.middle-box h1{font-size:170px}.wrapper .middle-box{margin-top:140px}.lock-word{z-index:10;position:absolute;top:110px;left:50%;margin-left:-470px}.lock-word span{font-size:100px;font-weight:600;color:#e9e9e9;display:inline-block}.lock-word .first-word{margin-right:160px}.dashboard-header{border-top:0;padding:20px 20px 20px 20px}.dashboard-header h2{margin-top:10px;font-size:26px}.fist-item{border-top:none !important}.statistic-box{margin-top:40px}.dashboard-header .list-group-item span.label{margin-right:10px}.list-group.clear-list .list-group-item{border-top:1px solid #c2c4cc;border-bottom:0;border-right:0;border-left:0;padding:10px 0}ul.clear-list:first-child{border-top:none !important}.timeline-item .date i{position:absolute;top:0;right:0;padding:5px;width:30px;text-align:center;border-top:1px solid #c2c4cc;border-bottom:1px solid #c2c4cc;border-left:1px solid #c2c4cc;background:#f8f8f8}.timeline-item .date{text-align:right;width:110px;position:relative;padding-top:30px}.timeline-item .content{border-left:1px solid #c2c4cc;border-top:1px solid #c2c4cc;padding-top:10px;min-height:100px}.timeline-item .content:hover{background:#f6f6f6}ul.notes li,ul.tag-list li{list-style:none}ul.notes li h4{margin-top:20px;font-size:16px}ul.notes li div{text-decoration:none;color:#000;background:#ffc;display:block;height:140px;width:140px;padding:1em;position:relative}ul.notes li div small{position:absolute;top:5px;right:5px;font-size:10px}ul.notes li div a{position:absolute;right:10px;bottom:10px;color:inherit}ul.notes li{margin:10px 40px 50px 0px;float:left}ul.notes li div p{font-size:12px}ul.notes li div{text-decoration:none;color:#000;background:#ffc;display:block;height:140px;width:140px;padding:1em;-moz-box-shadow:5px 5px 2px #212121;-webkit-box-shadow:5px 5px 2px rgba(33,33,33,.7);box-shadow:5px 5px 2px rgba(33,33,33,.7)}ul.notes li div{-webkit-transform:rotate(-6deg);-o-transform:rotate(-6deg);-moz-transform:rotate(-6deg)}ul.notes li:nth-child(even) div{-o-transform:rotate(4deg);-webkit-transform:rotate(4deg);-moz-transform:rotate(4deg);position:relative;top:5px}ul.notes li:nth-child(3n) div{-o-transform:rotate(-3deg);-webkit-transform:rotate(-3deg);-moz-transform:rotate(-3deg);position:relative;top:-5px}ul.notes li:nth-child(5n) div{-o-transform:rotate(5deg);-webkit-transform:rotate(5deg);-moz-transform:rotate(5deg);position:relative;top:-10px}ul.notes li div:hover,ul.notes li div:focus{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-o-transform:scale(1.1);position:relative;z-index:5}ul.notes li div{text-decoration:none;color:#000;background:#ffc;display:block;height:210px;width:210px;padding:1em;-moz-box-shadow:5px 5px 7px #212121;-webkit-box-shadow:5px 5px 7px rgba(33,33,33,.7);box-shadow:5px 5px 7px rgba(33,33,33,.7);-moz-transition:-moz-transform .15s linear;-o-transition:-o-transform .15s linear;-webkit-transition:-webkit-transform .15s linear}.file-box{float:left;width:220px}.file-manager h5{text-transform:uppercase}.file-manager{list-style:none outside none;margin:0;padding:0}.folder-list li a{color:#666;display:block;padding:5px 0}.folder-list li{border-bottom:1px solid #c2c4cc;display:block}.folder-list li i{margin-right:8px;color:#3d4d5d}.category-list li a{color:#666;display:block;padding:5px 0}.category-list li{display:block}.category-list li i{margin-right:8px;color:#3d4d5d}.category-list li a .text-navy{color:#291972}.category-list li a .text-primary{color:#007138}.category-list li a .text-info{color:#ffd942}.category-list li a .text-danger{color:#ef5352}.category-list li a .text-warning{color:#f8ac59}.file-manager h5.tag-title{margin-top:20px}.tag-list li{float:left}.tag-list li a{font-size:10px;background-color:#f3f3f4;padding:5px 12px;color:inherit;border-radius:2px;border:1px solid #c2c4cc;margin-right:5px;margin-top:5px;display:block}.file{border:1px solid #c2c4cc;padding:0;background-color:#fff;position:relative;margin-bottom:20px;margin-right:20px}.file-manager .hr-line-dashed{margin:15px 0}.file .icon,.file .image{height:100px;overflow:hidden}.file .icon{padding:15px 10px;text-align:center}.file-control{color:inherit;font-size:11px;margin-right:10px}.file-control.active{text-decoration:underline}.file .icon i{font-size:70px;color:#dadada}.file .file-name{padding:10px;background-color:#f8f8f8;border-top:1px solid #c2c4cc}.file-name small{color:#121321}.file-name p{color:#121321;font-weight:700}.corner{position:absolute;display:inline-block;width:0;height:0;line-height:0;border:.6em solid rgba(0,0,0,0);border-right:.6em solid #f1f1f1;border-bottom:.6em solid #f1f1f1;right:0em;bottom:0em}a.compose-mail{padding:8px 10px}.mail-search{max-width:300px}.profile-content{border-top:none !important}.feed-activity-list .feed-element{border-bottom:1px solid #c2c4cc}.feed-element:first-child{margin-top:0}.feed-element{padding-bottom:15px}.feed-element,.feed-element .media{margin-top:15px}.feed-element,.media-body{overflow:hidden}.feed-element>.pull-left{margin-right:10px}.feed-element img.img-circle,.dropdown-messages-box img.img-circle{width:38px;height:38px}.feed-element .well{border:1px solid #c2c4cc;box-shadow:none;margin-top:10px;margin-bottom:5px;padding:10px 20px;font-size:11px;line-height:16px}.feed-element .actions{margin-top:10px}.feed-element .photos{margin:10px 0}.feed-photo{max-height:180px;border-radius:4px;overflow:hidden;margin-right:10px;margin-bottom:10px}.mail-box{background-color:#fff;border:1px solid #c2c4cc;border-top:0;padding:0px;margin-bottom:20px}.mail-box-header{background-color:#fff;border:1px solid #c2c4cc;border-bottom:0;padding:30px 20px 20px 20px}.mail-box-header h2{margin-top:0px}.mailbox-content .tag-list li a{background:#fff}.mail-body{border-top:1px solid #c2c4cc;padding:20px}.mail-text{border-top:1px solid #c2c4cc}.mail-text .note-toolbar{padding:10px 15px}.mail-body .form-group{margin-bottom:5px}.mail-text .note-editor .note-toolbar{background-color:#f9f8f8}.mail-attachment{border-top:1px solid #c2c4cc;padding:20px;font-size:12px}.mailbox-content{background:none;border:none;padding:10px}.mail-ontact{width:23%}.project-people,.project-actions{text-align:right;vertical-align:middle}dd.project-people{text-align:left;margin-top:5px}.project-people img{width:32px;height:32px}.project-title a{font-size:14px;color:#121321;font-weight:600}.project-list table tr td{border-top:none;border-bottom:1px solid #c2c4cc;padding:15px 10px;vertical-align:middle}.project-manager .tag-list li a{font-size:10px;background-color:#fff;padding:5px 12px;color:inherit;border-radius:2px;border:1px solid #c2c4cc;margin-right:5px;margin-top:5px;display:block}.project-files li a{font-size:11px;color:#121321;margin-left:10px;line-height:22px}.faq-item{padding:20px;margin-bottom:2px;background:#fff}.faq-question{font-size:18px;font-weight:600;color:#291972;display:block}.faq-question:hover{color:rgb(33.4784172662,20.4136690647,93.0863309353)}.faq-answer{margin-top:10px;background:#f3f3f4;border:1px solid #c2c4cc;border-radius:3px;padding:15px}.faq-item .tag-item{background:#f3f3f4;padding:2px 6px;font-size:10px;text-transform:uppercase}.message-input{height:90px !important}.chat-avatar{white:36px;height:36px;float:left;margin-right:10px}.chat-user-name{padding:10px}.chat-user{padding:8px 10px;border-bottom:1px solid #c2c4cc}.chat-user a{color:inherit}.chat-view{z-index:20012}.chat-users,.chat-statistic{margin-left:-30px}@media(max-width: 992px){.chat-users,.chat-statistic{margin-left:0px}}.chat-view .ibox-content{padding:0}.chat-message{padding:10px 20px}.message-avatar{height:48px;width:48px;border:1px solid #c2c4cc;border-radius:4px;margin-top:1px}.chat-discussion .chat-message.left .message-avatar{float:left;margin-right:10px}.chat-discussion .chat-message.right .message-avatar{float:right;margin-left:10px}.message{background-color:#fff;border:1px solid #c2c4cc;text-align:left;display:block;padding:10px 20px;position:relative;border-radius:4px}.chat-discussion .chat-message.left .message-date{float:right}.chat-discussion .chat-message.right .message-date{float:left}.chat-discussion .chat-message.left .message{text-align:left;margin-left:55px}.chat-discussion .chat-message.right .message{text-align:right;margin-right:55px}.message-date{font-size:10px;color:#888}.message-content{display:block}.chat-discussion{background:#eee;padding:15px;height:400px;overflow-y:auto}.chat-users{overflow-y:auto;height:400px}.chat-message-form .form-group{margin-bottom:0}.jstree-open>.jstree-anchor>.fa-folder:before{content:\\\"\\\"}.jstree-default .jstree-icon.none{width:0}.clients-list{margin-top:20px}.clients-list .tab-pane{position:relative;height:600px}.client-detail{position:relative;height:620px}.clients-list table tr td{height:46px;vertical-align:middle;border:none}.client-link{font-weight:600;color:inherit}.client-link:hover{color:inherit}.client-avatar{width:42px}.client-avatar img{width:28px;height:28px;border-radius:50%}.contact-type{width:20px;color:rgb(81,85.5,148.5)}.client-status{text-align:left}.client-detail .vertical-timeline-content p{margin:0}.client-detail .vertical-timeline-icon.gray-bg{color:rgb(63,66.5,115.5)}.clients-list .nav-tabs>li.active>a,.clients-list .nav-tabs>li.active>a:hover,.clients-list .nav-tabs>li.active>a:focus{border-bottom:1px solid #fff}.blog h2{font-weight:700}.blog h5{margin:0 0 5px 0}.blog .btn{margin:0 0 5px 0}.article h1{font-size:48px;font-weight:700;color:#2f4050}.article p{font-size:15px;line-height:26px}.article-title{text-align:center;margin:40px 0 100px 0}.article .ibox-content{padding:40px}.issue-tracker .btn-link{color:#291972}table.issue-tracker tbody tr td{vertical-align:middle;height:50px}.issue-info{width:50%}.issue-info a{font-weight:600;color:#121321}.issue-info small{display:block}.team-members{margin:10px 0}.team-members img.img-circle{width:42px;height:42px;margin-bottom:5px}.sortable-list{padding:10px 0}.agile-list{list-style:none;margin:0}.agile-list li{background:#fafafb;border:1px solid #c2c4cc;margin:0px 0 10px 0;padding:10px;border-radius:2px}.agile-list li:hover{cursor:pointer;background:#fff}.agile-list li.warning-element{border-left:3px solid #ff8120}.agile-list li.danger-element{border-left:3px solid #ba0003}.agile-list li.info-element{border-left:3px solid #007138}.agile-list li.success-element{border-left:3px solid #291972}.agile-detail{margin-top:5px;font-size:12px}ins{background-color:#c6ffc6;text-decoration:none}del{background-color:#ffc6c6}.product-box{padding:0;border:1px solid #c2c4cc}.product-box:hover,.product-box.active{border:1px solid rgba(0,0,0,0);-webkit-box-shadow:0px 3px 7px 0px #a8a8a8;-moz-box-shadow:0px 3px 7px 0px #a8a8a8;box-shadow:0px 3px 7px 0px #a8a8a8}.product-imitation{text-align:center;padding:90px 0;background-color:hsl(240,4.347826087%,97.4901960784%);color:hsl(240,4.347826087%,75.4901960784%);font-weight:600}.product-imitation.xl{padding:120px 0}.product-desc{padding:20px;position:relative}.ecommerce .tag-list{padding:0}.ecommerce .fa-star{color:#d1dade}.ecommerce .fa-star.active{color:#ff8120}.ecommerce .note-editor{border:1px solid #c2c4cc}.product-name{font-size:16px;font-weight:600;color:#121321;display:block;margin:2px 0 5px 0}.product-name:hover,.product-name:focus{color:#291972}.product-price{font-size:14px;font-weight:600;color:#fff;background-color:#291972;padding:6px 12px;position:absolute;top:-32px;right:0}.social-feed-separated .social-feed-box{margin-left:62px}.social-feed-separated .social-avatar{float:left;padding:0}.social-feed-separated .social-avatar img{width:52px;height:52px;border:1px solid #c2c4cc}.social-feed-separated .social-feed-box .social-avatar{padding:15px 15px 0 15px;float:none}.social-feed-box{border:1px solid #c2c4cc;background:#fff;margin-bottom:15px}.article .social-feed-box{margin-bottom:0;border-bottom:none}.article .social-feed-box:last-child{margin-bottom:0;border-bottom:1px solid #c2c4cc}.article .social-feed-box p{font-size:13px;line-height:18px}.social-action{margin:15px}.social-avatar{padding:15px 15px 0 15px}.social-comment .social-comment{margin-left:45px}.social-avatar img{height:40px;width:40px;margin-right:10px}.social-avatar .media-body a{font-size:14px;display:block}.social-body{padding:15px}.social-body img{margin-bottom:10px}.social-footer{border-top:1px solid #c2c4cc;padding:10px 15px;background:#f9f9f9}.social-footer .social-comment img{width:32px;margin-right:10px}.social-comment:first-child{margin-top:0}.social-comment{margin-top:15px}.social-comment textarea{font-size:12px}#small-chat{position:fixed;bottom:20px;right:20px;z-index:100}#small-chat .badge{position:absolute;top:-3px;right:-4px}.open-small-chat{height:38px;width:38px;display:block;background:#1ab394;padding:9px 8px;text-align:center;color:#fff;border-radius:50%}.open-small-chat:hover{color:#fff;background:#1ab394}.small-chat-box{display:none;position:fixed;bottom:20px;right:75px;background:#fff;border:1px solid #c2c4cc;width:230px;height:320px;border-radius:4px}.small-chat-box.ng-small-chat{display:block}.body-small .small-chat-box{bottom:70px;right:20px}.small-chat-box.active{display:block}.small-chat-box .heading{background:#231556;padding:8px 15px;font-weight:bold;color:#fff}.small-chat-box .chat-date{opacity:.6;font-size:10px;font-weight:normal}.small-chat-box .content{padding:15px 15px}.small-chat-box .content .author-name{font-weight:bold;margin-bottom:3px;font-size:11px}.small-chat-box .content>div{padding-bottom:20px}.small-chat-box .content .chat-message{padding:5px 10px;border-radius:6px;font-size:11px;line-height:14px;max-width:80%;background:#f3f3f4;margin-bottom:10px}.small-chat-box .content .chat-message.active{background:#1ab394;color:#fff}.small-chat-box .content .left{text-align:left;clear:both}.small-chat-box .content .left .chat-message{float:left}.small-chat-box .content .right{text-align:right;clear:both}.small-chat-box .content .right .chat-message{float:right}.small-chat-box .form-chat{padding:10px 10px}.metismenu .plus-minus,.metismenu .plus-times{float:right}.metismenu .arrow{float:right;line-height:1.42857}.metismenu .glyphicon.arrow:before{content:\\\"\\\"}.metismenu .active>a>.glyphicon.arrow:before{content:\\\"\\\"}.metismenu .fa.arrow:before{content:\\\"\\\"}.metismenu .active>a>.fa.arrow:before{content:\\\"\\\"}.metismenu .ion.arrow:before{content:\\\"\\\"}.metismenu .active>a>.ion.arrow:before{content:\\\"\\\"}.metismenu .fa.plus-minus:before,.metismenu .fa.plus-times:before{content:\\\"\\\"}.metismenu .active>a>.fa.plus-times{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.metismenu .active>a>.fa.plus-minus:before{content:\\\"\\\"}.metismenu .collapse{display:none}.metismenu .collapse.in{display:block}.metismenu .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;transition-property:height,visibility}.sk-spinner-rotating-plane.sk-spinner{width:30px;height:30px;background-color:#291972;margin:0 auto;-webkit-animation:sk-rotatePlane 1.2s infinite ease-in-out;animation:sk-rotatePlane 1.2s infinite ease-in-out}@-webkit-keyframes sk-rotatePlane{0%{-webkit-transform:perspective(120px) rotateX(0deg) rotateY(0deg);transform:perspective(120px) rotateX(0deg) rotateY(0deg)}50%{-webkit-transform:perspective(120px) rotateX(-180.1deg) rotateY(0deg);transform:perspective(120px) rotateX(-180.1deg) rotateY(0deg)}100%{-webkit-transform:perspective(120px) rotateX(-180deg) rotateY(-179.9deg);transform:perspective(120px) rotateX(-180deg) rotateY(-179.9deg)}}@keyframes sk-rotatePlane{0%{-webkit-transform:perspective(120px) rotateX(0deg) rotateY(0deg);transform:perspective(120px) rotateX(0deg) rotateY(0deg)}50%{-webkit-transform:perspective(120px) rotateX(-180.1deg) rotateY(0deg);transform:perspective(120px) rotateX(-180.1deg) rotateY(0deg)}100%{-webkit-transform:perspective(120px) rotateX(-180deg) rotateY(-179.9deg);transform:perspective(120px) rotateX(-180deg) rotateY(-179.9deg)}}.sk-spinner-double-bounce.sk-spinner{width:40px;height:40px;position:relative;margin:0 auto}.sk-spinner-double-bounce .sk-double-bounce1,.sk-spinner-double-bounce .sk-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#291972;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:sk-doubleBounce 2s infinite ease-in-out;animation:sk-doubleBounce 2s infinite ease-in-out}.sk-spinner-double-bounce .sk-double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes sk-doubleBounce{0%,100%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes sk-doubleBounce{0%,100%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}.sk-spinner-wave.sk-spinner{margin:0 auto;width:50px;height:30px;text-align:center;font-size:10px}.sk-spinner-wave div{background-color:#291972;height:100%;width:6px;display:inline-block;-webkit-animation:sk-waveStretchDelay 1.2s infinite ease-in-out;animation:sk-waveStretchDelay 1.2s infinite ease-in-out}.sk-spinner-wave .sk-rect2{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.sk-spinner-wave .sk-rect3{-webkit-animation-delay:-1s;animation-delay:-1s}.sk-spinner-wave .sk-rect4{-webkit-animation-delay:-0.9s;animation-delay:-0.9s}.sk-spinner-wave .sk-rect5{-webkit-animation-delay:-0.8s;animation-delay:-0.8s}@-webkit-keyframes sk-waveStretchDelay{0%,40%,100%{-webkit-transform:scaleY(0.4);transform:scaleY(0.4)}20%{-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes sk-waveStretchDelay{0%,40%,100%{-webkit-transform:scaleY(0.4);transform:scaleY(0.4)}20%{-webkit-transform:scaleY(1);transform:scaleY(1)}}.sk-spinner-wandering-cubes.sk-spinner{margin:0 auto;width:32px;height:32px;position:relative}.sk-spinner-wandering-cubes .sk-cube1,.sk-spinner-wandering-cubes .sk-cube2{background-color:#291972;width:10px;height:10px;position:absolute;top:0;left:0;-webkit-animation:sk-wanderingCubeMove 1.8s infinite ease-in-out;animation:sk-wanderingCubeMove 1.8s infinite ease-in-out}.sk-spinner-wandering-cubes .sk-cube2{-webkit-animation-delay:-0.9s;animation-delay:-0.9s}@-webkit-keyframes sk-wanderingCubeMove{25%{-webkit-transform:translateX(42px) rotate(-90deg) scale(0.5);transform:translateX(42px) rotate(-90deg) scale(0.5)}50%{-webkit-transform:translateX(42px) translateY(42px) rotate(-179deg);transform:translateX(42px) translateY(42px) rotate(-179deg)}50.1%{-webkit-transform:translateX(42px) translateY(42px) rotate(-180deg);transform:translateX(42px) translateY(42px) rotate(-180deg)}75%{-webkit-transform:translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);transform:translateX(0px) translateY(42px) rotate(-270deg) scale(0.5)}100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}@keyframes sk-wanderingCubeMove{25%{-webkit-transform:translateX(42px) rotate(-90deg) scale(0.5);transform:translateX(42px) rotate(-90deg) scale(0.5)}50%{-webkit-transform:translateX(42px) translateY(42px) rotate(-179deg);transform:translateX(42px) translateY(42px) rotate(-179deg)}50.1%{-webkit-transform:translateX(42px) translateY(42px) rotate(-180deg);transform:translateX(42px) translateY(42px) rotate(-180deg)}75%{-webkit-transform:translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);transform:translateX(0px) translateY(42px) rotate(-270deg) scale(0.5)}100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}.sk-spinner-pulse.sk-spinner{width:40px;height:40px;margin:0 auto;background-color:#291972;border-radius:100%;-webkit-animation:sk-pulseScaleOut 1s infinite ease-in-out;animation:sk-pulseScaleOut 1s infinite ease-in-out}@-webkit-keyframes sk-pulseScaleOut{0%{-webkit-transform:scale(0);transform:scale(0)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:0}}@keyframes sk-pulseScaleOut{0%{-webkit-transform:scale(0);transform:scale(0)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:0}}.sk-spinner-chasing-dots.sk-spinner{margin:0 auto;width:40px;height:40px;position:relative;text-align:center;-webkit-animation:sk-chasingDotsRotate 2s infinite linear;animation:sk-chasingDotsRotate 2s infinite linear}.sk-spinner-chasing-dots .sk-dot1,.sk-spinner-chasing-dots .sk-dot2{width:60%;height:60%;display:inline-block;position:absolute;top:0;background-color:#291972;border-radius:100%;-webkit-animation:sk-chasingDotsBounce 2s infinite ease-in-out;animation:sk-chasingDotsBounce 2s infinite ease-in-out}.sk-spinner-chasing-dots .sk-dot2{top:auto;bottom:0px;-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes sk-chasingDotsRotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes sk-chasingDotsRotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes sk-chasingDotsBounce{0%,100%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes sk-chasingDotsBounce{0%,100%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}.sk-spinner-three-bounce.sk-spinner{margin:0 auto;width:70px;text-align:center}.sk-spinner-three-bounce div{width:18px;height:18px;background-color:#291972;border-radius:100%;display:inline-block;-webkit-animation:sk-threeBounceDelay 1.4s infinite ease-in-out;animation:sk-threeBounceDelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.sk-spinner-three-bounce .sk-bounce1{-webkit-animation-delay:-0.32s;animation-delay:-0.32s}.sk-spinner-three-bounce .sk-bounce2{-webkit-animation-delay:-0.16s;animation-delay:-0.16s}@-webkit-keyframes sk-threeBounceDelay{0%,80%,100%{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes sk-threeBounceDelay{0%,80%,100%{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.sk-spinner-circle.sk-spinner{margin:0 auto;width:22px;height:22px;position:relative}.sk-spinner-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.sk-spinner-circle .sk-circle:before{content:\\\"\\\";display:block;margin:0 auto;width:20%;height:20%;background-color:#291972;border-radius:100%;-webkit-animation:sk-circleBounceDelay 1.2s infinite ease-in-out;animation:sk-circleBounceDelay 1.2s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.sk-spinner-circle .sk-circle2{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);transform:rotate(30deg)}.sk-spinner-circle .sk-circle3{-webkit-transform:rotate(60deg);-ms-transform:rotate(60deg);transform:rotate(60deg)}.sk-spinner-circle .sk-circle4{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.sk-spinner-circle .sk-circle5{-webkit-transform:rotate(120deg);-ms-transform:rotate(120deg);transform:rotate(120deg)}.sk-spinner-circle .sk-circle6{-webkit-transform:rotate(150deg);-ms-transform:rotate(150deg);transform:rotate(150deg)}.sk-spinner-circle .sk-circle7{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.sk-spinner-circle .sk-circle8{-webkit-transform:rotate(210deg);-ms-transform:rotate(210deg);transform:rotate(210deg)}.sk-spinner-circle .sk-circle9{-webkit-transform:rotate(240deg);-ms-transform:rotate(240deg);transform:rotate(240deg)}.sk-spinner-circle .sk-circle10{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.sk-spinner-circle .sk-circle11{-webkit-transform:rotate(300deg);-ms-transform:rotate(300deg);transform:rotate(300deg)}.sk-spinner-circle .sk-circle12{-webkit-transform:rotate(330deg);-ms-transform:rotate(330deg);transform:rotate(330deg)}.sk-spinner-circle .sk-circle2:before{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.sk-spinner-circle .sk-circle3:before{-webkit-animation-delay:-1s;animation-delay:-1s}.sk-spinner-circle .sk-circle4:before{-webkit-animation-delay:-0.9s;animation-delay:-0.9s}.sk-spinner-circle .sk-circle5:before{-webkit-animation-delay:-0.8s;animation-delay:-0.8s}.sk-spinner-circle .sk-circle6:before{-webkit-animation-delay:-0.7s;animation-delay:-0.7s}.sk-spinner-circle .sk-circle7:before{-webkit-animation-delay:-0.6s;animation-delay:-0.6s}.sk-spinner-circle .sk-circle8:before{-webkit-animation-delay:-0.5s;animation-delay:-0.5s}.sk-spinner-circle .sk-circle9:before{-webkit-animation-delay:-0.4s;animation-delay:-0.4s}.sk-spinner-circle .sk-circle10:before{-webkit-animation-delay:-0.3s;animation-delay:-0.3s}.sk-spinner-circle .sk-circle11:before{-webkit-animation-delay:-0.2s;animation-delay:-0.2s}.sk-spinner-circle .sk-circle12:before{-webkit-animation-delay:-0.1s;animation-delay:-0.1s}@-webkit-keyframes sk-circleBounceDelay{0%,80%,100%{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes sk-circleBounceDelay{0%,80%,100%{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.sk-spinner-cube-grid.sk-spinner{width:30px;height:30px;margin:0 auto}.sk-spinner-cube-grid .sk-cube{width:33%;height:33%;background-color:#291972;float:left;-webkit-animation:sk-cubeGridScaleDelay 1.3s infinite ease-in-out;animation:sk-cubeGridScaleDelay 1.3s infinite ease-in-out}.sk-spinner-cube-grid .sk-cube:nth-child(1){-webkit-animation-delay:.2s;animation-delay:.2s}.sk-spinner-cube-grid .sk-cube:nth-child(2){-webkit-animation-delay:.3s;animation-delay:.3s}.sk-spinner-cube-grid .sk-cube:nth-child(3){-webkit-animation-delay:.4s;animation-delay:.4s}.sk-spinner-cube-grid .sk-cube:nth-child(4){-webkit-animation-delay:.1s;animation-delay:.1s}.sk-spinner-cube-grid .sk-cube:nth-child(5){-webkit-animation-delay:.2s;animation-delay:.2s}.sk-spinner-cube-grid .sk-cube:nth-child(6){-webkit-animation-delay:.3s;animation-delay:.3s}.sk-spinner-cube-grid .sk-cube:nth-child(7){-webkit-animation-delay:0s;animation-delay:0s}.sk-spinner-cube-grid .sk-cube:nth-child(8){-webkit-animation-delay:.1s;animation-delay:.1s}.sk-spinner-cube-grid .sk-cube:nth-child(9){-webkit-animation-delay:.2s;animation-delay:.2s}@-webkit-keyframes sk-cubeGridScaleDelay{0%,70%,100%{-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}35%{-webkit-transform:scale3D(0, 0, 1);transform:scale3D(0, 0, 1)}}@keyframes sk-cubeGridScaleDelay{0%,70%,100%{-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}35%{-webkit-transform:scale3D(0, 0, 1);transform:scale3D(0, 0, 1)}}.sk-spinner-wordpress.sk-spinner{background-color:#291972;width:30px;height:30px;border-radius:30px;position:relative;margin:0 auto;-webkit-animation:sk-innerCircle 1s linear infinite;animation:sk-innerCircle 1s linear infinite}.sk-spinner-wordpress .sk-inner-circle{display:block;background-color:#fff;width:8px;height:8px;position:absolute;border-radius:8px;top:5px;left:5px}@-webkit-keyframes sk-innerCircle{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes sk-innerCircle{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.sk-spinner-fading-circle.sk-spinner{margin:0 auto;width:22px;height:22px;position:relative}.sk-spinner-fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.sk-spinner-fading-circle .sk-circle:before{content:\\\"\\\";display:block;margin:0 auto;width:18%;height:18%;background-color:#291972;border-radius:100%;-webkit-animation:sk-circleFadeDelay 1.2s infinite ease-in-out;animation:sk-circleFadeDelay 1.2s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.sk-spinner-fading-circle .sk-circle2{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);transform:rotate(30deg)}.sk-spinner-fading-circle .sk-circle3{-webkit-transform:rotate(60deg);-ms-transform:rotate(60deg);transform:rotate(60deg)}.sk-spinner-fading-circle .sk-circle4{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.sk-spinner-fading-circle .sk-circle5{-webkit-transform:rotate(120deg);-ms-transform:rotate(120deg);transform:rotate(120deg)}.sk-spinner-fading-circle .sk-circle6{-webkit-transform:rotate(150deg);-ms-transform:rotate(150deg);transform:rotate(150deg)}.sk-spinner-fading-circle .sk-circle7{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.sk-spinner-fading-circle .sk-circle8{-webkit-transform:rotate(210deg);-ms-transform:rotate(210deg);transform:rotate(210deg)}.sk-spinner-fading-circle .sk-circle9{-webkit-transform:rotate(240deg);-ms-transform:rotate(240deg);transform:rotate(240deg)}.sk-spinner-fading-circle .sk-circle10{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.sk-spinner-fading-circle .sk-circle11{-webkit-transform:rotate(300deg);-ms-transform:rotate(300deg);transform:rotate(300deg)}.sk-spinner-fading-circle .sk-circle12{-webkit-transform:rotate(330deg);-ms-transform:rotate(330deg);transform:rotate(330deg)}.sk-spinner-fading-circle .sk-circle2:before{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.sk-spinner-fading-circle .sk-circle3:before{-webkit-animation-delay:-1s;animation-delay:-1s}.sk-spinner-fading-circle .sk-circle4:before{-webkit-animation-delay:-0.9s;animation-delay:-0.9s}.sk-spinner-fading-circle .sk-circle5:before{-webkit-animation-delay:-0.8s;animation-delay:-0.8s}.sk-spinner-fading-circle .sk-circle6:before{-webkit-animation-delay:-0.7s;animation-delay:-0.7s}.sk-spinner-fading-circle .sk-circle7:before{-webkit-animation-delay:-0.6s;animation-delay:-0.6s}.sk-spinner-fading-circle .sk-circle8:before{-webkit-animation-delay:-0.5s;animation-delay:-0.5s}.sk-spinner-fading-circle .sk-circle9:before{-webkit-animation-delay:-0.4s;animation-delay:-0.4s}.sk-spinner-fading-circle .sk-circle10:before{-webkit-animation-delay:-0.3s;animation-delay:-0.3s}.sk-spinner-fading-circle .sk-circle11:before{-webkit-animation-delay:-0.2s;animation-delay:-0.2s}.sk-spinner-fading-circle .sk-circle12:before{-webkit-animation-delay:-0.1s;animation-delay:-0.1s}@-webkit-keyframes sk-circleFadeDelay{0%,39%,100%{opacity:0}40%{opacity:1}}@keyframes sk-circleFadeDelay{0%,39%,100%{opacity:0}40%{opacity:1}}body.rtls #page-wrapper{margin:0 220px 0 0}body.rtls .nav-second-level li a{padding:7px 35px 7px 10px}body.rtls .ibox-title h5{float:right}body.rtls .pull-right{float:left !important}body.rtls .pull-left{float:right !important}body.rtls .ibox-tools{float:left}body.rtls .stat-percent{float:left}body.rtls .navbar-right{float:left !important}body.rtls .navbar-top-links li:last-child{margin-left:40px;margin-right:0}body.rtls .minimalize-styl-2{float:right;margin:14px 20px 5px 5px}body.rtls .feed-element>.pull-left{margin-left:10px;margin-right:0}body.rtls .timeline-item .date{text-align:left}body.rtls .timeline-item .date i{left:0;right:auto}body.rtls .timeline-item .content{border-right:1px solid #c2c4cc;border-left:none}body.rtls .theme-config{left:0;right:auto}body.rtls .spin-icon{border-radius:0 20px 20px 0}body.rtls .toast-close-button{float:left}body.rtls #toast-container>.toast:before{margin:auto -1.5em auto .5em}body.rtls #toast-container>div{padding:15px 50px 15px 15px}body.rtls .center-orientation .vertical-timeline-icon i{margin-left:0;margin-right:-12px}body.rtls .vertical-timeline-icon i{right:50%;left:auto;margin-left:auto;margin-right:-12px}body.rtls .file-box{float:right}body.rtls ul.notes li{float:right}body.rtls .chat-users,body.rtls .chat-statistic{margin-right:-30px;margin-left:auto}body.rtls .dropdown-menu>li>a{text-align:right}body.rtls .b-r{border-left:1px solid #c2c4cc;border-right:none}body.rtls .dd-list .dd-list{padding-right:30px;padding-left:0}body.rtls .dd-item>button{float:right}body.rtls .theme-config-box{margin-left:-220px;margin-right:0}body.rtls .theme-config-box.show{margin-left:0;margin-right:0}body.rtls .spin-icon{right:0;left:auto}body.rtls .skin-setttings{margin-right:40px;margin-left:0}body.rtls .skin-setttings{direction:ltr}body.rtls .footer.fixed{margin-right:220px;margin-left:0}@media(max-width: 992px){body.rtls .chat-users,body.rtls .chat-statistic{margin-right:0px}}body.rtls.mini-navbar .footer.fixed,body.body-small.mini-navbar .footer.fixed{margin:0 70px 0 0}body.rtls.mini-navbar.fixed-sidebar .footer.fixed,body.body-small.mini-navbar .footer.fixed{margin:0 0 0 0}body.rtls.top-navigation .navbar-toggle{float:right;margin-left:15px;margin-right:15px}.body-small.rtls.top-navigation .navbar-header{float:none}body.rtls.top-navigation #page-wrapper{margin:0}body.rtls.mini-navbar #page-wrapper{margin:0 70px 0 0}body.rtls.mini-navbar.fixed-sidebar #page-wrapper{margin:0 0 0 0}body.rtls.body-small.fixed-sidebar.mini-navbar #page-wrapper{margin:0 220px 0 0}body.rtls.body-small.fixed-sidebar.mini-navbar .navbar-static-side{width:220px}.body-small.rtls .navbar-fixed-top{margin-right:0px}.body-small.rtls .navbar-header{float:right}body.rtls .navbar-top-links li:last-child{margin-left:20px}body.rtls .top-navigation #page-wrapper,body.rtls.mini-navbar .top-navigation #page-wrapper,body.rtls.mini-navbar.top-navigation #page-wrapper{margin:0}body.rtls .top-navigation .footer.fixed,body.rtls.top-navigation .footer.fixed{margin:0}@media(max-width: 768px){body.rtls .navbar-top-links li:last-child{margin-left:20px}.body-small.rtls #page-wrapper{position:inherit;margin:0 0 0 0px;min-height:1000px}.body-small.rtls .navbar-static-side{display:none;z-index:1001;position:absolute;width:70px}.body-small.rtls.mini-navbar .navbar-static-side{display:block}.rtls.fixed-sidebar.body-small .navbar-static-side{display:none;z-index:1 1;position:fixed;width:220px}.rtls.fixed-sidebar.body-small.mini-navbar .navbar-static-side{display:block}}.rtls .ltr-support{direction:ltr}.theme-config{position:absolute;top:90px;right:0px;overflow:hidden}.theme-config-box{margin-right:-220px;position:relative;z-index:2000;transition-duration:.8s}.theme-config-box.show{margin-right:0px}.spin-icon{background:#291972;position:absolute;padding:7px 10px 7px 13px;border-radius:20px 0px 0px 20px;font-size:16px;top:0;left:0px;width:40px;color:#fff;cursor:pointer}.skin-setttings{width:220px;margin-left:40px;background:#f3f3f4}.skin-setttings .title{background:#efefef;text-align:center;text-transform:uppercase;font-weight:600;display:block;padding:10px 15px;font-size:12px}.setings-item{padding:10px 30px}.setings-item.skin{text-align:center}.setings-item .switch{float:right}.skin-name a{text-transform:uppercase}.setings-item a{color:#fff}.default-skin,.blue-skin,.ultra-skin,.yellow-skin{text-align:center}.default-skin{font-weight:600;background:#1ab394}.default-skin:hover{background:#199d82}.blue-skin{font-weight:600;background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") repeat scroll 0 0}.blue-skin:hover{background:#0d8ddb}.yellow-skin{font-weight:600;background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") repeat scroll 0 100%}.yellow-skin:hover{background:#ce8735}.ultra-skin{font-weight:600;background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \") repeat scroll 0 0}.ultra-skin:hover{background:#1a2d40}.skin-1 .minimalize-styl-2{margin:14px 5px 5px 30px}.skin-1 .navbar-top-links li:last-child{margin-right:30px}.skin-1.fixed-nav .minimalize-styl-2{margin:14px 5px 5px 15px}.skin-1 .spin-icon{background:#0e9aef !important}.skin-1 .nav-header{background:#0e9aef;background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \")}.skin-1.mini-navbar .nav-second-level{background:#3e495f}.skin-1 .breadcrumb{background:rgba(0,0,0,0)}.skin-1 .page-heading{border:none}.skin-1 .nav>li.active{background:hsl(220,21.0191082803%,28.7843137255%)}.skin-1 .nav>li>a{color:#9ea6b9}.skin-1 .nav>li.active>a{color:#fff}.skin-1 .navbar-minimalize{background:#0e9aef;border-color:#0e9aef}body.skin-1{background:#3e495f}.skin-1 .navbar-static-top{background:#fff}.skin-1 .dashboard-header{background:rgba(0,0,0,0);border-bottom:none !important;border-top:none;padding:20px 30px 10px 30px}.fixed-nav.skin-1 .navbar-fixed-top{background:#fff}.skin-1 .wrapper-content{padding:30px 15px}.skin-1 #page-wrapper{background:#f4f6fa}.skin-1 .ibox-title,.skin-1 .ibox-content{border-width:1px}.skin-1 .ibox-content:last-child{border-style:solid solid solid solid}.skin-1 .nav>li.active{border:none}.skin-1 .nav-header{padding:35px 25px 25px 25px}.skin-1 .nav-header a.dropdown-toggle{color:#fff;margin-top:10px}.skin-1 .nav-header a.dropdown-toggle .text-muted{color:#fff;opacity:.8}.skin-1 .profile-element{text-align:center}.skin-1 .img-circle{border-radius:5px}.skin-1 .navbar-default .nav>li>a:hover,.skin-1 .navbar-default .nav>li>a:focus{background:hsl(220,21.0191082803%,28.7843137255%);color:#fff}.skin-1 .nav.nav-tabs>li.active>a{color:#555}.skin-1 .nav.nav-tabs>li.active{background:rgba(0,0,0,0)}body.skin-2{color:#565758 !important}.skin-2 .minimalize-styl-2{margin:14px 5px 5px 25px}.skin-2 .navbar-top-links li:last-child{margin-right:25px}.skin-2 .spin-icon{background:#23c6c8 !important}.skin-2 .nav-header{background:#23c6c8;background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \")}.skin-2.mini-navbar .nav-second-level{background:#ededed}.skin-2 .breadcrumb{background:rgba(0,0,0,0)}.skin-2.fixed-nav .minimalize-styl-2{margin:14px 5px 5px 15px}.skin-2 .page-heading{border:none;background:hsla(0,0%,100%,.7)}.skin-2 .nav>li.active{background:#e0e0e0}.skin-2 .logo-element{padding:17px 0}.skin-2 .nav>li>a,.skin-2 .welcome-message{color:#edf6ff}.skin-2 #top-search::-moz-placeholder{color:#121321;font:bold;opacity:.5}.skin-2 #side-menu>li>a,.skin-2 .nav.nav-second-level>li>a{color:#586b7d}.skin-2 .nav>li.active>a{color:#213a53}.skin-2.mini-navbar .nav-header{background:#213a53}.skin-2 .navbar-minimalize{background:#23c6c8;border-color:#23c6c8}.skin-2 .border-bottom{border-bottom:none !important}.skin-2 #top-search{color:#fff}body.skin-2 #wrapper{background-color:#ededed}.skin-2 .navbar-static-top{background:#213a53}.fixed-nav.skin-2 .navbar-fixed-top{background:#213a53;border-bottom:none !important}.skin-2 .nav-header{padding:30px 25px 30px 25px}.skin-2 .dashboard-header{background:hsla(0,0%,100%,.4);border-bottom:none !important;border-top:none;padding:20px 30px 20px 30px}.skin-2 .wrapper-content{padding:30px 15px}.skin-2 .dashoard-1 .wrapper-content{padding:0px 30px 25px 30px}.skin-2 .ibox-title{background:hsla(0,0%,100%,.7);border:none;margin-bottom:1px}.skin-2 .ibox-content{background:hsla(0,0%,100%,.4);border:none !important}.skin-2 #page-wrapper{background:#f6f6f6;background:-webkit-radial-gradient(center, ellipse cover, rgb(246, 246, 246) 20%, rgb(213, 213, 213) 100%);background:-o-radial-gradient(center, ellipse cover, rgb(246, 246, 246) 20%, rgb(213, 213, 213) 100%);background:-ms-radial-gradient(center, ellipse cover, rgb(246, 246, 246) 20%, rgb(213, 213, 213) 100%);background:radial-gradient(ellipse at center, rgb(246, 246, 246) 20%, rgb(213, 213, 213) 100%);-ms-filter:\\\"progid:DXImageTransform.Microsoft.gradient(startColorstr=#f6f6f6, endColorstr=#d5d5d5)\\\"}.skin-2 .ibox-title,.skin-2 .ibox-content{border-width:1px}.skin-2 .ibox-content:last-child{border-style:solid solid solid solid}.skin-2 .nav>li.active{border:none}.skin-2 .nav-header a.dropdown-toggle{color:#edf6ff;margin-top:10px}.skin-2 .nav-header a.dropdown-toggle .text-muted{color:#edf6ff;opacity:.8}.skin-2 .img-circle{border-radius:10px}.skin-2 .nav.navbar-top-links>li>a:hover,.skin-2 .nav.navbar-top-links>li>a:focus{background:rgb(25.7456896552,45.25,64.7543103448)}.skin-2 .navbar-default .nav>li>a:hover,.skin-2 .navbar-default .nav>li>a:focus{background:#e0e0e0;color:#213a53}.skin-2 .nav.nav-tabs>li.active>a{color:#555}.skin-2 .nav.nav-tabs>li.active{background:rgba(0,0,0,0)}.skin-3 .minimalize-styl-2{margin:14px 5px 5px 30px}.skin-3 .navbar-top-links li:last-child{margin-right:30px}.skin-3.fixed-nav .minimalize-styl-2{margin:14px 5px 5px 15px}.skin-3 .spin-icon{background:#ecba52 !important}body.boxed-layout.skin-3 #wrapper{background:#3e2c42}.skin-3 .nav-header{background:#ecba52;background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \")}.skin-3.mini-navbar .nav-second-level{background:#3e2c42}.skin-3 .breadcrumb{background:rgba(0,0,0,0)}.skin-3 .page-heading{border:none}.skin-3 .nav>li.active{background:rgb(56.2509090909,39.92,59.88)}.fixed-nav.skin-3 .navbar-fixed-top{background:#fff}.skin-3 .nav>li>a{color:#948b96}.skin-3 .nav>li.active>a{color:#fff}.skin-3 .navbar-minimalize{background:#ecba52;border-color:#ecba52}body.skin-3{background:#3e2c42}.skin-3 .navbar-static-top{background:#fff}.skin-3 .dashboard-header{background:rgba(0,0,0,0);border-bottom:none !important;border-top:none;padding:20px 30px 10px 30px}.skin-3 .wrapper-content{padding:30px 15px}.skin-3 #page-wrapper{background:#f4f6fa}.skin-3 .ibox-title,.skin-3 .ibox-content{border-width:1px}.skin-3 .ibox-content:last-child{border-style:solid solid solid solid}.skin-3 .nav>li.active{border:none}.skin-3 .nav-header{padding:35px 25px 25px 25px}.skin-3 .nav-header a.dropdown-toggle{color:#fff;margin-top:10px}.skin-3 .nav-header a.dropdown-toggle .text-muted{color:#fff;opacity:.8}.skin-3 .profile-element{text-align:center}.skin-3 .img-circle{border-radius:5px}.skin-3 .navbar-default .nav>li>a:hover,.skin-3 .navbar-default .nav>li>a:focus{background:rgb(56.2509090909,39.92,59.88);color:#fff}.skin-3 .nav.nav-tabs>li.active>a{color:#555}.skin-3 .nav.nav-tabs>li.active{background:rgba(0,0,0,0)}@media(min-width: 768px){#page-wrapper{position:inherit;margin:0 0 0 220px;min-height:1200px}.navbar-static-side{z-index:1001;position:absolute;width:220px}.navbar-top-links .dropdown-messages,.navbar-top-links .dropdown-tasks,.navbar-top-links .dropdown-alerts{margin-left:auto}}@media(max-width: 768px){#page-wrapper{position:inherit;margin:0 0 0 0px;min-height:1000px}.body-small .navbar-static-side{display:none;z-index:1001;position:absolute;width:70px}.body-small.mini-navbar .navbar-static-side{display:block}.lock-word{display:none}.navbar-form-custom{display:none}.navbar-header{display:inline;float:left}.sidebard-panel{z-index:2;position:relative;width:auto;min-height:100% !important}.sidebar-content .wrapper{padding-right:0px;z-index:1}.fixed-sidebar.body-small .navbar-static-side{display:none;z-index:1001;position:fixed;width:220px}.fixed-sidebar.body-small.mini-navbar .navbar-static-side{display:block}.ibox-tools{float:none;text-align:right;display:block}}@media(max-width: 350px){.timeline-item .date{text-align:left;width:110px;position:relative;padding-top:30px}.timeline-item .date i{position:absolute;top:0;left:15px;padding:5px;width:30px;text-align:center;border:1px solid #c2c4cc;background:#f8f8f8}.timeline-item .content{border-left:none;border-top:1px solid #c2c4cc;padding-top:10px;min-height:100px}.nav.navbar-top-links li.dropdown{display:none}.ibox-tools{float:none;text-align:left;display:inline-block}}@media(max-width: 1000px){.welcome-message{display:none}}.lightBoxGallery{text-align:center}.lightBoxGallery img{margin:5px}body{font-size:12px}.toast-title{font-weight:bold}.toast-message{word-wrap:break-word}.toast-close-button{position:relative;right:-4px;top:-12px;float:right;font-size:20px;font-weight:bold;color:#676a6c;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;outline:none}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:rgba(0,0,0,0);border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container .toast{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;border-radius:3px 3px 3px 3px;background-position:15px center;background-repeat:no-repeat;color:#fff;color:#676a6c;opacity:.8;opacity:1}#toast-container .toast>div{margin-left:5px}#toast-container .toast:hover{-moz-box-shadow:0 0 12px gray;-webkit-box-shadow:0 0 12px gray;box-shadow:0 0 12px gray;opacity:1;cursor:pointer}.toast.toast-error,.toast.toast-loading,.toast.toast-info,.toast.toast-success,.toast.toast-warning{background-size:34px}.toast-loading{background-image:url(\\\"data:image/gif;base64,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\\\")}.toast-info{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \")}.toast-error{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \")}.toast-success{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \")}.toast-warning{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \")}#toast-container.toast-top-center .toast,#toast-container.toast-bottom-center .toast{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-top-full-width .toast,#toast-container.toast-bottom-full-width .toast{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#fff}.toast-success{background-color:#fff}.toast-error{background-color:#fff}.toast-info{background-color:#fff}.toast-warning{background-color:#fff}progress-bar{position:absolute;left:0;bottom:0;height:2px;background-color:#2675b3;opacity:.4}div[toast]{opacity:1 !important}div[toast].ng-enter{opacity:0 !important;transition:opacity .3s linear}div[toast].ng-enter.ng-enter-active{opacity:1 !important}div[toast].ng-leave{opacity:1;transition:opacity .3s linear}div[toast].ng-leave.ng-leave-active{opacity:0 !important}@media all and (max-width: 240px){#toast-container .toast.div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width: 241px)and (max-width: 480px){#toast-container .toast.div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width: 481px)and (max-width: 768px){#toast-container .toast.div{padding:15px 15px 15px 50px;width:25em}}.toast-container-archive{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #c2c4cc;position:relative}.toast-container-archive .toast{overflow:hidden;padding:30px 15px 30px 55px;background-position:15px center;background-repeat:no-repeat;color:#676a6c;opacity:1}.toast-container-archive .toast:hover{-moz-box-shadow:0 0 12px #e2e2e2;-webkit-box-shadow:0 0 12px #e2e2e2;box-shadow:0 0 12px #e2e2e2;cursor:pointer}.toast-container-archive .close-btn{background-color:rgba(0,0,0,0);cursor:pointer;border-radius:0;color:#dedede}.toast-container-archive .close-btn:hover{background-color:#f73415;color:#fff}.toast-date{position:absolute;bottom:6px;right:15px;color:#b4b4b4}/*!\\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\\n */@font-face{font-family:\\\"FontAwesome\\\";src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \");src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \") format(\\\"embedded-opentype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \") format(\\\"woff2\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \") format(\\\"woff\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \") format(\\\"truetype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \") format(\\\"svg\\\");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857em;text-align:center}.fa-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg{left:-1.8571428571em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\\\"\\\"}.fa-music:before{content:\\\"\\\"}.fa-search:before{content:\\\"\\\"}.fa-envelope-o:before{content:\\\"\\\"}.fa-heart:before{content:\\\"\\\"}.fa-star:before{content:\\\"\\\"}.fa-star-o:before{content:\\\"\\\"}.fa-user:before{content:\\\"\\\"}.fa-film:before{content:\\\"\\\"}.fa-th-large:before{content:\\\"\\\"}.fa-th:before{content:\\\"\\\"}.fa-th-list:before{content:\\\"\\\"}.fa-check:before{content:\\\"\\\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\\\"\\\"}.fa-search-plus:before{content:\\\"\\\"}.fa-search-minus:before{content:\\\"\\\"}.fa-power-off:before{content:\\\"\\\"}.fa-signal:before{content:\\\"\\\"}.fa-gear:before,.fa-cog:before{content:\\\"\\\"}.fa-trash-o:before{content:\\\"\\\"}.fa-home:before{content:\\\"\\\"}.fa-file-o:before{content:\\\"\\\"}.fa-clock-o:before{content:\\\"\\\"}.fa-road:before{content:\\\"\\\"}.fa-download:before{content:\\\"\\\"}.fa-arrow-circle-o-down:before{content:\\\"\\\"}.fa-arrow-circle-o-up:before{content:\\\"\\\"}.fa-inbox:before{content:\\\"\\\"}.fa-play-circle-o:before{content:\\\"\\\"}.fa-rotate-right:before,.fa-repeat:before{content:\\\"\\\"}.fa-refresh:before{content:\\\"\\\"}.fa-list-alt:before{content:\\\"\\\"}.fa-lock:before{content:\\\"\\\"}.fa-flag:before{content:\\\"\\\"}.fa-headphones:before{content:\\\"\\\"}.fa-volume-off:before{content:\\\"\\\"}.fa-volume-down:before{content:\\\"\\\"}.fa-volume-up:before{content:\\\"\\\"}.fa-qrcode:before{content:\\\"\\\"}.fa-barcode:before{content:\\\"\\\"}.fa-tag:before{content:\\\"\\\"}.fa-tags:before{content:\\\"\\\"}.fa-book:before{content:\\\"\\\"}.fa-bookmark:before{content:\\\"\\\"}.fa-print:before{content:\\\"\\\"}.fa-camera:before{content:\\\"\\\"}.fa-font:before{content:\\\"\\\"}.fa-bold:before{content:\\\"\\\"}.fa-italic:before{content:\\\"\\\"}.fa-text-height:before{content:\\\"\\\"}.fa-text-width:before{content:\\\"\\\"}.fa-align-left:before{content:\\\"\\\"}.fa-align-center:before{content:\\\"\\\"}.fa-align-right:before{content:\\\"\\\"}.fa-align-justify:before{content:\\\"\\\"}.fa-list:before{content:\\\"\\\"}.fa-dedent:before,.fa-outdent:before{content:\\\"\\\"}.fa-indent:before{content:\\\"\\\"}.fa-video-camera:before{content:\\\"\\\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\\\"\\\"}.fa-pencil:before{content:\\\"\\\"}.fa-map-marker:before{content:\\\"\\\"}.fa-adjust:before{content:\\\"\\\"}.fa-tint:before{content:\\\"\\\"}.fa-edit:before,.fa-pencil-square-o:before{content:\\\"\\\"}.fa-share-square-o:before{content:\\\"\\\"}.fa-check-square-o:before{content:\\\"\\\"}.fa-arrows:before{content:\\\"\\\"}.fa-step-backward:before{content:\\\"\\\"}.fa-fast-backward:before{content:\\\"\\\"}.fa-backward:before{content:\\\"\\\"}.fa-play:before{content:\\\"\\\"}.fa-pause:before{content:\\\"\\\"}.fa-stop:before{content:\\\"\\\"}.fa-forward:before{content:\\\"\\\"}.fa-fast-forward:before{content:\\\"\\\"}.fa-step-forward:before{content:\\\"\\\"}.fa-eject:before{content:\\\"\\\"}.fa-chevron-left:before{content:\\\"\\\"}.fa-chevron-right:before{content:\\\"\\\"}.fa-plus-circle:before{content:\\\"\\\"}.fa-minus-circle:before{content:\\\"\\\"}.fa-times-circle:before{content:\\\"\\\"}.fa-check-circle:before{content:\\\"\\\"}.fa-question-circle:before{content:\\\"\\\"}.fa-info-circle:before{content:\\\"\\\"}.fa-crosshairs:before{content:\\\"\\\"}.fa-times-circle-o:before{content:\\\"\\\"}.fa-check-circle-o:before{content:\\\"\\\"}.fa-ban:before{content:\\\"\\\"}.fa-arrow-left:before{content:\\\"\\\"}.fa-arrow-right:before{content:\\\"\\\"}.fa-arrow-up:before{content:\\\"\\\"}.fa-arrow-down:before{content:\\\"\\\"}.fa-mail-forward:before,.fa-share:before{content:\\\"\\\"}.fa-expand:before{content:\\\"\\\"}.fa-compress:before{content:\\\"\\\"}.fa-plus:before{content:\\\"\\\"}.fa-minus:before{content:\\\"\\\"}.fa-asterisk:before{content:\\\"\\\"}.fa-exclamation-circle:before{content:\\\"\\\"}.fa-gift:before{content:\\\"\\\"}.fa-leaf:before{content:\\\"\\\"}.fa-fire:before{content:\\\"\\\"}.fa-eye:before{content:\\\"\\\"}.fa-eye-slash:before{content:\\\"\\\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\\\"\\\"}.fa-plane:before{content:\\\"\\\"}.fa-calendar:before{content:\\\"\\\"}.fa-random:before{content:\\\"\\\"}.fa-comment:before{content:\\\"\\\"}.fa-magnet:before{content:\\\"\\\"}.fa-chevron-up:before{content:\\\"\\\"}.fa-chevron-down:before{content:\\\"\\\"}.fa-retweet:before{content:\\\"\\\"}.fa-shopping-cart:before{content:\\\"\\\"}.fa-folder:before{content:\\\"\\\"}.fa-folder-open:before{content:\\\"\\\"}.fa-arrows-v:before{content:\\\"\\\"}.fa-arrows-h:before{content:\\\"\\\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\\\"\\\"}.fa-twitter-square:before{content:\\\"\\\"}.fa-facebook-square:before{content:\\\"\\\"}.fa-camera-retro:before{content:\\\"\\\"}.fa-key:before{content:\\\"\\\"}.fa-gears:before,.fa-cogs:before{content:\\\"\\\"}.fa-comments:before{content:\\\"\\\"}.fa-thumbs-o-up:before{content:\\\"\\\"}.fa-thumbs-o-down:before{content:\\\"\\\"}.fa-star-half:before{content:\\\"\\\"}.fa-heart-o:before{content:\\\"\\\"}.fa-sign-out:before{content:\\\"\\\"}.fa-linkedin-square:before{content:\\\"\\\"}.fa-thumb-tack:before{content:\\\"\\\"}.fa-external-link:before{content:\\\"\\\"}.fa-sign-in:before{content:\\\"\\\"}.fa-trophy:before{content:\\\"\\\"}.fa-github-square:before{content:\\\"\\\"}.fa-upload:before{content:\\\"\\\"}.fa-lemon-o:before{content:\\\"\\\"}.fa-phone:before{content:\\\"\\\"}.fa-square-o:before{content:\\\"\\\"}.fa-bookmark-o:before{content:\\\"\\\"}.fa-phone-square:before{content:\\\"\\\"}.fa-twitter:before{content:\\\"\\\"}.fa-facebook-f:before,.fa-facebook:before{content:\\\"\\\"}.fa-github:before{content:\\\"\\\"}.fa-unlock:before{content:\\\"\\\"}.fa-credit-card:before{content:\\\"\\\"}.fa-feed:before,.fa-rss:before{content:\\\"\\\"}.fa-hdd-o:before{content:\\\"\\\"}.fa-bullhorn:before{content:\\\"\\\"}.fa-bell:before{content:\\\"\\\"}.fa-certificate:before{content:\\\"\\\"}.fa-hand-o-right:before{content:\\\"\\\"}.fa-hand-o-left:before{content:\\\"\\\"}.fa-hand-o-up:before{content:\\\"\\\"}.fa-hand-o-down:before{content:\\\"\\\"}.fa-arrow-circle-left:before{content:\\\"\\\"}.fa-arrow-circle-right:before{content:\\\"\\\"}.fa-arrow-circle-up:before{content:\\\"\\\"}.fa-arrow-circle-down:before{content:\\\"\\\"}.fa-globe:before{content:\\\"\\\"}.fa-wrench:before{content:\\\"\\\"}.fa-tasks:before{content:\\\"\\\"}.fa-filter:before{content:\\\"\\\"}.fa-briefcase:before{content:\\\"\\\"}.fa-arrows-alt:before{content:\\\"\\\"}.fa-group:before,.fa-users:before{content:\\\"\\\"}.fa-chain:before,.fa-link:before{content:\\\"\\\"}.fa-cloud:before{content:\\\"\\\"}.fa-flask:before{content:\\\"\\\"}.fa-cut:before,.fa-scissors:before{content:\\\"\\\"}.fa-copy:before,.fa-files-o:before{content:\\\"\\\"}.fa-paperclip:before{content:\\\"\\\"}.fa-save:before,.fa-floppy-o:before{content:\\\"\\\"}.fa-square:before{content:\\\"\\\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\\\"\\\"}.fa-list-ul:before{content:\\\"\\\"}.fa-list-ol:before{content:\\\"\\\"}.fa-strikethrough:before{content:\\\"\\\"}.fa-underline:before{content:\\\"\\\"}.fa-table:before{content:\\\"\\\"}.fa-magic:before{content:\\\"\\\"}.fa-truck:before{content:\\\"\\\"}.fa-pinterest:before{content:\\\"\\\"}.fa-pinterest-square:before{content:\\\"\\\"}.fa-google-plus-square:before{content:\\\"\\\"}.fa-google-plus:before{content:\\\"\\\"}.fa-money:before{content:\\\"\\\"}.fa-caret-down:before{content:\\\"\\\"}.fa-caret-up:before{content:\\\"\\\"}.fa-caret-left:before{content:\\\"\\\"}.fa-caret-right:before{content:\\\"\\\"}.fa-columns:before{content:\\\"\\\"}.fa-unsorted:before,.fa-sort:before{content:\\\"\\\"}.fa-sort-down:before,.fa-sort-desc:before{content:\\\"\\\"}.fa-sort-up:before,.fa-sort-asc:before{content:\\\"\\\"}.fa-envelope:before{content:\\\"\\\"}.fa-linkedin:before{content:\\\"\\\"}.fa-rotate-left:before,.fa-undo:before{content:\\\"\\\"}.fa-legal:before,.fa-gavel:before{content:\\\"\\\"}.fa-dashboard:before,.fa-tachometer:before{content:\\\"\\\"}.fa-comment-o:before{content:\\\"\\\"}.fa-comments-o:before{content:\\\"\\\"}.fa-flash:before,.fa-bolt:before{content:\\\"\\\"}.fa-sitemap:before{content:\\\"\\\"}.fa-umbrella:before{content:\\\"\\\"}.fa-paste:before,.fa-clipboard:before{content:\\\"\\\"}.fa-lightbulb-o:before{content:\\\"\\\"}.fa-exchange:before{content:\\\"\\\"}.fa-cloud-download:before{content:\\\"\\\"}.fa-cloud-upload:before{content:\\\"\\\"}.fa-user-md:before{content:\\\"\\\"}.fa-stethoscope:before{content:\\\"\\\"}.fa-suitcase:before{content:\\\"\\\"}.fa-bell-o:before{content:\\\"\\\"}.fa-coffee:before{content:\\\"\\\"}.fa-cutlery:before{content:\\\"\\\"}.fa-file-text-o:before{content:\\\"\\\"}.fa-building-o:before{content:\\\"\\\"}.fa-hospital-o:before{content:\\\"\\\"}.fa-ambulance:before{content:\\\"\\\"}.fa-medkit:before{content:\\\"\\\"}.fa-fighter-jet:before{content:\\\"\\\"}.fa-beer:before{content:\\\"\\\"}.fa-h-square:before{content:\\\"\\\"}.fa-plus-square:before{content:\\\"\\\"}.fa-angle-double-left:before{content:\\\"\\\"}.fa-angle-double-right:before{content:\\\"\\\"}.fa-angle-double-up:before{content:\\\"\\\"}.fa-angle-double-down:before{content:\\\"\\\"}.fa-angle-left:before{content:\\\"\\\"}.fa-angle-right:before{content:\\\"\\\"}.fa-angle-up:before{content:\\\"\\\"}.fa-angle-down:before{content:\\\"\\\"}.fa-desktop:before{content:\\\"\\\"}.fa-laptop:before{content:\\\"\\\"}.fa-tablet:before{content:\\\"\\\"}.fa-mobile-phone:before,.fa-mobile:before{content:\\\"\\\"}.fa-circle-o:before{content:\\\"\\\"}.fa-quote-left:before{content:\\\"\\\"}.fa-quote-right:before{content:\\\"\\\"}.fa-spinner:before{content:\\\"\\\"}.fa-circle:before{content:\\\"\\\"}.fa-mail-reply:before,.fa-reply:before{content:\\\"\\\"}.fa-github-alt:before{content:\\\"\\\"}.fa-folder-o:before{content:\\\"\\\"}.fa-folder-open-o:before{content:\\\"\\\"}.fa-smile-o:before{content:\\\"\\\"}.fa-frown-o:before{content:\\\"\\\"}.fa-meh-o:before{content:\\\"\\\"}.fa-gamepad:before{content:\\\"\\\"}.fa-keyboard-o:before{content:\\\"\\\"}.fa-flag-o:before{content:\\\"\\\"}.fa-flag-checkered:before{content:\\\"\\\"}.fa-terminal:before{content:\\\"\\\"}.fa-code:before{content:\\\"\\\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\\\"\\\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\\\"\\\"}.fa-location-arrow:before{content:\\\"\\\"}.fa-crop:before{content:\\\"\\\"}.fa-code-fork:before{content:\\\"\\\"}.fa-unlink:before,.fa-chain-broken:before{content:\\\"\\\"}.fa-question:before{content:\\\"\\\"}.fa-info:before{content:\\\"\\\"}.fa-exclamation:before{content:\\\"\\\"}.fa-superscript:before{content:\\\"\\\"}.fa-subscript:before{content:\\\"\\\"}.fa-eraser:before{content:\\\"\\\"}.fa-puzzle-piece:before{content:\\\"\\\"}.fa-microphone:before{content:\\\"\\\"}.fa-microphone-slash:before{content:\\\"\\\"}.fa-shield:before{content:\\\"\\\"}.fa-calendar-o:before{content:\\\"\\\"}.fa-fire-extinguisher:before{content:\\\"\\\"}.fa-rocket:before{content:\\\"\\\"}.fa-maxcdn:before{content:\\\"\\\"}.fa-chevron-circle-left:before{content:\\\"\\\"}.fa-chevron-circle-right:before{content:\\\"\\\"}.fa-chevron-circle-up:before{content:\\\"\\\"}.fa-chevron-circle-down:before{content:\\\"\\\"}.fa-html5:before{content:\\\"\\\"}.fa-css3:before{content:\\\"\\\"}.fa-anchor:before{content:\\\"\\\"}.fa-unlock-alt:before{content:\\\"\\\"}.fa-bullseye:before{content:\\\"\\\"}.fa-ellipsis-h:before{content:\\\"\\\"}.fa-ellipsis-v:before{content:\\\"\\\"}.fa-rss-square:before{content:\\\"\\\"}.fa-play-circle:before{content:\\\"\\\"}.fa-ticket:before{content:\\\"\\\"}.fa-minus-square:before{content:\\\"\\\"}.fa-minus-square-o:before{content:\\\"\\\"}.fa-level-up:before{content:\\\"\\\"}.fa-level-down:before{content:\\\"\\\"}.fa-check-square:before{content:\\\"\\\"}.fa-pencil-square:before{content:\\\"\\\"}.fa-external-link-square:before{content:\\\"\\\"}.fa-share-square:before{content:\\\"\\\"}.fa-compass:before{content:\\\"\\\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\\\"\\\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\\\"\\\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\\\"\\\"}.fa-euro:before,.fa-eur:before{content:\\\"\\\"}.fa-gbp:before{content:\\\"\\\"}.fa-dollar:before,.fa-usd:before{content:\\\"\\\"}.fa-rupee:before,.fa-inr:before{content:\\\"\\\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\\\"\\\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\\\"\\\"}.fa-won:before,.fa-krw:before{content:\\\"\\\"}.fa-bitcoin:before,.fa-btc:before{content:\\\"\\\"}.fa-file:before{content:\\\"\\\"}.fa-file-text:before{content:\\\"\\\"}.fa-sort-alpha-asc:before{content:\\\"\\\"}.fa-sort-alpha-desc:before{content:\\\"\\\"}.fa-sort-amount-asc:before{content:\\\"\\\"}.fa-sort-amount-desc:before{content:\\\"\\\"}.fa-sort-numeric-asc:before{content:\\\"\\\"}.fa-sort-numeric-desc:before{content:\\\"\\\"}.fa-thumbs-up:before{content:\\\"\\\"}.fa-thumbs-down:before{content:\\\"\\\"}.fa-youtube-square:before{content:\\\"\\\"}.fa-youtube:before{content:\\\"\\\"}.fa-xing:before{content:\\\"\\\"}.fa-xing-square:before{content:\\\"\\\"}.fa-youtube-play:before{content:\\\"\\\"}.fa-dropbox:before{content:\\\"\\\"}.fa-stack-overflow:before{content:\\\"\\\"}.fa-instagram:before{content:\\\"\\\"}.fa-flickr:before{content:\\\"\\\"}.fa-adn:before{content:\\\"\\\"}.fa-bitbucket:before{content:\\\"\\\"}.fa-bitbucket-square:before{content:\\\"\\\"}.fa-tumblr:before{content:\\\"\\\"}.fa-tumblr-square:before{content:\\\"\\\"}.fa-long-arrow-down:before{content:\\\"\\\"}.fa-long-arrow-up:before{content:\\\"\\\"}.fa-long-arrow-left:before{content:\\\"\\\"}.fa-long-arrow-right:before{content:\\\"\\\"}.fa-apple:before{content:\\\"\\\"}.fa-windows:before{content:\\\"\\\"}.fa-android:before{content:\\\"\\\"}.fa-linux:before{content:\\\"\\\"}.fa-dribbble:before{content:\\\"\\\"}.fa-skype:before{content:\\\"\\\"}.fa-foursquare:before{content:\\\"\\\"}.fa-trello:before{content:\\\"\\\"}.fa-female:before{content:\\\"\\\"}.fa-male:before{content:\\\"\\\"}.fa-gittip:before,.fa-gratipay:before{content:\\\"\\\"}.fa-sun-o:before{content:\\\"\\\"}.fa-moon-o:before{content:\\\"\\\"}.fa-archive:before{content:\\\"\\\"}.fa-bug:before{content:\\\"\\\"}.fa-vk:before{content:\\\"\\\"}.fa-weibo:before{content:\\\"\\\"}.fa-renren:before{content:\\\"\\\"}.fa-pagelines:before{content:\\\"\\\"}.fa-stack-exchange:before{content:\\\"\\\"}.fa-arrow-circle-o-right:before{content:\\\"\\\"}.fa-arrow-circle-o-left:before{content:\\\"\\\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\\\"\\\"}.fa-dot-circle-o:before{content:\\\"\\\"}.fa-wheelchair:before{content:\\\"\\\"}.fa-vimeo-square:before{content:\\\"\\\"}.fa-turkish-lira:before,.fa-try:before{content:\\\"\\\"}.fa-plus-square-o:before{content:\\\"\\\"}.fa-space-shuttle:before{content:\\\"\\\"}.fa-slack:before{content:\\\"\\\"}.fa-envelope-square:before{content:\\\"\\\"}.fa-wordpress:before{content:\\\"\\\"}.fa-openid:before{content:\\\"\\\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\\\"\\\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\\\"\\\"}.fa-yahoo:before{content:\\\"\\\"}.fa-google:before{content:\\\"\\\"}.fa-reddit:before{content:\\\"\\\"}.fa-reddit-square:before{content:\\\"\\\"}.fa-stumbleupon-circle:before{content:\\\"\\\"}.fa-stumbleupon:before{content:\\\"\\\"}.fa-delicious:before{content:\\\"\\\"}.fa-digg:before{content:\\\"\\\"}.fa-pied-piper-pp:before{content:\\\"\\\"}.fa-pied-piper-alt:before{content:\\\"\\\"}.fa-drupal:before{content:\\\"\\\"}.fa-joomla:before{content:\\\"\\\"}.fa-language:before{content:\\\"\\\"}.fa-fax:before{content:\\\"\\\"}.fa-building:before{content:\\\"\\\"}.fa-child:before{content:\\\"\\\"}.fa-paw:before{content:\\\"\\\"}.fa-spoon:before{content:\\\"\\\"}.fa-cube:before{content:\\\"\\\"}.fa-cubes:before{content:\\\"\\\"}.fa-behance:before{content:\\\"\\\"}.fa-behance-square:before{content:\\\"\\\"}.fa-steam:before{content:\\\"\\\"}.fa-steam-square:before{content:\\\"\\\"}.fa-recycle:before{content:\\\"\\\"}.fa-automobile:before,.fa-car:before{content:\\\"\\\"}.fa-cab:before,.fa-taxi:before{content:\\\"\\\"}.fa-tree:before{content:\\\"\\\"}.fa-spotify:before{content:\\\"\\\"}.fa-deviantart:before{content:\\\"\\\"}.fa-soundcloud:before{content:\\\"\\\"}.fa-database:before{content:\\\"\\\"}.fa-file-pdf-o:before{content:\\\"\\\"}.fa-file-word-o:before{content:\\\"\\\"}.fa-file-excel-o:before{content:\\\"\\\"}.fa-file-powerpoint-o:before{content:\\\"\\\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\\\"\\\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\\\"\\\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\\\"\\\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\\\"\\\"}.fa-file-code-o:before{content:\\\"\\\"}.fa-vine:before{content:\\\"\\\"}.fa-codepen:before{content:\\\"\\\"}.fa-jsfiddle:before{content:\\\"\\\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\\\"\\\"}.fa-circle-o-notch:before{content:\\\"\\\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\\\"\\\"}.fa-ge:before,.fa-empire:before{content:\\\"\\\"}.fa-git-square:before{content:\\\"\\\"}.fa-git:before{content:\\\"\\\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\\\"\\\"}.fa-tencent-weibo:before{content:\\\"\\\"}.fa-qq:before{content:\\\"\\\"}.fa-wechat:before,.fa-weixin:before{content:\\\"\\\"}.fa-send:before,.fa-paper-plane:before{content:\\\"\\\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\\\"\\\"}.fa-history:before{content:\\\"\\\"}.fa-circle-thin:before{content:\\\"\\\"}.fa-header:before{content:\\\"\\\"}.fa-paragraph:before{content:\\\"\\\"}.fa-sliders:before{content:\\\"\\\"}.fa-share-alt:before{content:\\\"\\\"}.fa-share-alt-square:before{content:\\\"\\\"}.fa-bomb:before{content:\\\"\\\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\\\"\\\"}.fa-tty:before{content:\\\"\\\"}.fa-binoculars:before{content:\\\"\\\"}.fa-plug:before{content:\\\"\\\"}.fa-slideshare:before{content:\\\"\\\"}.fa-twitch:before{content:\\\"\\\"}.fa-yelp:before{content:\\\"\\\"}.fa-newspaper-o:before{content:\\\"\\\"}.fa-wifi:before{content:\\\"\\\"}.fa-calculator:before{content:\\\"\\\"}.fa-paypal:before{content:\\\"\\\"}.fa-google-wallet:before{content:\\\"\\\"}.fa-cc-visa:before{content:\\\"\\\"}.fa-cc-mastercard:before{content:\\\"\\\"}.fa-cc-discover:before{content:\\\"\\\"}.fa-cc-amex:before{content:\\\"\\\"}.fa-cc-paypal:before{content:\\\"\\\"}.fa-cc-stripe:before{content:\\\"\\\"}.fa-bell-slash:before{content:\\\"\\\"}.fa-bell-slash-o:before{content:\\\"\\\"}.fa-trash:before{content:\\\"\\\"}.fa-copyright:before{content:\\\"\\\"}.fa-at:before{content:\\\"\\\"}.fa-eyedropper:before{content:\\\"\\\"}.fa-paint-brush:before{content:\\\"\\\"}.fa-birthday-cake:before{content:\\\"\\\"}.fa-area-chart:before{content:\\\"\\\"}.fa-pie-chart:before{content:\\\"\\\"}.fa-line-chart:before{content:\\\"\\\"}.fa-lastfm:before{content:\\\"\\\"}.fa-lastfm-square:before{content:\\\"\\\"}.fa-toggle-off:before{content:\\\"\\\"}.fa-toggle-on:before{content:\\\"\\\"}.fa-bicycle:before{content:\\\"\\\"}.fa-bus:before{content:\\\"\\\"}.fa-ioxhost:before{content:\\\"\\\"}.fa-angellist:before{content:\\\"\\\"}.fa-cc:before{content:\\\"\\\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\\\"\\\"}.fa-meanpath:before{content:\\\"\\\"}.fa-buysellads:before{content:\\\"\\\"}.fa-connectdevelop:before{content:\\\"\\\"}.fa-dashcube:before{content:\\\"\\\"}.fa-forumbee:before{content:\\\"\\\"}.fa-leanpub:before{content:\\\"\\\"}.fa-sellsy:before{content:\\\"\\\"}.fa-shirtsinbulk:before{content:\\\"\\\"}.fa-simplybuilt:before{content:\\\"\\\"}.fa-skyatlas:before{content:\\\"\\\"}.fa-cart-plus:before{content:\\\"\\\"}.fa-cart-arrow-down:before{content:\\\"\\\"}.fa-diamond:before{content:\\\"\\\"}.fa-ship:before{content:\\\"\\\"}.fa-user-secret:before{content:\\\"\\\"}.fa-motorcycle:before{content:\\\"\\\"}.fa-street-view:before{content:\\\"\\\"}.fa-heartbeat:before{content:\\\"\\\"}.fa-venus:before{content:\\\"\\\"}.fa-mars:before{content:\\\"\\\"}.fa-mercury:before{content:\\\"\\\"}.fa-intersex:before,.fa-transgender:before{content:\\\"\\\"}.fa-transgender-alt:before{content:\\\"\\\"}.fa-venus-double:before{content:\\\"\\\"}.fa-mars-double:before{content:\\\"\\\"}.fa-venus-mars:before{content:\\\"\\\"}.fa-mars-stroke:before{content:\\\"\\\"}.fa-mars-stroke-v:before{content:\\\"\\\"}.fa-mars-stroke-h:before{content:\\\"\\\"}.fa-neuter:before{content:\\\"\\\"}.fa-genderless:before{content:\\\"\\\"}.fa-facebook-official:before{content:\\\"\\\"}.fa-pinterest-p:before{content:\\\"\\\"}.fa-whatsapp:before{content:\\\"\\\"}.fa-server:before{content:\\\"\\\"}.fa-user-plus:before{content:\\\"\\\"}.fa-user-times:before{content:\\\"\\\"}.fa-hotel:before,.fa-bed:before{content:\\\"\\\"}.fa-viacoin:before{content:\\\"\\\"}.fa-train:before{content:\\\"\\\"}.fa-subway:before{content:\\\"\\\"}.fa-medium:before{content:\\\"\\\"}.fa-yc:before,.fa-y-combinator:before{content:\\\"\\\"}.fa-optin-monster:before{content:\\\"\\\"}.fa-opencart:before{content:\\\"\\\"}.fa-expeditedssl:before{content:\\\"\\\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\\\"\\\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\\\"\\\"}.fa-battery-2:before,.fa-battery-half:before{content:\\\"\\\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\\\"\\\"}.fa-battery-0:before,.fa-battery-empty:before{content:\\\"\\\"}.fa-mouse-pointer:before{content:\\\"\\\"}.fa-i-cursor:before{content:\\\"\\\"}.fa-object-group:before{content:\\\"\\\"}.fa-object-ungroup:before{content:\\\"\\\"}.fa-sticky-note:before{content:\\\"\\\"}.fa-sticky-note-o:before{content:\\\"\\\"}.fa-cc-jcb:before{content:\\\"\\\"}.fa-cc-diners-club:before{content:\\\"\\\"}.fa-clone:before{content:\\\"\\\"}.fa-balance-scale:before{content:\\\"\\\"}.fa-hourglass-o:before{content:\\\"\\\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\\\"\\\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\\\"\\\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\\\"\\\"}.fa-hourglass:before{content:\\\"\\\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\\\"\\\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\\\"\\\"}.fa-hand-scissors-o:before{content:\\\"\\\"}.fa-hand-lizard-o:before{content:\\\"\\\"}.fa-hand-spock-o:before{content:\\\"\\\"}.fa-hand-pointer-o:before{content:\\\"\\\"}.fa-hand-peace-o:before{content:\\\"\\\"}.fa-trademark:before{content:\\\"\\\"}.fa-registered:before{content:\\\"\\\"}.fa-creative-commons:before{content:\\\"\\\"}.fa-gg:before{content:\\\"\\\"}.fa-gg-circle:before{content:\\\"\\\"}.fa-tripadvisor:before{content:\\\"\\\"}.fa-odnoklassniki:before{content:\\\"\\\"}.fa-odnoklassniki-square:before{content:\\\"\\\"}.fa-get-pocket:before{content:\\\"\\\"}.fa-wikipedia-w:before{content:\\\"\\\"}.fa-safari:before{content:\\\"\\\"}.fa-chrome:before{content:\\\"\\\"}.fa-firefox:before{content:\\\"\\\"}.fa-opera:before{content:\\\"\\\"}.fa-internet-explorer:before{content:\\\"\\\"}.fa-tv:before,.fa-television:before{content:\\\"\\\"}.fa-contao:before{content:\\\"\\\"}.fa-500px:before{content:\\\"\\\"}.fa-amazon:before{content:\\\"\\\"}.fa-calendar-plus-o:before{content:\\\"\\\"}.fa-calendar-minus-o:before{content:\\\"\\\"}.fa-calendar-times-o:before{content:\\\"\\\"}.fa-calendar-check-o:before{content:\\\"\\\"}.fa-industry:before{content:\\\"\\\"}.fa-map-pin:before{content:\\\"\\\"}.fa-map-signs:before{content:\\\"\\\"}.fa-map-o:before{content:\\\"\\\"}.fa-map:before{content:\\\"\\\"}.fa-commenting:before{content:\\\"\\\"}.fa-commenting-o:before{content:\\\"\\\"}.fa-houzz:before{content:\\\"\\\"}.fa-vimeo:before{content:\\\"\\\"}.fa-black-tie:before{content:\\\"\\\"}.fa-fonticons:before{content:\\\"\\\"}.fa-reddit-alien:before{content:\\\"\\\"}.fa-edge:before{content:\\\"\\\"}.fa-credit-card-alt:before{content:\\\"\\\"}.fa-codiepie:before{content:\\\"\\\"}.fa-modx:before{content:\\\"\\\"}.fa-fort-awesome:before{content:\\\"\\\"}.fa-usb:before{content:\\\"\\\"}.fa-product-hunt:before{content:\\\"\\\"}.fa-mixcloud:before{content:\\\"\\\"}.fa-scribd:before{content:\\\"\\\"}.fa-pause-circle:before{content:\\\"\\\"}.fa-pause-circle-o:before{content:\\\"\\\"}.fa-stop-circle:before{content:\\\"\\\"}.fa-stop-circle-o:before{content:\\\"\\\"}.fa-shopping-bag:before{content:\\\"\\\"}.fa-shopping-basket:before{content:\\\"\\\"}.fa-hashtag:before{content:\\\"\\\"}.fa-bluetooth:before{content:\\\"\\\"}.fa-bluetooth-b:before{content:\\\"\\\"}.fa-percent:before{content:\\\"\\\"}.fa-gitlab:before{content:\\\"\\\"}.fa-wpbeginner:before{content:\\\"\\\"}.fa-wpforms:before{content:\\\"\\\"}.fa-envira:before{content:\\\"\\\"}.fa-universal-access:before{content:\\\"\\\"}.fa-wheelchair-alt:before{content:\\\"\\\"}.fa-question-circle-o:before{content:\\\"\\\"}.fa-blind:before{content:\\\"\\\"}.fa-audio-description:before{content:\\\"\\\"}.fa-volume-control-phone:before{content:\\\"\\\"}.fa-braille:before{content:\\\"\\\"}.fa-assistive-listening-systems:before{content:\\\"\\\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\\\"\\\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\\\"\\\"}.fa-glide:before{content:\\\"\\\"}.fa-glide-g:before{content:\\\"\\\"}.fa-signing:before,.fa-sign-language:before{content:\\\"\\\"}.fa-low-vision:before{content:\\\"\\\"}.fa-viadeo:before{content:\\\"\\\"}.fa-viadeo-square:before{content:\\\"\\\"}.fa-snapchat:before{content:\\\"\\\"}.fa-snapchat-ghost:before{content:\\\"\\\"}.fa-snapchat-square:before{content:\\\"\\\"}.fa-pied-piper:before{content:\\\"\\\"}.fa-first-order:before{content:\\\"\\\"}.fa-yoast:before{content:\\\"\\\"}.fa-themeisle:before{content:\\\"\\\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\\\"\\\"}.fa-fa:before,.fa-font-awesome:before{content:\\\"\\\"}.fa-handshake-o:before{content:\\\"\\\"}.fa-envelope-open:before{content:\\\"\\\"}.fa-envelope-open-o:before{content:\\\"\\\"}.fa-linode:before{content:\\\"\\\"}.fa-address-book:before{content:\\\"\\\"}.fa-address-book-o:before{content:\\\"\\\"}.fa-vcard:before,.fa-address-card:before{content:\\\"\\\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\\\"\\\"}.fa-user-circle:before{content:\\\"\\\"}.fa-user-circle-o:before{content:\\\"\\\"}.fa-user-o:before{content:\\\"\\\"}.fa-id-badge:before{content:\\\"\\\"}.fa-drivers-license:before,.fa-id-card:before{content:\\\"\\\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\\\"\\\"}.fa-quora:before{content:\\\"\\\"}.fa-free-code-camp:before{content:\\\"\\\"}.fa-telegram:before{content:\\\"\\\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\\\"\\\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\\\"\\\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\\\"\\\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\\\"\\\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\\\"\\\"}.fa-shower:before{content:\\\"\\\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\\\"\\\"}.fa-podcast:before{content:\\\"\\\"}.fa-window-maximize:before{content:\\\"\\\"}.fa-window-minimize:before{content:\\\"\\\"}.fa-window-restore:before{content:\\\"\\\"}.fa-times-rectangle:before,.fa-window-close:before{content:\\\"\\\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\\\"\\\"}.fa-bandcamp:before{content:\\\"\\\"}.fa-grav:before{content:\\\"\\\"}.fa-etsy:before{content:\\\"\\\"}.fa-imdb:before{content:\\\"\\\"}.fa-ravelry:before{content:\\\"\\\"}.fa-eercast:before{content:\\\"\\\"}.fa-microchip:before{content:\\\"\\\"}.fa-snowflake-o:before{content:\\\"\\\"}.fa-superpowers:before{content:\\\"\\\"}.fa-wpexplorer:before{content:\\\"\\\"}.fa-meetup:before{content:\\\"\\\"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.ruleset-object-copy-modal .copied-objects-container{border:1px solid #dbdbdb;background:#dbdbdb;border-radius:5px;max-height:160px;overflow-y:auto}.ruleset-object-copy-modal .copied-objects-list{border:1px solid #dbdbdb;background:#fff}.form-group.im-request-salesforce-user-state .k-widget.k-dropdown{height:30px}.sap-security-designer .input-group-addon .fa-stack.fa-stack-small{font-size:.7em}.sap-security-designer .copy-grid .k-grid-content{max-height:20em}.sap-security-designer .list-item{padding:0px}.sap-security-designer .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.sap-security-designer .list-item-row-button:hover{background-color:#e0e0e0}.sap-simulation-risk-analysis-report .k-grid-content{min-height:340px}.saved-reports .no-reports{color:#d5d5d6;text-align:center;font-size:40px}.saved-reports .no-reports p:nth-child(3){font-size:15px}.rounded-border{border-radius:5px}.custom-ibox ::-webkit-scrollbar{scrollbar-width:thin;scrollbar-color:#dedede #f9f9f9;width:12px;border:1px solid #dedede}.custom-ibox ::-webkit-scrollbar-track{background:#f9f9f9}.custom-ibox ::-webkit-scrollbar-thumb{background-color:#dedede;border-radius:20px;border:3px solid #f9f9f9}.custom-ibox .ibox-dropdown{color:#121321 !important;max-width:240px;border-radius:5px;padding:6px 16px 6px 12px;font-size:12px}.custom-ibox .ibox-dropdown-sm{color:#121321 !important;max-width:150px;border-radius:5px;padding:6px 16px 6px 12px;font-size:12px}.custom-ibox select{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:200px;padding-right:15px}.custom-ibox .criteria-drop{color:#121321 !important}.custom-ibox .form-group{margin:0}.custom-ibox label{margin:0}.custom-ibox .single-line{color:#121321 !important}.custom-ibox .full-span-ibox{width:100% !important}.custom-ibox .font-w-500{font-weight:500}.custom-ibox .font-12{font-size:12px}.custom-ibox .pill-radio{background:#fff;color:#121321;padding:2px 12px;margin-right:4px;font-size:11px;border-radius:14px;cursor:pointer;display:inline-block}.custom-ibox .pill-radio:hover{background:hsl(0,0%,96%);color:#121321;font-weight:800}.custom-ibox .pill-radio.active{background:hsl(0,0%,96%);color:#121321;font-weight:800}.custom-ibox .filter-pills-above-grid{background-color:#8ea7b8 !important}.custom-ibox .check-btn-placeholder{padding:11px}.custom-ibox .flex-vcenter{display:flex;align-items:center}.custom-ibox h5{margin:0}.custom-ibox .list-view-body{max-height:550px;overflow-y:auto}@media only screen and (max-width: 1223px){.custom-ibox .list-view-body{max-height:350px;overflow-y:auto}}@media only screen and (min-width: 1224px){.custom-ibox .list-view-body{max-height:350px;overflow-y:auto}}@media only screen and (min-width: 1824px){.custom-ibox .list-view-body{max-height:500px;overflow-y:auto}}.custom-ibox list-item{border-right:1px solid #c2c4cc}.custom-ibox .ibox-title{border-radius:5px 5px 0px 0px !important;background:#231556 !important;color:#fff;padding:10px 15px}.custom-ibox .ibox-title .switch :checked+i{box-shadow:inset 0 0 1px rgba(0,0,0,.38),inset 0 0 40px #291972;-webkit-box-shadow:inset 0 0 1px rgba(0,0,0,.38),inset 0 0 40px #291972}.custom-ibox .ibox-title .fa-plus{color:#291972}.custom-ibox .ibox-title .fa-pencil{color:#291972}.custom-ibox .ibox-title .fa-copy{color:#291972}.custom-ibox .fa-ellipsis-h{color:#291972}.custom-ibox .fa-filter{margin-right:5px}.custom-ibox .btn-default{border-radius:5px;padding:2px 6px}.custom-ibox .btn-secondary{font-weight:600;color:#291972;background:#fff}.custom-ibox .btn-secondary:hover{outline:none}.custom-ibox .btn-secondary:focus{outline:none}.custom-ibox .btn-secondary:active{outline:none}.custom-ibox .popover-title{color:gray}.custom-ibox .btn-blueRadio{color:gray}.custom-ibox .pagination-sm{color:#121321;font-weight:700;white-space:nowrap;overflow:hidden;background-color:#fff}.custom-ibox .pagination>li>a,.custom-ibox .pagination>li>span{background:#fff;border-color:#c2c4cc;color:#121321;font-weight:700;white-space:nowrap;overflow:hidden;margin:0;font-size:10px}.custom-ibox .pagination-sm>li:first-child>a,.custom-ibox .pagination-sm>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.custom-ibox .pagination-sm>li:last-child>a,.custom-ibox .pagination-sm>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.custom-ibox .pagination>.active>a,.custom-ibox .pagination>.active>span,.custom-ibox .pagination>.active>a:hover,.custom-ibox .pagination>.active>span:hover,.custom-ibox .pagination>.active>a:focus,.custom-ibox .pagination>.active>span:focus{background:hsl(0,0%,96%);color:#121321;border-color:#121321;font-weight:700}.custom-ibox .ibox-bottom-bar{padding:10px 15px;background:#eeeff2;border:1px solid #c2c4cc;border-radius:4px}.custom-ibox .ibox-bottom-bar .saved-message{color:#121321}.custom-ibox .ibox-bottom-bar .btn-default{background-color:#9e9caf}.ac-my-reviews .review-assignment-tile{padding:0px}.ac-my-reviews .review-submit-btn-wrap a{color:#fff}.ac-my-reviews .review-submit-btn-wrap span{font-size:12px;font-weight:600}.ac-my-reviews .list-item{padding:0px}.ac-my-reviews .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.ac-my-reviews .list-item-row-button:hover{background-color:#e0e0e0}.ac-my-reviews .ibox-title-p-xs{border-radius:5px 5px 0px 0px !important;background:#231556 !important;color:#fff;padding:10px}.ac-my-reviews .ibox-title-p-xs h5{font-size:22.5px}.ac-my-reviews span.btn a{color:#fff}.ac-my-reviews .btn-greenRadio:focus,.ac-my-reviews .btn-greenRadio:active,.ac-my-reviews .btn-greenRadio.active,.ac-my-reviews .open .dropdown-toggle.btn-greenRadio{background-color:#bafcd4;border-color:#007138;color:#007138 !important}.task-recording-manager .list-item{padding:0px}.task-recording-manager .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.task-recording-manager .list-item-row-button:hover{background-color:#e0e0e0}.task-recording-manager input{accent-color:#e74c3c}.task-recording-manager .btn-danger{background:#e74c3c;font-size:11px;padding:3px 6px;font-weight:bold}.task-recording-manager .bulk-delete{background:#fbe1de;color:#e74c3c;padding:5px 15px}.task-recording-manager .txt-danger{color:#e74c3c}.review-schedules .btn-blue{border:2px solid #291972;color:#fff;font-size:13px;font-weight:600;display:inline-block;padding:5px 10px;border-radius:4px;background:#291972}.review-schedules .btn-blue:focus{background-color:#261769;border-color:#261769;color:#fff}.review-schedules .btn-blue:hover{background-color:#261769;border-color:#261769;color:#00ff5a}.review-schedules .btn-red{color:RGBA(231, 76, 60, 1);border:2px solid RGBA(231, 76, 60, 1);font-size:13px;font-weight:600;display:inline-block;padding:5px 10px;border-radius:15px;background:#fff;font-weight:700}.review-schedules .btn-red:hover{background:RGBA(231, 76, 60, 0.15);color:RGBA(231, 76, 60, 1)}.review-schedules .sm-spinner-contain{position:relative;left:4px;width:24px;height:8px;display:flex}.review-schedules h3{margin:0px 15px 15px 15px}.review-schedules .review-item{width:100%;height:7em;padding:0px;margin:0px}.review-schedules .review-ibox{border-radius:5px;width:100%}.review-schedules .review-ibox .ibox-title{border-radius:5px 5px 0px 0px}.review-schedules .review-ibox .review-assignment-icon-circle{margin-right:10px}.review-schedules .review-ibox .ibox-content{border-radius:0px 0px 5px 5px}.review-schedules .review-ibox .col-xs-3,.review-schedules .review-ibox col-xs-9{padding:0px}.review-schedules .review-ibox h4:nth-child(1){color:RGBA(50, 119, 179, 1);margin:15px 15px 0px 15px}.review-schedules .review-ibox .btn-blue{margin-top:15px;margin-right:10px}.group-item-owners-list .label{white-space:normal}.group-item-owners-list .list-item{padding:0px}.group-item-owners-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.group-item-owners-list .list-item-row-button:hover{background-color:#e0e0e0}.inbox-styles *{scrollbar-width:thin;scrollbar-color:#e7e7e7 #fff}.inbox-styles ::-webkit-scrollbar{width:12px;border:1px solid #e7e7e7}.inbox-styles ::-webkit-scrollbar-track{background:#fff}.inbox-styles ::-webkit-scrollbar-thumb{background-color:#e7e7e7;border-radius:20px;border:3px solid #fff}.inbox-styles .caret{margin-left:10px}.inbox-styles .list-view-body{max-height:500px;overflow-y:auto}.inbox-styles .no-left-padding{padding-left:0px}.inbox-styles .inbox-red{color:#ba0003}.inbox-styles .ibox-title{color:#121321;padding:15px;border-radius:5px}.inbox-styles .ibox{border-radius:4px}.inbox-styles .list-item{background:#fff}.inbox-styles .list-item:nth-child(even){background:#fff}.inbox-styles label{font-weight:normal}.inbox-styles p{color:#707070;font-size:10px;text-align:center}.inbox-styles .btn-default .badge{background-color:#ffd5d6;color:#ba0003;border:1px solid #f91d21}.inbox-styles .btn-primary{font-size:12px;font-weight:bold}.inbox-styles .btn-primary:hover{outline:none}.inbox-styles .btn-primary:focus{outline:none}.inbox-styles .btn-primary:active{outline:none}.inbox-styles .btn-success{font-size:12px;font-weight:bold}.inbox-styles .btn-success:hover{background-color:#25a75c;border-color:#25a75c;color:#fff}.inbox-styles .btn-success:focus{background-color:#25a75c;border-color:#25a75c;color:#fff}.inbox-styles .btn-success:active{background-color:#25a75c;border-color:#25a75c;color:#fff}.inbox-styles .open .dropdown-toggle.btn-success{background-color:#25a75c;border-color:#25a75c;color:#fff}.inbox-styles .btn-default{padding:25px 20px;width:300px;color:#121321;background-color:#fff;border-color:#c2c4cc}.inbox-styles .btn-default:hover{background:#f5f5f5;color:#121321;outline:none}.inbox-styles .btn-default:active{background:#e0e0e0;color:#121321;border-color:#c2c4cc;outline:none}.inbox-styles .btn-default:active:focus{color:#121321;background-color:#e0e0e0;border-right:4px solid #291972;outline:none;font-weight:bold}.inbox-styles .btn-default:active:hover{color:#121321;background-color:#f5f5f5;border-color:#c2c4cc;outline:none}.inbox-styles .btn-default:focus{background:#e0e0e0;color:#121321;font-weight:bold;border-right:4px solid #291972;outline:none}.maintain-risk-ruleset .list-item{padding:0px}.maintain-risk-ruleset .list-item-row-button{position:relative;border-left:1px solid #e7e7e7}.maintain-risk-ruleset .select-mode{border-right:1px solid #e7ecea;cursor:pointer}.maintain-risk-ruleset input{accent-color:#5da45e;cursor:pointer}.maintain-risk-ruleset .btn-copy{background:#5da45e;font-size:11px;padding:3px 6px;font-weight:bold;color:#fff}.maintain-risk-ruleset .btn-copy:hover{background:#579858;font-size:11px;padding:3px 6px;font-weight:bold}.maintain-risk-ruleset .bulk-copy{background:#e3efe3;color:#5da45e;padding:5px 15px}.maintain-risk-ruleset .text-copy{color:#5da45e}.maintain-business-process .list-item{padding:0px}.maintain-business-process .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.maintain-business-process .list-item-row-button:hover{background-color:#e0e0e0}.maintain-business-process .select-mode{cursor:pointer;border-right:1px solid #c2c4cc}.maintain-business-process input{accent-color:#5da45e;cursor:pointer}.maintain-business-process .btn-copy{background:#5da45e;font-size:11px;padding:3px 6px;font-weight:bold;color:#fff}.maintain-business-process .btn-copy:hover{background:#579858;font-size:11px;padding:3px 6px;font-weight:bold}.maintain-business-process .bulk-copy{background:#e3efe3;color:#5da45e;padding:5px 15px}.maintain-business-process .text-copy{color:#5da45e}.certifications-all-review .list-item{padding:0px}.certifications-all-review .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.certifications-all-review .list-item-row-button:hover{background-color:#e0e0e0}.certifications-all-review .fa-filter{margin:0}.notification-teams .list-item{padding:0px}.notification-teams .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.notification-teams .list-item-row-button:hover{background-color:#e0e0e0}.review-schedule-instances-list .list-item{padding:0px}.review-schedule-instances-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.review-schedule-instances-list .list-item-row-button:hover{background-color:#e0e0e0}.instance-assignments-list .list-item{padding:0px}.instance-assignments-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.instance-assignments-list .list-item-row-button:hover{background-color:#e0e0e0}.review-schedule-routing-criteria-instances-list .list-item{padding:0px}.review-schedule-routing-criteria-instances-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.review-schedule-routing-criteria-instances-list .list-item-row-button:hover{background-color:#e0e0e0}.generated-reports .list-item{padding:0px}.generated-reports .list-item-row-button{position:relative;border-left:1px solid #e7e7e7}.sim-risk-analysis .sapBack{font-size:1.5em;margin:5px}.sim-risk-analysis .sapBack:focus{outline:none}.sim-risk-analysis .btn-detailed{background:#2881eb;font-weight:700;color:#fff;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;margin:5px}.sim-risk-analysis .btn-detailed:hover{background:#2876d4}.sim-risk-analysis .btn-detailed:active{background:#2876d4}.sim-risk-analysis .btn-detailed:focus{background:#2876d4;outline:none}.sim-risk-analysis .btn-single{background:#2881eb;font-weight:700;color:#fff;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;margin:5px}.sim-risk-analysis .btn-single:hover{background:#2876d4}.sim-risk-analysis .btn-single:active{background:#2876d4}.sim-risk-analysis .btn-single:focus{background:#2876d4;outline:none}.sim-risk-analysis .btn-composite{background:#62bd60;font-weight:700;color:#fff;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;margin:5px}.sim-risk-analysis .btn-composite:hover{background:#5aa758}.sim-risk-analysis .btn-composite:active{background:#5aa758}.sim-risk-analysis .btn-composite:focus{background:#5aa758;outline:none}.migrations-list .list-item{padding:0px}.migrations-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.migrations-list .list-item-row-button:hover{background-color:#e0e0e0}.sap-auth-field-groups .table{margin-bottom:0px}.approval-groups .list-item{padding:0px}.approval-groups .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.approval-groups .list-item-row-button:hover{background-color:#e0e0e0}.company-templates-list .list-item{padding:0px}.company-templates-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.company-templates-list .list-item-row-button:hover{background-color:#e0e0e0}.company-templates-companies-list .list-item{padding:0px}.company-templates-companies-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.company-templates-companies-list .list-item-row-button:hover{background-color:#e0e0e0}.notification-types-list .list-item{padding:0px}.notification-types-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.notification-types-list .list-item-row-button:hover{background-color:#e0e0e0}.notification-types-list .panel-heading{background-color:#fff}.ownership-groups-list .list-item{padding:0px}.ownership-groups-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.ownership-groups-list .list-item-row-button:hover{background-color:#e0e0e0}.group-roles-list .list-item{padding:0px}.group-roles-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.group-roles-list .list-item-row-button:hover{background-color:#e0e0e0}.group-owners-list .list-item{padding:0px}.group-owners-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.group-owners-list .list-item-row-button:hover{background-color:#e0e0e0}.group-multiselect-dropdown div.k-multiselect-wrap{max-height:15em;overflow:auto}.group-owner-items-list .label{white-space:normal}.group-owner-items-list .list-item{padding:0px}.group-owner-items-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.group-owner-items-list .list-item-row-button:hover{background-color:#e0e0e0}.requester-groups-list .list-item{padding:0px}.requester-groups-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.requester-groups-list .list-item-row-button:hover{background-color:#e0e0e0}.requester-group-users-list .list-item{padding:0px}.requester-group-users-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.requester-group-users-list .list-item-row-button:hover{background-color:#e0e0e0}.role-templates-list .list-item{padding:0px}.role-templates-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.role-templates-list .list-item-row-button:hover{background-color:#e0e0e0}.role-template-roles-list .list-item{padding:0px}.role-template-roles-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.role-template-roles-list .list-item-row-button:hover{background-color:#e0e0e0}.fastpath-user-list .list-item{padding:0px}.fastpath-user-list .list-item-row-button{position:relative;border-left:1px solid #c2c4cc}.fastpath-user-list .list-item-row-button:hover{background-color:#e0e0e0}.roles .list-item{padding:0px}.roles .list-item-row-button{position:relative;border-left:1px solid #e7e7e7}.roles .k-grid.k-widget .k-grid-content{max-height:503px}@media only screen and (max-width: 1223px){.roles .k-grid.k-widget .k-grid-content{max-height:303px}}@media only screen and (min-width: 1224px){.roles .k-grid.k-widget .k-grid-content{max-height:303px}}@media only screen and (min-width: 1824px){.roles .k-grid.k-widget .k-grid-content{max-height:453px}}.users .list-item{padding:0px}.users .list-item-row-button{position:relative;border-left:1px solid #e7e7e7}.security-assignment .list-item{padding:0px}.security-assignment .k-grid.k-widget .k-grid-content{max-height:503px}@media only screen and (max-width: 1223px){.security-assignment .k-grid.k-widget .k-grid-content{max-height:303px}}@media only screen and (min-width: 1224px){.security-assignment .k-grid.k-widget .k-grid-content{max-height:303px}}@media only screen and (min-width: 1824px){.security-assignment .k-grid.k-widget .k-grid-content{max-height:453px}}.identity-manager-request-details-view .request-view{padding:0px 10px}.identity-manager-request-details-view .request-view h3{font-size:11px;text-transform:uppercase;font-weight:700;margin-top:0px}.identity-manager-request-details-view .request-view p{font-size:13px}.identity-manager-request-details-view .request-view .request-expiration{color:#ba0003;font-weight:700}.identity-manager-request-details-view .request-details-headers{background-color:#fff}.identity-manager-request-details-view .request-details-headers h4{font-size:22.5px;font-weight:600}.identity-manager-request-details-view .request-details-content{padding:15px;background:#fff;border-top:1px solid #c2c4cc;border-bottom:1px solid #c2c4cc}.identity-manager-request-details-view .rd-header-tabs{border:none;padding:5px}.identity-manager-request-details-view .rd-container{border:none}.identity-manager-request-details-view .rd-notes list-item{border:1px solid #c2c4cc;border-radius:4px;padding:10px;background-color:#fff}.identity-manager-request-details-view .list-item{padding:15px}.identity-manager-request-details-view .table{margin-bottom:0px}.identity-manager-request-details-view .btn-approve-selected{background:#bafcd4;color:#007138;font-weight:700;border-radius:4px;border:1px solid #007138;padding:5px 10px}.identity-manager-request-details-view .btn-approve-selected:hover{background:#007138;color:#bafcd4;border:1px solid #007138}.identity-manager-request-details-view .btn-approve-selected:focus{background:#007138;color:#bafcd4;border:1px solid #007138}.identity-manager-request-details-view .btn-delegate-selected{background:#93deff;color:#0359a6;font-weight:700;padding:5px 10px;border-radius:4px;border:1px solid #0359a6}.identity-manager-request-details-view .btn-delegate-selected:hover{background:#0359a6;color:#93deff;border:1px solid #0359a6}.identity-manager-request-details-view .btn-delegate-selected:focus{background:#0359a6;color:#93deff;border:1px solid #0359a6}.identity-manager-request-details-view .btn-deny-selected{background:#ffd5d6;color:#ba0003;font-weight:700;padding:5px 10px;border-radius:4px;border:1px solid #f91d21}.identity-manager-request-details-view .btn-deny-selected:hover{background:#ba0003;color:#ffd5d6;border:1px solid #f91d21}.identity-manager-request-details-view .btn-deny-selected:focus{background:#ba0003;color:#ffd5d6;border:1px solid #f91d21}.identity-manager-request-details-view .table-striped tbody tr.req-access-approve:nth-of-type(odd),.identity-manager-request-details-view .table-striped tbody tr.req-access-approve:nth-of-type(even){background:#bafcd4}.identity-manager-request-details-view .table-striped tbody tr.req-access-approve:nth-of-type(odd) td:nth-child(2),.identity-manager-request-details-view .table-striped tbody tr.req-access-approve:nth-of-type(even) td:nth-child(2){color:#007138}.identity-manager-request-details-view .table-striped tbody tr.req-access-deny:nth-of-type(odd),.identity-manager-request-details-view .table-striped tbody tr.req-access-deny:nth-of-type(even){background:#ffd5d6}.identity-manager-request-details-view .table-striped tbody tr.req-access-deny:nth-of-type(odd) td:nth-child(2),.identity-manager-request-details-view .table-striped tbody tr.req-access-deny:nth-of-type(even) td:nth-child(2){color:#ba0003}.identity-manager-request-details-view .table-striped tbody tr.req-access-delegated:nth-of-type(odd),.identity-manager-request-details-view .table-striped tbody tr.req-access-delegated:nth-of-type(even){background:#93deff}.identity-manager-request-details-view .table-striped tbody tr.req-access-delegated:nth-of-type(odd) td:nth-child(2),.identity-manager-request-details-view .table-striped tbody tr.req-access-delegated:nth-of-type(even) td:nth-child(2){color:#0359a6}.identity-manager-request-details-view .associated-items-table{border:1px solid #c2c4cc;border-radius:5px;width:100%;height:auto;overflow-y:scroll;max-height:135px;margin-bottom:5px}.identity-manager-request-details-view .label{display:inline-block}.identity-manager-request-details-view .label-info{background-color:#eeeff2;color:#121321;border:1px solid #121321}.identity-manager-request-details-view .label-warning{background-color:#ffd7b8;color:#820;border:1px solid #ff8120}.identity-manager-request-details-view .label-danger{background-color:#ffd5d6;color:#ba0003;border:1px solid #f91d21}.identity-manager-request-details-view .label-success{background-color:#bafcd4;color:#007138;border:1px solid #007138}.identity-manager-request-details-view .text-success{color:#007138}.identity-manager-request-details-view .text-warning{color:#ff8120}.identity-manager-request-details-view .text-danger{color:#ba0003}.identity-manager-request-details-view .pill-radio{background:#fff;color:#121321;padding:2px 12px;margin-right:4px;font-size:11px;border-radius:4px;cursor:pointer;display:inline-block}.identity-manager-request-details-view .pill-radio:hover{background:hsl(0,0%,96%);color:#121321;font-weight:800}.identity-manager-request-details-view .pill-radio.active{background:#291972;color:#00ff5a;font-weight:800}.identity-manager-request-details-view .vAccordion--default v-pane-content div{padding-bottom:0}.identity-manager-request-details-view .vAccordion--default v-pane.is-expanded v-pane-header{color:#291972;border-color:#c2c4cc}.identity-manager-request-details-view .custom-vPane-header{border:0;padding-left:40px}.identity-manager-request-details-view .custom-vPane-header h4{margin-bottom:0;color:#121321}.identity-manager-request-details-view .custom-vPane-header:hover{color:#291972}.identity-manager-request-details-view .custom-vPane-header:focus{color:#291972}.identity-manager-request-details-view .vAccordion--default v-pane.is-expanded .custom-vPane-header{color:#291972}.identity-manager-request-details-view .icons8-new-window{cursor:pointer;font-size:20px;color:#121321}.configuration .company-logo{max-width:150px;height:auto}.configuration table{margin-bottom:0px}.ownership-group-assignments div[list-view]{height:300px;overflow:auto}.maintain-templates-list .list-item{padding:0px}.maintain-templates-list .list-item-row-button{position:relative;border-left:1px solid #e7e7e7}.maintain-system-roles .pill-radio{padding:3px 8px;margin-right:5px;background:#8ea7b8;color:#fff;font-weight:700}.maintain-system-roles .pill-radio:hover{background:#5a90bf;color:#fff;font-weight:700}.maintain-system-roles .pill-radio:active{background:#5a90bf;color:#fff;font-weight:700}.maintain-system-roles .pill-radio.active{background:#5a90bf;color:#fff;font-weight:700}.maintain-system-roles .badge{font-size:11px}.maintain-system-roles .maintain-system-roles .active-card{background-color:#291972;color:#fff}.maintain-system-roles .maintain-system-roles-modal .k-grid-content{min-height:290px}.system-user-mappings-scrollable{max-height:470px;overflow-y:scroll}.bottom-border{border-bottom:1px solid #c2c4cc}.modal-body .k-grid-content{min-height:100px}*{scrollbar-width:thin;scrollbar-color:#aaa #e7e7e7}::-webkit-scrollbar{height:12px;width:12px;border:1px solid #aaa}::-webkit-scrollbar-track{background:#e7e7e7}::-webkit-scrollbar-thumb{background-color:#aaa;border-radius:20px;border:3px solid #e7e7e7}.k-grouping-row td,.k-group-footer td,.k-grid-footer td{color:#291972}.k-popup.k-list-container{width:450px !important}.k-i-loading{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \")}.k-i-loading.k-hidden{display:none}.k-loading-image{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \");background-position:top;background-position-y:35%;background-color:rgba(51,51,51,.0588235294)}.k-grid tr td{border-color:#c2c4cc}.k-grid tr td{border-width:0 0 0 0}.k-gantt-toolbar .k-state-default,.k-grid .k-grouping-header,.k-grid-header,.k-grid-header-wrap,.k-grouping-header .k-group-indicator,.k-header,.k-pager-wrap,.k-pager-wrap .k-link,.k-pager-wrap .k-textbox{border-color:#c2c4cc;background-color:#fff}.k-grid input.k-checkbox+label.k-checkbox-label{cursor:pointer}.k-grid-header th.k-header{font-weight:800}.k-autocomplete,.k-block,.k-button-group .k-tool,.k-calendar th,.k-colorpicker .k-i-arrow-s,.k-content,.k-dropdown-wrap,.k-dropzone-active,.k-editable-area,.k-filter-row>th,.k-footer-template td,.k-grid td,.k-grid td.k-state-selected,.k-grid-content-locked,.k-grid-footer,.k-grid-footer-locked,.k-grid-footer-wrap,.k-grid-header,.k-grid-header-locked,.k-grid-header-wrap,.k-group,.k-group-footer td,.k-grouping-header,.k-grouping-header .k-group-indicator,.k-header,.k-input,.k-pager-refresh,.k-pager-wrap,.k-pager-wrap .k-link,.k-panel>.k-item>.k-link,.k-panelbar .k-content,.k-panelbar .k-panel,.k-panelbar>.k-item>.k-link,.k-separator,.k-slider-track,.k-splitbar,.k-state-default,.k-state-default .k-select,.k-state-disabled,.k-textbox,.k-textbox>input,.k-tiles,.k-toolbar,.k-tooltip,.k-treemap-tile,.k-upload-files,.k-widget{border-color:#c2c4cc}.k-button.k-state-hover,.k-button:hover{color:#333;border-color:#cecece;background-color:#ebebeb}.k-button{color:#333;border-color:#dbdbdb;background-color:#fff}.k-autocomplete.k-state-default,.k-dropdown-wrap.k-state-default,.k-multiselect.k-header,.k-numeric-wrap.k-state-default,.k-picker-wrap.k-state-default{border-color:#dbdbdb}.criteria-container .k-dropdown>.k-dropdown-wrap{padding:5px 0px}.criteria-container .k-dropdown>.k-dropdown-wrap>.k-select{padding-top:3px}.k-dropdown-wrap.k-state-hover{background:#fff}.k-grid tbody tr:last-child td{border-bottom:1px solid #f5f5f5}.cross-platform-users .k-grid tbody tr{height:50px}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{opacity:85%;pointer-events:none}.inline-block{display:inline-block;vertical-align:top}.vr{border-left:1px solid #eee;margin:0 8px;height:18px}.vr-ra{border-left:1px solid #d3d3d3;margin:0 8px;height:18px}.selected-tenant-in-dropdown{background-color:#e2e7e9;border-radius:4px;pointer-events:none}.set-min-col-width .k-grid col{width:150px}.sweet-alert-pre-wrap{white-space:pre-wrap}body.mini-navbar .nav-header{padding:0;background-color:#231556}.places-dropdown-shell{padding-bottom:10px}.places-dropdown-shell .form-inline .input-group{display:table}.nav-header{background-color:#231556}.semi-transparent-nav-icon{opacity:.32}.center-grid-icon{text-align:center}.search-icon{width:12px;margin-bottom:8px;margin-left:4px}.ad-user-link-text{vertical-align:bottom}.grid-trash-icon{font-size:1.2em;color:red;display:inline-flex}.trash-icon-sd{font-size:1.3em;display:inline-flex;margin:0 6px 0px 0}.sd-table-fields-pill-padding{padding:3px 8px}.plus-icon-trm{font-size:1.8em;display:inline-flex}.floating-left-icon{width:42px;float:left;height:100%;margin-top:4px}.float-icon8-left{width:42px;float:left;margin-top:-4px}.k-filter-row label>input[type=radio]{accent-color:#291972}input[type=radio]{accent-color:#291972}.input-sm{font-size:11px;border-radius:4px}input[type=checkbox]{accent-color:#291972;cursor:pointer}.label-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.elastic-builder .btn-primary{background-color:#291972;border-color:#291972;color:#fff}.elastic-builder .btn-primary:hover,.elastic-builder .btn-primary .active,.elastic-builder .btn-primary:active,.elastic-builder .btn-primary .open>.dropdown-toggle.btn-primary{background-color:#231556}.btn-primary{background-color:#291972;border-color:#291972;color:#fff}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-color:#231556}.searchBoxIcon{color:#2791d9;padding-right:8px;padding-left:4px}.risk-details-for-mitigate-modal{background-color:#f4f4f4;padding:16px 24px;margin-bottom:10px}.table-max-height-250{max-height:250px;overflow:auto;overflow-x:hidden}.dropdown-max-height{max-height:650px;overflow:auto;overflow-x:hidden}#dropdown-prevent-default{left:0;right:auto}.NavigationIcon{height:20px;width:20px;display:inline-block;background-size:20px 20px;background-repeat:no-repeat;vertical-align:middle;margin-bottom:2px}.NavigationIcon_review_assignments{height:45px;width:45px;display:inline-block;background-size:45px 45px;background-repeat:no-repeat;vertical-align:middle}.CustomIcon10{height:10px;width:10px;display:inline-block;background-size:10px 10px;background-repeat:no-repeat;vertical-align:middle;margin-right:3px;margin-bottom:2px}.custom-icon-for-h4{height:18px;width:18px;display:inline-block;background-size:contain;background-repeat:no-repeat;vertical-align:middle;padding-bottom:20px}.custom-circle-icon{height:12px;width:12px;display:inline-block;background-size:contain;background-repeat:no-repeat;vertical-align:middle}.custom-icon-30{height:30px;width:30px;display:inline-block;background-size:contain;background-repeat:no-repeat;vertical-align:middle;padding-bottom:20px}.custom-icon-20{height:20px;width:20px;display:inline-block;background-size:contain;background-repeat:no-repeat;vertical-align:middle;padding-bottom:20px}.height-width-80{height:80px;width:80px;background-size:contain}.custom-icon-for-inline-text{height:12px;width:12px;display:inline-block;background-size:contain;background-repeat:no-repeat;vertical-align:middle;padding-bottom:14px}.delinea-plus{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \")}.custom-icon-for-p{height:15px;width:15px;display:inline-block;background-size:contain;background-repeat:no-repeat;vertical-align:middle;padding-bottom:16px}.noSecurityModelsLogo{height:150px;width:150px;display:inline-block;background-size:contain;background-repeat:no-repeat;vertical-align:middle}.SecurityDesignerCircleOnly{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \")}.wrap-security-model-name{overflow-wrap:break-word}.padding-left-10{padding-left:10px}.label-dimgrey{background:#eeeff2;color:#121321;border:1px solid #121321}.label-darkgray{background:#0a0a0a;color:#47535f}.error-req{color:#ba0003;font-size:14px}.count-info .badge{line-height:12px;padding:2px 5px;position:absolute;right:6px;top:12px}.icons8-risk-analysis-results{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \")}.icons8-submit-progress{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \")}.defaultMitigationIcon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \")}.Integrations{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \")}.IntegrationsPurple{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \")}.ChangeTracking{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \")}.ChangeTrackingPurple{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \")}.AccessControl{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \")}.AccessControlPurple{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \")}.AccessCertifications{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \")}.AccessCertificationsPurple{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \")}.Setup{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \")}.SetupPurple{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \")}.SecuritySetup{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \")}.SecuritySetupPurple{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \")}.SystemConfiguration{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \")}.SystemConfigurationPurple{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \")}.ReportManagement{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \")}.ReportManagementPurple{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \")}.DataTransfer{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \")}.SecurityDesigner{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \")}.SecurityDesignerPurple{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_37___ + \")}.IdentityManager{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_38___ + \")}.IdentityManagerPurple{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_39___ + \")}.TransactionMonitoring{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \")}.TransactionMonitoringPurple{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \")}.x-circle-12{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \");height:15px;width:15px;display:inline-block;background-size:contain;background-repeat:no-repeat;vertical-align:middle;padding-bottom:20px;margin-left:4px}.uploadIcon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \")}.dataBasePurge{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \")}.dataBaseCollect{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \")}.dataBaseArchive{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \")}.dataBaseRestore{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \")}.snapshotCollect{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \")}.menu-item-shield{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_49___ + \")}.xml-box-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_50___ + \")}.information{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_51___ + \")}.information-fade{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_52___ + \")}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{background:#fff}.navbar-default{font-weight:normal;font-size:12px}.k-grid,.k-scheduler,.k-menu,.k-editor{border-radius:0px}.k-block,.k-button,.k-textbox,.k-drag-clue,.k-touch-scrollbar,.k-window,.k-window-titleless .k-window-content,.k-window-action,.k-inline-block,.k-grid .k-filter-options,.k-grouping-header .k-group-indicator,.k-autocomplete,.k-multiselect,.k-combobox,.k-dropdown,.k-dropdown-wrap,.k-datepicker,.k-timepicker,.k-colorpicker,.k-datetimepicker,.k-notification,.k-numerictextbox,.k-picker-wrap,.k-numeric-wrap,.k-colorpicker,.k-list-container,.k-calendar-container,.k-calendar td,.k-calendar .k-link,.k-treeview .k-in,.k-editor-inline,.k-tooltip,.k-tile,.k-slider-track,.k-slider-selection,.k-upload,.k-split-button{border-radius:0px}.list-group-item{border:0px}.k-widget.k-tooltip-validation{border-color:#ffdeab;background-color:#ffdeab;color:#2d2d2d}.glyphicon-star-favorite:before{content:\\\"\\\";font-size:18px;color:#291972}.glyphicon-star-favorite-empty:before{content:\\\"\\\";font-size:18px;color:#121321}.navigationPlaceMarker{color:#2791d9}.hr-line-dashed-thin{border-top:1px dashed #c2c4cc;color:#fff;background-color:#fff;height:1px;margin:14px 0}.params-box-minimize{position:absolute;bottom:0px;color:#434343;padding-top:2px;padding-bottom:2px;padding-left:8px;padding-right:8px;border-top-right-radius:5px;border-top-left-radius:5px;font-size:11px;width:150px}.params-box-minimize:hover,.params-box-minimize:focus{background-color:#d1dadd;color:#646a6c}.marginBottom{margin-bottom:20px}.marginTopRequestManagement{margin-top:30px}.marginBottomTen{margin-bottom:10px}.whiteText{color:#fff}.whiteHelpIcon{color:#121321;font-size:13px}.blue-report-header{background:#fff}.import-progress-bar{background:#ffbd55}.progress-bar-bad-data{background-color:#cbcbcb;color:#595959}.navbar-fixed-top,.navbar-static-top{background:#fff}.headerPaddingTwenty{padding-left:20px}.headerPaddingThirty{padding-left:28px}.reportParametersBox{padding-top:20px;padding-bottom:25px;padding-right:30px;padding-left:30px;background:#fff;position:relative}.ibox{box-shadow:0 2px 10px 0 rgba(0,0,0,.12)}.panel-body{border-radius:0px}.darkBlueButtonHeader{background-color:#1b527e;border-color:#1b527e;border:1px solid #1b527e;color:#fff}.darkBlueButtonHeader:hover,.darkBlueButtonHeader:focus,.darkBlueButtonHeader:active,.darkBlueButtonHeader.active,.open .dropdown-toggle.darkBlueButtonHeader{background-color:#163450;border-color:#163450;border:1px solid #163450;color:#fff}.k-state-selected a,.k-state-selected:link a{color:#fff;font-weight:bold}.btn{border-radius:4px}.filter-dropdown-width{width:220px}textarea{resize:none;border-radius:4px}.form-control,.single-line{border:1px solid #c2c4cc;border-radius:4px}.alert{margin-bottom:2px;border-radius:4px;border:none;font-weight:700}.alert-info{color:#664b00;background-color:#fff0be;border-left:4px solid #ffd942}.alert-warning{background-color:#ffd7b8;color:#820;border-left:4px solid #ff8120}.alert-danger{background-color:#ffd5d6;color:#ba0003;border-left:4px solid #f91d21}.alert-success{background-color:#bafcd4;color:#007138;border-left:4px solid #007138}.btn-blue{border:2px solid #291972;color:#fff;font-size:13px;font-weight:600;display:inline-block;padding:5px 10px;border-radius:4px;background:#291972}.btn-blue:focus{background-color:#261769;border-color:#261769;color:#fff}.btn-blue:hover{background-color:#261769;border-color:#261769;color:#00ff5a}.btn-red{color:RGBA(231, 76, 60, 1);border:2px solid RGBA(231, 76, 60, 1);font-size:13px;font-weight:600;display:inline-block;padding:5px 10px;border-radius:15px;background:#fff;font-weight:700}.btn-red:hover{background:RGBA(231, 76, 60, 0.15);color:RGBA(231, 76, 60, 1)}.btn-green{color:RGBA(123, 197, 123, 1);border:2px solid RGBA(123, 197, 123, 1);font-size:13px;font-weight:600;display:inline-block;padding:5px 10px;border-radius:15px;background:#fff;font-weight:700}.btn-green:hover{background:RGBA(123, 197, 123, 0.15);color:RGBA(123, 197, 123, 1)}.btn-orange{color:RGBA(249, 182, 105, 1);border:2px solid RGBA(249, 182, 105, 1);font-size:13px;font-weight:600;display:inline-block;padding:5px 10px;border-radius:15px;background:#fff;font-weight:700}.btn-orange:hover{background:RGBA(249, 182, 105, 0.1);color:RGBA(249, 182, 105, 1)}.btn-light{color:#707070;border:1px solid #c2c3c4;font-size:13px;font-weight:600;display:inline-block;padding:5px 10px;border-radius:5px;background:#fff;font-weight:700}.btn-light:hover{background:#f4f4f4}.btn-modalClose{color:#4b4f66;border:none;background:#fff}.btn-modalClose:hover{color:#ba0003}.btn-modalClose i{font-size:1.3333333333em}.gridToolbarWrapper{border:1px solid #dbdbdb}.customToolbar{padding:4px;border-bottom:1px solid #dbdbdb;background-color:#fff}.hr-line-dashed-extra-padding{border-top:1px dashed #c2c4cc;color:#fff;background-color:#fff;height:1px;margin:30px 0}#custom-bootstrap-menu.navbar-default{font-size:12px;background-color:#e2e7e9}#custom-bootstrap-menu.navbar-default .nav>li{padding-right:4px}.nav>li.activeNoBorder{background-color:#242633;border-left:none}.gridToolbarWrapper .k-grid{border:none}.navbar-form-custom .form-group{margin-bottom:14px;margin-top:13px}.navbar-form-custom .form-control{height:31px}.navbar .form-control:focus{background:#fff}.progress-strip{height:20px;background-color:#07061d}.params-submit-button{position:absolute;right:30px;bottom:12px}.navbar .dropdown-menu{border-radius:0px}.list-group.clear-list .list-group-item{padding-right:10px}.k-grid-content{max-height:540px}.big-icon{font-size:110px !important}.big-icon-50{font-size:50px !important}.new-wizard-icon:hover{color:#595d72}.modify-wizard-icon:hover{color:#595d72}.terminate-wizard-icon:hover{color:#595d72}.passwordRequirementMet{color:#5cb85c}.selectedBigIcon{color:#76798b}.selectedBigIcon:hover{color:#595d72}.wizard-progress-container{margin-top:20px;padding:15px;width:100%;position:absolute;bottom:0}.no-gutter>[class*=col-]{padding-right:0;padding-left:0}.small-gutter>[class*=col-]{padding-right:6px;padding-left:6px}.small-gutter{margin-left:-9px;margin-right:-9px}.step-disabled{pointer-events:none;cursor:default}.roles-grid-disabled{pointer-events:none;cursor:default;opacity:.6}#wizard-body-content{padding:30px;min-height:400px}.passwordRequirements{padding-left:10px}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#24a259;border-color:#24a259}.row-eq-height{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.wizard-navigation{background-color:#fff;border:1px solid #c2c4cc;border-radius:4px}.wizard-sub-heading{color:#121321;font-size:22.5px}.simple-unordered-list{list-style:none outside none;margin:0;padding:0}.form-control-dark{border:1px solid #c2c4cc}.form-control-clear{border:0px}.ibox-padding{padding:10px 20px 10px 15px}.table-icon{padding-right:3px}.btn-white,.btn-white:hover,.btn-white:focus,.btn-white:active,.btn-white.active,.open .dropdown-toggle.btn-white{color:#676a6c}.btn-white:active,.btn-white.active{box-shadow:0 2px 5px rgba(0,0,0,.21) inset}.button-label{position:relative;left:-10px;display:inline-block;padding:6px 12px;background:rgba(0,0,0,.15);border-radius:3px 0 0 3px}.btn-labeled{padding-top:0;padding-bottom:0}.wizard-selection-columns{padding:100px 20px 20px 20px}.back-button-wrapper{text-align:center;background-color:#bdbdbd;color:#eee;width:50px;height:48px;line-height:44px;padding-top:2px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-right-radius:10px;border-bottom-left-radius:10px;margin-bottom:10px;cursor:pointer}.back-button-wrapper:hover{background-color:#afaeae}.back-button-wrapper i.fa{line-height:inherit}.yellow-edit-background{background-color:#fff1c5}.img-center{margin:0 auto}.edit-border{border:solid #291972 4px;border-radius:4px}.edit-wizard-label{background-color:#fff;color:#291972;font-size:18px;padding:6px 10px}.active-panel-header{background:#08c;color:#fff}.panel-group .panel{border-radius:0px}.panel-default{border-color:#c2c4cc}.panel-default>.panel-heading{color:#121321;background-color:#fff;border-color:#c2c4cc}.panel-heading>h4{font-size:22.5px}.wizard-steps{background-color:#f5f5f5;border-radius:4px;position:relative}.wizard-nav-container{padding-bottom:30px}.wizard-nav-list{margin-bottom:0}.previous-page-link{color:#121321;font-weight:700;font-size:14px;cursor:pointer}.previous-page-link .fa{float:left;margin-top:13px;color:#291972;margin-right:10px}.wizard-nav-link .glyphicon,.wizard-nav-link .fa{float:right;margin-top:12px;margin-right:-6px;color:#291972}.wizard-nav-list>li.step-disabled>a .fa,.wizard-nav-list>li.step-disabled>a .glyphicon{float:right;margin-top:12px;margin-right:-6px;color:rgba(18,19,33,.2509803922)}li.wizard-nav-item.active .glyphicon,li.wizard-nav-item.active .fa{opacity:1}.blue-info-link{color:#8bb7f0}li.wizard-nav-item{border-bottom:solid 1px #c2c4cc;line-height:40px}.wizard-nav-list>li.active{border-left:none}.wizard-nav-list>li.step-disabled>a{color:rgba(18,19,33,.2509803922);background-color:hsla(0,0%,100%,.2509803922)}.wizard-nav-list>li>a{background-color:#fff;padding:3px 15px 3px 20px;color:#121321;font-weight:400}.wizard-nav-list>li>a:hover{background-color:#f5f5f5}.wizard-nav-list>li.already-visited>a.wizard-nav-link{color:#121321;cursor:pointer}.wizard-nav-list>li.active>a.wizard-nav-link{color:#121321}.wizard-nav-item .already-visited .active{background-color:#5794c4}.wizard-nav-list li.active>a{background-color:#e0e0e0;font-weight:600;border-left:4px solid #291972}li.wizard-child-item{line-height:20px;text-indent:15px;font-weight:400;color:#121321}.wizard-child-list li.active>a{background-color:#eef1ff;font-weight:600;border-left:none;color:#121321}.identity-manager-application-icon{background-color:#fff;padding:15px}.tile-919aa6b9-8083-4c08-ace7-9322aa69bc4e{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_53___ + \")}.tile-c311c379-e109-4e68-8082-f9c2f2e843ff{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_54___ + \")}.tile-a4066336-3e11-4856-a7cc-9726460448b0{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_55___ + \")}.tile-34d25422-9dc2-4918-8d85-084373e4bbb3{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_56___ + \")}.tile-e0981441-d1f9-4d5a-af74-cbb7339991a0{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_57___ + \")}.tile-e39d0c80-61ea-4f40-8179-a5def6869507{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_58___ + \")}.tile-19c49353-308b-4485-babe-f4200dfd1bf0{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_59___ + \")}.tile-79f1178d-d827-460e-84e5-758c0b799115{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_60___ + \")}.tile-286e7a77-4450-4527-987c-c08680356b00{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_61___ + \")}.tile-e636d4fc-dd34-4dca-9171-d61270179167{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_62___ + \")}.tile-23fa3370-b057-489e-b6bb-49aa2a2fa040{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_63___ + \")}.tile-52c24698-ed59-4734-a80f-c7bcde27b16f{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_64___ + \")}.tile-Salesforce{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_65___ + \")}.tile-Intacct{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_66___ + \")}.identity-manager-application-tile{height:100px;width:100%;display:inline-block;background-size:contain;background-repeat:no-repeat}.file-application:hover{border:#d0d0d0 solid 1px}.selected-application{box-shadow:inset 0px 0px 40px 40px rgba(120,167,204,.14)}.disabled-application-tile{pointer-events:none;cursor:default;opacity:.7}.available-roles-table{height:300px !important;overflow:auto;overflow-x:hidden}@media(min-width: 1170px){.available-roles-table td.role-wrap{word-wrap:break-word;min-width:160px;max-width:160px}}.vertical-scroll{overflow-y:auto}.roles-table{height:300px !important;overflow:-moz-scrollbars-vertical;overflow-y:scroll}.record-types-table{height:400px !important;overflow:auto}.btn-approve{background-color:#73c940;border-color:#73c940;color:#fff}.btn-approve:hover,.btn-approve:focus,.btn-approve:active,.btn-approve.active,.open .dropdown-toggle.btn-approve{background-color:#6dbd3d;border-color:#6dbd3d;color:#fff}.btn-approve.active.focus,.btn-approve.active:focus,.btn-approve.active:hover,.btn-approve:active.focus,.btn-approve:active:focus,.btn-approve:active:hover,.open>.dropdown-toggle.btn-approve.focus,.open>.dropdown-toggle.btn-approve:focus,.open>.dropdown-toggle.btn-approve:hover{background-color:#6dbd3d;border-color:#6dbd3d;color:#fff}.fontWeight600{font-weight:600}.btn-default{color:#291972;background-color:#fff}.btn-default:hover{color:#291972;background-color:hsl(0,0%,96%)}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#291972;background-color:hsl(0,0%,96%)}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#291972;background-color:hsl(0,0%,96%)}.full button span{background-color:#32cd32;border-radius:32px;color:#000}.partially button span{background-color:orange;border-radius:32px;color:#000}.table tbody>tr>td.vert-align{vertical-align:middle}.table tbody>tr>td.vert-align-bottom{vertical-align:bottom}.col-centered{float:none;margin:0 auto}.ibox-min-height{min-height:400px;padding:30px}.review-assignments-pane{min-height:700px}.verticalTabs .nav>li.active{border-left:0px;background-color:rgba(0,0,0,0)}.topMarginForScheduleDropdown{margin-top:34px}.topMarginForScheduleSave{margin-top:56px}.modalBodyGray{background:#f2f3f5}.topPaddingFifty{padding-top:50px}.backButtonPadding{padding-top:10px;padding-bottom:10px}.navigationBack{font-size:22px;margin-right:10px;background-color:#291972;border-radius:5px}.btn-greenRadio{background:#f1f1f1;color:#676a6c !important;border:solid 1px #a9a9a9;border-radius:5px}.btn-greenRadio:focus,.btn-greenRadio:active,.btn-greenRadio.active,.open .dropdown-toggle.btn-greenRadio{background-color:#bafcd4;border-color:#007138;color:#007138 !important}.btn-redRadio{background:#f1f1f1;color:#676a6c !important;border:solid 1px #a9a9a9;border-radius:5px}.btn-redRadio:focus,.btn-redRadio:active,.btn-redRadio.active,.open .dropdown-toggle.btn-redRadio{background-color:#ffd5d6;border-color:#f91d21;color:#ba0003 !important}.btn-blueRadio{background:#f1f1f1;border:solid 1px #dadada;border-radius:5px}.btn-blueRadio:focus,.btn-blueRadio:active,.btn-blueRadio.active,.open .dropdown-toggle.btn-blueRadio{background-color:#291972;border-color:#291972;color:#fff}.btn-blueRadio-darkBG{background:#f1f1f1;color:#676a6c !important;border:solid 1px #a9a9a9;border-radius:5px}.btn-blueRadio-darkBG:focus,.btn-blueRadio-darkBG:active,.btn-blueRadio-darkBG.active,.open .dropdown-toggle.btn-blueRadio-darkBG{background-color:#3070a5;border-color:#6f6f6f;color:#fff !important}.criteria-container{position:relative;width:280px}.loading-select-icon{margin-right:10px}.medBlackSpinnerPlace{height:50px;width:50px;margin-left:10px;margin-right:10px}.medBlackSpinnerRelative{height:110px;position:relative}.pdfFontColor{color:#f56445}.excelFontColor{color:#7cba89}.text-blue{color:#5794c4}.text-white{color:#fff}.k-button.k-state-disabled,.k-button.k-state-disabled:active,.k-button.k-state-disabled:active:hover,.k-button.k-state-disabled:hover,.k-button[disabled],.k-state-disabled .k-button,.k-state-disabled .k-button:active,.k-state-disabled .k-button:hover{opacity:.65}.k-grid-header-disabled{pointer-events:none;opacity:.7}.wizard-disabled{pointer-events:none;opacity:.6}.k-grid tbody tr{height:28px}.k-grid td{white-space:nowrap}.navbar-default .special_link a{background:#135284;color:#fff}.navbar-default .special_link a:hover{background:#0f456f !important;color:#fff}.navbar-default .special_link a:focus{background:#135284 !important;color:#fff}.detailedButton{padding-right:20px;padding-left:20px;color:#fff;border-radius:15px;background-color:hsla(0,0%,100%,.2)}.detailedButton:hover{color:#fff;background-color:hsla(0,0%,100%,.3)}.backToReportViewerButton{padding-right:20px;padding-left:20px;color:#fff;border-radius:15px;background-color:rgba(38,117,179,.7)}.backToReportViewerButton:hover{color:#fff;background-color:rgba(38,117,179,.8)}.backToReportViewer{padding-top:15px;padding-left:18px;padding-right:18px}.wrap-report-button-text{text-overflow:ellipsis;overflow:hidden;white-space:normal}.nav-header{background-repeat:no-repeat}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background:#f5f5f5}.favorite-star-color{color:#ffbd55}.play-saved-report-color{color:#8cb9f3}.thinGrayBorderBottom{border-bottom:solid 1px #f3f3f3}.file-application:hover i{color:#adadad}.file-application .fileIconChecked i{color:#3276b1}.file-application>a{color:#676a6c}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#1d1d1e}.nav.navbar-top-links>li>a:hover,.nav.navbar-top-links>li>a:focus{background-color:#fff;color:rgb(25.9568345324,15.8273381295,72.1726618705)}.fixed-ibox-height{min-height:650px}.Absolute-Center{margin:auto;position:absolute;top:120px;left:50%;bottom:0;right:50%}.business-process-level{min-height:60px;padding:19px;padding:14px;margin-bottom:10px;box-shadow:2px 2px 3px #dadada}.bp-level-one{background-color:#f4f5f8}.bp-level-two{background-color:#f1f0f2}.bp-level-three{background-color:#e8e8eb}.bp-level-three-scroll-section{max-height:450px;overflow:auto;overflow-x:hidden;padding-bottom:10px}.max-height-mitigate-modal{max-height:280px;overflow:auto;overflow-x:hidden;padding-left:20px;padding-right:20px}.business-process-label{width:100%;display:inline-block;padding:6px 12px;font-size:12px;font-weight:400;line-height:1.42857143;text-align:left;white-space:nowrap;border-radius:3px;background:#4f5c67;color:#fff;margin:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;outline:none;border:none}.form-control-max-width{max-width:300px;display:inline-block}.business-process-label[disabled],.business-process-label[readonly],fieldset[disabled] .business-process-label{color:#fff;opacity:.7}.business-process-tile{text-align:center;position:relative;display:inline-block;margin:2px;height:100px;width:160px;padding:10px;border-radius:2px;background:#4f5c67;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none}.absolute-top-right-10{position:absolute;top:10px;right:10px}.absolute-top-right-5{position:absolute;top:5px;right:5px}.absolute-top-right{position:absolute;top:0;right:0}.absolute-bottom{position:absolute;bottom:0;right:0;left:0}.tile-x-out{background:#36424c;padding:2px;padding-top:1px;padding-bottom:1px;padding-left:2px;padding-right:2px;border-top-right-radius:2px}.tile-x-out a{color:#fff}.business-process-tile-bottom{height:18px;background:#36424c}.text-red-when-hover{color:#888}.text-orange-when-hover{color:#888}.light-gray-link{color:#4b4f66}a.text-red-when-hover:hover{color:#d60000}a.text-orange-when-hover:hover{color:#f39c12}.user-mapping-link-button{display:none}.k-grid tr:hover .user-mapping-link-button{display:inline}.user-mapping-link-button a.user-mapping-link-button:hover{color:#121321}.material-design-box{border:1px solid #eee;padding:10px 15px;text-align:left;display:block;margin-bottom:10px;margin-right:10px;background:#f6f6f6}.contain-background-icon{width:30px;height:30px;-webkit-border-radius:3px;-webkit-background-clip:padding-box;-moz-border-radius:3px;-moz-background-clip:padding;border-radius:3px;background-clip:padding-box;background-size:contain}.height-width-64{width:64px;height:64px;background-size:contain}.height-width-32{width:32px;height:32px;background-size:contain}.height-width-16{width:16px;height:16px;background-size:contain}.height-width-14{width:14px;height:14px;background-size:contain}.file-type-icon{width:42px;float:left;height:100%;margin-top:4px}.fp-circle-success{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_67___ + \")}.fp-circle-inactive{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_68___ + \")}.excel-file-icon-64{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_69___ + \")}.pdf-file-icon-64{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_70___ + \")}.word-file-icon-64{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_71___ + \")}.excel-file-icon-16{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_72___ + \")}.pdf-file-icon-16{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_73___ + \")}.csv-file-icon-16{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_74___ + \")}.default-file-icon-16{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_75___ + \")}.default-file-icon-64{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_76___ + \")}.word-file-icon-16{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_77___ + \")}.excel-file-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_78___ + \")}.pdf-file-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_79___ + \")}.csv-file-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_80___ + \")}.word-file-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_81___ + \")}.acumatica-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_82___ + \")}.oracle-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_83___ + \")}.jde-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_84___ + \")}.orfc-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_85___ + \")}.peoplesoft-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_86___ + \")}.coupa-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_87___ + \")}.dynamics-365-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_88___ + \")}.dynamics-365-sales-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_89___ + \")}.dynamics-365-businesscentral-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_90___ + \")}.gp-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_91___ + \")}.ax-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_92___ + \")}.sl-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_93___ + \")}.netSuite-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_94___ + \")}.sapb1-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_95___ + \")}.sap-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_96___ + \")}.salesforce-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_65___ + \")}.intacct-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_66___ + \")}.nav-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_97___ + \")}.zendesk-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_98___ + \")}.jira-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_99___ + \")}.workday-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_100___ + \")}.workiva-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_101___ + \")}.azure-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_102___ + \")}.azure-active-directory-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_62___ + \")}.active-directory-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_103___ + \")}.service-now-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_104___ + \")}.zuo-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_105___ + \")}.ala-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_106___ + \")}.ariba-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_107___ + \")}.freshservice-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_108___ + \")}.auditboard-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_109___ + \")}.azure-devops-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_110___ + \")}.concur-avatar-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_111___ + \")}.plugin-dropdown-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_112___ + \")}.disabled-plugin{font-size:16px;font-weight:400;padding-top:40px}.material-design-box-header{font-weight:600;font-size:13px;padding-bottom:4px}.material-design-box .info{padding-top:8px}.material-design-image{width:42px;float:left;height:100%;margin-top:4px}.add-objects-rounded-btn{padding-right:20px;padding-left:20px;color:#fff;border-radius:15px;background-color:#27ae60;font-weight:600;font-size:11px}.add-objects-rounded-btn:hover{color:#fff;background-color:#25a75c}.label-warning-light,.badge-warning-light{background-color:#ffd7b8;color:#820;border:1px solid #ff8120}.label-danger-light,.badge-danger-light{background-color:#ffd5d6;color:#ba0003;border:1px solid #f91d21}.label-primary-light,.badge-primary-light{background-color:#291972;color:#fff;border:1px solid #121321}.label-success-light,.badge-success-light{background-color:#bafcd4;color:#007138;border:1px solid #007138}.label-dimgrey-light,.badge-dimgrey-light{background-color:#eeeff2;color:#121321;border:1px solid #121321}.label-go-light,.badge-go-light{background-color:#bafcd4;color:#007138;border:1px solid #007138}.light-gray-badge-background{background-color:#eeeff2}.white-background{background-color:#fff}.label-microsoft-account,.badge-microsoft-account{background-color:#01a7f0;color:#fff}.popover{box-shadow:0 5px 10px rgba(0,0,0,.2)}.label{display:inline-block;font-weight:400}.form-control:focus{border-color:#291972 !important;outline:0}.filter-pills-above-grid{padding:10px 20px;background-color:#f5f5f5;border:solid 1px #c2c4cc;border-bottom:none}.pill-radio{color:#434343;padding:3px 14px;font-size:12px;border-radius:14px;cursor:pointer;display:inline-block}.pill-radio:hover{background-color:rgba(0,0,0,.11)}.pill-radio.active{color:#fafafa;background-color:#291972}a.text-dark{color:#5a5a5a}a.text-dark:hover{color:#383838}.dynamic-side-grid-header{border-bottom:solid 1px #dbdbdb;color:#31708f;background-color:#fff}.float-manage-data-logo-left{padding-top:4px;width:50px;float:left}.float-product-logo-left{padding-top:6px;width:75px;float:left}.large-avatar-logo{width:50px;height:50px}.product-import-header{font-size:20px;color:#47506e;font-weight:400;line-height:normal;margin:0 0 4px}.product-import-description{color:#8991a6;font-size:12px;overflow:auto}.panel-ibox-content{background-color:#fff;color:inherit;padding:15px 20px 20px 20px;border-color:#c2c4cc;border-image:none;border-style:solid;border-width:1px;border-radius:4px}.panel-ibox-title{border-radius:5px 5px 0px 0px !important;background:#fff !important;color:#121321 !important;padding:10px 15px}.panel-ibox-title h5{float:none;font-size:22.5px}.product-import-action{margin-top:15px}.light-gray-behind-icon{padding:15px 15px;display:inline-block;-moz-border-radius:100px;-webkit-border-radius:100px;border-radius:100px;background-color:#f6f6f6}.manual-mapping-modal-tile{padding:5px 10px}.manual-mapping-yellow-tile{color:#b27e00;background-color:#fff0cc;border-radius:4px;border:dashed 1px #cecece}.manual-mapping-tile-selected{border:dashed 1px #cecece;border-radius:4px}.center-div{padding-top:100px;margin:auto;width:100px;height:100px}.disabledDiv{pointer-events:none;opacity:.4}.new-mapping-dot{color:#291972;font-size:.5em;padding-right:8px;vertical-align:middle}a.text-danger:focus,a.text-danger:hover{color:#c9483b}a.text-success:focus,a.text-success:hover{color:#228f50}.dynamic-side-grid-shell{border-bottom:solid 1px #f2f2f2}.dynamic-side-grid-shell h5{color:#121321}.table tr.active th,.table tr.active td{color:#2675b3}.k-widget.k-tooltip{border-color:#000;color:#333;padding:7px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);word-wrap:break-word}.k-callout-n{border-bottom-color:#a9a9a9}.k-callout-w{border-right-color:#a9a9a9}.k-callout-s{border-top-color:#a9a9a9}.k-callout-e{border-left-color:#a9a9a9}.toolbar-link{display:inline-block;color:#121321;padding:3px 14px;font-size:12px;border-radius:4px;cursor:pointer}.toolbar-link:hover{background-color:rgba(0,0,0,.05)}.toolbar-link[disabled]{pointer-events:none;cursor:default;opacity:.7}.select-a-row-for-details-info{text-align:center;padding:20px;padding-top:30px;color:#a2a2a2;background-color:#fff}.gray-kendo-dropdown .k-dropdown-wrap.k-state-default{background-color:#fff;border-color:rgba(0,0,0,0)}.gray-kendo-dropdown .k-dropdown-wrap.k-state-default:hover{background-color:rgba(0,0,0,.05)}.k-filter-menu label{padding-right:20px}.k-filter-menu label input{margin-right:5px}.k-link input{margin-right:5px}.k-dropdown .k-input{color:#121321}.k-item .k-link{font-size:12px}.btn-grid-row-settings{background-color:inherit;border-radius:0;padding:4px}.btn-grid-row-settings:hover{background-color:#d9d9d9 !important}.k-grid tr.k-state-selected{background-color:#291972}.k-grid tr.k-state-selected:hover td{background-color:#291972}.k-link{color:#291972}.k-calendar .k-footer .k-nav-today{color:#291972}.k-calendar .k-today .k-link{color:#121321;box-shadow:inset 0 0 7px 0 #291972}.k-calendar .k-footer .k-nav-today:hover{color:#121321}.k-calendar td.k-state-focused .k-link{color:#121321;box-shadow:inset 0 0 7px 0 #291972}.k-calendar td.k-state-focused .k-link:hover{color:#121321}.k-state-selected{background-color:#291972;border-color:#291972;color:#fff}.k-state-selected .btn-grid-row-settings{color:#fff;background-color:#fff;border-color:none}.k-icon{color:#291972}.k-grid-header .k-i-sort-asc-sm,.k-grid-header .k-i-sort-desc-sm,.k-grid-header .k-sort-order{color:#291972}.row-settings-drop-padding{padding-top:12px;padding-bottom:20px}.btn-text-only{color:#291972;background-color:#fff;border-color:#fff}.btn-text-only:hover{color:#291972;background-color:hsl(0,0%,96%);border-color:hsl(0,0%,96%)}.btn-secondary{color:#291972;background-color:#fff;border-color:#291972}.btn-secondary:hover{color:rgb(34.9827338129,21.3309352518,97.2690647482);background-color:hsl(0,0%,96%);border-color:#291972}.btn-secondary:focus,.btn-secondary:active,.btn-secondary.active,.open .dropdown-toggle.btn-secondary{background-color:hsl(0,0%,96%)}.disabled-ibox{opacity:.5;pointer-events:none}.unfocused-ibox-content{opacity:.4}.focused-ibox-content{border-top:1px solid #cdcdcd;border-bottom:1px solid #cdcdcd}.import-sub-title{text-transform:uppercase;color:#121321;font-size:15px;font-weight:600}.centered-div-1200-max{max-width:1200px;height:auto;margin:0 auto;padding:10px;position:relative}.centered-div-800-max{max-width:800px;height:auto;margin:0 auto;padding:10px;position:relative}.centered-div-450-max{max-width:450px;height:auto;margin:0 auto;padding:10px;position:relative}.div-400-max{max-width:400px;width:100%;display:inline-block;margin-right:30px;vertical-align:top}.configuartion-window-pane{min-height:500px}.sm-spinner-contain{position:relative;left:4px;width:24px;height:8px;display:inline-block}.ibox-title h5{float:none;font-size:22.5px}.ibox-title-border-bottom{border-bottom:solid 1px #c2c4cc;min-height:59px}.label-out-of-box-template{color:#121321;background-color:#eeeff2;border:1px solid #121321}.label-custom-template{color:#0359a6;background-color:#93deff;border:1px solid #0359a6}.label-sim-deployed{background-color:#93deff;color:#0359a6;border:1px solid #0359a6}.label-sim-draft{background:#eeeff2;color:#121321;border:1px solid #121321}.label-sim-ready{background-color:#bafcd4;color:#007138;border:1px solid #007138}.label-sim-analyzing{background-color:#ffd7b8;color:#820;border:1px solid #ff8120}.label-modify{background-color:#ffd7b8;color:#820;border:1px solid #ff8120}.label-add{background-color:#bafcd4;color:#007138;border:1px solid #007138}.label-remove{background-color:#ffd5d6;color:#ba0003;border:1px solid #f91d21}.role-modification-item{padding-bottom:2px;padding-top:2px}.simulator-role-child-item{padding:6px 14px;border-bottom:solid 1px #f4f4f4}.badge-simulation-object-count{font-size:9px;background-color:#eee;margin-bottom:2px}.permission-level-selection{border:none;color:#3276b1;width:58px}.run-simulation-button{width:50%;min-width:170px}.additional-downloads-btn{position:absolute;top:40px;right:22px}.file-exporting-opacity{opacity:.48}.settings-title-link:hover{text-decoration:underline}.stats-number{font-weight:200;font-size:20px}.max-height-none{height:auto !important}.k-pager-numbers li:nth-child(2):last-child{display:none}.dropdown-header{color:#121321;font-weight:600;padding:10px 22px;border-bottom:solid 1px #c2c4cc}button[title=Clear].k-button-icon{border:none;background-color:rgba(0,0,0,0) !important}span[title=clear].k-clear-value{display:none !important}.k-dropdown-operator>.k-dropdown-wrap.k-state-default{border-color:rgba(0,0,0,0)}.dropdown-menu>li>a{margin:0;padding:6px 16px}#right-sidebar-notifications{background-color:#fff;border-left:1px solid #c2c4cc;border-top:1px solid #c2c4cc;overflow:hidden;position:fixed;top:60px;width:300px !important;z-index:1008;bottom:0;right:-260px}#right-sidebar{background-color:#fff;border-left:1px solid #c2c4cc;border-top:1px solid #c2c4cc;overflow:hidden;position:fixed;top:60px;width:300px !important;z-index:1009;bottom:0;right:-300px}#right-sidebar-notifications.sidebar-open{right:0}#right-sidebar-notifications.sidebar-open.sidebar-top{top:0;border-top:none}.vertical-align-middle{display:inline-block;vertical-align:middle}.import-status-icon{display:inline-block;width:15px;height:15px}input[type=radio]{vertical-align:bottom}input[type=checkbox]{vertical-align:bottom}.o-btn{display:inline-block;width:100%;padding:25px 0;border-radius:2px;color:#291972;border-color:#c2c4cc;background-color:#fff}.o-btn:hover{background-color:#f4f4f5;border-color:#c2c4cc}.save-report-modal-helper-text{color:#121321;margin-bottom:5px;font-size:10px}oi-select .select-dropdown-optgroup-option.active:not(.disabled){background-color:#f5f5f5;color:#121321;cursor:pointer}.no-data-to-display-message{color:#f0f0f0;font-size:50px;padding-top:60px}.swal-confirm-button{background-color:#291972 !important;color:#fff !important;box-shadow:none !important;border-radius:4px;border:1px #291972 solid !important}.swal-confirm-button:hover{background-color:#261769 !important;border-color:#261769;color:#00ff5a !important}.swal-cancel-button{background-color:#fff !important;color:#121321 !important;box-shadow:none !important;border-radius:4px;border:1px #291971 solid !important}.swal-cancel-button:hover{background-color:hsl(0,0%,96%) !important;border-color:#291971;color:#121321 !important}.swal2-modal{font-family:\\\"Manrope\\\",\\\"Manrope\\\",Helvetica,Arial,sans-serif;border-radius:4px}.swal2-container{z-index:99999}.btn-group button{outline:none !important}.modal-body-no-side-padding{padding-top:20px;padding-bottom:30px}.overflow-visible{overflow:visible !important}.dropdown-menu-text-color{color:#333}.no-margin{margin:0}.btn-modalClose-white{color:#f2f2f2;background-color:rgba(0,0,0,0);border:none}.btn-modalClose-white:hover{color:#fff}.zendesk-modal-header{background-color:#03363d;color:#fff}.zendesk-status-new{color:#f5ca00}.zendesk-status-open{color:#e82a2a}.zendesk-status-pending{color:#59bbe0}.zendesk-status-solved{color:#828282}.jira-cat-toDo{color:#4a6785}.jira-cat-inProgress{color:#ffd351}.jira-cat-done{color:#14892c}.jira-no-cat{color:#ccc}.fixed-btn-width{width:50px}.media-body{width:inherit}.wrapper-content{min-height:800px}.drag-drop-pane{border:2px dashed #d3d3d3;border-radius:4px;text-align:center;color:#a9b2be}.drag-drop-pane-open{border:2px dashed #d3d3d3}.drag-drop-pane-active{border:2px dashed gray}.ibox-clickable{cursor:pointer}.ibox-clickable:hover{cursor:pointer;background-color:#fafbfc}.ibox-list-item{padding:15px 20px 15px 20px;border-top:solid 1px #c2c4cc;overflow:hidden}.ibox-list-item>.pull-left{margin-right:10px}.ibox-muted-text{color:#d0d0d0}.tracking-template-table-physical-name{font-size:10px;padding-left:10px;color:#a9a9a9}.k-filtercell>.k-operator-hidden>label{font-weight:400;padding-right:15px;margin-bottom:-5px}.k-filtercell>.k-operator-hidden>label:checked{font-weight:600}.k-filtercell>.k-operator-hidden>label>input{margin-left:3px}.new-record-list-item{border-left:3px solid #5b91c0}.saved-report-filter-counter{font-size:12px}.text-toggle-on-color{color:#291972}.vAccordion--default v-pane-header{border-bottom:1px solid #c2c4cc}.vAccordion--default v-pane-content>div{padding-bottom:0;border-bottom:solid 1px #c2c4cc}.vAccordion--default v-pane-header::after,.vAccordion--default v-pane-header::before{background-color:#121321}v-pane-header::after{left:20px !important}v-pane-header::before{left:20px !important}.vAccordion--default v-pane-header{margin-bottom:0}.custom-vPane-header{padding:20px;background-color:#fff}label[disabled]{cursor:pointer;opacity:.65;pointer-events:none}a[disabled]{cursor:pointer;opacity:.65;pointer-events:none}.list-item-row-button{height:100%;position:absolute;top:0;right:0;color:#121321;background-color:#fff;border:none;border-left:solid 1px;border-color:#c2c4cc;width:35px;padding:4px;outline:none}.list-item-row-button:hover{background-color:#e0e0e0;border-left:1px solid #c2c4cc}.saved-message{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);cursor:default;pointer-events:none;color:#2ab27b;font-weight:600}.fadein,.fadeout{-webkit-transition:all cubic-bezier(0.25, 0.46, 0.45, 0.94) 1s;-moz-transition:all cubic-bezier(0.25, 0.46, 0.45, 0.94) 1s;-o-transition:all cubic-bezier(0.25, 0.46, 0.45, 0.94) 1s;transition:all cubic-bezier(0.25, 0.46, 0.45, 0.94) 1s}.fadein.ng-hide-remove,.fadeout.ng-hide-add.ng-hide-add-active{opacity:0}.fadeout.ng-hide-add,.fadein.ng-hide-remove.ng-hide-remove-active{opacity:1}.criteria-drop{padding:10px 6px;width:100%;border:1px solid #c2c4cc;border-radius:2px;-webkit-appearance:none;-webkit-box-shadow:none;-moz-appearance:none;background:#fff url(\" + ___CSS_LOADER_URL_REPLACEMENT_113___ + \") no-repeat 99% center}select:hover{cursor:pointer}.criteria-number{display:block;padding:10px 6px;width:90px;border:1px solid #c2c4cc;border-radius:2px;-webkit-appearance:none;-webkit-box-shadow:none;-moz-appearance:none;background:#fff}.criteria-text{display:block;padding:10px 6px;width:100%;border:1px solid #c2c4cc;border-radius:2px;-webkit-appearance:none;-webkit-box-shadow:none;-moz-appearance:none;background:#fff}.form-inline .criteria-time input.form-control{width:50px;height:39px;padding:10px 6px;border:1px solid #c2c4cc;border-radius:2px}.criteria-drop-date-pick{padding:10px 6px;width:100%;border:1px solid #c2c4cc;border-radius:2px}.criteria-drop:focus{border-color:#c2c4cc !important;outline:0}.criteria-drop[disabled]{cursor:not-allowed}.criteria-drop[disabled],.criteria-drop[readonly]{background-color:#eee;opacity:1}.criteria-attached-button{padding:8px;padding-bottom:9px;border:1px solid #c2c4cc}.security-object-condition-container{padding:6px 7px;border-radius:6px;border:solid 1px #c2c4cc;background-color:#fafafa;border-left:solid #291972}.disable-pointer-events{pointer-events:none;cursor:default;opacity:.4}.help-icon-modal-header{font-size:12px;margin-left:5px}.k-popup .k-list .k-state-focused{border-radius:0;-webkit-box-shadow:none;box-shadow:none}.k-popup .k-list .k-state-selected{border-radius:0;-webkit-box-shadow:none;box-shadow:none;background-color:#ebebeb;color:#121321;border:solid 1px #121321}.k-popup .k-list .k-state-hover .k-state-selected{border-radius:0;-webkit-box-shadow:none;box-shadow:none;color:#121321}.k-popup .k-list .k-state-hover{border-radius:0;-webkit-box-shadow:none;background-color:#f5f5f5;cursor:pointer;box-shadow:none}.k-calendar td.k-state-selected .k-link{border-color:#291972;background-color:#291972;color:#fff}.k-popup.k-calendar-container,.k-popup.k-list-container{padding:0px;border-width:0px}.k-dropdown-wrap.k-state-active.k-state-border-down,.k-numeric-wrap .k-link.k-state-selected,.k-pager-numbers.k-state-expanded .k-current-page .k-link,.k-picker-wrap.k-state-active.k-state-border-down{-webkit-box-shadow:none;box-shadow:none;border-radius:0px}.k-list-filter{margin-bottom:0}.btn-ax-security-designer{text-align:left;font-weight:600;font-size:13px}.centered-btn-ax-security-designer{text-align:center;font-weight:600;font-size:13px}.centered-text-left-btn-ax-security-designer{text-align:center;font-weight:600;font-size:13px}.btn-block{white-space:normal}.security-designer-card{border-radius:4px;border:1px solid #c2c4cc;padding:30px 20px;background-color:#fff;position:relative;margin-bottom:8px}.large-badge{padding:2px 7px;border-radius:360px;font-size:12px}.large-badge:empty{display:none}.ax-roles-badge-color{background-color:#291972;color:#fff;border:1px solid #121321}.ax-duties-badge-color{background-color:#e2e2f3;color:#231556;border:1px solid #231556}.ax-tables-badge-color{background-color:#bafcd4;color:#007138;border:1px solid #007138}.ax-table-fields-badge-color{background-color:#bafcd4;color:#007138;border:1px solid #007138}.ax-privileges-badge-color{background-color:#93deff;color:#0359a6;border:1px solid #0359a6}.ax-subroles-badge-color{background-color:#fff0be;color:#664b00;border:1px solid #ffd942}.ax-menuitems-badge-color{background-color:#eeeff2;color:#121321;border:1px solid #121321}.ax-dataentities-badge-color{background-color:#93deff;color:#0359a6;border:1px solid #0359a6}.ax-serviceoperations-badge-color{background-color:#fdc4ee;color:#7f1a86;border:1px solid #7f1a86}.btn-success{background-color:#27ae60;border-color:#27ae60;color:#fff}.btn-success:disabled,.btn-success:disabled:hover{background-color:#27ae60;border-color:#27ae60;color:#fff}.btn-success:hover,.btn-success:active,.btn-success:focus{background-color:#25a75c;border-color:#25a75c;color:#fff}.icons8,[class^=icons8-]:before{font-weight:inherit}.rounded-search-box{border-radius:4px;max-width:158px;display:inline-block;border-color:#4b4f66}.inline-grid-dropdown{padding:10px 2px;width:100%;border:solid 1px #dbdbdb;-webkit-appearance:none;-webkit-box-shadow:none;-moz-appearance:none;background:rgba(0,0,0,0) url(\" + ___CSS_LOADER_URL_REPLACEMENT_113___ + \") no-repeat 99% center}.pagination{margin:10px 0}.emptyStateMessage{text-align:center;color:#a9b2be;margin-top:100px}.large-transparent-dropdown-header{border:none;background-color:rgba(0,0,0,0);font-size:20px;font-weight:600;outline:none;padding:6px;padding-right:22px;-webkit-appearance:none;-webkit-box-shadow:none;-moz-appearance:none;background:rgba(0,0,0,0) url(\" + ___CSS_LOADER_URL_REPLACEMENT_113___ + \") no-repeat 99% center}.large-transparent-dropdown-header:hover{background-color:#fff}.large-transparent-dropdown-header:disabled{opacity:.65}.security-designer-top-page-break{margin-top:0px;border-color:#d3d3d3}.netSuite-passedValidation{text-decoration:line-through;opacity:.4}.netSuiteSecurityDesignerValidation{font-size:25px;padding-left:6px;margin-bottom:-30px;margin-left:-45px}.disable-list-during-load{pointer-events:none;opacity:.8}.is-modified-security-desiger-card{border-left:#ff8120 5px solid}.is-modified-security-designer-button{border-left:4px solid #ff8120 !important}.is-custom-security-desiger-card{border-left:#007138 5px solid}.permission-level-label{text-transform:uppercase;font-size:10px;font-weight:700;padding-left:8px}.steps-completed-counter{color:#fff;white-space:nowrap;padding-left:4px;padding-right:4px}.progress-bar[aria-valuenow=\\\"0\\\"]>.steps-completed-counter{color:#333}.center-change-dot{text-align:center;width:100%}.action-revoke-security-designer-card{opacity:.5;pointer-events:none}.center-icon{position:absolute;top:50%;left:50%;height:50%;transform:translate(-50%, -50%);display:block}.center-info{position:absolute;top:45%;left:50%;height:50%;transform:translate(-50%, -50%);display:block}.block-display{display:block}.loading-text-for-spinner{display:flex;justify-content:center;padding-top:8vh}.center-cells{display:flex;justify-content:center}.vcenter{position:absolute;left:50%;top:50%}.tooltip-inner{word-break:break-word;text-align:center}.security-designer-modifications-more-details{margin-right:-16px;margin-top:6px}.dashboard_card{border-radius:6px;background-color:#fff;box-shadow:0 2px 10px 0 rgba(0,0,0,.05)}.dashboard_card header{border-bottom:1px solid #ddd;color:#291972;text-align:center}.dashboard_card header{border-top-left-radius:6px;border-top-right-radius:6px;position:relative;font-size:16px;height:45px;line-height:45px;cursor:move}.dashboard_card .dashboard_card_content{-webkit-align-items:center;-ms-flex-align:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;position:relative;background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;padding-bottom:10px;padding-top:10px}.dashboard_card_icon{font-size:40px;color:#2675b3}.dashboard_tile{height:102.5px;padding-top:18px}.dashboard_tile_count{font-size:28px;text-align:center}.dashboard_tile_percent{font-size:14px;text-align:center}.card_selection_pane_icon{font-size:26px;color:#5191c2}.card-selection-pane{position:absolute;right:0px;top:0px;width:380px;height:100%;background-color:#fff;border-left:1px solid #c2c4cc;z-index:1;bottom:0;overflow:auto;overflow-x:hidden}.item{width:500px}.tile{width:240px}.is-pointer-down.is-dragging{z-index:2}.margin-bottom-last-card-selection{border-bottom:solid 1px #c2c4cc;margin-bottom:30px}.detailed-label{margin-left:3px;opacity:.75;font-size:9px}.mini-navbar .detailed-label{display:block !important}.affected-objects-item{margin-left:2.5em}.dropdown-on-top{z-index:99999999999}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#dadada}.popover .arrow{visibility:hidden}#AADExchange{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_114___ + \");background-repeat:no-repeat;background-size:45px;background-position:4px}#FastpathAccount{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_115___ + \");background-repeat:no-repeat;background-size:42px;background-position:5px}.FastpathAccount{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_115___ + \");background-repeat:no-repeat;background-size:42px;background-position:5px}.AADExchange{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_114___ + \");background-repeat:no-repeat;background-size:45px;background-position:4px}.SAML2{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_116___ + \");background-repeat:no-repeat;background-size:45px;background-position:4px}.user-type-selection{color:#434343;padding:18px 60px;font-size:12px;border-radius:3px;cursor:pointer;width:100%}.user-type-selection:hover{background-color:rgba(0,0,0,.11)}.user-type-selection.active{color:#fafafa;background-color:#291972;font-weight:600}.popover{font-size:12px;border:solid 1px #eee}.popover-title{background-color:inherit}.side-margin-15{margin:0px 15px}.side-margin-9{margin:0px 9px}.text-align-left{text-align:left}.row_cell{flex:1}.row--top{align-items:flex-start}.row_cell--center{align-self:center}.row-flex{display:flex}.row-template-bottom-padding{padding-bottom:20px}.pill-trash-spacing{margin-left:.75em}.long-and-break-word{flex:1;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word}.break-word{word-wrap:break-word}.truncate-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.max-w-87{max-width:87%}.deployed-badge{background-color:rgba(0,0,0,0);border:solid 1px #e6e6e6;color:#c3c3c3;font-size:14px}.deployed-disabled-button{background-color:rgba(0,0,0,0);border:solid 1px #e6e6e6;color:#c3c3c3}.dimmed{position:relative}.dimmed:after{content:\\\" \\\";z-index:10;display:block;position:absolute;height:100%;top:0;left:0;right:0;background:rgba(0,0,0,.5)}.chart-details-quick-view{padding:50px 16px 35px 35px}.group-by-listview-height{height:631px}.select-listview-height-paged{height:571px}.select-listview-height{height:622px}.list-view-body.paged{height:599px}.list-view-body.filter-tab{height:624px}.list-view-body.filter-tab.paged{height:547px}.list-view-body.filter-tab.dropdown-filter{height:615px}.list-view-body.filter-tab.dropdown-filter.paged{height:564px}.my-reviews-standard-height-listview{background:#fff;height:648px}.review-status-badge{margin-left:auto;margin-top:-50px}.review-status-badge-complete{color:gray}.review-status-capitalized{text-transform:capitalize}.review-assignment-tile{padding:10px;background:#fff;position:relative;border:solid 1px #c2c4cc}.review-assignment-icon-circle{border-radius:90px;padding:5px;border:solid 1px #e8e8e8;background-color:#f8f8f8}.review-assignment-icon-circle.review-assignment-clickable.text-not-selected{border-color:#b3b3b3}.text-success.review-assignment-icon-circle{border-color:#27ae60}.text-danger.review-assignment-icon-circle{border-color:#e74c3c}.review-assignment_Risk,.review-assignment_Risk{color:#fcc201}.review-assignment_Roles,.review-assignment_SecurityRole{color:#8550b3}.review-assignment_Products,.review-assignment_Product{color:#adbacb}.review-assignment_Manager{color:#36bfce}.review-assignment_BusinessProcess{color:#e22159}.review-assignment-icons8{font-size:22px;font-weight:300}.review-assignment-tile-container{height:100px}.review-assignment-tile:hover{background:#e0e0e0;cursor:pointer}.review-assignment-tile.active-tile{background:#e0e0e0;border:solid 1px #c2c4cc}.review-tile-counter{position:absolute;bottom:5px;width:100%;text-align:center}.list-view-no-hover>list-item:hover{background-color:inherit}.list-view-height{min-height:700px}.text-transparent{color:rgba(0,0,0,0)}.review-assignment-clickable.text-not-selected:hover{cursor:pointer;border-color:#cfcfcf}.flexbox_container{height:100%;display:-ms-flexbox;display:-webkit-box;display:-moz-box;display:-ms-box;display:box;-ms-flex-direction:row;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-ms-box-orient:horizontal;box-orient:horizontal}.flexbox_icon_slot{width:60px;-ms-flex:0 40px;-webkit-box-flex:0;-moz-box-flex:0;-ms-box-flex:0;box-flex:0}.flexbox_content_slot{-ms-flex:1;-webkit-box-flex:1;-moz-box-flex:1;-ms-box-flex:1;box-flex:1}.text-status-light{color:#7fb3e0}.text-not-selected{color:#b3b3b3}#JiraTicketsGrid .k-grid-content{min-height:330px}#ZenDeskTicketsGrid .k-grid-content{min-height:330px}.revoked-role-offset{margin-right:50%}.loading-overlay span{position:relative;top:50%;left:50%}list-item.selected-item{background-color:#e0e0e0}.select-spinner-container{position:relative}.input-group-unstyled .input-group-addon{border:0px}@media(min-width: 992px){.modal-xl{width:1200px}}.form-control.input-sm span.k-dropdown-wrap{height:100%}.flex-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex !important}.flex-center{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;flex-direction:row}.flex-vcenter{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.flex-between{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;flex-direction:row}.flex-start{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.flex-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-end{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:flex-end;flex-direction:row}.flex-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-column{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-equal{-webkit-box-flex:1;-ms-flex:1;flex:1}.break-words{overflow-wrap:break-word;word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}\", \"\",{\"version\":3,\"sources\":[\"webpack://./App/Shared/shared.scss\",\"webpack://./Content/SCSS/_typography.scss\",\"webpack://./Content/SCSS/_navigation.scss\",\"webpack://./Content/SCSS/_variables.scss\",\"webpack://./Content/SCSS/_top_navigation.scss\",\"webpack://./Content/SCSS/_buttons.scss\",\"webpack://./Content/SCSS/_badgets_labels.scss\",\"webpack://./Content/SCSS/_elements.scss\",\"webpack://./Content/SCSS/_sidebar.scss\",\"webpack://./Content/SCSS/_base.scss\",\"webpack://./Content/SCSS/_pages.scss\",\"webpack://./Content/SCSS/_chat.scss\",\"webpack://./Content/SCSS/_metismenu.scss\",\"webpack://./Content/SCSS/_spinners.scss\",\"webpack://./Content/SCSS/_rtl.scss\",\"webpack://./Content/SCSS/_theme-config.scss\",\"webpack://./Content/SCSS/_skins.scss\",\"webpack://./Content/SCSS/_media.scss\",\"webpack://./Content/SCSS/_custom.scss\",\"webpack://./Content/SCSS/style.scss\",\"webpack://./css/angular-toastr-custom.scss\",\"webpack://./node_modules/font-awesome/scss/font-awesome.scss\",\"webpack://./node_modules/font-awesome/scss/_path.scss\",\"webpack://./node_modules/font-awesome/scss/_core.scss\",\"webpack://./node_modules/font-awesome/scss/_larger.scss\",\"webpack://./node_modules/font-awesome/scss/_fixed-width.scss\",\"webpack://./node_modules/font-awesome/scss/_list.scss\",\"webpack://./node_modules/font-awesome/scss/_variables.scss\",\"webpack://./node_modules/font-awesome/scss/_bordered-pulled.scss\",\"webpack://./node_modules/font-awesome/scss/_animated.scss\",\"webpack://./node_modules/font-awesome/scss/_rotated-flipped.scss\",\"webpack://./node_modules/font-awesome/scss/_mixins.scss\",\"webpack://./node_modules/font-awesome/scss/_stacked.scss\",\"webpack://./node_modules/font-awesome/scss/_icons.scss\",\"webpack://./node_modules/font-awesome/scss/_screen-reader.scss\",\"webpack://./App/Shared/Components/rulesetObjectCopyModal/rulesetObjectCopyModal.scss\",\"webpack://./App/Components/RequestManagement/WizardSteps/Salesforce/salesforceUserForm.scss\",\"webpack://./App/Components/SAPSecurityDesigner/sapSecurityDesigner.scss\",\"webpack://./App/Components/SavedReports/savedReports.scss\",\"webpack://./css/scss/sharedUtilities.scss\",\"webpack://./css/scss/customIbox.scss\",\"webpack://./App/Components/Certifications/MyReviews/myReviews.scss\",\"webpack://./App/Components/AXSecurityDesigner/taskRecordingManager/taskRecordingManager.scss\",\"webpack://./App/Components/Certifications/reviewSchedules/reviewSchedules.scss\",\"webpack://./App/Components/OwnershipGroups/groupItemOwnersList/groupItemOwnersList.scss\",\"webpack://./App/Components/MyInbox/inboxStyles.scss\",\"webpack://./App/Components/maintainRiskRuleset/maintainRiskRuleset.scss\",\"webpack://./App/Components/MaintainBusinessProcess/maintainBusinessProcess.scss\",\"webpack://./App/Components/Certifications/AllReviews/certificationsAllReview.scss\",\"webpack://./App/Components/Certifications/notificationTeams/notificationTeams.scss\",\"webpack://./App/Components/Certifications/reviewSchedules/reviewScheduleInstancesList/reviewScheduleInstancesList.scss\",\"webpack://./App/Components/Certifications/reviewSchedules/scheduleInstanceAssignmentsList/instanceAssignmentsList.scss\",\"webpack://./App/Components/Certifications/reviewSchedules/routingCriteriaInstancesList/routingCriteriaInstancesList.scss\",\"webpack://./App/Components/ReportGenerator/generatedReports.scss\",\"webpack://./App/Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysis.scss\",\"webpack://./App/Components/AXSecurityDesigner/SecurityMigration/MigrationsList/migrationsList.scss\",\"webpack://./App/Components/MaintainBusinessProcess/SAPAuthFieldGroups/sapAuthFieldGroups.scss\",\"webpack://./App/Components/ApprovalGroups/approvalGroups.scss\",\"webpack://./App/Components/CompanyTemplates/CompanyTemplatesList/companyTemplatesList.scss\",\"webpack://./App/Components/CompanyTemplates/AssociatedCompaniesList/companyTemplateCompaniesList.scss\",\"webpack://./App/Components/Notifications/NotificationTypesList/notificationTypesList.scss\",\"webpack://./App/Components/OwnershipGroups/ownershipGroupsList/ownershipGroupsList.scss\",\"webpack://./App/Components/OwnershipGroups/ownershipGroupItemsList/groupItemsList.scss\",\"webpack://./App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnersList.scss\",\"webpack://./App/Components/OwnershipGroups/groupOwnerItemsList/groupOwnerItemsList.scss\",\"webpack://./App/Components/RequesterGroups/requesterGroupsList/requesterGroupsList.scss\",\"webpack://./App/Components/RequesterGroups/requesterGroupUsersList/requesterGroupUsersList.scss\",\"webpack://./App/Components/RoleTemplates/RoleTemplatesList/roleTemplatesList.scss\",\"webpack://./App/Components/RoleTemplates/AssociatedRolesList/roleTemplateRolesList.scss\",\"webpack://./App/Components/userRestrictions/fastpathUserList/fastpathUserList.scss\",\"webpack://./App/Components/Roles/roles.scss\",\"webpack://./App/Components/Users/users.scss\",\"webpack://./App/Components/securityAssignment/securityAssignment.scss\",\"webpack://./App/Components/IdentityManagerRequestDetails/identityManagerRequestDetailsView.scss\",\"webpack://./App/Components/Configuration/configuration.scss\",\"webpack://./App/Shared/Components/ownershipGroupAssignments/ownershipGroupAssignments.scss\",\"webpack://./App/Components/workdayMaintainTemplates/maintainTemplatesList.scss\",\"webpack://./App/Components/maintainSystemRoles/maintainSystemRoles.scss\",\"webpack://./App/Components/CrossPlatformUsers/crossPlatformUsers.scss\",\"webpack://./css/style.scss\"],\"names\":[],\"mappings\":\"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AA,WN2de,CM1df,kBAAA,WN0jBgB,CMzjBhB,sBAAA,WNsOoB,CMrOpB,iBAAA,WNuWe,CMtWf,gBAAA,WNknBc,CMjnBd,kBAAA,WNsnBgB,CMrnBhB,gBAAA,WNytBc,CMxtBd,gBAAA,WNmRc,CMlRd,oBAAA,WNupBkB,CMtpBlB,cAAA,WNqpBY,CMppBZ,mBAAA,WNspBiB,CMrpBjB,iBAAA,WNyIe,CMxIf,oDAEkC,WNqqBnB,CMpqBf,uBAAA,WN8iBqB,CM7iBrB,wBAAA,WN4iBsB,CM3iBtB,qBAAA,WN4fmB,CM3fnB,kBAAA,WNikBgB,CMhkBhB,+BACgC,WNgKnB,CM/Jb,mBAAA,WN+qBiB,CM9qBjB,gBAAA,WNwVc,CMvVd,kBAAA,WNuPgB,CMtPhB,mBAAA,WNgJiB,CM/IjB,gBAAA,WNmhBc,CMlhBd,oBAAA,WNgMkB,CM/LlB,+BAAA,WNY6B,CMX7B,6BAAA,WNc2B,CMb3B,iBAAA,WNqWe,CMpWf,yBAAA,WNweuB,CMvevB,0CACmC,WNsgBnB,CMrgBhB,mBAAA,WNggBiB,CM/fjB,oBAAA,WNwYkB,CMvYlB,gBAAA,WN2Yc,CM1Yd,gBAAA,WN4Pc,CM3Pd,sBAAA,WNoUoB,CMnUpB,sBAAA,WNitBoB,CMhtBpB,uBAAA,WN+sBqB,CM9sBrB,qBAAA,WNgtBmB,CM/sBnB,kBAAA,WNyegB,CMxehB,mBAAA,WNwBiB,CMvBjB,eAAA,WNymBa,CMxmBb,gBAAA,WNymBc,CMxmBd,gBAAA,WNyDc,CMxDd,oBAAA,WNyDkB,CMxDlB,iBAAA,WN+de,CM9df,kBAAA,WN2EgB,CM1EhB,gBAAA,WN0Pc,CMzPd,gBAAA,WNiDc,CMhDd,kBAAA,WN0VgB,CMzVhB,uBAAA,WNwmBqB,CMvmBrB,sBAAA,WNwmBoB,CMvmBpB,sBAAA,WNpCoB,CMqCpB,wBAAA,WNvCsB,CMwCtB,uBAAA,WNrCqB,CMsCrB,yBAAA,WNxCuB,CMyCvB,gBAAA,WN+Wc,CM9Wd,qCACoC,WN2anB,CM1ajB,kBAAA,WNsUgB,CMrUhB,wBAAA,WNkrBsB,CMjrBtB,uDAEsC,WN0bnB,CMzbnB,kBAAA,WNkbgB,CMjbhB,sBAAA,WNwXoB,CMvXpB,kBAAA,WNtDgB,CMuDhB,gBAAA,WNmnBc,CMlnBd,2CAC4C,WN+anB,CM9azB,0BAAA,WN8fwB,CM7fxB,0BAAA,WN+EwB,CM9ExB,kBAAA,WNzBgB,CM0BhB,yBAAA,WNmjBuB,CMljBvB,yBAAA,WNqLuB,CMpLvB,oBAAA,WNlBkB,CMmBlB,gBAAA,WNsbc,CMrbd,iBAAA,WNgae,CM/Zf,gBAAA,WNmjBc,CMljBd,mBAAA,WN+NiB,CM9NjB,wBAAA,WNgLsB,CM/KtB,wBAAA,WN4iBsB,CM3iBtB,iBAAA,WN+Ie,CM9If,wBAAA,WNyEsB,CMxEtB,yBAAA,WNyEuB,CMxEvB,uBAAA,WNkbqB,CMjbrB,wBAAA,WNuXsB,CMtXtB,wBAAA,WN2lBsB,CM1lBtB,wBAAA,WN2DsB,CM1DtB,2BAAA,WNybyB,CMxbzB,uBAAA,WN0SqB,CMzSrB,sBAAA,WN0GoB,CMzGpB,0BAAA,WNulBwB,CMtlBxB,0BAAA,WNuDwB,CMtDxB,eAAA,WNnCa,CMoCb,sBAAA,WNnDoB,CMoDpB,uBAAA,WNnDqB,CMoDrB,oBAAA,WNnDkB,CMoDlB,sBAAA,WNvDoB,CMwDpB,yCACkC,WN4dnB,CM3df,kBAAA,WN8IgB,CM7IhB,oBAAA,WNsFkB,CMrFlB,gBAAA,WN+Zc,CM9Zd,iBAAA,WNoWe,CMnWf,oBAAA,WNpDkB,CMqDlB,8BAAA,WNuI4B,CMtI5B,gBAAA,WNkNc,CMjNd,gBAAA,WN0Sc,CMzSd,gBAAA,WN6Kc,CM5Kd,eAAA,WNyIa,CMxIb,qBAAA,WNyImB,CMxInB,mDACiD,WNiInB,CMhI9B,iBAAA,WN+Ye,CM9Yf,oBAAA,WAAA,CACA,kBAAA,WNoagB,CMnahB,mBAAA,WNgEiB,CM/DjB,kBAAA,WN6TgB,CM5ThB,sBAAA,WNuCoB,CMtCpB,wBAAA,WNmCsB,CMlCtB,mBAAA,WN+aiB,CM9ajB,yBAAA,WNkduB,CMjdvB,kBAAA,WN0KgB,CMzKhB,uBAAA,WN2KqB,CM1KrB,oBAAA,WN3EkB,CM4ElB,oBAAA,WN7EkB,CM8ElB,4CACsC,WNlEnB,CMmEnB,0BAAA,WN+kBwB,CM9kBxB,2BAAA,WN4HyB,CM3HzB,wBAAA,WNTsB,CMUtB,eAAA,WN2Qa,CM1Qb,iCACiC,WN6CnB,CM5Cd,oBAAA,WNkDkB,CMjDlB,uBAAA,WNsiBqB,CMriBrB,yBAAA,WNoiBuB,CMniBvB,qBAAA,WN2emB,CM1enB,mBAAA,WN8NiB,CM7NjB,oBAAA,WNockB,CMnclB,2BAAA,WNuRyB,CMtRzB,sBAAA,WN6hBoB,CM5hBpB,yBAAA,WNsGuB,CMrGvB,mBAAA,WN8biB,CM7bjB,kBAAA,WNqjBgB,CMpjBhB,yBAAA,WNgLuB,CM/KvB,kBAAA,WNukBgB,CMtkBhB,mBAAA,WNqQiB,CMpQjB,iBAAA,WNiWe,CMhWf,oBAAA,WN2dkB,CM1dlB,sBAAA,WNjDoB,CMkDpB,wBAAA,WN+VsB,CM9VtB,mBAAA,WNsjBiB,CMrjBjB,0CACqC,WNgGnB,CM/FlB,kBAAA,WNoKgB,CMnKhB,kBAAA,WN0jBgB,CMzjBhB,uBAAA,WNoCqB,CMnCrB,+BACgC,WN+YnB,CM9Yb,iBAAA,WNoMe,CMnMf,oBAAA,WNrDkB,CMsDlB,gBAAA,WNhFc,CMiFd,uBAAA,WNrBqB,CMsBrB,wBAAA,WNoLsB,CMnLtB,uBAAA,WNkLqB,CMjLrB,qBAAA,WNmLmB,CMlLnB,uBAAA,WN+KqB,CM9KrB,6BAAA,WNrI2B,CMsI3B,8BAAA,WNjI4B,CMkI5B,2BAAA,WNjIyB,CMkIzB,6BAAA,WNzI2B,CM0I3B,iBAAA,WN2Je,CM1Jf,kBAAA,WN6lBgB,CM5lBhB,iBAAA,WNqee,CMpef,kBAAA,WNyGgB,CMxGhB,qBAAA,WNzEmB,CM0EnB,sBAAA,WNlIoB,CMmIpB,kCACkC,WNijBnB,CMhjBf,iCACiC,WN4OnB,CM3Od,iBAAA,WNde,CMef,iBAAA,WN0Ge,CMzGf,mCACqC,WN6XnB,CM5XlB,mCACoC,WN2FnB,CM1FjB,qBAAA,WN6SmB,CM5SnB,oCACqC,WNqGnB,CMpGlB,kBAAA,WNgbgB,CM/ahB,sDAEiC,WNlInB,CMmId,mBAAA,WNsOiB,CMrOjB,mBAAA,WNoOiB,CMnOjB,yBAAA,WN+buB,CM9bvB,qBAAA,WN2gBmB,CM1gBnB,iBAAA,WNuce,CMtcf,iBAAA,WNyOe,CMxOf,iBAAA,WN6fe,CM5ff,qBAAA,WNmTmB,CMlTnB,4BAAA,WNoT0B,CMnT1B,8BAAA,WNgI4B,CM/H5B,uBAAA,WN4HqB,CM3HrB,iBAAA,WNqQe,CMpQf,sBAAA,WNpFoB,CMqFpB,oBAAA,WN9EkB,CM+ElB,sBAAA,WNrFoB,CMsFpB,uBAAA,WNrFqB,CMsFrB,mBAAA,WNhCiB,CMiCjB,oCACiC,WN0YnB,CMzYd,0CACsC,WN8YnB,CM7YnB,uCACqC,WN2YnB,CM1YlB,oBAAA,WNUkB,CMTlB,oBAAA,WNuMkB,CMtMlB,uCACiC,WNqfnB,CMpfd,kCACkC,WNoFnB,CMnFf,2CACuC,WN+anB,CM9apB,qBAAA,WN7CmB,CM8CnB,sBAAA,WN1CoB,CM2CpB,iCACiC,WNpInB,CMqId,mBAAA,WN6WiB,CM5WjB,oBAAA,WNyekB,CMxelB,sCACsC,WNrEnB,CMsEnB,uBAAA,WNqLqB,CMpLrB,oBAAA,WNGkB,CMFlB,0BAAA,WNnEwB,CMoExB,wBAAA,WNnEsB,CMoEtB,mBAAA,WNifiB,CMhfjB,uBAAA,WN8YqB,CM7YrB,oBAAA,WNyZkB,CMxZlB,kBAAA,WN9JgB,CM+JhB,kBAAA,WNlEgB,CMmEhB,mBAAA,WN1CiB,CM2CjB,uBAAA,WN8BqB,CM7BrB,sBAAA,WN1IoB,CM2IpB,sBAAA,WNsHoB,CMrHpB,qBAAA,WNrOmB,CMsOnB,kBAAA,WN4MgB,CM3MhB,uBAAA,WNUqB,CMTrB,gBAAA,WN3Kc,CM4Kd,oBAAA,WNuFkB,CMtFlB,uBAAA,WN2QqB,CM1QrB,6BAAA,WNrO2B,CMsO3B,8BAAA,WNrO4B,CMsO5B,2BAAA,WNrOyB,CMsOzB,6BAAA,WNzO2B,CM0O3B,sBAAA,WNrOoB,CMsOpB,uBAAA,WNrOqB,CMsOrB,oBAAA,WNrOkB,CMsOlB,sBAAA,WNzOoB,CM0OpB,mBAAA,WNpDiB,CMqDjB,kBAAA,WN4IgB,CM3IhB,kBAAA,WNwYgB,CMvYhB,0CACmC,WNuMnB,CMtMhB,oBAAA,WNzGkB,CM0GlB,sBAAA,WNyQoB,CMxQpB,uBAAA,WNyQqB,CMxQrB,mBAAA,WN+ViB,CM9VjB,kBAAA,WN9GgB,CM+GhB,uCACkC,WNoRnB,CMnRf,sBAAA,WN+CoB,CM9CpB,oBAAA,WNmBkB,CMlBlB,yBAAA,WNoBuB,CMnBvB,mBAAA,WNqUiB,CMpUjB,mBAAA,WN2BiB,CM1BjB,iBAAA,WNgLe,CM/Kf,mBAAA,WN2BiB,CM1BjB,sBAAA,WNuHoB,CMtHpB,kBAAA,WNMgB,CMLhB,0BAAA,WNIwB,CMHxB,oBAAA,WN6XkB,CM5XlB,gBAAA,WNhHc,CMiHd,+CACsC,WNuQnB,CMtQnB,4EAEwC,WNsVnB,CMrVrB,0BAAA,WNwIwB,CMvIxB,gBAAA,WNhGc,CMiGd,qBAAA,WNvHmB,CMwHnB,0CACyC,WNtJnB,CMuJtB,oBAAA,WNyOkB,CMxOlB,gBAAA,WN0Fc,CMzFd,uBAAA,WN1DqB,CM2DrB,uBAAA,WNkWqB,CMjWrB,qBAAA,WN4VmB,CM3VnB,kBAAA,WNlEgB,CMmEhB,wBAAA,WNgOsB,CM/NtB,sBAAA,WN2JoB,CM1JpB,4BAAA,WN2J0B,CM1J1B,kBAAA,WNsRgB,CMrRhB,sBAAA,WN5LoB,CM6LpB,6BAAA,WNxB2B,CMyB3B,kBAAA,WNuPgB,CMtPhB,kBAAA,WN6IgB,CM5IhB,+BAAA,WN9J6B,CM+J7B,gCAAA,WN9J8B,CM+J9B,6BAAA,WN9J2B,CM+J3B,+BAAA,WNlK6B,CMmK7B,iBAAA,WN8De,CM7Df,gBAAA,WNrHc,CMsHd,kBAAA,WNvSgB,CMwShB,sBAAA,WN2ZoB,CM1ZpB,oBAAA,WNhNkB,CMiNlB,sBAAA,WN7FoB,CM8FpB,sBAAA,WN7FoB,CM8FpB,sBAAA,WN+OoB,CM9OpB,uBAAA,WNiMqB,CMhMrB,kBAAA,WN6WgB,CM5WhB,wBAAA,WN0IsB,CMzItB,0BAAA,WN0IwB,CMzIxB,oBAAA,WNqFkB,CMpFlB,sBAAA,WNmFoB,CMlFpB,wBAAA,WNnLsB,CMoLtB,yBAAA,WN0KuB,CMzKvB,gCAAA,WNpF8B,CMqF9B,wBAAA,WNwPsB,CMvPtB,mBAAA,WNjJiB,CMkJjB,sDACgD,WN/MnB,CMgN7B,kDAC8C,WN9MnB,CM+M3B,wDACiD,WNjNnB,CMkN9B,+BACgC,WNvGnB,CMwGb,eAAA,WNhCa,CMiCb,iCACgC,WNqYnB,CMpYb,gCACgC,WN4CnB,CM3Cb,4DAGgC,WNgDnB,CM/Cb,kDAEgC,WNiNnB,CMhNb,8BACgC,WN+CnB,CM9Cb,kCACgC,WN3PnB,CM4Pb,gBAAA,WNhGc,CMiGd,qBAAA,WNpFmB,CMqFnB,0BAAA,WN0PwB,CMzPxB,2BAAA,WN0PyB,CMzPzB,2BAAA,WN0PyB,CMzPzB,4BAAA,WN0P0B,CMzP1B,4BAAA,WN6P0B,CM5P1B,6BAAA,WN6P2B,CM5P3B,qBAAA,WNkUmB,CMjUnB,uBAAA,WN8TqB,CM7TrB,0BAAA,WNyawB,CMxaxB,mBAAA,WNsaiB,CMrajB,gBAAA,WN2Zc,CM1Zd,uBAAA,WN2ZqB,CM1ZrB,wBAAA,WNoasB,CMnatB,mBAAA,WNxJiB,CMyJjB,0BAAA,WN8PwB,CM7PxB,qBAAA,WNgBmB,CMfnB,kBAAA,WNpFgB,CMqFhB,eAAA,WN3Wa,CM4Wb,qBAAA,WN/RmB,CMgSnB,4BAAA,WN/R0B,CMgS1B,kBAAA,WN+UgB,CM9UhB,yBAAA,WN+UuB,CM9UvB,2BAAA,WNgDyB,CM/CzB,yBAAA,WNkDuB,CMjDvB,2BAAA,WN+CyB,CM9CzB,4BAAA,WN+C0B,CM9C1B,iBAAA,WNjWe,CMkWf,mBAAA,WNmYiB,CMlYjB,mBAAA,WN7WiB,CM8WjB,iBAAA,WNkCe,CMjCf,oBAAA,WN5KkB,CM6KlB,iBAAA,WNgNe,CM/Mf,sBAAA,WNxFoB,CMyFpB,kBAAA,WN4TgB,CM3ThB,kBAAA,WNtIgB,CMuIhB,gBAAA,WN6Cc,CM5Cd,sCACqC,WN5DnB,CM6DlB,iBAAA,WN8Pe,CM7Pf,kBAAA,WNuEgB,CMtEhB,mBAAA,WN9WiB,CM+WjB,eAAA,WNtSa,CMuSb,cAAA,WNiWY,CMhWZ,iBAAA,WNuWe,CMtWf,kBAAA,WN+IgB,CM9IhB,qBAAA,WNkFmB,CMjFnB,0BAAA,WN6NwB,CM5NxB,gCAAA,WN/W8B,CMgX9B,+BAAA,WNjX6B,CMkX7B,sDACgD,WNzRnB,CM0R7B,wBAAA,WNnMsB,CMoMtB,sBAAA,WNiWoB,CMhWpB,wBAAA,WNoVsB,CMnVtB,uCACgC,WN0SnB,CMzSb,yBAAA,WN0GuB,CMzGvB,yBAAA,WN4MuB,CM3MvB,iBAAA,WNsLe,CMrLf,2BAAA,WNzLyB,CM0LzB,qBAAA,WNoWmB,CMnWnB,kBAAA,WN8DgB,CM7DhB,6DAEuC,WN8SnB,CM7SpB,kDAC2C,WN1FnB,CM2FxB,iBAAA,WNsWe,CMrWf,kBAAA,WNlGgB,CMmGhB,kBAAA,WNgHgB,CM/GhB,yBAAA,WNiHuB,CMhHvB,8BAAA,WNyN4B,CMxN5B,uBAAA,WNuNqB,CMtNrB,qBAAA,WN/NmB,CMgOnB,gBAAA,WN5Nc,CM6Nd,yBAAA,WN2EuB,CM1EvB,0BAAA,WNyEwB,CMxExB,kBAAA,WNvNgB,CMwNhB,kBAAA,WNzCgB,CM0ChB,oBAAA,WNpCkB,CMqClB,eAAA,WNtLa,CMuLb,oBAAA,WN7UkB,CM8UlB,iBAAA,WN1Re,CM2Rf,eAAA,WNsDa,CMrDb,iBAAA,WNmLe,CMlLf,gBAAA,WNrPc,CMsPd,iBAAA,WNrPe,CMsPf,mBAAA,WN7WiB,CM8WjB,0BAAA,WN7WwB,CM8WxB,iBAAA,WN0Le,CMzLf,wBAAA,WN0LsB,CMzLtB,mBAAA,WNyFiB,CMxFjB,qCACgC,WNzUnB,CM0Ub,+BACiC,WN+MnB,CM9Md,gBAAA,WN4Pc,CM3Pd,mBAAA,WNuKiB,CMtKjB,sBAAA,WNtPoB,CMuPpB,sBAAA,WNiKoB,CMhKpB,oBAAA,WN9PkB,CM+PlB,sBAAA,WN/LoB,CMgMpB,uBAAA,WNxLqB,CMyLrB,wBAAA,WNrMsB,CMsMtB,6BAAA,WN/L2B,CMgM3B,0EAEyC,WNxMnB,CMyMtB,gDAC2C,WN9MnB,CM+MxB,gDACyC,WN/MnB,CMgNtB,gDACyC,WNpMnB,CMqMtB,uBAAA,WNjNqB,CMkNrB,gBAAA,WNuRc,CMtRd,mBAAA,WN5SiB,CM6SjB,oBAAA,WN9EkB,CM+ElB,wGAIsC,WNnEnB,CMoEnB,0BAAA,WN/TwB,CMgUxB,qDAEkC,WNqDnB,CMpDf,gCACmC,WNnQnB,CMoQhB,sBAAA,WNzKoB,CM0KpB,eAAA,WN3Ka,CM4Kb,2EAEwC,WNxJnB,CMyJrB,yBAAA,WN2KuB,CM1KvB,cAAA,WNiCY,CMhCZ,oCACmC,WN0QnB,CMzQhB,uCACwC,WNVnB,CMWrB,2CAC0C,WNXnB,CMYvB,mBAAA,WN1IiB,CM2IjB,uBAAA,WNlVqB,CMmVrB,kBAAA,WNjJgB,CMkJhB,qBAAA,WNbmB,CMcnB,mBAAA,WN+FiB,CM9FjB,qBAAA,WNuEmB,CMtEnB,4BAAA,WNuE0B,CMtE1B,gBAAA,WNzZc,CM0Zd,6CACqC,WN5MnB,CM6MlB,eAAA,WN0Ma,CMzMb,sBAAA,WNxaoB,CMyapB,gBAAA,WNIc,CMHd,sBAAA,WNuFoB,CMtFpB,kBAAA,WN2MgB,CM1MhB,gBAAA,WN+Qc,CM9Qd,uBAAA,WNzCqB,CM0CrB,gBAAA,WNwPc,CMvPd,sBAAA,WNrZoB,CMsZpB,kBAAA,WNvBgB,CMwBhB,yBAAA,WN3LuB,CM4LvB,mBAAA,WN5XiB,CM6XjB,yBAAA,WNhYuB,CMiYvB,uBAAA,WNnYqB,CMoYrB,mBAAA,WNtYiB,CMuYjB,qBAAA,WNlYmB,CMmYnB,qBAAA,WNlYmB,CMmYnB,sBAAA,WN3boB,CM4bpB,wBAAA,WN3bsB,CM4btB,iBAAA,WN+Ke,CM9Kf,qBAAA,WNnVmB,CMoVnB,cAAA,WN9dY,CM+dZ,sBAAA,WN5RoB,CM6RpB,uBAAA,WN/CqB,CMgDrB,yBAAA,WN9buB,CM+bvB,sBAAA,WNtfoB,CMufpB,qBAAA,WN/BmB,CMgCnB,sBAAA,WNzHoB,CM0HpB,kBAAA,WNvIgB,CMwIhB,yBAAA,WNvIuB,CMwIvB,sBAAA,WN4JoB,CM3JpB,qBAAA,WN4JmB,CM3JnB,mBAAA,WNxciB,CMycjB,eAAA,WNjba,CMkbb,mBAAA,WNvJiB,CMwJjB,qBAAA,WN3gBmB,CM4gBnB,cAAA,WN7ZY,CM8ZZ,mDAEgC,WNzKnB,CM0Kb,oBAAA,WNpGkB,CMqGlB,sBAAA,WNxboB,CMybpB,0BAAA,WN5WwB,CM6WxB,oBAAA,WN9VkB,CM+VlB,oBAAA,WN9PkB,CM+PlB,mBAAA,WNrJiB,CMsJjB,kBAAA,WNegB,CMdhB,wBAAA,WN2BsB,CM1BtB,uBAAA,WNoCqB,CMnCrB,oBAAA,WNqCkB,CMpClB,qBAAA,WN5amB,CM6anB,2BAAA,WN9ayB,CM+azB,mBAAA,WN/ViB,CMgWjB,gBAAA,WNoBc,CMnBd,uBAAA,WN8KqB,CM7KrB,sBAAA,WN/FoB,CMgGpB,uBAAA,WN6EqB,CM5ErB,qBAAA,WN9MmB,CM+MnB,iBAAA,WN+Ke,CM9Kf,gBAAA,WN7Hc,CM8Hd,mBAAA,WNnHiB,CMoHjB,2CACwC,WNkInB,CMjIrB,2BAAA,WNkIyB,CMjIzB,wBAAA,WN0KsB,CMzKtB,uBAAA,WNlIqB,CMmIrB,sBAAA,WNyKoB,CMxKpB,uBAAA,WNnIqB,CMoIrB,yBAAA,WNlIuB,CMmIvB,yBAAA,WNpIuB,CMqIvB,kBAAA,WN1GgB,CM2GhB,sBAAA,WN7QoB,CM8QpB,6BAAA,WN1U2B,CM2U3B,uBAAA,WNzEqB,CM0ErB,oBAAA,WNkLkB,CMjLlB,kBAAA,WNXgB,CMYhB,qBAAA,WNuJmB,CMtJnB,sBAAA,WNwJoB,CMvJpB,gCACgC,WN/fnB,CMggBb,mBAAA,WN4JiB,CM3JjB,iBAAA,WN8Ge,CM7Gf,kBAAA,WNwDgB,CMvDhB,kBAAA,WN9IgB,CM+IhB,sCACyC,WN0LnB,CMzLtB,yBAAA,WNjHuB,CMkHvB,oBAAA,WNrHkB,CMsHlB,wBAAA,WNnWsB,CMoWtB,gEAEyC,WN/gBnB,CMghBtB,uDACmD,WN9gBnB,CM+gBhC,6CACyC,WNlhBnB,CMmhBtB,gDAC4C,WNnhBnB,CMohBzB,8CAC0C,WNxhBnB,CMyhBvB,yBAAA,WN3IuB,CM4IvB,oBAAA,WN3OkB,CM4OlB,wBAAA,WNxIsB,CMyItB,0BAAA,WNxIwB,CMyIxB,uBAAA,WNwBqB,CMvBrB,yBAAA,WNwBuB,CMvBvB,kBAAA,WN/dgB,CMgehB,0BAAA,WNlewB,CMmexB,iBAAA,WNpce,CMqcf,yBAAA,WNljBuB,CMmjBvB,uBAAA,WNxPqB,CMyPrB,kDAC4C,WNzPnB,CM0PzB,iDAC2C,WN7PnB,CM8PxB,gDAC0C,WNhQnB,CMiQvB,qBAAA,WNrQmB,CMsQnB,8CACwC,WNxRnB,CMyRrB,+CACyC,WN7RnB,CM8RtB,2BAAA,WN1RyB,CM2RzB,yBAAA,WNpSuB,CMqSvB,wBAAA,WN3RsB,CM4RtB,0BAAA,WN/RwB,CMgSxB,wBAAA,WNjSsB,CMkStB,qBAAA,WN+DmB,CM9DnB,sBAAA,WN/FoB,CMgGpB,4BAAA,WN/b0B,CMgc1B,cAAA,WNtUY,CMuUZ,qBAAA,WNtUmB,CMuUnB,uBAAA,WNkEqB,CMjErB,yBAAA,WNrKuB,CMsKvB,gCAAA,WNrK8B,CMsK9B,sBAAA,WN5UoB,CM6UpB,uBAAA,WNwHqB,CMvHrB,kBAAA,WNnFgB,CMoFhB,kBAAA,WNzegB,CM0ehB,mBAAA,WN9WiB,CM+WjB,iBAAA,WNxKe,CMyKf,6BAAA,WNpQ2B,CMqQ3B,oCACuC,WNSnB,CMRpB,kBAAA,WNjdgB,CMkdhB,iBAAA,WNzoBe,CM0oBf,kBAAA,WN/nBgB,CMgoBhB,2BAAA,WN3hByB,CM4hBzB,4BAAA,WN9hB0B,CM+hB1B,4BAAA,WN5hB0B,CM6hB1B,4BAAA,WNjiB0B,CMkiB1B,oBAAA,WNpRkB,CMqRlB,mBAAA,WN5NiB,CM6NjB,qBAAA,WN5NmB,CM6NnB,iBAAA,WN/Ne,CMgOf,eAAA,WNlOa,CMmOb,sBAAA,WNpeoB,CMqepB,wBAAA,WNpesB,CMqetB,iBAAA,WNtSe,CMuSf,iBAAA,WNiFe,CMhFf,qBAAA,WNlkBmB,CMmkBnB,qBAAA,WNrXmB,CMsXnB,wBAAA,WNpIsB,CMqItB,gBAAA,WNpcc,CMqcd,2BAAA,WNheyB,CMiezB,oBAAA,WNpfkB,CMqflB,gBAAA,WNlNc,CMmNd,wBAAA,WN1XsB,CM2XtB,eAAA,WNoDa,CMnDb,wBAAA,WN3JsB,CM4JtB,oBAAA,WNzNkB,CM0NlB,kBAAA,WNlHgB,CMmHhB,wBAAA,WN7LsB,CM8LtB,0BAAA,WN7LwB,CM8LxB,uBAAA,WN3CqB,CM4CrB,yBAAA,WN3CuB,CM4CvB,wBAAA,WNrGsB,CMsGtB,2BAAA,WNrGyB,CMsGzB,mBAAA,WN7UiB,CM8UjB,qBAAA,WNnlBmB,CMolBnB,uBAAA,WNnlBqB,CMolBrB,mBAAA,WN/LiB,CMgMjB,kBAAA,WNlXgB,CMmXhB,sBAAA,WNkFoB,CMjFpB,mBAAA,WNmFiB,CMlFjB,kBAAA,WN9cgB,CM+chB,4BAAA,WN2B0B,CM1B1B,0BAAA,WNmEwB,CMlExB,6BAAA,WNxK2B,CMyK3B,iBAAA,WN9lBe,CM+lBf,6BAAA,WNtoB2B,CMuoB3B,gCAAA,WNqD8B,CMpD9B,mBAAA,WNxlBiB,CMylBjB,uCAAA,WN5oBqC,CM6oBrC,2EACgE,WN9qBnB,CM+qB7C,+DAEiC,WNvfnB,CMwfd,iBAAA,WNhYe,CMiYf,mBAAA,WNhYiB,CMiYjB,4CAC0C,WN1HnB,CM2HvB,sBAAA,WNzRoB,CM0RpB,kBAAA,WNiCgB,CMhChB,yBAAA,WNiCuB,CMhCvB,oBAAA,WNlHkB,CMmHlB,0BAAA,WNlHwB,CMmHxB,2BAAA,WNlHyB,CMmHzB,sBAAA,WNrNoB,CMsNpB,uBAAA,WNpbqB,CMqbrB,iBAAA,WNmEe,CMlEf,qBAAA,WNpDmB,CMqDnB,8DACiD,WNzYnB,CM0Y9B,sCACyC,WN7anB,CM8atB,uBAAA,WNtXqB,CMuXrB,yBAAA,WNlfuB,CMmfvB,2BAAA,WNlfyB,CMmfzB,kBAAA,WNtTgB,CMuThB,wBAAA,WNptBsB,CMqtBtB,0BAAA,WNptBwB,CMqtBxB,yCACyC,WNrtBnB,CMstBtB,6CAC2C,WNttBnB,CMutBxB,uBAAA,WNJqB,CMKrB,yBAAA,WNJuB,CMKvB,kBAAA,WNHgB,CMIhB,oBAAA,WN3WkB,CM4WlB,8CACoC,WN5WnB,CM6WjB,kDACsC,WN7WnB,CM8WnB,iBAAA,WNtNe,CMuNf,0BAAA,WN3bwB,CM4bxB,oBAAA,WNtFkB,CMuFlB,4EAE6C,WNxEnB,CMyE1B,+DACuD,WNvEnB,CMwEpC,qDAC6C,WN3EnB,CM4E1B,wDACgD,WN5EnB,CM6E7B,sDAC8C,WNjFnB,CMkF3B,kBAAA,WN3KgB,CM4KhB,kDAEiC,WNzrBnB,CM0rBd,mBAAA,WNlPiB,CMmPjB,2BAAA,WNKyB,CMJzB,2BAAA,WNKyB,CMJzB,0BAAA,WNKwB,CMJxB,mDACyC,WNDnB,CMEtB,uDAC2C,WNFnB,CMGxB,oBAAA,WNxsBkB,CMysBlB,gBAAA,WN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\",\"sourcesContent\":[\"@import '../App/Shared/Components/roleMultiselectDropdown/roleMultiselectDropdown.css';\\r\\n@import '../../App/Shared/Components/rulesetObjectCopyModal/rulesetObjectCopyModal.scss';\\r\\n@import '../App/Components/Notifications/notifications.css';\\r\\n@import '../App/Components/Users/usersView.css';\\r\\n@import '../App/Components/DataChanges/ServiceNow/ServiceNowTicketModal.css';\\r\\n@import '../App/Components/AXSecurityDesigner/AXSecurityDesigner.css';\\r\\n@import '../App/Components/ApprovalRules/approvalRules.css';\\r\\n@import '../App/Components/RequestManagement/WizardSteps/Universal/linkTickets/ServiceNow/IMRequestServiceNowTicketModal.css';\\r\\n@import '../App/Components/NetSuiteArmQuantification/NetSuiteArmQuantification.css';\\r\\n@import '../App/Components/DataChangesOracleCloud/oracleCloudDataChanges.css';\\r\\n@import '../App/Components/RequestManagement/AX7Person/ax7PersonSearch.css';\\r\\n@import '../App/Components/RequestManagement/WizardSteps/Universal/summary.css';\\r\\n@import '../App/Components/RequestManagement/WizardSteps/Universal/effectiveDates.css';\\r\\n@import '../../App/Components/RequestManagement/WizardSteps/Salesforce/salesforceUserForm.scss';\\r\\n@import '../../App/Components/SAPSecurityDesigner/sapSecurityDesigner.scss';\\r\\n@import '../../App/Components/SavedReports/savedReports.scss';\\r\\n@import '../../css/scss/sharedUtilities.scss';\\r\\n@import '../../css/scss/customIbox.scss';\\r\\n@import '../../App/Components/Certifications/MyReviews/myReviews.scss';\\r\\n@import '../../App/Components/AXSecurityDesigner/taskRecordingManager/taskRecordingManager.scss';\\r\\n@import '../../App/Components/Certifications/reviewSchedules/reviewSchedules.scss';\\r\\n@import '../../App/Components/OwnershipGroups/groupItemOwnersList/groupItemOwnersList.scss';\\r\\n@import '../../App/Components/MyInbox/inboxStyles.scss';\\r\\n@import '../../App/Components/maintainRiskRuleset/maintainRiskRuleset.scss';\\r\\n@import '../../App/Components/MaintainBusinessProcess/maintainBusinessProcess.scss';\\r\\n@import '../../App/Components/Certifications/AllReviews/certificationsAllReview.scss';\\r\\n@import '../../App/Components/Certifications/notificationTeams/notificationTeams.scss';\\r\\n@import '../../App/Components/Certifications/reviewSchedules/reviewScheduleInstancesList/reviewScheduleInstancesList.scss';\\r\\n@import '../../App/Components/Certifications/reviewSchedules/scheduleInstanceAssignmentsList/instanceAssignmentsList.scss';\\r\\n@import '../../App/Components/Certifications/reviewSchedules/routingCriteriaInstancesList/routingCriteriaInstancesList.scss';\\r\\n@import '../../App/Components/ReportGenerator/generatedReports.scss';\\r\\n@import '../../App/Components/SAPSecurityDesigner/simulationRiskAnalysis/simRiskAnalysis.scss';\\r\\n@import '../../App/Components/AXSecurityDesigner/SecurityMigration/MigrationsList/migrationsList.scss';\\r\\n@import '../../App/Components/MaintainBusinessProcess/SAPAuthFieldGroups/sapAuthFieldGroups.scss';\\r\\n@import '../../App/Components/ApprovalGroups/approvalGroups.scss';\\r\\n@import '../../App/Components/CompanyTemplates/CompanyTemplatesList/companyTemplatesList.scss';\\r\\n@import '../../App/Components/CompanyTemplates/AssociatedCompaniesList/companyTemplateCompaniesList.scss';\\r\\n@import '../../App/Components/Notifications/NotificationTypesList/notificationTypesList.scss';\\r\\n@import '../../App/Components/OwnershipGroups/ownershipGroupsList/ownershipGroupsList.scss';\\r\\n@import '../../App/Components/OwnershipGroups/ownershipGroupItemsList/groupItemsList.scss';\\r\\n@import '../../App/Components/OwnershipGroups/ownershipGroupOwnersList/groupOwnersList.scss';\\r\\n@import '../../App/Components/OwnershipGroups/groupOwnerItemsList/groupOwnerItemsList.scss';\\r\\n@import '../../App/Components/RequesterGroups/requesterGroupsList/requesterGroupsList.scss';\\r\\n@import '../../App/Components/RequesterGroups/requesterGroupUsersList/requesterGroupUsersList.scss';\\r\\n@import '../../App/Components/RoleTemplates/RoleTemplatesList/roleTemplatesList.scss';\\r\\n@import '../../App/Components/RoleTemplates/AssociatedRolesList/roleTemplateRolesList.scss';\\r\\n@import '../../App/Components/userRestrictions/fastpathUserList/fastpathUserList.scss';\\r\\n@import '../../App/Components/Roles/roles.scss';\\r\\n@import '../../App/Components/Users/users.scss';\\r\\n@import '../../App/Components/securityAssignment/securityAssignment.scss';\\r\\n@import '../../App/Components/IdentityManagerRequestDetails/identityManagerRequestDetailsView.scss';\\r\\n@import '../../App/Components/Configuration/configuration.scss';\\r\\n@import '../../App/Shared/Components/ownershipGroupAssignments/ownershipGroupAssignments.scss';\\r\\n@import '../../App/Components/workdayMaintainTemplates/maintainTemplatesList.scss';\\r\\n@import '../../App/Components/maintainSystemRoles/maintainSystemRoles.scss';\\r\\n@import '../../App/Components/CrossPlatformUsers/crossPlatformUsers.scss';\\r\\n\\r\\n// give grids in modals a minimum height setting so loading indicator shows when no records are available\\r\\n.modal-body {\\r\\n .k-grid-content {\\r\\n min-height: 100px;\\r\\n }\\r\\n}\",\"h1, h2, h3, h4, h5, h6 {\\r\\n font-weight: 100;\\r\\n}\\r\\n\\r\\nh1 {\\r\\n font-size: 30px;\\r\\n}\\r\\n\\r\\nh2 {\\r\\n font-size: 27px;\\r\\n}\\r\\n\\r\\nh3 {\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\nh4 {\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\nh5 {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\nh6 {\\r\\n font-size: 10px;\\r\\n}\\r\\n\\r\\nh3, h4, h5 {\\r\\n margin-top: 5px;\\r\\n font-weight: 600;\\r\\n}\\r\\n\",\".nav > li > a {\\r\\n color: white;\\r\\n font-weight: 600;\\r\\n padding: 14px 20px 14px 25px;\\r\\n}\\r\\n\\r\\n.nav.navbar-right > li > a {\\r\\n color: $fp-purple;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.nav > li.active > a {\\r\\n background-color: lighten($delinea-purple, 10%);\\r\\n color: $delinea-green;\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\n.navbar-default .nav > li > a:hover, .navbar-default .nav > li > a:focus {\\r\\n background-color: lighten($delinea-purple, 10%);\\r\\n color: $delinea-green;\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\n.nav .open > a, .nav .open > a:hover, .nav .open > a:focus {\\r\\n background: #fff;\\r\\n background-color: transparent;\\r\\n}\\r\\n\\r\\n.nav.navbar-top-links > li > a:hover, .nav.navbar-top-links > li > a:focus {\\r\\n background-color: transparent;\\r\\n}\\r\\n\\r\\n.nav > li > a i {\\r\\n margin-right: 6px;\\r\\n}\\r\\n\\r\\n.navbar {\\r\\n border: 0;\\r\\n}\\r\\n\\r\\n.navbar-default {\\r\\n background-color: transparent;\\r\\n border-color: #C1C1C1;\\r\\n}\\r\\n\\r\\n.navbar-top-links li {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.navbar-top-links li:last-child {\\r\\n margin-right: 40px;\\r\\n}\\r\\n\\r\\n.navbar-top-links li a {\\r\\n padding: 14px 3px;\\r\\n min-height: 50px;\\r\\n}\\r\\n\\r\\n.dropdown-menu {\\r\\n border: medium none;\\r\\n border-radius: 3px;\\r\\n box-shadow: 0 0 3px rgba(86, 96, 117, 0.7);\\r\\n display: none;\\r\\n float: left;\\r\\n font-size: 12px;\\r\\n left: 0;\\r\\n list-style: none outside none;\\r\\n padding: 0;\\r\\n position: absolute;\\r\\n text-shadow: none;\\r\\n top: 100%;\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n.dropdown-menu > li > a {\\r\\n border-radius: 3px;\\r\\n color: inherit;\\r\\n line-height: 25px;\\r\\n margin: 4px;\\r\\n text-align: left;\\r\\n font-weight: normal;\\r\\n}\\r\\n\\r\\n.dropdown-menu > li > a.font-bold {\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.navbar-top-links .dropdown-menu li {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.navbar-top-links .dropdown-menu li:last-child {\\r\\n margin-right: 0;\\r\\n}\\r\\n\\r\\n.navbar-top-links .dropdown-menu li a {\\r\\n padding: 3px 20px;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.navbar-top-links .dropdown-menu li a div {\\r\\n white-space: normal;\\r\\n}\\r\\n\\r\\n.navbar-top-links .dropdown-messages,\\r\\n.navbar-top-links .dropdown-tasks,\\r\\n.navbar-top-links .dropdown-alerts {\\r\\n width: 500px;\\r\\n min-width: 0;\\r\\n}\\r\\n\\r\\n.navbar-top-links .dropdown-messages {\\r\\n margin-left: 5px;\\r\\n}\\r\\n\\r\\n.navbar-top-links .dropdown-tasks {\\r\\n margin-left: -59px;\\r\\n}\\r\\n\\r\\n.navbar-top-links .dropdown-alerts {\\r\\n margin-left: -123px;\\r\\n}\\r\\n\\r\\n.navbar-top-links .dropdown-user {\\r\\n right: 0;\\r\\n left: auto;\\r\\n}\\r\\n\\r\\n.dropdown-messages, .dropdown-alerts {\\r\\n padding: 10px 10px 10px 10px;\\r\\n}\\r\\n\\r\\n.dropdown-messages li a, .dropdown-alerts li a {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.dropdown-messages li em, .dropdown-alerts li em {\\r\\n font-size: 10px;\\r\\n}\\r\\n\\r\\n.nav.navbar-top-links .dropdown-alerts a {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.nav-header {\\r\\n padding: 5px 25px 33px 25px;\\r\\n background: $nav-profil-pattern;\\r\\n .dropdown-menu {\\r\\n height: 500px;\\r\\n overflow-y: scroll;\\r\\n }\\r\\n}\\r\\n\\r\\n.pace-done .nav-header {\\r\\n transition-duration: 0.5s;\\r\\n}\\r\\n\\r\\n.nav > li.active {\\r\\n background: #242633;\\r\\n border-left: 4px solid $delinea-green;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.nav.nav-second-level > li.active {\\r\\n border: none;\\r\\n background: #242633;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.nav.nav-second-level.collapse[style] {\\r\\n height: auto !important;\\r\\n color: white;\\r\\n background-color: #242633;\\r\\n}\\r\\n\\r\\n.nav-header a {\\r\\n color: #dfe4ed;\\r\\n}\\r\\n\\r\\n.nav-header .text-muted {\\r\\n color: #8095a8;\\r\\n}\\r\\n\\r\\n.minimalize-styl-2 {\\r\\n padding: 4px 12px;\\r\\n margin: 14px 5px 5px 20px;\\r\\n font-size: 14px;\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.navbar-form-custom {\\r\\n float: left;\\r\\n height: 50px;\\r\\n padding: 0;\\r\\n width: 200px;\\r\\n display: inline-table;\\r\\n}\\r\\n\\r\\n.navbar-form-custom .form-group {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.nav.navbar-top-links a {\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.navbar-form-custom .form-control {\\r\\n background: none repeat scroll 0 0 rgba(0, 0, 0, 0);\\r\\n border: medium none;\\r\\n font-size: 14px;\\r\\n height: 60px;\\r\\n margin: 0;\\r\\n z-index: 1000;\\r\\n color: #121321;\\r\\n}\\r\\n\\r\\n.count-info .label {\\r\\n line-height: 12px;\\r\\n padding: 2px 5px;\\r\\n position: absolute;\\r\\n right: 6px;\\r\\n top: 12px;\\r\\n}\\r\\n\\r\\n.arrow {\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.mini-navbar .nav-second-level li > a > .arrow {\\r\\n display: inline-block !important;\\r\\n}\\r\\n\\r\\n.fa.arrow:before {\\r\\n content: \\\"\\\\f104\\\";\\r\\n}\\r\\n\\r\\n.active > a > .fa.arrow:before {\\r\\n content: \\\"\\\\f107\\\";\\r\\n}\\r\\n \\r\\n.nav-third-level {\\r\\n overflow-y: scroll;\\r\\n max-height: 185px;\\r\\n}\\r\\n\\r\\n.nav-scroll {\\r\\n scrollbar-width: thin;\\r\\n scrollbar-color: #C2C4CC;\\r\\n}\\r\\n\\r\\n.nav-scroll::-webkit-scrollbar {\\r\\n width: 12px;\\r\\n border: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.nav-scroll::-webkit-scrollbar-track {\\r\\n background: #C2C4CC;\\r\\n}\\r\\n\\r\\n.nav-scroll::-webkit-scrollbar-thumb {\\r\\n background-color: #C2C4CC;\\r\\n border-radius: 5px;\\r\\n border: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.nav-second-level li,\\r\\n.nav-third-level li {\\r\\n border-bottom: none !important;\\r\\n}\\r\\n\\r\\n.nav-second-level li a {\\r\\n color: white;\\r\\n background-color: #242633;\\r\\n padding: 7px 10px 7px 10px;\\r\\n padding-left: 52px;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n.nav-third-level li a {\\r\\n padding-left: 62px;\\r\\n}\\r\\n\\r\\n.nav-second-level li:last-child {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.nav-third-level {\\r\\n overflow-y: scroll;\\r\\n max-height: 165px;\\r\\n}\\r\\n\\r\\n.nav-scroll {\\r\\n scrollbar-width: thin;\\r\\n scrollbar-color: #C2C4CC;\\r\\n}\\r\\n\\r\\n.nav-scroll::-webkit-scrollbar {\\r\\n width: 12px;\\r\\n border: 1px solid #FFFFFF;\\r\\n}\\r\\n\\r\\n.nav-scroll::-webkit-scrollbar-track {\\r\\n background: #C2C4CC;\\r\\n}\\r\\n\\r\\n.nav-scroll::-webkit-scrollbar-thumb {\\r\\n background-color: #FFFFFF;\\r\\n border-radius: 5px;\\r\\n border: 3px solid #C2C4CC;\\r\\n}\\r\\n\\r\\nbody:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav li:hover > .nav-second-level, .mini-navbar .nav li:focus > .nav-second-level {\\r\\n display: block;\\r\\n border-radius: 0 2px 2px 0;\\r\\n min-width: 140px;\\r\\n height: auto;\\r\\n}\\r\\n\\r\\nbody.mini-navbar .navbar-default .nav > li > .nav-second-level li a {\\r\\n font-size: 13px;\\r\\n border-radius: 3px;\\r\\n}\\r\\n\\r\\n.fixed-nav .slimScrollDiv #side-menu {\\r\\n padding-bottom: 60px;\\r\\n}\\r\\n\\r\\n.mini-navbar .nav-second-level li a {\\r\\n padding: 10px 10px 10px 15px;\\r\\n}\\r\\n\\r\\n.mini-navbar .nav-second-level {\\r\\n position: absolute;\\r\\n left: 70px;\\r\\n top: 0px;\\r\\n background-color: #242633;\\r\\n padding: 10px 10px 10px 10px;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n.canvas-menu.mini-navbar .nav-second-level {\\r\\n background: #242633;\\r\\n}\\r\\n\\r\\n.mini-navbar li.active .nav-second-level {\\r\\n left: 65px;\\r\\n}\\r\\n\\r\\n.navbar-default .special_link a {\\r\\n background: $navy;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.navbar-default .special_link a:hover {\\r\\n background: #17987e !important;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.navbar-default .special_link a span.label {\\r\\n background: white;\\r\\n color: $navy;\\r\\n}\\r\\n\\r\\n.navbar-default .landing_link a {\\r\\n background: lighten($navy, 3%);\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.navbar-default .landing_link a:hover {\\r\\n background: $navy !important;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.navbar-default .landing_link a span.label {\\r\\n background: white;\\r\\n color: lighten($navy, 3%);\\r\\n}\\r\\n\\r\\n.logo-element {\\r\\n text-align: center;\\r\\n font-size: 18px;\\r\\n font-weight: 600;\\r\\n color: white;\\r\\n display: none;\\r\\n padding: 18px 0;\\r\\n}\\r\\n\\r\\n.pace-done .navbar-static-side, .pace-done .nav-header, .pace-done li.active, .pace-done #page-wrapper, .pace-done .footer {\\r\\n -webkit-transition: all 0.5s;\\r\\n -moz-transition: all 0.5s;\\r\\n -o-transition: all 0.5s;\\r\\n transition: all 0.5s;\\r\\n}\\r\\n\\r\\n.navbar-fixed-top {\\r\\n background: white;\\r\\n transition-duration: 0.5s;\\r\\n border-bottom: 1px solid #C2C4CC !important;\\r\\n z-index: 1030;\\r\\n}\\r\\n\\r\\n.navbar-fixed-top, .navbar-static-top {\\r\\n background: $gray;\\r\\n}\\r\\n\\r\\n.fixed-nav #wrapper {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\nbody.fixed-nav #wrapper .navbar-static-side,\\r\\nbody.fixed-nav #wrapper #page-wrapper {\\r\\n margin-top: 60px;\\r\\n}\\r\\n\\r\\n.fixed-nav .minimalize-styl-2 {\\r\\n margin: 14px 5px 5px 15px;\\r\\n}\\r\\n\\r\\n.body-small .navbar-fixed-top {\\r\\n margin-left: 0px;\\r\\n}\\r\\n\\r\\nbody.mini-navbar .navbar-static-side {\\r\\n width: 70px;\\r\\n}\\r\\n\\r\\nbody.mini-navbar .profile-element, body.mini-navbar .nav-label, body.mini-navbar .navbar-default .nav li a span {\\r\\n display: none;\\r\\n}\\r\\n\\r\\nbody.canvas-menu .profile-element {\\r\\n display: block;\\r\\n}\\r\\n\\r\\nbody:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav-second-level {\\r\\n display: none;\\r\\n}\\r\\n\\r\\nbody.mini-navbar .navbar-default .nav > li > a {\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\nbody.mini-navbar .logo-element {\\r\\n display: block;\\r\\n}\\r\\n\\r\\nbody.canvas-menu .logo-element {\\r\\n display: none;\\r\\n}\\r\\n\\r\\nbody.mini-navbar .nav-header {\\r\\n padding: 0;\\r\\n background-color: $navy;\\r\\n}\\r\\n\\r\\nbody.canvas-menu .nav-header {\\r\\n padding: 33px 25px;\\r\\n}\\r\\n\\r\\nbody.mini-navbar #page-wrapper {\\r\\n margin: 0 0 0 70px;\\r\\n}\\r\\n\\r\\nbody.fixed-sidebar.mini-navbar .footer,\\r\\nbody.canvas-menu.mini-navbar .footer {\\r\\n margin: 0 0 0 0 !important;\\r\\n}\\r\\n\\r\\nbody.canvas-menu.mini-navbar #page-wrapper,\\r\\nbody.canvas-menu.mini-navbar .footer {\\r\\n margin: 0 0 0 0;\\r\\n}\\r\\n\\r\\nbody.fixed-sidebar .navbar-static-side,\\r\\nbody.canvas-menu .navbar-static-side {\\r\\n position: fixed;\\r\\n width: $sidebar-width;\\r\\n z-index: 1001;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\nbody.fixed-sidebar.mini-navbar .navbar-static-side {\\r\\n width: 0px;\\r\\n}\\r\\n\\r\\nbody.fixed-sidebar.mini-navbar #page-wrapper {\\r\\n margin: 0 0 0 0px;\\r\\n}\\r\\n\\r\\nbody.body-small.fixed-sidebar.mini-navbar #page-wrapper {\\r\\n margin: 0 0 0 $sidebar-width;\\r\\n}\\r\\n\\r\\nbody.body-small.fixed-sidebar.mini-navbar .navbar-static-side {\\r\\n width: $sidebar-width;\\r\\n}\\r\\n\\r\\n.fixed-sidebar.mini-navbar .nav li:focus > .nav-second-level,\\r\\n.canvas-menu.mini-navbar .nav li:focus > .nav-second-level {\\r\\n display: block;\\r\\n height: auto;\\r\\n}\\r\\n\\r\\nbody.canvas-menu.mini-navbar .navbar-default .nav > li > .nav-second-level li a {\\r\\n font-size: 13px;\\r\\n border-radius: 3px;\\r\\n}\\r\\n\\r\\n.fixed-sidebar.mini-navbar .nav-second-level li a,\\r\\n.canvas-menu.mini-navbar .nav-second-level li a {\\r\\n padding: 10px 10px 10px 15px;\\r\\n}\\r\\n\\r\\n.fixed-sidebar.mini-navbar .nav-second-level,\\r\\n.canvas-menu.mini-navbar .nav-second-level {\\r\\n position: relative;\\r\\n padding: 0;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n.fixed-sidebar.mini-navbar li.active .nav-second-level,\\r\\n.canvas-menu.mini-navbar li.active .nav-second-level {\\r\\n left: 0px\\r\\n}\\r\\n\\r\\nbody.fixed-sidebar.mini-navbar .navbar-default .nav > li > a,\\r\\nbody.canvas-menu.mini-navbar .navbar-default .nav > li > a {\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\nbody.fixed-sidebar.mini-navbar .nav-label,\\r\\nbody.fixed-sidebar.mini-navbar .navbar-default .nav li a span,\\r\\nbody.canvas-menu.mini-navbar .nav-label,\\r\\nbody.canvas-menu.mini-navbar .navbar-default .nav li a span {\\r\\n display: inline;\\r\\n}\\r\\n\\r\\nbody.canvas-menu.mini-navbar .navbar-default .nav li .profile-element a span {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.canvas-menu.mini-navbar .nav-second-level li a,\\r\\n.fixed-sidebar.mini-navbar .nav-second-level li a {\\r\\n padding: 7px 10px 7px 52px\\r\\n}\\r\\n\\r\\n.fixed-sidebar.mini-navbar .nav-second-level,\\r\\n.canvas-menu.mini-navbar .nav-second-level {\\r\\n left: 0px\\r\\n}\\r\\n\\r\\nbody.canvas-menu nav.navbar-static-side {\\r\\n z-index: 1001;\\r\\n background: $nav-bg;\\r\\n height: 100%;\\r\\n position: fixed;\\r\\n display: none;\\r\\n}\\r\\n\\r\\n\\r\\nbody.canvas-menu.mini-navbar nav.navbar-static-side {\\r\\n display: block;\\r\\n width: 220px;\\r\\n}\\r\\n\",\"// Font\\r\\n$font-stack: \\\"Manrope\\\", \\\"Manrope\\\", Helvetica, Arial, sans-serif;\\r\\n\\r\\n// Basic Colors\\r\\n$fp-yellow: #291972; // New Delinea Primary Purple\\r\\n$fp-dark-gray: #121321;\\r\\n$delinea-purple: #231556; // Delinea Brand Purple\\r\\n$delinea-green: #00FF5A; // Delinea primary green for button text\\r\\n$fp-light-gray: #C2C4CC;\\r\\n$fp-gray-report: #EEEFF2;\\r\\n$fp-gray-panel: #D2D1DB;\\r\\n$fp-gray-pager: #9E9CAF;\\r\\n$fp-dark-gray-pager: #6D6B80;\\r\\n$fp-purple: #291972; // New Delinea Primary Purple\\r\\n$fp-dark-purple: #FFFFFF; // New Delinea Dark Purple\\r\\n$light-green: #BAFCD4; // New Delinea Success bg\\r\\n$dark-green: #007138; // New Delinea Success text, icon, border\\r\\n\\r\\n$fp-light-orange: #FFD7B8; // New Delinea Warning Background\\r\\n$fp-burnt-orange: #882200; // New Delinea Warning text, icon, border\\r\\n$fp-light-yellow: #FFF0BE; // New Delinea Caution background\\r\\n$fp-gold: #664b00; // New Delinea Caution text, icon, border\\r\\n\\r\\n// fp labels and badges\\r\\n// gray\\r\\n$fp-label-gray-bg: $fp-gray-report;\\r\\n$fp-label-gray-border: $fp-dark-gray;\\r\\n$fp-label-gray-text: $fp-dark-gray;\\r\\n\\r\\n// red\\r\\n$fp-label-red-bg: #FFD5D6; // New Delinea Error bg\\r\\n$fp-label-red-border: #F91D21; // New Delinea Error text, icon, border\\r\\n$fp-label-red-text: #BA0003; // New Delinea Error text\\r\\n\\r\\n// orange\\r\\n$fp-label-orange-bg: #FFD7B8;\\r\\n$fp-label-orange-border: #FF8120;\\r\\n$fp-label-orange-text: #882200;\\r\\n\\r\\n// yellow\\r\\n$fp-label-yellow-bg: #FFF0BE;\\r\\n$fp-label-yellow-border: #FFD942;\\r\\n$fp-label-yellow-text: #664b00;\\r\\n\\r\\n// green\\r\\n$fp-label-green-bg: #BAFCD4;\\r\\n$fp-label-green-border: #007138;\\r\\n$fp-label-green-text: #007138;\\r\\n\\r\\n// blue\\r\\n$fp-label-blue-bg: #93DEFF;\\r\\n$fp-label-blue-border: #0359A6;\\r\\n$fp-label-blue-text: #0359A6;\\r\\n\\r\\n// purple\\r\\n$fp-label-purple-bg: #E2E2F3;\\r\\n$fp-label-purple-border: #231556;\\r\\n$fp-label-purple-text: #231556;\\r\\n\\r\\n// pink\\r\\n$fp-label-pink-bg: #FDC4EE;\\r\\n$fp-label-pink-border: #7F1A86;\\r\\n$fp-label-pink-text: #7F1A86;\\r\\n\\r\\n\\r\\n// Updated to corresponding Delinea Hex, name does not represent proper color\\r\\n$navy: #291972; // Primary purple color\\r\\n$dark-gray: #c2c2c2; // Default color\\r\\n$blue: #007138; // Success color\\r\\n$lazur: #FFD942; // Info color\\r\\n$yellow: #FF8120; // Warning color\\r\\n$red: #BA0003; // Danger color\\r\\n\\r\\n// Various colors\\r\\n$text-color: #121321; // Body text\\r\\n$gray: #f3f3f4; // Background wrapper color\\r\\n$light-gray: #d1dade; // Default label, badget\\r\\n$label-badget-color: #5e5e5e;\\r\\n$light-blue: #f3f6fb;\\r\\n\\r\\n// Spiner color and margin\\r\\n$spin-color: $navy;\\r\\n$spin-margin: 0 auto;\\r\\n\\r\\n// IBOX colors ( default panel colors)\\r\\n$border-color: #C2C4CC; // IBox border\\r\\n$ibox-title-bg: white; // IBox Background header\\r\\n$ibox-content-bg: white; // IBox Background content\\r\\n\\r\\n//Sidebar width\\r\\n$sidebar-width: 220px;\\r\\n\\r\\n// Boxed layout width\\r\\n$boxed-width: 1200px;\\r\\n$boxed-backgound: image-url(\\\"patterns/shattered.png\\\");\\r\\n\\r\\n//Border radius for buttons\\r\\n$btn-border-radius: 20px;\\r\\n\\r\\n//Navigation\\r\\n$nav-bg: $delinea-purple;\\r\\n$nav-profil-pattern: image-url(\\\"patterns/header-profile.png\\\") no-repeat;\\r\\n$nav-text-color: #FFFFFF;\\r\\n\",\".top-navigation #page-wrapper {\\r\\n margin-left: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.top-navigation .navbar-nav .dropdown-menu > .active > a {\\r\\n background: white;\\r\\n color: $navy;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.white-bg .navbar-fixed-top, .white-bg .navbar-static-top {\\r\\n background: #fff;\\r\\n}\\r\\n\\r\\n.top-navigation .navbar {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.top-navigation .nav > li > a {\\r\\n padding: 15px 20px;\\r\\n color: #676a6c;\\r\\n}\\r\\n\\r\\n.top-navigation .nav > li a:hover, .top-navigation .nav > li a:focus {\\r\\n background: #fff;\\r\\n color: $navy;\\r\\n}\\r\\n\\r\\n.top-navigation .nav > li.active {\\r\\n background: #fff;\\r\\n border: none;\\r\\n}\\r\\n.top-navigation .nav > li.active > a {\\r\\n color: $navy;\\r\\n}\\r\\n.top-navigation .navbar-right {\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.top-navigation .navbar-nav .dropdown-menu {\\r\\n box-shadow: none;\\r\\n border: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.top-navigation .dropdown-menu > li > a {\\r\\n margin: 0;\\r\\n padding: 7px 20px;\\r\\n}\\r\\n\\r\\n.navbar .dropdown-menu {\\r\\n margin-top: 0px;\\r\\n}\\r\\n\\r\\n.top-navigation .navbar-brand {\\r\\n background: $navy;\\r\\n color: #fff;\\r\\n padding: 15px 25px;\\r\\n}\\r\\n\\r\\n.top-navigation .navbar-top-links li:last-child {\\r\\n margin-right: 0;\\r\\n}\\r\\n\\r\\n.top-navigation.mini-navbar #page-wrapper,\\r\\n.top-navigation.body-small.fixed-sidebar.mini-navbar #page-wrapper,\\r\\n.mini-navbar .top-navigation #page-wrapper,\\r\\n.body-small.fixed-sidebar.mini-navbar .top-navigation #page-wrapper,\\r\\n.canvas-menu #page-wrapper {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.top-navigation.fixed-nav #wrapper, .fixed-nav #wrapper.top-navigation {\\r\\n margin-top: 50px;\\r\\n}\\r\\n\\r\\n.top-navigation .footer.fixed {\\r\\n margin-left: 0 !important;\\r\\n}\\r\\n\\r\\n.top-navigation .wrapper.wrapper-content {\\r\\n padding: 40px;\\r\\n}\\r\\n.top-navigation.body-small .wrapper.wrapper-content, .body-small .top-navigation .wrapper.wrapper-content {\\r\\n padding: 40px 0px 40px 0px;\\r\\n}\\r\\n\\r\\n.navbar-toggle {\\r\\n background-color: $navy;\\r\\n color: #fff;\\r\\n padding: 6px 12px;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.top-navigation .navbar-nav .open .dropdown-menu > li > a, .top-navigation .navbar-nav .open .dropdown-menu .dropdown-header {\\r\\n padding: 10px 15px 10px 20px;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .top-navigation .navbar-header {\\r\\n display: block;\\r\\n float: none;\\r\\n }\\r\\n}\\r\\n\\r\\n.menu-visible-lg, .menu-visible-md {\\r\\n display: none !important;\\r\\n}\\r\\n\\r\\n@media (min-width: 1200px) {\\r\\n .menu-visible-lg {\\r\\n display: block !important;\\r\\n }\\r\\n}\\r\\n@media (min-width: 992px) {\\r\\n .menu-visible-md {\\r\\n display: block !important;\\r\\n }\\r\\n}\\r\\n\\r\\n@media (max-width: 767px) {\\r\\n .menu-visible-md {\\r\\n display: block !important;\\r\\n }\\r\\n .menu-visible-lg {\\r\\n display: block !important;\\r\\n }\\r\\n}\",\".btn {\\r\\n border-radius: $btn-border-radius;\\r\\n}\\r\\n\\r\\n.float-e-margins .btn {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.btn-w-m {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.btn-primary.btn-outline {\\r\\n color: $fp-yellow;\\r\\n}\\r\\n\\r\\n.btn-success.btn-outline {\\r\\n color: $blue;\\r\\n}\\r\\n\\r\\n.btn-info.btn-outline {\\r\\n color: $fp-purple;\\r\\n}\\r\\n\\r\\n.btn-warning.btn-outline {\\r\\n color: $yellow;\\r\\n}\\r\\n\\r\\n.btn-danger.btn-outline {\\r\\n color: $red;\\r\\n}\\r\\n\\r\\n.btn-primary.btn-outline:hover,\\r\\n.btn-success.btn-outline:hover,\\r\\n.btn-info.btn-outline:hover,\\r\\n.btn-warning.btn-outline:hover,\\r\\n.btn-danger.btn-outline:hover {\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-primary {\\r\\n background-color: $fp-yellow;\\r\\n border-color: $fp-yellow;\\r\\n color: #FFFFFF;\\r\\n}\\r\\n\\r\\n.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary:active:focus, .btn-primary.active, .btn-primary.active:focus, .open .dropdown-toggle.btn-primary {\\r\\n background-color: #261769;\\r\\n border-color: #261769;\\r\\n color: $delinea-green;\\r\\n}\\r\\n\\r\\n.btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary {\\r\\n background-image: none;\\r\\n}\\r\\n\\r\\n.btn-primary.disabled, .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled:active, .btn-primary.disabled.active, .btn-primary[disabled], .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled]:active, .btn-primary.active[disabled], fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary:hover, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary.active {\\r\\n opacity: 60%;\\r\\n}\\r\\n\\r\\n.btn-success {\\r\\n background-color: $blue;\\r\\n border-color: $blue;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success {\\r\\n background-color: darken($blue, 3%);\\r\\n border-color: darken($blue, 3%);\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success {\\r\\n background-image: none;\\r\\n}\\r\\n\\r\\n.btn-success.disabled, .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled:active, .btn-success.disabled.active, .btn-success[disabled], .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled]:active, .btn-success.active[disabled], fieldset[disabled] .btn-success, fieldset[disabled] .btn-success:hover, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success.active {\\r\\n background-color: lighten($blue, 4%);\\r\\n border-color: lighten($blue, 4%);\\r\\n}\\r\\n\\r\\n.btn-info {\\r\\n background-color: $fp-purple;\\r\\n border-color: $fp-purple;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info {\\r\\n background-color: darken($fp-purple, 3%);\\r\\n border-color: darken($fp-purple, 3%);\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info {\\r\\n background-image: none;\\r\\n}\\r\\n\\r\\n.btn-info.disabled, .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled:active, .btn-info.disabled.active, .btn-info[disabled], .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled]:active, .btn-info.active[disabled], fieldset[disabled] .btn-info, fieldset[disabled] .btn-info:hover, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info.active {\\r\\n background-color: lighten($lazur, 4%);\\r\\n border-color: lighten($lazur, 4%);\\r\\n}\\r\\n\\r\\n.btn-default {\\r\\n background-color: $fp-purple;\\r\\n border-color: transparent;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default {\\r\\n background-color: darken($fp-purple, 4%);\\r\\n color: $delinea-green;\\r\\n}\\r\\n\\r\\n.btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default {\\r\\n background-image: none;\\r\\n}\\r\\n\\r\\n.btn-default.disabled, .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled:active, .btn-default.disabled.active, .btn-default[disabled], .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled]:active, .btn-default.active[disabled], fieldset[disabled] .btn-default, fieldset[disabled] .btn-default:hover, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default.active {\\r\\n background-color: lighten($fp-purple, 4%);\\r\\n}\\r\\n\\r\\n.btn-warning {\\r\\n background-color: $yellow;\\r\\n border-color: $yellow;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning {\\r\\n background-color: darken($yellow, 3%);\\r\\n border-color: darken($yellow, 3%);\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning {\\r\\n background-image: none;\\r\\n}\\r\\n\\r\\n.btn-warning.disabled, .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled:active, .btn-warning.disabled.active, .btn-warning[disabled], .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled]:active, .btn-warning.active[disabled], fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning:hover, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:active, fieldset[disabled] .btn-warning.active {\\r\\n background-color: lighten($yellow, 4%);\\r\\n border-color: lighten($yellow, 4%);\\r\\n}\\r\\n\\r\\n.btn-danger {\\r\\n background-color: $red;\\r\\n border-color: transparent;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger {\\r\\n background-color: darken($red, 4%);\\r\\n color: $fp-label-red-bg;\\r\\n}\\r\\n\\r\\n.btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger {\\r\\n background-image: none;\\r\\n}\\r\\n\\r\\n.btn-danger.disabled, .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled:active, .btn-danger.disabled.active, .btn-danger[disabled], .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled]:active, .btn-danger.active[disabled], fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger:hover, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger.active {\\r\\n background-color: lighten($red, 4%);\\r\\n border-color: lighten($red, 4%);\\r\\n}\\r\\n\\r\\n.btn-link {\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.btn-link:hover, .btn-link:focus, .btn-link:active, .btn-link.active, .open .dropdown-toggle.btn-link {\\r\\n color: $fp-dark-gray;\\r\\n text-decoration: none;\\r\\n}\\r\\n\\r\\n.btn-link:active, .btn-link.active, .open .dropdown-toggle.btn-link {\\r\\n background-image: none;\\r\\n}\\r\\n\\r\\n.btn-link.disabled, .btn-link.disabled:hover, .btn-link.disabled:focus, .btn-link.disabled:active, .btn-link.disabled.active, .btn-link[disabled], .btn-link[disabled]:hover, .btn-link[disabled]:focus, .btn-link[disabled]:active, .btn-link.active[disabled], fieldset[disabled] .btn-link, fieldset[disabled] .btn-link:hover, fieldset[disabled] .btn-link:focus, fieldset[disabled] .btn-link:active, fieldset[disabled] .btn-link.active {\\r\\n color: #cacaca;\\r\\n}\\r\\n\\r\\n.btn-white {\\r\\n color: inherit;\\r\\n background: white;\\r\\n border: 1px solid $border-color;\\r\\n}\\r\\n\\r\\n.btn-white:hover, .btn-white:focus, .btn-white:active, .btn-white.active, .open .dropdown-toggle.btn-white {\\r\\n color: inherit;\\r\\n border: 1px solid #d2d2d2;\\r\\n}\\r\\n\\r\\n.btn-white:active, .btn-white.active {\\r\\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15) inset;\\r\\n}\\r\\n\\r\\n.btn-white:active, .btn-white.active, .open .dropdown-toggle.btn-white {\\r\\n background-image: none;\\r\\n}\\r\\n\\r\\n.btn-white.disabled, .btn-white.disabled:hover, .btn-white.disabled:focus, .btn-white.disabled:active, .btn-white.disabled.active, .btn-white[disabled], .btn-white[disabled]:hover, .btn-white[disabled]:focus, .btn-white[disabled]:active, .btn-white.active[disabled], fieldset[disabled] .btn-white, fieldset[disabled] .btn-white:hover, fieldset[disabled] .btn-white:focus, fieldset[disabled] .btn-white:active, fieldset[disabled] .btn-white.active {\\r\\n color: #cacaca;\\r\\n}\\r\\n\\r\\n.form-control, .form-control:focus, .has-error .form-control:focus, .has-success .form-control:focus, .has-warning .form-control:focus, .navbar-collapse, .navbar-form, .navbar-form-custom .form-control:focus, .navbar-form-custom .form-control:hover, .open .btn.dropdown-toggle, .panel, .popover, .progress, .progress-bar {\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\n.btn-outline {\\r\\n color: inherit;\\r\\n background-color: transparent;\\r\\n transition: all 0.5s;\\r\\n}\\r\\n\\r\\n.btn-rounded {\\r\\n border-radius: 50px;\\r\\n}\\r\\n\\r\\n.btn-large-dim {\\r\\n width: 90px;\\r\\n height: 90px;\\r\\n font-size: 42px;\\r\\n}\\r\\n\\r\\nbutton.dim {\\r\\n display: inline-block;\\r\\n color: white;\\r\\n text-decoration: none;\\r\\n text-transform: uppercase;\\r\\n text-align: center;\\r\\n padding-top: 6px;\\r\\n margin-right: 10px;\\r\\n position: relative;\\r\\n cursor: pointer;\\r\\n border-radius: 5px;\\r\\n font-weight: 600;\\r\\n margin-bottom: 20px !important;\\r\\n}\\r\\n\\r\\nbutton.dim:active {\\r\\n top: 3px;\\r\\n}\\r\\n\\r\\nbutton.btn-primary.dim {\\r\\n box-shadow: inset 0px 0px 0px darken($fp-yellow, 6%), 0px 5px 0px 0px darken($fp-yellow, 6%), 0px 10px 5px #999999;\\r\\n}\\r\\n\\r\\nbutton.btn-primary.dim:active {\\r\\n box-shadow: inset 0px 0px 0px darken($fp-yellow, 6%), 0px 2px 0px 0px darken($fp-yellow, 6%), 0px 5px 3px #999999;\\r\\n}\\r\\n\\r\\nbutton.btn-default.dim {\\r\\n box-shadow: inset 0px 0px 0px darken($dark-gray, 6%), 0px 5px 0px 0px darken($dark-gray, 6%), 0px 10px 5px #999999;\\r\\n}\\r\\n\\r\\nbutton.btn-default.dim:active {\\r\\n box-shadow: inset 0px 0px 0px darken($dark-gray, 6%), 0px 2px 0px 0px darken($dark-gray, 6%), 0px 5px 3px #999999;\\r\\n}\\r\\n\\r\\nbutton.btn-warning.dim {\\r\\n box-shadow: inset 0px 0px 0px darken($yellow, 6%), 0px 5px 0px 0px darken($yellow, 6%), 0px 10px 5px #999999;\\r\\n}\\r\\n\\r\\nbutton.btn-warning.dim:active {\\r\\n box-shadow: inset 0px 0px 0px darken($yellow, 6%), 0px 2px 0px 0px darken($yellow, 6%), 0px 5px 3px #999999;\\r\\n}\\r\\n\\r\\nbutton.btn-info.dim {\\r\\n box-shadow: inset 0px 0px 0px darken($lazur, 6%), 0px 5px 0px 0px darken($lazur, 6%), 0px 10px 5px #999999;\\r\\n}\\r\\n\\r\\nbutton.btn-info.dim:active {\\r\\n box-shadow: inset 0px 0px 0px darken($lazur, 6%), 0px 2px 0px 0px darken($lazur, 6%), 0px 5px 3px #999999;\\r\\n}\\r\\n\\r\\nbutton.btn-success.dim {\\r\\n box-shadow: inset 0px 0px 0px darken($blue, 6%), 0px 5px 0px 0px darken($blue, 6%), 0px 10px 5px #999999;\\r\\n}\\r\\n\\r\\nbutton.btn-success.dim:active {\\r\\n box-shadow: inset 0px 0px 0px darken($blue, 6%), 0px 2px 0px 0px darken($blue, 6%), 0px 5px 3px #999999;\\r\\n}\\r\\n\\r\\nbutton.btn-danger.dim {\\r\\n box-shadow: inset 0px 0px 0px darken($red, 6%), 0px 5px 0px 0px darken($red, 6%), 0px 10px 5px #999999;\\r\\n}\\r\\n\\r\\nbutton.btn-danger.dim:active {\\r\\n box-shadow: inset 0px 0px 0px darken($red, 6%), 0px 2px 0px 0px darken($red, 6%), 0px 5px 3px #999999;\\r\\n}\\r\\n\\r\\nbutton.dim:before {\\r\\n font-size: 50px;\\r\\n line-height: 1em;\\r\\n font-weight: normal;\\r\\n color: white;\\r\\n display: block;\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\nbutton.dim:active:before {\\r\\n top: 7px;\\r\\n font-size: 50px;\\r\\n}\\r\\n\",\".label {\\r\\n background-color: $fp-label-gray-bg;\\r\\n color: $fp-label-gray-text;\\r\\n border: 1px solid $fp-label-gray-border;\\r\\n font-family: \\\"Manrope\\\";\\r\\n font-size: 10px;\\r\\n padding: 4px 10px;\\r\\n border-radius: 8px;\\r\\n text-shadow: none;\\r\\n}\\r\\n\\r\\n.badge {\\r\\n background-color: $fp-label-gray-bg;\\r\\n color: $fp-label-gray-text;\\r\\n border: 1px solid $fp-label-gray-border;\\r\\n font-family: \\\"Manrope\\\";\\r\\n font-size: 11px;\\r\\n font-weight: 600;\\r\\n padding-bottom: 4px;\\r\\n padding-left: 6px;\\r\\n padding-right: 6px;\\r\\n text-shadow: none;\\r\\n }\\r\\n\\r\\n.label-primary, .badge-primary {\\r\\n background-color: $fp-purple;\\r\\n color: white;\\r\\n border: 1px solid $delinea-purple;\\r\\n }\\r\\n\\r\\n.label-success, .badge-success {\\r\\n background-color: $fp-label-green-bg;\\r\\n color: $fp-label-green-text;\\r\\n border: 1px solid $fp-label-green-border;\\r\\n }\\r\\n\\r\\n.label-warning, .badge-warning {\\r\\n background-color: $fp-label-orange-bg;\\r\\n color: $fp-label-orange-text;\\r\\n border: 1px solid $fp-label-orange-border;\\r\\n }\\r\\n\\r\\n.label-warning-light, .badge-warning-light {\\r\\n background-color: $fp-label-orange-bg;\\r\\n color: $fp-label-orange-text;\\r\\n border: 1px solid $fp-label-orange-border;\\r\\n }\\r\\n\\r\\n.label-danger, .badge-danger {\\r\\n background-color: $fp-label-red-bg;\\r\\n color: $fp-label-red-text;\\r\\n border: 1px solid $fp-label-red-border;\\r\\n}\\r\\n\\r\\n.label-info, .badge-info {\\r\\n background-color: $fp-label-yellow-bg;\\r\\n color: $fp-label-yellow-text;\\r\\n border: 1px solid $fp-label-yellow-border;\\r\\n }\\r\\n\\r\\n.label-inverse, .badge-inverse {\\r\\n background-color: #262626;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n.label-white, .badge-white {\\r\\n background-color: white;\\r\\n color: #5e5e5e;\\r\\n }\\r\\n\\r\\n.label-white, .badge-disable {\\r\\n background-color: #2a2e36;\\r\\n color: #8b91a0;\\r\\n }\\r\\n\",\"/* TOOGLE SWICH */\\r\\n\\r\\n.onoffswitch {\\r\\n position: relative;\\r\\n width: 64px;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n}\\r\\n\\r\\n.onoffswitch-checkbox {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.onoffswitch-label {\\r\\n display: block;\\r\\n overflow: hidden;\\r\\n cursor: pointer;\\r\\n border: 2px solid $navy;\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n.onoffswitch-inner {\\r\\n width: 200%;\\r\\n margin-left: -100%;\\r\\n -moz-transition: margin 0.3s ease-in 0s;\\r\\n -webkit-transition: margin 0.3s ease-in 0s;\\r\\n -o-transition: margin 0.3s ease-in 0s;\\r\\n transition: margin 0.3s ease-in 0s;\\r\\n}\\r\\n\\r\\n.onoffswitch-inner:before, .onoffswitch-inner:after {\\r\\n float: left;\\r\\n width: 50%;\\r\\n height: 20px;\\r\\n padding: 0;\\r\\n line-height: 20px;\\r\\n font-size: 12px;\\r\\n color: white;\\r\\n font-family: Trebuchet, Arial, sans-serif;\\r\\n font-weight: bold;\\r\\n -moz-box-sizing: border-box;\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.onoffswitch-inner:before {\\r\\n content: \\\"ON\\\";\\r\\n padding-left: 10px;\\r\\n background-color: $navy;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.onoffswitch-inner:after {\\r\\n content: \\\"OFF\\\";\\r\\n padding-right: 10px;\\r\\n background-color: white;\\r\\n color: #999999;\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.onoffswitch-switch {\\r\\n width: 20px;\\r\\n margin: 0px;\\r\\n background: white;\\r\\n border: 2px solid $navy;\\r\\n border-radius: 2px;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 44px;\\r\\n -moz-transition: all 0.3s ease-in 0s;\\r\\n -webkit-transition: all 0.3s ease-in 0s;\\r\\n -o-transition: all 0.3s ease-in 0s;\\r\\n transition: all 0.3s ease-in 0s;\\r\\n}\\r\\n\\r\\n.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {\\r\\n margin-left: 0;\\r\\n}\\r\\n\\r\\n.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {\\r\\n right: 0px;\\r\\n}\\r\\n\\r\\n/* CHOSEN PLUGIN */\\r\\n\\r\\n.chosen-container-single .chosen-single {\\r\\n background: white;\\r\\n box-shadow: none;\\r\\n -moz-box-sizing: border-box;\\r\\n background-color: white;\\r\\n border: 1px solid #cbd5dd;\\r\\n border-radius: 2px;\\r\\n cursor: text;\\r\\n height: auto !important;\\r\\n margin: 0;\\r\\n min-height: 30px;\\r\\n overflow: hidden;\\r\\n padding: 4px 12px;\\r\\n position: relative;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.chosen-container-multi .chosen-choices li.search-choice {\\r\\n background: #f1f1f1;\\r\\n border: 1px solid #ededed;\\r\\n border-radius: 2px;\\r\\n box-shadow: none;\\r\\n color: #333333;\\r\\n cursor: default;\\r\\n line-height: 13px;\\r\\n margin: 3px 0 3px 5px;\\r\\n padding: 3px 20px 3px 5px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n/* PAGINATIN */\\r\\n\\r\\n.pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus {\\r\\n color: #fff;\\r\\n background-color: #291972;\\r\\n border-color: #291972;\\r\\n cursor: default;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n.pagination > li > a, .pagination > li > span {\\r\\n background-color: white;\\r\\n border: 1px solid #dddddd;\\r\\n color: inherit;\\r\\n float: left;\\r\\n line-height: 1.42857;\\r\\n margin-left: -1px;\\r\\n padding: 4px 10px;\\r\\n position: relative;\\r\\n text-decoration: none;\\r\\n}\\r\\n\\r\\n/* TOOLTIPS */\\r\\n\\r\\n.tooltip-inner {\\r\\n background-color: $fp-purple;\\r\\n}\\r\\n\\r\\n.tooltip.top .tooltip-arrow {\\r\\n border-top-color: #2f4050;\\r\\n}\\r\\n\\r\\n.tooltip.right .tooltip-arrow {\\r\\n border-right-color: #2f4050;\\r\\n}\\r\\n\\r\\n.tooltip.bottom .tooltip-arrow {\\r\\n border-bottom-color: #2f4050;\\r\\n}\\r\\n\\r\\n.tooltip.left .tooltip-arrow {\\r\\n border-left-color: #2f4050;\\r\\n}\\r\\n\\r\\n/* EASY PIE CHART */\\r\\n\\r\\n.easypiechart {\\r\\n position: relative;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.easypiechart .h2 {\\r\\n margin-left: 10px;\\r\\n margin-top: 10px;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.easypiechart canvas {\\r\\n top: 0;\\r\\n left: 0;\\r\\n}\\r\\n\\r\\n.easypiechart .easypie-text {\\r\\n line-height: 1;\\r\\n position: absolute;\\r\\n top: 33px;\\r\\n width: 100%;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.easypiechart img {\\r\\n margin-top: -4px;\\r\\n}\\r\\n\\r\\n.jqstooltip {\\r\\n -webkit-box-sizing: content-box;\\r\\n -moz-box-sizing: content-box;\\r\\n box-sizing: content-box;\\r\\n}\\r\\n\\r\\n/* FULLCALENDAR */\\r\\n\\r\\n.fc-state-default {\\r\\n background-color: white;\\r\\n background-image: none;\\r\\n background-repeat: repeat-x;\\r\\n box-shadow: none;\\r\\n color: #333333;\\r\\n text-shadow: none;\\r\\n}\\r\\n\\r\\n.fc-state-default {\\r\\n border: 1px solid;\\r\\n}\\r\\n\\r\\n.fc-button {\\r\\n color: inherit;\\r\\n border: 1px solid $border-color;\\r\\n cursor: pointer;\\r\\n display: inline-block;\\r\\n height: 1.9em;\\r\\n line-height: 1.9em;\\r\\n overflow: hidden;\\r\\n padding: 0 0.6em;\\r\\n position: relative;\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n.fc-state-active {\\r\\n background-color: $navy;\\r\\n border-color: $navy;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.fc-header-title h2 {\\r\\n font-size: 16px;\\r\\n font-weight: 600;\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.fc-content .fc-widget-header, .fc-content .fc-widget-content {\\r\\n border-color: $border-color;\\r\\n font-weight: normal;\\r\\n}\\r\\n\\r\\n.fc-border-separate tbody {\\r\\n background-color: #f8f8f8;\\r\\n}\\r\\n\\r\\n.fc-state-highlight {\\r\\n background: none repeat scroll 0 0 #fcf8e3;\\r\\n}\\r\\n\\r\\n.external-event {\\r\\n padding: 5px 10px;\\r\\n border-radius: 2px;\\r\\n cursor: pointer;\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.fc-ltr .fc-event-hori.fc-event-end, .fc-rtl .fc-event-hori.fc-event-start {\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n.fc-event,\\r\\n.fc-agenda .fc-event-time,\\r\\n.fc-event a {\\r\\n padding: 4px 6px;\\r\\n background-color: $navy;\\r\\n border-color: $navy;\\r\\n}\\r\\n\\r\\n.fc-event-time, .fc-event-title {\\r\\n color: #717171;\\r\\n padding: 0 1px;\\r\\n}\\r\\n\\r\\n.ui-calendar .fc-event-time, .ui-calendar .fc-event-title {\\r\\n color: white;\\r\\n}\\r\\n\\r\\n/* Chat */\\r\\n.chat-activity-list .chat-element {\\r\\n border-bottom: 1px solid $border-color;\\r\\n}\\r\\n\\r\\n.chat-element:first-child {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n.chat-element {\\r\\n padding-bottom: 15px;\\r\\n}\\r\\n\\r\\n.chat-element, .chat-element .media {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.chat-element, .media-body {\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.chat-element .media-body {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.media-body {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.chat-element > .pull-left {\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.chat-element img.img-circle, .dropdown-messages-box img.img-circle {\\r\\n width: 38px;\\r\\n height: 38px;\\r\\n}\\r\\n\\r\\n.chat-element .well {\\r\\n border: 1px solid $border-color;\\r\\n box-shadow: none;\\r\\n margin-top: 10px;\\r\\n margin-bottom: 5px;\\r\\n padding: 10px 20px;\\r\\n font-size: 11px;\\r\\n line-height: 16px;\\r\\n}\\r\\n\\r\\n.chat-element .actions {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.chat-element .photos {\\r\\n margin: 10px 0;\\r\\n}\\r\\n\\r\\n.right.chat-element > .pull-right {\\r\\n margin-left: 10px;\\r\\n}\\r\\n\\r\\n.chat-photo {\\r\\n max-height: 180px;\\r\\n border-radius: 4px;\\r\\n overflow: hidden;\\r\\n margin-right: 10px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.chat {\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n list-style: none;\\r\\n}\\r\\n\\r\\n.chat li {\\r\\n margin-bottom: 10px;\\r\\n padding-bottom: 5px;\\r\\n border-bottom: 1px dotted #b3a9a9;\\r\\n}\\r\\n\\r\\n.chat li.left .chat-body {\\r\\n margin-left: 60px;\\r\\n}\\r\\n\\r\\n.chat li.right .chat-body {\\r\\n margin-right: 60px;\\r\\n}\\r\\n\\r\\n.chat li .chat-body p {\\r\\n margin: 0;\\r\\n color: #777777;\\r\\n}\\r\\n\\r\\n.panel .slidedown .glyphicon,\\r\\n.chat .glyphicon {\\r\\n margin-right: 5px;\\r\\n}\\r\\n\\r\\n.chat-panel .panel-body {\\r\\n height: 350px;\\r\\n overflow-y: scroll;\\r\\n}\\r\\n\\r\\n/* LIST GROUP */\\r\\n\\r\\na.list-group-item.active, a.list-group-item.active:hover, a.list-group-item.active:focus {\\r\\n background-color: $navy;\\r\\n border-color: $navy;\\r\\n color: white;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n.list-group-item-heading {\\r\\n margin-top: 10px;\\r\\n color: $delinea-purple;\\r\\n}\\r\\n\\r\\n.list-group-item-text {\\r\\n margin: 0 0 10px;\\r\\n color: $delinea-purple;\\r\\n font-size: 12px;\\r\\n line-height: inherit;\\r\\n}\\r\\n\\r\\n.no-padding .list-group-item {\\r\\n border-left: none;\\r\\n border-right: none;\\r\\n border-bottom: none;\\r\\n}\\r\\n\\r\\n.no-padding .list-group-item:first-child {\\r\\n border-left: none;\\r\\n border-right: none;\\r\\n border-bottom: none;\\r\\n border-top: none;\\r\\n}\\r\\n\\r\\n.no-padding .list-group {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.list-group-item {\\r\\n background-color: inherit;\\r\\n border: 1px solid $border-color;\\r\\n display: block;\\r\\n margin-bottom: -1px;\\r\\n padding: 10px 15px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.elements-list .list-group-item {\\r\\n border-left: none;\\r\\n border-right: none;\\r\\n padding: 15px 25px;\\r\\n}\\r\\n\\r\\n.elements-list .list-group-item:first-child {\\r\\n border-left: none;\\r\\n border-right: none;\\r\\n border-top: none !important;\\r\\n}\\r\\n\\r\\n.elements-list .list-group {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.elements-list a {\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.elements-list .list-group-item.active,\\r\\n.elements-list .list-group-item:hover {\\r\\n background: $gray;\\r\\n color: inherit;\\r\\n border-color: $border-color;\\r\\n border-radius: 0;\\r\\n}\\r\\n\\r\\n.elements-list li.active {\\r\\n transition: none;\\r\\n}\\r\\n\\r\\n.element-detail-box {\\r\\n padding: 25px;\\r\\n}\\r\\n\\r\\n\\r\\n/* FLOT CHART */\\r\\n\\r\\n.flot-chart {\\r\\n display: block;\\r\\n height: 200px;\\r\\n}\\r\\n\\r\\n.widget .flot-chart.dashboard-chart {\\r\\n display: block;\\r\\n height: 120px;\\r\\n margin-top: 40px;\\r\\n}\\r\\n\\r\\n.flot-chart.dashboard-chart {\\r\\n display: block;\\r\\n height: 180px;\\r\\n margin-top: 40px;\\r\\n}\\r\\n\\r\\n.flot-chart-content {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.flot-chart-pie-content {\\r\\n width: 200px;\\r\\n height: 200px;\\r\\n margin: auto;\\r\\n}\\r\\n\\r\\n.jqstooltip {\\r\\n position: absolute;\\r\\n display: block;\\r\\n left: 0px;\\r\\n top: 0px;\\r\\n visibility: hidden;\\r\\n background: rgb(43, 48, 58);\\r\\n background-color: rgba(43, 48, 58, 0.8);\\r\\n color: white;\\r\\n text-align: left;\\r\\n white-space: nowrap;\\r\\n z-index: 10000;\\r\\n padding: 5px 5px 5px 5px;\\r\\n min-height: 22px;\\r\\n border-radius: 3px;\\r\\n}\\r\\n\\r\\n.jqsfield {\\r\\n color: white;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.h-200 {\\r\\n min-height: 200px;\\r\\n}\\r\\n\\r\\n.legendLabel {\\r\\n padding-left: 5px;\\r\\n}\\r\\n\\r\\n.stat-list li:first-child {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n.stat-list {\\r\\n list-style: none;\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.stat-percent {\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.stat-list li {\\r\\n margin-top: 15px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n/* DATATABLES */\\r\\n\\r\\ntable.dataTable thead .sorting,\\r\\ntable.dataTable thead .sorting_asc:after,\\r\\ntable.dataTable thead .sorting_desc,\\r\\ntable.dataTable thead .sorting_asc_disabled,\\r\\ntable.dataTable thead .sorting_desc_disabled {\\r\\n background: transparent;\\r\\n}\\r\\n\\r\\ntable.dataTable thead .sorting_asc:after {\\r\\n float: right;\\r\\n font-family: fontawesome;\\r\\n}\\r\\n\\r\\ntable.dataTable thead .sorting_desc:after {\\r\\n content: \\\"\\\\f0dd\\\";\\r\\n float: right;\\r\\n font-family: fontawesome;\\r\\n}\\r\\n\\r\\ntable.dataTable thead .sorting:after {\\r\\n content: \\\"\\\\f0dc\\\";\\r\\n float: right;\\r\\n font-family: fontawesome;\\r\\n color: rgba(50, 50, 50, 0.5);\\r\\n}\\r\\n\\r\\n.dataTables_wrapper {\\r\\n padding-bottom: 30px;\\r\\n}\\r\\n\\r\\n/* CIRCLE */\\r\\n\\r\\n.img-circle {\\r\\n border-radius: 50%;\\r\\n}\\r\\n\\r\\n.btn-circle {\\r\\n width: 30px;\\r\\n height: 30px;\\r\\n padding: 6px 0;\\r\\n border-radius: 15px;\\r\\n text-align: center;\\r\\n font-size: 12px;\\r\\n line-height: 1.42857;\\r\\n}\\r\\n\\r\\n.btn-circle.btn-lg {\\r\\n width: 50px;\\r\\n height: 50px;\\r\\n padding: 10px 16px;\\r\\n border-radius: 25px;\\r\\n font-size: 18px;\\r\\n line-height: 1.33;\\r\\n}\\r\\n\\r\\n.btn-circle.btn-xl {\\r\\n width: 70px;\\r\\n height: 70px;\\r\\n padding: 10px 16px;\\r\\n border-radius: 35px;\\r\\n font-size: 24px;\\r\\n line-height: 1.33;\\r\\n}\\r\\n\\r\\n.show-grid [class^=\\\"col-\\\"] {\\r\\n padding-top: 10px;\\r\\n padding-bottom: 10px;\\r\\n border: 1px solid #dddddd;\\r\\n background-color: #eeeeee !important;\\r\\n}\\r\\n\\r\\n.show-grid {\\r\\n margin: 15px 0;\\r\\n}\\r\\n\\r\\n/* ANIMATION */\\r\\n\\r\\n.css-animation-box h1 {\\r\\n font-size: 44px;\\r\\n}\\r\\n\\r\\n.animation-efect-links a {\\r\\n padding: 4px 6px;\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n#animation_box {\\r\\n background-color: #f9f8f8;\\r\\n border-radius: 16px;\\r\\n width: 80%;\\r\\n margin: 0 auto;\\r\\n padding-top: 80px;\\r\\n}\\r\\n\\r\\n.animation-text-box {\\r\\n position: absolute;\\r\\n margin-top: 40px;\\r\\n left: 50%;\\r\\n margin-left: -100px;\\r\\n width: 200px;\\r\\n}\\r\\n\\r\\n.animation-text-info {\\r\\n position: absolute;\\r\\n margin-top: -60px;\\r\\n left: 50%;\\r\\n margin-left: -100px;\\r\\n width: 200px;\\r\\n font-size: 10px;\\r\\n}\\r\\n\\r\\n.animation-text-box h2 {\\r\\n font-size: 54px;\\r\\n font-weight: 600;\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.animation-text-box p {\\r\\n font-size: 12px;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n/* PEACE */\\r\\n\\r\\n.pace {\\r\\n -webkit-pointer-events: none;\\r\\n pointer-events: none;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n user-select: none;\\r\\n}\\r\\n\\r\\n.pace-inactive {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.pace .pace-progress {\\r\\n background: $navy;\\r\\n position: fixed;\\r\\n z-index: 2000;\\r\\n top: 0;\\r\\n right: 100%;\\r\\n width: 100%;\\r\\n height: 2px;\\r\\n}\\r\\n\\r\\n.pace-inactive {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n/* WIDGETS */\\r\\n\\r\\n.widget {\\r\\n border-radius: 4px;\\r\\n padding: 15px 20px;\\r\\n margin-bottom: 10px;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.widget.style1 h2 {\\r\\n font-size: 30px;\\r\\n}\\r\\n\\r\\n.widget h2, .widget h3 {\\r\\n margin-top: 5px;\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.widget-text-box {\\r\\n padding: 20px;\\r\\n border: 1px solid $border-color;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.widget-head-color-box {\\r\\n border-radius: 5px 5px 0px 0px;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.widget .flot-chart {\\r\\n height: 100px;\\r\\n}\\r\\n\\r\\n.vertical-align div {\\r\\n display: inline-block;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.vertical-align h2, .vertical-align h3 {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.todo-list {\\r\\n list-style: none outside none;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.todo-list.small-list {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.todo-list.small-list > li {\\r\\n background: $gray;\\r\\n border-left: none;\\r\\n border-right: none;\\r\\n border-radius: 4px;\\r\\n color: inherit;\\r\\n margin-bottom: 2px;\\r\\n padding: 6px 6px 6px 12px;\\r\\n}\\r\\n\\r\\n.todo-list.small-list .btn-xs, .todo-list.small-list .btn-group-xs > .btn {\\r\\n border-radius: 5px;\\r\\n font-size: 10px;\\r\\n line-height: 1.5;\\r\\n padding: 1px 2px 1px 5px;\\r\\n}\\r\\n\\r\\n.todo-list > li {\\r\\n background: $gray;\\r\\n border-left: 6px solid $border-color;\\r\\n border-right: 6px solid $border-color;\\r\\n border-radius: 4px;\\r\\n color: inherit;\\r\\n margin-bottom: 2px;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.todo-list .handle {\\r\\n cursor: move;\\r\\n display: inline-block;\\r\\n font-size: 16px;\\r\\n margin: 0 5px;\\r\\n}\\r\\n\\r\\n.todo-list > li .label {\\r\\n font-size: 9px;\\r\\n margin-left: 10px;\\r\\n}\\r\\n\\r\\n.check-link {\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\n.todo-completed {\\r\\n text-decoration: line-through;\\r\\n}\\r\\n\\r\\n.geo-statistic h1 {\\r\\n font-size: 36px;\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.glyphicon.fa {\\r\\n font-family: \\\"FontAwesome\\\";\\r\\n}\\r\\n\\r\\n/* INPUTS */\\r\\n.inline {\\r\\n display: inline-block !important;\\r\\n}\\r\\n\\r\\n.input-s-sm {\\r\\n width: 120px;\\r\\n}\\r\\n\\r\\n.input-s {\\r\\n width: 200px;\\r\\n}\\r\\n\\r\\n.input-s-lg {\\r\\n width: 250px;\\r\\n}\\r\\n\\r\\n.i-checks {\\r\\n padding-left: 0;\\r\\n}\\r\\n\\r\\n.form-control, .single-line {\\r\\n background-color: white;\\r\\n background-image: none;\\r\\n border: 1px solid #e5e6e7;\\r\\n border-radius: 1px;\\r\\n color: inherit;\\r\\n display: block;\\r\\n padding: 6px 12px;\\r\\n transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.form-control:focus, .single-line:focus {\\r\\n border-color: $navy !important;\\r\\n}\\r\\n\\r\\n.has-success .form-control {\\r\\n border-color: $navy;\\r\\n}\\r\\n\\r\\n.has-warning .form-control {\\r\\n border-color: $yellow;\\r\\n}\\r\\n\\r\\n.has-error .form-control {\\r\\n border-color: $red;\\r\\n}\\r\\n\\r\\n.has-success .control-label {\\r\\n color: $navy;\\r\\n}\\r\\n\\r\\n.has-warning .control-label {\\r\\n color: $yellow;\\r\\n}\\r\\n\\r\\n.has-error .control-label {\\r\\n color: $red;\\r\\n}\\r\\n\\r\\n.input-group-addon {\\r\\n background-color: white;\\r\\n border: 1px solid $border-color;\\r\\n border-radius: 4px;\\r\\n color: inherit;\\r\\n font-size: 14px;\\r\\n font-weight: 400;\\r\\n line-height: 1;\\r\\n padding: 6px 12px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.spinner-buttons.input-group-btn .btn-xs {\\r\\n line-height: 1.13;\\r\\n}\\r\\n\\r\\n.spinner-buttons.input-group-btn {\\r\\n width: 20%;\\r\\n}\\r\\n\\r\\n.noUi-connect {\\r\\n background: none repeat scroll 0 0 $navy;\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\n.slider_red .noUi-connect {\\r\\n background: none repeat scroll 0 0 $red;\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\n/* UI Sortable */\\r\\n\\r\\n.ui-sortable .ibox-title {\\r\\n cursor: move;\\r\\n}\\r\\n\\r\\n.ui-sortable-placeholder {\\r\\n border: 1px dashed #cecece !important;\\r\\n visibility: visible !important;\\r\\n background: #C2C4CC;\\r\\n}\\r\\n\\r\\n.ibox.ui-sortable-placeholder {\\r\\n margin: 0px 0px 23px !important;\\r\\n}\\r\\n\\r\\n/* SWITCHES */\\r\\n.onoffswitch {\\r\\n position: relative;\\r\\n width: 54px;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n}\\r\\n\\r\\n.onoffswitch-checkbox {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.onoffswitch-label {\\r\\n display: block;\\r\\n overflow: hidden;\\r\\n cursor: pointer;\\r\\n border: 2px solid #1ab394;\\r\\n border-radius: 3px;\\r\\n}\\r\\n\\r\\n.onoffswitch-inner {\\r\\n display: block;\\r\\n width: 200%;\\r\\n margin-left: -100%;\\r\\n -moz-transition: margin 0.3s ease-in 0s;\\r\\n -webkit-transition: margin 0.3s ease-in 0s;\\r\\n -o-transition: margin 0.3s ease-in 0s;\\r\\n transition: margin 0.3s ease-in 0s;\\r\\n}\\r\\n\\r\\n.onoffswitch-inner:before, .onoffswitch-inner:after {\\r\\n display: block;\\r\\n float: left;\\r\\n width: 50%;\\r\\n height: 16px;\\r\\n padding: 0;\\r\\n line-height: 16px;\\r\\n font-size: 10px;\\r\\n color: white;\\r\\n font-family: Trebuchet, Arial, sans-serif;\\r\\n font-weight: bold;\\r\\n -moz-box-sizing: border-box;\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.onoffswitch-inner:before {\\r\\n content: \\\"ON\\\";\\r\\n padding-left: 7px;\\r\\n background-color: #1ab394;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.onoffswitch-inner:after {\\r\\n content: \\\"OFF\\\";\\r\\n padding-right: 7px;\\r\\n background-color: white;\\r\\n color: #919191;\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.onoffswitch-switch {\\r\\n display: block;\\r\\n width: 18px;\\r\\n margin: 0px;\\r\\n background: white;\\r\\n border: 2px solid #1ab394;\\r\\n border-radius: 3px;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 36px;\\r\\n -moz-transition: all 0.3s ease-in 0s;\\r\\n -webkit-transition: all 0.3s ease-in 0s;\\r\\n -o-transition: all 0.3s ease-in 0s;\\r\\n transition: all 0.3s ease-in 0s;\\r\\n}\\r\\n\\r\\n.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {\\r\\n margin-left: 0;\\r\\n}\\r\\n\\r\\n.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {\\r\\n right: 0px;\\r\\n}\\r\\n\\r\\n/* jqGrid */\\r\\n\\r\\n.ui-jqgrid {\\r\\n -moz-box-sizing: content-box;\\r\\n}\\r\\n\\r\\n.ui-jqgrid-btable {\\r\\n border-collapse: separate;\\r\\n}\\r\\n\\r\\n.ui-jqgrid-htable {\\r\\n border-collapse: separate;\\r\\n}\\r\\n\\r\\n.ui-jqgrid-titlebar {\\r\\n height: 40px;\\r\\n line-height: 15px;\\r\\n color: #676a6c;\\r\\n background-color: #f9f9f9;\\r\\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);\\r\\n}\\r\\n\\r\\n.ui-jqgrid .ui-jqgrid-title {\\r\\n float: left;\\r\\n margin: 1.1em 1em 0.2em;\\r\\n}\\r\\n\\r\\n.ui-jqgrid .ui-jqgrid-titlebar {\\r\\n position: relative;\\r\\n border-left: 0px solid;\\r\\n border-right: 0px solid;\\r\\n border-top: 0px solid;\\r\\n}\\r\\n\\r\\n.ui-widget-header {\\r\\n background: none;\\r\\n background-image: none;\\r\\n background-color: #f5f5f6;\\r\\n text-transform: uppercase;\\r\\n border-top-left-radius: 0px;\\r\\n border-top-right-radius: 0px;\\r\\n}\\r\\n\\r\\n.ui-jqgrid tr.ui-row-ltr td {\\r\\n border-right-color: inherit;\\r\\n border-right-style: solid;\\r\\n border-right-width: 1px;\\r\\n text-align: left;\\r\\n border-color: #dddddd;\\r\\n background-color: inherit;\\r\\n}\\r\\n\\r\\n.ui-search-toolbar input[type=\\\"text\\\"] {\\r\\n font-size: 12px;\\r\\n height: 15px;\\r\\n border: 1px solid #cccccc;\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\n.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {\\r\\n background: #f9f9f9;\\r\\n border: 1px solid #dddddd;\\r\\n line-height: 15px;\\r\\n font-weight: bold;\\r\\n color: #676a6c;\\r\\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);\\r\\n}\\r\\n\\r\\n.ui-widget-content {\\r\\n box-sizing: content-box;\\r\\n}\\r\\n\\r\\n.ui-icon-triangle-1-n {\\r\\n background-position: 1px -16px;\\r\\n}\\r\\n\\r\\n.ui-jqgrid tr.ui-search-toolbar th {\\r\\n border-top-width: 0px !important;\\r\\n border-top-color: inherit !important;\\r\\n border-top-style: ridge !important;\\r\\n}\\r\\n\\r\\n.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus {\\r\\n background: whitesmoke;\\r\\n border-collapse: separate;\\r\\n}\\r\\n\\r\\n.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {\\r\\n background: #f2fbff;\\r\\n}\\r\\n\\r\\n.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {\\r\\n border: 1px solid #dddddd;\\r\\n background: white;\\r\\n font-weight: normal;\\r\\n color: #212121;\\r\\n}\\r\\n\\r\\n.ui-jqgrid .ui-pg-input {\\r\\n font-size: inherit;\\r\\n width: 50px;\\r\\n border: 1px solid #cccccc;\\r\\n height: 15px;\\r\\n}\\r\\n\\r\\n.ui-jqgrid .ui-pg-selbox {\\r\\n display: block;\\r\\n font-size: 1em;\\r\\n height: 25px;\\r\\n line-height: 18px;\\r\\n margin: 0;\\r\\n width: auto;\\r\\n}\\r\\n\\r\\n.ui-jqgrid .ui-pager-control {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.ui-jqgrid .ui-jqgrid-pager {\\r\\n height: 32px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.ui-pg-table .navtable .ui-corner-all {\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\n.ui-jqgrid .ui-pg-button:hover {\\r\\n padding: 1px;\\r\\n border: 0px;\\r\\n}\\r\\n\\r\\n.ui-jqgrid .loading {\\r\\n position: absolute;\\r\\n top: 45%;\\r\\n left: 45%;\\r\\n width: auto;\\r\\n height: auto;\\r\\n z-index: 101;\\r\\n padding: 6px;\\r\\n margin: 5px;\\r\\n text-align: center;\\r\\n font-weight: bold;\\r\\n display: none;\\r\\n border-width: 2px !important;\\r\\n font-size: 11px;\\r\\n}\\r\\n\\r\\n.ui-jqgrid .form-control {\\r\\n height: 10px;\\r\\n width: auto;\\r\\n display: inline;\\r\\n padding: 10px 12px;\\r\\n}\\r\\n\\r\\n.ui-jqgrid-pager {\\r\\n height: 32px;\\r\\n}\\r\\n\\r\\n.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl {\\r\\n border-top-left-radius: 0;\\r\\n}\\r\\n\\r\\n.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr {\\r\\n border-top-right-radius: 0;\\r\\n}\\r\\n\\r\\n.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl {\\r\\n border-bottom-left-radius: 0;\\r\\n}\\r\\n\\r\\n.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br {\\r\\n border-bottom-right-radius: 0;\\r\\n}\\r\\n\\r\\n.ui-widget-content {\\r\\n border: 1px solid #dddddd;\\r\\n}\\r\\n\\r\\n.ui-jqgrid .ui-jqgrid-titlebar {\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\n.ui-jqgrid .ui-jqgrid-titlebar {\\r\\n border-bottom: 1px solid #dddddd;\\r\\n}\\r\\n\\r\\n.ui-jqgrid tr.jqgrow td {\\r\\n padding: 6px;\\r\\n}\\r\\n\\r\\n.ui-jqdialog .ui-jqdialog-titlebar {\\r\\n padding: 10px 10px;\\r\\n}\\r\\n\\r\\n.ui-jqdialog .ui-jqdialog-title {\\r\\n float: none !important;\\r\\n}\\r\\n\\r\\n.ui-jqdialog > .ui-resizable-se {\\r\\n position: absolute;\\r\\n}\\r\\n\\r\\n/* Nestable list */\\r\\n\\r\\n.dd {\\r\\n position: relative;\\r\\n display: block;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n list-style: none;\\r\\n font-size: 13px;\\r\\n line-height: 20px;\\r\\n}\\r\\n\\r\\n.dd-list {\\r\\n display: block;\\r\\n position: relative;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n list-style: none;\\r\\n}\\r\\n\\r\\n.dd-list .dd-list {\\r\\n padding-left: 30px;\\r\\n}\\r\\n\\r\\n.dd-collapsed .dd-list {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.dd-item,\\r\\n.dd-empty,\\r\\n.dd-placeholder {\\r\\n display: block;\\r\\n position: relative;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n min-height: 20px;\\r\\n font-size: 13px;\\r\\n line-height: 20px;\\r\\n}\\r\\n\\r\\n.dd-handle {\\r\\n display: block;\\r\\n margin: 5px 0;\\r\\n padding: 5px 10px;\\r\\n color: #333333;\\r\\n text-decoration: none;\\r\\n border: 1px solid #C2C4CC;\\r\\n background: whitesmoke;\\r\\n -webkit-border-radius: 3px;\\r\\n border-radius: 3px;\\r\\n box-sizing: border-box;\\r\\n -moz-box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.dd-handle span {\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.dd-handle:hover {\\r\\n background: #f0f0f0;\\r\\n cursor: pointer;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.dd-item > button {\\r\\n display: block;\\r\\n position: relative;\\r\\n cursor: pointer;\\r\\n float: left;\\r\\n width: 25px;\\r\\n height: 20px;\\r\\n margin: 5px 0;\\r\\n padding: 0;\\r\\n text-indent: 100%;\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n border: 0;\\r\\n background: transparent;\\r\\n font-size: 12px;\\r\\n line-height: 1;\\r\\n text-align: center;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.dd-item > button:before {\\r\\n content: \\\"+\\\";\\r\\n display: block;\\r\\n position: absolute;\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n text-indent: 0;\\r\\n}\\r\\n\\r\\n.dd-item > button[data-action=\\\"collapse\\\"]:before {\\r\\n content: \\\"-\\\";\\r\\n}\\r\\n\\r\\n#nestable2 .dd-item > button {\\r\\n font-family: FontAwesome;\\r\\n height: 34px;\\r\\n width: 33px;\\r\\n color: #c1c1c1;\\r\\n}\\r\\n\\r\\n#nestable2 .dd-item > button:before {\\r\\n content: \\\"\\\\f067\\\";\\r\\n}\\r\\n\\r\\n#nestable2 .dd-item > button[data-action=\\\"collapse\\\"]:before {\\r\\n content: \\\"\\\\f068\\\";\\r\\n}\\r\\n\\r\\n.dd-placeholder,\\r\\n.dd-empty {\\r\\n margin: 5px 0;\\r\\n padding: 0;\\r\\n min-height: 30px;\\r\\n background: #f2fbff;\\r\\n border: 1px dashed #b6bcbf;\\r\\n box-sizing: border-box;\\r\\n -moz-box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.dd-empty {\\r\\n border: 1px dashed #bbbbbb;\\r\\n min-height: 100px;\\r\\n background-color: #e5e5e5;\\r\\n background-image: -webkit-linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white), -webkit-linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white);\\r\\n background-image: -moz-linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white), -moz-linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white);\\r\\n background-image: linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white), linear-gradient(45deg, white 25%, transparent 25%, transparent 75%, white 75%, white);\\r\\n background-size: 60px 60px;\\r\\n background-position: 0 0, 30px 30px;\\r\\n}\\r\\n\\r\\n.dd-dragel {\\r\\n position: absolute;\\r\\n z-index: 9999;\\r\\n pointer-events: none;\\r\\n}\\r\\n\\r\\n.dd-dragel > .dd-item .dd-handle {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n.dd-dragel .dd-handle {\\r\\n -webkit-box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, 0.1);\\r\\n box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, 0.1);\\r\\n}\\r\\n\\r\\n/* Nestable List */\\r\\n.nestable-lists {\\r\\n display: block;\\r\\n clear: both;\\r\\n padding: 30px 0;\\r\\n width: 100%;\\r\\n border: 0;\\r\\n border-top: 2px solid #dddddd;\\r\\n border-bottom: 2px solid #dddddd;\\r\\n}\\r\\n\\r\\n#nestable-menu {\\r\\n padding: 0;\\r\\n margin: 10px 0 20px 0;\\r\\n}\\r\\n\\r\\n#nestable-output,\\r\\n#nestable2-output {\\r\\n width: 100%;\\r\\n font-size: 0.75em;\\r\\n line-height: 1.33333em;\\r\\n font-family: open sans, lucida grande, lucida sans unicode, helvetica, arial, sans-serif;\\r\\n padding: 5px;\\r\\n box-sizing: border-box;\\r\\n -moz-box-sizing: border-box;\\r\\n}\\r\\n\\r\\n#nestable2 .dd-handle {\\r\\n color: inherit;\\r\\n border: 1px dashed #C2C4CC;\\r\\n background: #f3f3f4;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n#nestable2 span.label {\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n#nestable-output,\\r\\n#nestable2-output {\\r\\n font-size: 12px;\\r\\n padding: 25px;\\r\\n box-sizing: border-box;\\r\\n -moz-box-sizing: border-box;\\r\\n}\\r\\n\\r\\n/* CodeMirror */\\r\\n.CodeMirror {\\r\\n border: 1px solid #eeeeee;\\r\\n height: auto;\\r\\n}\\r\\n\\r\\n.CodeMirror-scroll {\\r\\n overflow-y: hidden;\\r\\n overflow-x: auto;\\r\\n}\\r\\n\\r\\n/* Google Maps */\\r\\n.google-map {\\r\\n height: 300px;\\r\\n}\\r\\n\\r\\n/* Validation */\\r\\nlabel.error {\\r\\n color: #cc5965;\\r\\n display: inline-block;\\r\\n margin-left: 5px;\\r\\n}\\r\\n\\r\\n.form-control.error {\\r\\n border: 1px dotted #cc5965;\\r\\n}\\r\\n\\r\\n/* ngGrid */\\r\\n.gridStyle {\\r\\n border: 1px solid rgb(212, 212, 212);\\r\\n width: 100%;\\r\\n height: 400px;\\r\\n}\\r\\n\\r\\n.gridStyle2 {\\r\\n border: 1px solid rgb(212, 212, 212);\\r\\n width: 500px;\\r\\n height: 300px;\\r\\n}\\r\\n\\r\\n.ngHeaderCell {\\r\\n border-right: none;\\r\\n border-bottom: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.ngCell {\\r\\n border-right: none;\\r\\n}\\r\\n\\r\\n.ngTopPanel {\\r\\n background: #f5f5f6;\\r\\n}\\r\\n\\r\\n.ngRow.even {\\r\\n background: #f9f9f9;\\r\\n}\\r\\n\\r\\n.ngRow.selected {\\r\\n background: #ebf2f1;\\r\\n}\\r\\n\\r\\n.ngRow {\\r\\n border-bottom: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.ngCell {\\r\\n background-color: transparent;\\r\\n}\\r\\n\\r\\n.ngHeaderCell {\\r\\n border-right: none;\\r\\n}\\r\\n\\r\\n/* Toastr custom style */\\r\\n\\r\\n#toast-container > .toast {\\r\\n background-image: none !important;\\r\\n}\\r\\n\\r\\n#toast-container > .toast:before {\\r\\n position: fixed;\\r\\n font-family: FontAwesome;\\r\\n font-size: 24px;\\r\\n line-height: 24px;\\r\\n float: left;\\r\\n color: #FFF;\\r\\n padding-right: 0.5em;\\r\\n margin: auto 0.5em auto -1.5em;\\r\\n}\\r\\n\\r\\n#toast-container > .toast-warning:before {\\r\\n content: \\\"\\\\f0e7\\\";\\r\\n}\\r\\n\\r\\n#toast-container > .toast-error:before {\\r\\n content: \\\"\\\\f071\\\";\\r\\n}\\r\\n\\r\\n#toast-container > .toast-info:before {\\r\\n content: \\\"\\\\f005\\\";\\r\\n}\\r\\n\\r\\n#toast-container > .toast-success:before {\\r\\n content: \\\"\\\\f00C\\\";\\r\\n}\\r\\n\\r\\n#toast-container > div {\\r\\n -moz-box-shadow: 0 0 3px #999;\\r\\n -webkit-box-shadow: 0 0 3px #999;\\r\\n box-shadow: 0 0 3px #999;\\r\\n opacity: .9;\\r\\n -ms-filter: alpha(Opacity=90);\\r\\n filter: alpha(opacity=90)\\r\\n}\\r\\n\\r\\n#toast-container > :hover {\\r\\n -moz-box-shadow: 0 0 4px #999;\\r\\n -webkit-box-shadow: 0 0 4px #999;\\r\\n box-shadow: 0 0 4px #999;\\r\\n opacity: 1;\\r\\n -ms-filter: alpha(Opacity=100);\\r\\n filter: alpha(opacity=100);\\r\\n cursor: pointer\\r\\n}\\r\\n\\r\\n.toast {\\r\\n background-color: $navy;\\r\\n}\\r\\n\\r\\n.toast-success {\\r\\n background-color: $navy;\\r\\n}\\r\\n\\r\\n.toast-error {\\r\\n background-color: $red;\\r\\n}\\r\\n\\r\\n.toast-info {\\r\\n background-color: $lazur;\\r\\n}\\r\\n\\r\\n.toast-warning {\\r\\n background-color: $yellow;\\r\\n}\\r\\n\\r\\n.toast-top-full-width {\\r\\n margin-top: 20px;\\r\\n}\\r\\n\\r\\n.toast-bottom-full-width {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n/* Notifie */\\r\\n.cg-notify-message.inspinia-notify {\\r\\n background: #fff;\\r\\n padding: 0;\\r\\n box-shadow: 0 0 1px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.2);\\r\\n -webkit-box-shadow: 0 0 1 px rgba(0, 0, 0, 0.1), 0 2 px 4 px rgba(0, 0, 0, 0.2);\\r\\n -moz-box-shadow: 0 0 1 px rgba(0, 0, 0, 0.1), 0 2 px 4 px rgba(0, 0, 0, 0.2);\\r\\n border: none;\\r\\n margin-top: 30px;\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.inspinia-notify.alert-warning {\\r\\n border-left: 6px solid $yellow;\\r\\n}\\r\\n\\r\\n.inspinia-notify.alert-success {\\r\\n border-left: 6px solid $blue;\\r\\n}\\r\\n\\r\\n.inspinia-notify.alert-danger {\\r\\n border-left: 6px solid $red;\\r\\n}\\r\\n\\r\\n.inspinia-notify.alert-info {\\r\\n border-left: 6px solid $navy;\\r\\n}\\r\\n\\r\\n/* Image cropper style */\\r\\n.img-container, .img-preview {\\r\\n overflow: hidden;\\r\\n text-align: center;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.img-preview-sm {\\r\\n height: 130px;\\r\\n width: 200px;\\r\\n}\\r\\n\\r\\n/* Forum styles */\\r\\n.forum-post-container .media {\\r\\n margin: 10px 10px 10px 10px;\\r\\n padding: 20px 10px 20px 10px;\\r\\n border-bottom: 1px solid #f1f1f1;\\r\\n}\\r\\n\\r\\n.forum-avatar {\\r\\n float: left;\\r\\n margin-right: 20px;\\r\\n text-align: center;\\r\\n width: 110px;\\r\\n}\\r\\n\\r\\n.forum-avatar .img-circle {\\r\\n height: 48px;\\r\\n width: 48px;\\r\\n}\\r\\n\\r\\n.author-info {\\r\\n color: #676a6c;\\r\\n font-size: 11px;\\r\\n margin-top: 5px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.forum-post-info {\\r\\n padding: 9px 12px 6px 12px;\\r\\n background: #f9f9f9;\\r\\n border: 1px solid #f1f1f1;\\r\\n}\\r\\n\\r\\n.media-body > .media {\\r\\n background: #f9f9f9;\\r\\n border-radius: 3px;\\r\\n border: 1px solid #f1f1f1;\\r\\n}\\r\\n\\r\\n.forum-post-container .media-body .photos {\\r\\n margin: 10px 0;\\r\\n}\\r\\n\\r\\n.forum-photo {\\r\\n max-width: 140px;\\r\\n border-radius: 3px;\\r\\n}\\r\\n\\r\\n.media-body > .media .forum-avatar {\\r\\n width: 70px;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.media-body > .media .forum-avatar .img-circle {\\r\\n height: 38px;\\r\\n width: 38px;\\r\\n}\\r\\n\\r\\n.mid-icon {\\r\\n font-size: 66px;\\r\\n}\\r\\n\\r\\n.forum-item {\\r\\n margin: 10px 0;\\r\\n padding: 10px 0 20px;\\r\\n border-bottom: 1px solid #f1f1f1;\\r\\n}\\r\\n\\r\\n.views-number {\\r\\n font-size: 24px;\\r\\n line-height: 18px;\\r\\n font-weight: 400;\\r\\n}\\r\\n\\r\\n.forum-container, .forum-post-container {\\r\\n padding: 30px !important;\\r\\n}\\r\\n\\r\\n.forum-item small {\\r\\n color: #999;\\r\\n}\\r\\n\\r\\n.forum-item .forum-sub-title {\\r\\n color: #999;\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.forum-title {\\r\\n margin: 15px 0 15px 0;\\r\\n}\\r\\n\\r\\n.forum-info {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.forum-desc {\\r\\n color: #999;\\r\\n}\\r\\n\\r\\n.forum-icon {\\r\\n float: left;\\r\\n width: 30px;\\r\\n margin-right: 20px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\na.forum-item-title {\\r\\n color: inherit;\\r\\n display: block;\\r\\n font-size: 18px;\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\na.forum-item-title:hover {\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.forum-icon .fa {\\r\\n font-size: 30px;\\r\\n margin-top: 8px;\\r\\n color: #9b9b9b;\\r\\n}\\r\\n\\r\\n.forum-item.active .fa {\\r\\n color: $navy;\\r\\n}\\r\\n\\r\\n.forum-item.active a.forum-item-title {\\r\\n color: $navy;\\r\\n}\\r\\n\\r\\n@media (max-width: 992px) {\\r\\n\\r\\n .forum-info {\\r\\n margin: 15px 0 10px 0px;\\r\\n /* Comment this is you want to show forum info in small devices */\\r\\n display: none;\\r\\n }\\r\\n\\r\\n .forum-desc {\\r\\n float: none !important;\\r\\n }\\r\\n}\\r\\n\\r\\n/* New Timeline style */\\r\\n\\r\\n.vertical-container {\\r\\n /* this class is used to give a max-width to the element it is applied to, and center it horizontally when it reaches that max-width */\\r\\n width: 90%;\\r\\n max-width: 1170px;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.vertical-container::after {\\r\\n /* clearfix */\\r\\n content: '';\\r\\n display: table;\\r\\n clear: both;\\r\\n}\\r\\n\\r\\n#vertical-timeline {\\r\\n position: relative;\\r\\n padding: 0;\\r\\n margin-top: 2em;\\r\\n margin-bottom: 2em;\\r\\n}\\r\\n\\r\\n#vertical-timeline::before {\\r\\n content: '';\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 18px;\\r\\n height: 100%;\\r\\n width: 4px;\\r\\n background: #f1f1f1;\\r\\n}\\r\\n\\r\\n\\r\\n.vertical-timeline-content .btn {\\r\\n float: right;\\r\\n}\\r\\n\\r\\n#vertical-timeline.light-timeline:before {\\r\\n background: #e7eaec;\\r\\n}\\r\\n\\r\\n\\r\\n.dark-timeline .vertical-timeline-content:before {\\r\\n border-color: transparent #f5f5f5 transparent transparent;\\r\\n}\\r\\n\\r\\n.dark-timeline.center-orientation .vertical-timeline-content:before {\\r\\n border-color: transparent transparent transparent #f5f5f5;\\r\\n}\\r\\n\\r\\n.dark-timeline .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before,\\r\\n.dark-timeline.center-orientation .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before {\\r\\n border-color: transparent #f5f5f5 transparent transparent;\\r\\n}\\r\\n\\r\\n.dark-timeline .vertical-timeline-content,\\r\\n.dark-timeline.center-orientation .vertical-timeline-content {\\r\\n background: #f5f5f5;\\r\\n}\\r\\n\\r\\n@media only screen and (min-width: 1170px) {\\r\\n #vertical-timeline.center-orientation {\\r\\n margin-top: 3em;\\r\\n margin-bottom: 3em;\\r\\n }\\r\\n\\r\\n #vertical-timeline.center-orientation:before {\\r\\n left: 50%;\\r\\n margin-left: -2px;\\r\\n }\\r\\n}\\r\\n\\r\\n@media only screen and (max-width: 1170px) {\\r\\n .center-orientation.dark-timeline .vertical-timeline-content:before {\\r\\n border-color: transparent #f5f5f5 transparent transparent;\\r\\n }\\r\\n}\\r\\n\\r\\n.vertical-timeline-block {\\r\\n position: relative;\\r\\n margin: 2em 0;\\r\\n}\\r\\n\\r\\n.vertical-timeline-block:after {\\r\\n content: \\\"\\\";\\r\\n display: table;\\r\\n clear: both;\\r\\n}\\r\\n\\r\\n.vertical-timeline-block:first-child {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n.vertical-timeline-block:last-child {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media only screen and (min-width: 1170px) {\\r\\n .center-orientation .vertical-timeline-block {\\r\\n margin: 4em 0;\\r\\n }\\r\\n\\r\\n .center-orientation .vertical-timeline-block:first-child {\\r\\n margin-top: 0;\\r\\n }\\r\\n\\r\\n .center-orientation .vertical-timeline-block:last-child {\\r\\n margin-bottom: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n.vertical-timeline-icon {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n width: 40px;\\r\\n height: 40px;\\r\\n border-radius: 50%;\\r\\n font-size: 16px;\\r\\n border: 3px solid #f1f1f1;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.vertical-timeline-icon i {\\r\\n display: block;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n position: relative;\\r\\n left: 50%;\\r\\n top: 50%;\\r\\n margin-left: -12px;\\r\\n margin-top: -9px;\\r\\n}\\r\\n\\r\\n@media only screen and (min-width: 1170px) {\\r\\n .center-orientation .vertical-timeline-icon {\\r\\n width: 50px;\\r\\n height: 50px;\\r\\n left: 50%;\\r\\n margin-left: -25px;\\r\\n -webkit-transform: translateZ(0);\\r\\n -webkit-backface-visibility: hidden;\\r\\n font-size: 19px;\\r\\n }\\r\\n\\r\\n .center-orientation .vertical-timeline-icon i {\\r\\n margin-left: -12px;\\r\\n margin-top: -10px;\\r\\n }\\r\\n\\r\\n .center-orientation .cssanimations .vertical-timeline-icon.is-hidden {\\r\\n visibility: hidden;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n.vertical-timeline-content {\\r\\n position: relative;\\r\\n margin-left: 60px;\\r\\n background: white;\\r\\n border-radius: 0.25em;\\r\\n padding: 1em;\\r\\n}\\r\\n\\r\\n.vertical-timeline-content:after {\\r\\n content: \\\"\\\";\\r\\n display: table;\\r\\n clear: both;\\r\\n}\\r\\n\\r\\n.vertical-timeline-content h2 {\\r\\n font-weight: 400;\\r\\n margin-top: 4px;\\r\\n}\\r\\n\\r\\n\\r\\n.vertical-timeline-content p {\\r\\n margin: 1em 0;\\r\\n line-height: 1.6;\\r\\n}\\r\\n\\r\\n\\r\\n.vertical-timeline-content .vertical-date {\\r\\n float: left;\\r\\n font-weight: 500;\\r\\n}\\r\\n\\r\\n.vertical-date small {\\r\\n color: $navy;\\r\\n font-weight: 400;\\r\\n}\\r\\n\\r\\n.vertical-timeline-content::before {\\r\\n content: '';\\r\\n position: absolute;\\r\\n top: 16px;\\r\\n right: 100%;\\r\\n height: 0;\\r\\n width: 0;\\r\\n border: 7px solid transparent;\\r\\n border-right: 7px solid white;\\r\\n}\\r\\n\\r\\n@media only screen and (min-width: 768px) {\\r\\n .vertical-timeline-content h2 {\\r\\n font-size: 18px;\\r\\n }\\r\\n\\r\\n .vertical-timeline-content p {\\r\\n font-size: 13px;\\r\\n }\\r\\n}\\r\\n\\r\\n@media only screen and (min-width: 1170px) {\\r\\n .center-orientation .vertical-timeline-content {\\r\\n margin-left: 0;\\r\\n padding: 1.6em;\\r\\n width: 45%;\\r\\n }\\r\\n\\r\\n .center-orientation .vertical-timeline-content::before {\\r\\n top: 24px;\\r\\n left: 100%;\\r\\n border-color: transparent;\\r\\n border-left-color: white;\\r\\n }\\r\\n\\r\\n .center-orientation .vertical-timeline-content .btn {\\r\\n float: left;\\r\\n }\\r\\n\\r\\n .center-orientation .vertical-timeline-content .vertical-date {\\r\\n position: absolute;\\r\\n width: 100%;\\r\\n left: 122%;\\r\\n top: 2px;\\r\\n font-size: 14px;\\r\\n }\\r\\n\\r\\n .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content {\\r\\n float: right;\\r\\n }\\r\\n\\r\\n .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content::before {\\r\\n top: 24px;\\r\\n left: auto;\\r\\n right: 100%;\\r\\n border-color: transparent;\\r\\n border-right-color: white;\\r\\n }\\r\\n\\r\\n .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .btn {\\r\\n float: right;\\r\\n }\\r\\n\\r\\n .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .vertical-date {\\r\\n left: auto;\\r\\n right: 122%;\\r\\n text-align: right;\\r\\n }\\r\\n\\r\\n .center-orientation .cssanimations .vertical-timeline-content.is-hidden {\\r\\n visibility: hidden;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n/* Tabs */\\r\\n\\r\\n.tabs-container {\\r\\n\\r\\n .panel-body {\\r\\n background: #fff;\\r\\n border: 1px solid $border-color;\\r\\n border-radius: 2px;\\r\\n padding: 20px;\\r\\n position: relative;\\r\\n }\\r\\n\\r\\n .nav-tabs > li.active > a,\\r\\n .nav-tabs > li.active > a:hover,\\r\\n .nav-tabs > li.active > a:focus {\\r\\n border: 1px solid $border-color;\\r\\n border-bottom-color: transparent;\\r\\n background-color: #fff;\\r\\n }\\r\\n\\r\\n .nav-tabs > li {\\r\\n float: left;\\r\\n margin-bottom: -1px;\\r\\n }\\r\\n\\r\\n .tab-pane .panel-body {\\r\\n border-top: none;\\r\\n }\\r\\n\\r\\n .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {\\r\\n border: 1px solid $border-color;\\r\\n border-bottom-color: transparent;\\r\\n }\\r\\n\\r\\n .nav-tabs {\\r\\n border-bottom: 1px solid $border-color;\\r\\n }\\r\\n\\r\\n .tab-pane .panel-body {\\r\\n border-top: none;\\r\\n }\\r\\n\\r\\n .tabs-left .tab-pane .panel-body, .tabs-right .tab-pane .panel-body {\\r\\n border-top: 1px solid $border-color;\\r\\n }\\r\\n\\r\\n .nav-tabs > li a:hover {\\r\\n background: transparent;\\r\\n border-color: transparent;\\r\\n }\\r\\n\\r\\n .tabs-below > .nav-tabs,\\r\\n .tabs-right > .nav-tabs,\\r\\n .tabs-left > .nav-tabs {\\r\\n border-bottom: 0;\\r\\n }\\r\\n\\r\\n .tabs-left .panel-body {\\r\\n position: static;\\r\\n }\\r\\n\\r\\n .tabs-left > .nav-tabs, .tabs-right > .nav-tabs {\\r\\n width: 20%;\\r\\n }\\r\\n\\r\\n .tabs-left .panel-body {\\r\\n width: 80%;\\r\\n margin-left: 20%;\\r\\n }\\r\\n\\r\\n .tabs-right .panel-body {\\r\\n width: 80%;\\r\\n margin-right: 20%;\\r\\n }\\r\\n\\r\\n .tab-content > .tab-pane,\\r\\n .pill-content > .pill-pane {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n .tab-content > .active,\\r\\n .pill-content > .active {\\r\\n display: block;\\r\\n }\\r\\n\\r\\n .tabs-below > .nav-tabs {\\r\\n border-top: 1px solid $border-color;\\r\\n }\\r\\n\\r\\n .tabs-below > .nav-tabs > li {\\r\\n margin-top: -1px;\\r\\n margin-bottom: 0;\\r\\n }\\r\\n\\r\\n .tabs-below > .nav-tabs > li > a {\\r\\n -webkit-border-radius: 0 0 4px 4px;\\r\\n -moz-border-radius: 0 0 4px 4px;\\r\\n border-radius: 0 0 4px 4px;\\r\\n }\\r\\n\\r\\n .tabs-below > .nav-tabs > li > a:hover,\\r\\n .tabs-below > .nav-tabs > li > a:focus {\\r\\n border-top-color: $border-color;\\r\\n border-bottom-color: transparent;\\r\\n }\\r\\n\\r\\n\\r\\n .tabs-left > .nav-tabs > li,\\r\\n .tabs-right > .nav-tabs > li {\\r\\n float: none;\\r\\n }\\r\\n\\r\\n .tabs-left > .nav-tabs > li > a,\\r\\n .tabs-right > .nav-tabs > li > a {\\r\\n min-width: 74px;\\r\\n margin-right: 0;\\r\\n margin-bottom: 3px;\\r\\n }\\r\\n\\r\\n .tabs-left > .nav-tabs {\\r\\n float: left;\\r\\n margin-right: 19px;\\r\\n }\\r\\n\\r\\n .tabs-left > .nav-tabs > li > a {\\r\\n margin-right: -1px;\\r\\n -webkit-border-radius: 4px 0 0 4px;\\r\\n -moz-border-radius: 4px 0 0 4px;\\r\\n border-radius: 4px 0 0 4px;\\r\\n }\\r\\n\\r\\n .tabs-left > .nav-tabs .active > a,\\r\\n .tabs-left > .nav-tabs .active > a:hover,\\r\\n .tabs-left > .nav-tabs .active > a:focus {\\r\\n border-color: $border-color transparent $border-color $border-color;\\r\\n *border-right-color: #ffffff;\\r\\n }\\r\\n\\r\\n .tabs-right > .nav-tabs {\\r\\n float: right;\\r\\n margin-left: 19px;\\r\\n }\\r\\n\\r\\n .tabs-right > .nav-tabs > li > a {\\r\\n margin-left: -1px;\\r\\n -webkit-border-radius: 0 4px 4px 0;\\r\\n -moz-border-radius: 0 4px 4px 0;\\r\\n border-radius: 0 4px 4px 0;\\r\\n }\\r\\n\\r\\n .tabs-right > .nav-tabs .active > a,\\r\\n .tabs-right > .nav-tabs .active > a:hover,\\r\\n .tabs-right > .nav-tabs .active > a:focus {\\r\\n border-color: $border-color $border-color $border-color transparent;\\r\\n *border-left-color: #ffffff;\\r\\n z-index: 1;\\r\\n }\\r\\n}\\r\\n\\r\\n/* jsvectormap */\\r\\n.jvectormap-container {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n position: relative;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.jvectormap-tip {\\r\\n position: absolute;\\r\\n display: none;\\r\\n border: solid 1px #CDCDCD;\\r\\n border-radius: 3px;\\r\\n background: #292929;\\r\\n color: white;\\r\\n font-family: sans-serif, Verdana;\\r\\n font-size: smaller;\\r\\n padding: 5px;\\r\\n}\\r\\n\\r\\n.jvectormap-zoomin, .jvectormap-zoomout, .jvectormap-goback {\\r\\n position: absolute;\\r\\n left: 10px;\\r\\n border-radius: 3px;\\r\\n background: $navy;\\r\\n padding: 3px;\\r\\n color: white;\\r\\n cursor: pointer;\\r\\n line-height: 10px;\\r\\n text-align: center;\\r\\n box-sizing: content-box;\\r\\n}\\r\\n\\r\\n.jvectormap-zoomin, .jvectormap-zoomout {\\r\\n width: 10px;\\r\\n height: 10px;\\r\\n}\\r\\n\\r\\n.jvectormap-zoomin {\\r\\n top: 10px;\\r\\n}\\r\\n\\r\\n.jvectormap-zoomout {\\r\\n top: 30px;\\r\\n}\\r\\n\\r\\n.jvectormap-goback {\\r\\n bottom: 10px;\\r\\n z-index: 1000;\\r\\n padding: 6px;\\r\\n}\\r\\n\\r\\n.jvectormap-spinner {\\r\\n position: absolute;\\r\\n left: 0;\\r\\n top: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n background: center no-repeat url(data:image/gif;base64,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);\\r\\n}\\r\\n\\r\\n.jvectormap-legend-title {\\r\\n font-weight: bold;\\r\\n font-size: 14px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-cnt {\\r\\n position: absolute;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-cnt-h {\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-cnt-v {\\r\\n top: 0;\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n.jvectormap-legend {\\r\\n background: black;\\r\\n color: white;\\r\\n border-radius: 3px;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-cnt-h .jvectormap-legend {\\r\\n float: left;\\r\\n margin: 0 10px 10px 0;\\r\\n padding: 3px 3px 1px 3px;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-cnt-h .jvectormap-legend .jvectormap-legend-tick {\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-cnt-v .jvectormap-legend {\\r\\n margin: 10px 10px 0 0;\\r\\n padding: 3px;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-cnt-h .jvectormap-legend-tick {\\r\\n width: 40px;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-cnt-h .jvectormap-legend-tick-sample {\\r\\n height: 15px;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-cnt-v .jvectormap-legend-tick-sample {\\r\\n height: 20px;\\r\\n width: 20px;\\r\\n display: inline-block;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-tick-text {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-cnt-h .jvectormap-legend-tick-text {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.jvectormap-legend-cnt-v .jvectormap-legend-tick-text {\\r\\n display: inline-block;\\r\\n vertical-align: middle;\\r\\n line-height: 20px;\\r\\n padding-left: 3px;\\r\\n}\\r\\n\",\".sidebard-panel {\\r\\n width: 220px;\\r\\n background: darken($gray, 3%);\\r\\n padding: 10px 20px;\\r\\n position: absolute;\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n.sidebard-panel .feed-element img.img-circle {\\r\\n width: 32px;\\r\\n height: 32px;\\r\\n}\\r\\n\\r\\n.sidebard-panel .feed-element, .media-body, .sidebard-panel p {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.sidebard-panel .feed-element {\\r\\n margin-top: 20px;\\r\\n padding-bottom: 0;\\r\\n}\\r\\n\\r\\n.sidebard-panel .list-group {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.sidebard-panel .list-group .list-group-item {\\r\\n padding: 5px 0;\\r\\n font-size: 12px;\\r\\n border: 0;\\r\\n}\\r\\n\\r\\n.sidebar-content .wrapper {\\r\\n padding-right: 230px;\\r\\n}\\r\\n\\r\\n.sidebar-content .wrapper, .wrapper.sidebar-content {\\r\\n padding-right: 230px !important;\\r\\n}\\r\\n\\r\\n.body-small .sidebar-content .wrapper, .body-small .wrapper.sidebar-content {\\r\\n padding-right: 20px !important;\\r\\n}\\r\\n\\r\\n\\r\\n// Right sidebar\\r\\n\\r\\n#right-sidebar {\\r\\n background-color: #fff;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n border-top: 1px solid #C2C4CC;\\r\\n overflow: hidden;\\r\\n position: fixed;\\r\\n top: 60px;\\r\\n width: 260px !important;\\r\\n z-index: 1009;\\r\\n bottom: 0;\\r\\n right: -260px;\\r\\n}\\r\\n\\r\\n.sidebar-container {\\r\\n /*padding: 10px;*/\\r\\n // padding-bottom: 20px;\\r\\n}\\r\\n\\r\\n#right-sidebar.sidebar-open {\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n#right-sidebar.sidebar-open.sidebar-top {\\r\\n top: 0;\\r\\n border-top: none;\\r\\n}\\r\\n\\r\\n.sidebar-container {\\r\\n\\r\\n ul.nav-tabs {\\r\\n border: none;\\r\\n }\\r\\n\\r\\n ul.nav-tabs.navs-4 li {\\r\\n width: 25%;\\r\\n }\\r\\n ul.nav-tabs.navs-3 li {\\r\\n width: 33.3333%;\\r\\n }\\r\\n ul.nav-tabs.navs-2 li {\\r\\n width: 50%;\\r\\n }\\r\\n\\r\\n ul.nav-tabs li {\\r\\n border: none;\\r\\n }\\r\\n\\r\\n ul.nav-tabs li a {\\r\\n border: none;\\r\\n padding: 12px 10px;\\r\\n margin: 0;\\r\\n border-radius: 0;\\r\\n background: $nav-bg;\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n\\r\\n border-right:1px solid lighten($nav-bg, 2%) ;\\r\\n }\\r\\n\\r\\n ul.nav-tabs li.active a {\\r\\n border: none;\\r\\n background: #f9f9f9;\\r\\n color: $text-color;\\r\\n font-weight: bold;\\r\\n\\r\\n }\\r\\n\\r\\n .nav-tabs > li.active > a:hover,\\r\\n .nav-tabs > li.active > a:focus {\\r\\n\\r\\n border: none;\\r\\n\\r\\n }\\r\\n\\r\\n ul.sidebar-list {\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n }\\r\\n\\r\\n ul.sidebar-list li {\\r\\n border-bottom: 1px solid $border-color;\\r\\n padding: 15px 20px;\\r\\n list-style: none;\\r\\n\\r\\n font-size: 12px;\\r\\n }\\r\\n\\r\\n .sidebar-message:nth-child(2n+2) {\\r\\n background: #f9f9f9;\\r\\n }\\r\\n\\r\\n ul.sidebar-list li a {\\r\\n text-decoration: none;\\r\\n color: inherit;\\r\\n }\\r\\n\\r\\n .sidebar-content {\\r\\n padding: 15px 20px ;\\r\\n font-size: 12px;\\r\\n }\\r\\n\\r\\n .date-item {\\r\\n\\r\\n }\\r\\n\\r\\n .sidebar-title {\\r\\n background: white;\\r\\n padding: 20px;\\r\\n border-bottom: 1px solid $border-color;\\r\\n\\r\\n .fa {\\r\\n // font-size: 13px;\\r\\n }\\r\\n\\r\\n h3 {\\r\\n margin-bottom: 3px;\\r\\n padding-left: 2px;\\r\\n }\\r\\n }\\r\\n\\r\\n .tab-content {\\r\\n\\r\\n h4 {\\r\\n margin-bottom: 5px;\\r\\n }\\r\\n\\r\\n }\\r\\n\\r\\n .sidebar-message > a > .pull-left {\\r\\n margin-right: 10px;\\r\\n }\\r\\n\\r\\n .sidebar-message > a {\\r\\n text-decoration: none;\\r\\n color: inherit;\\r\\n }\\r\\n\\r\\n .sidebar-message {\\r\\n padding: 15px 20px;\\r\\n }\\r\\n\\r\\n .sidebar-message .message-avatar {\\r\\n height: 38px;\\r\\n width: 38px;\\r\\n border-radius: 50%;\\r\\n }\\r\\n\\r\\n .setings-item {\\r\\n padding: 15px 20px;\\r\\n border-bottom: 1px solid $border-color;\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n\",\"body {\\r\\n font-family: $font-stack;\\r\\n background-color: $nav-bg;\\r\\n font-size: 13px;\\r\\n color: $text-color;\\r\\n overflow-x: hidden;\\r\\n\\r\\n}\\r\\n\\r\\nhtml,body {\\r\\n height: 100%;\\r\\n\\r\\n}\\r\\n\\r\\nbody.full-height-layout #wrapper,\\r\\nbody.full-height-layout #page-wrapper {\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n#page-wrapper {\\r\\n min-height: auto;\\r\\n}\\r\\n\\r\\n\\r\\nbody.boxed-layout {\\r\\n background: $boxed-backgound;\\r\\n}\\r\\n\\r\\nbody.boxed-layout #wrapper {\\r\\n background-color: #2f4050;\\r\\n max-width: $boxed-width;\\r\\n margin: 0 auto;\\r\\n -webkit-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.75);\\r\\n -moz-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.75);\\r\\n box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.75);\\r\\n}\\r\\n\\r\\n.top-navigation.boxed-layout #wrapper,\\r\\n.boxed-layout #wrapper.top-navigation {\\r\\n max-width: 1300px !important;\\r\\n}\\r\\n\\r\\n.block {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.clear {\\r\\n display: block;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\na {\\r\\n cursor: pointer;\\r\\n color: $fp-purple;\\r\\n}\\r\\n\\r\\na:hover, a:focus {\\r\\n text-decoration: none;\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.border-bottom {\\r\\n border-bottom: 1px solid $border-color !important;\\r\\n}\\r\\n\\r\\n.border-top {\\r\\n border-top: 1px solid $border-color !important;\\r\\n}\\r\\n\\r\\n.font-bold {\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.font-noraml {\\r\\n font-weight: 400;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.text-uppercase {\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.b-r {\\r\\n border-right: 1px solid $border-color;\\r\\n}\\r\\n\\r\\n.hr-line-dashed {\\r\\n border-top: 1px dashed $border-color;\\r\\n color: #ffffff;\\r\\n background-color: #ffffff;\\r\\n height: 1px;\\r\\n margin: 20px 0;\\r\\n}\\r\\n\\r\\n.hr-line-solid {\\r\\n border-bottom: 1px solid $border-color;\\r\\n background-color: rgba(0, 0, 0, 0);\\r\\n border-style: solid !important;\\r\\n margin-top: 15px;\\r\\n margin-bottom: 15px;\\r\\n}\\r\\n\\r\\nvideo {\\r\\n width: 100% !important;\\r\\n height: auto !important;\\r\\n}\\r\\n\\r\\n/* GALLERY */\\r\\n.gallery > .row > div {\\r\\n margin-bottom: 15px;\\r\\n}\\r\\n\\r\\n.fancybox img {\\r\\n margin-bottom: 5px;\\r\\n /* Only for demo */\\r\\n width: 24%;\\r\\n}\\r\\n\\r\\n/* Summernote text editor */\\r\\n.note-editor {\\r\\n height: auto;\\r\\n min-height: 300px;\\r\\n}\\r\\n\\r\\n/* MODAL */\\r\\n.modal-content {\\r\\n background-clip: padding-box;\\r\\n background-color: #FFFFFF;\\r\\n border: 1px solid rgba(0, 0, 0, 0);\\r\\n border-radius: 4px;\\r\\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\\r\\n outline: 0 none;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.modal-dialog {\\r\\n z-index: 2200;\\r\\n}\\r\\n\\r\\n.modal-body {\\r\\n padding: 20px 30px 30px 30px;\\r\\n}\\r\\n\\r\\n\\r\\n.inmodal .modal-body {\\r\\n background: #f8fafb;\\r\\n}\\r\\n\\r\\n.inmodal .modal-header {\\r\\n padding: 30px 15px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.animated.modal.fade .modal-dialog {\\r\\n -webkit-transform: none;\\r\\n -ms-transform: none;\\r\\n -o-transform: none;\\r\\n transform: none;\\r\\n}\\r\\n\\r\\n.inmodal .modal-title {\\r\\n font-size: 26px;\\r\\n}\\r\\n\\r\\n.inmodal .modal-icon {\\r\\n font-size: 84px;\\r\\n color: #e2e3e3;\\r\\n}\\r\\n\\r\\n.modal-footer {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n\\r\\n/* WRAPPERS */\\r\\n\\r\\n#wrapper {\\r\\n width: 100%;\\r\\n overflow-x: hidden;\\r\\n}\\r\\n\\r\\n.wrapper {\\r\\n padding: 0 20px;\\r\\n}\\r\\n\\r\\n.wrapper-content {\\r\\n padding: 20px 10px 40px;\\r\\n}\\r\\n\\r\\n#page-wrapper {\\r\\n padding: 0 15px;\\r\\n min-height: 568px;\\r\\n position: relative !important;\\r\\n}\\r\\n\\r\\n@media (min-width: 768px) {\\r\\n #page-wrapper {\\r\\n position: inherit;\\r\\n margin: 0 0 0 240px;\\r\\n min-height: 1000px;\\r\\n }\\r\\n}\\r\\n\\r\\n.title-action {\\r\\n text-align: right;\\r\\n padding-top: 30px;\\r\\n}\\r\\n\\r\\n.ibox-content h1, .ibox-content h2, .ibox-content h3, .ibox-content h4, .ibox-content h5,\\r\\n.ibox-title h1, .ibox-title h2, .ibox-title h3, .ibox-title h4, .ibox-title h5 {\\r\\n margin-top: 5px;\\r\\n color: white;\\r\\n}\\r\\n\\r\\nul.unstyled, ol.unstyled {\\r\\n list-style: none outside none;\\r\\n margin-left: 0;\\r\\n}\\r\\n\\r\\n.big-icon {\\r\\n font-size: 160px !important;\\r\\n color: $fp-purple;\\r\\n}\\r\\n\\r\\n\\r\\n/* FOOTER */\\r\\n\\r\\n.footer {\\r\\n\\r\\n background: none repeat scroll 0 0 white;\\r\\n border-top: 1px solid $border-color;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n padding: 10px 20px;\\r\\n position: absolute;\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n.footer.fixed_full {\\r\\n position: absolute;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n z-index: 1000;\\r\\n padding:10px 20px;\\r\\n background: white;\\r\\n border-top: 1px solid $border-color;\\r\\n}\\r\\n\\r\\n.footer.fixed {\\r\\n position: absolute;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n z-index: 1000;\\r\\n padding:10px 20px;\\r\\n background: white;\\r\\n border-top: 2px solid $border-color;\\r\\n margin:0 !important;\\r\\n}\\r\\n\\r\\nbody.mini-navbar .footer.fixed,\\r\\nbody.body-small.mini-navbar .footer.fixed {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\nbody.mini-navbar.canvas-menu .footer.fixed,\\r\\nbody.canvas-menu .footer.fixed {\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\nbody.fixed-sidebar.body-small.mini-navbar .footer.fixed {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\nbody.body-small .footer.fixed {\\r\\n margin-left: 0px;\\r\\n}\\r\\n\\r\\n/* PANELS */\\r\\n\\r\\n.page-heading {\\r\\n border: 0;\\r\\n padding: 10px 0px 10px 0px;\\r\\n}\\r\\n\\r\\n.panel-heading h1, .panel-heading h2 {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n/* TABLES */\\r\\n\\r\\n.table-bordered {\\r\\n border: 1px solid #EBEBEB;\\r\\n}\\r\\n\\r\\n.table-bordered > thead > tr > th, .table-bordered > thead > tr > td {\\r\\n background-color: #F5F5F6;\\r\\n border-bottom-width: 1px;\\r\\n}\\r\\n\\r\\n.table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td {\\r\\n border: 1px solid #e7e7e7;\\r\\n}\\r\\n\\r\\n.table > thead > tr > th {\\r\\n border-bottom: 1px solid #DDDDDD;\\r\\n vertical-align: bottom;\\r\\n}\\r\\n\\r\\n.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td {\\r\\n border-top: 1px solid $border-color;\\r\\n line-height: 1.42857;\\r\\n padding: 8px;\\r\\n vertical-align: top;\\r\\n}\\r\\n\\r\\n/* PANELS */\\r\\n\\r\\n.panel.blank-panel {\\r\\n background: none;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.blank-panel .panel-heading {\\r\\n padding-bottom: 0;\\r\\n}\\r\\n\\r\\n.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {\\r\\n -moz-border-bottom-colors: none;\\r\\n -moz-border-left-colors: none;\\r\\n -moz-border-right-colors: none;\\r\\n -moz-border-top-colors: none;\\r\\n background: none;\\r\\n border-color: #DDDDDD #DDDDDD rgba(0, 0, 0, 0);\\r\\n border-bottom: $gray;\\r\\n border-image: none;\\r\\n border-style: solid;\\r\\n border-width: 1px;\\r\\n color: #555555;\\r\\n cursor: default;\\r\\n}\\r\\n\\r\\n.nav.nav-tabs li {\\r\\n background: none;\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.nav-tabs > li > a {\\r\\n color: #A7B1C2;\\r\\n font-weight: 600;\\r\\n padding: 10px 20px 10px 25px;\\r\\n}\\r\\n\\r\\n.nav-tabs > li > a:hover, .nav-tabs > li > a:focus {\\r\\n background-color: #e6e6e6;\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.ui-tab .tab-content {\\r\\n padding: 20px 0px;\\r\\n}\\r\\n\\r\\n/* GLOBAL */\\r\\n\\r\\n.no-padding {\\r\\n padding: 0 !important;\\r\\n}\\r\\n\\r\\n.no-borders {\\r\\n border: none !important;\\r\\n}\\r\\n\\r\\n.no-margins {\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.no-top-border {\\r\\n border-top: 0 !important;\\r\\n}\\r\\n\\r\\n.ibox-content.text-box {\\r\\n padding-bottom: 0px;\\r\\n padding-top: 15px;\\r\\n}\\r\\n\\r\\n.border-left-right {\\r\\n border-left: 1px solid $border-color;\\r\\n border-right: 1px solid $border-color;\\r\\n border-top: none;\\r\\n border-bottom: none;\\r\\n}\\r\\n\\r\\n.border-left{\\r\\n border-left: 1px solid $border-color;\\r\\n border-right: none;\\r\\n border-top: none;\\r\\n border-bottom: none;\\r\\n}\\r\\n\\r\\n.border-right {\\r\\n border-left: none;\\r\\n border-right: 1px solid $border-color;\\r\\n border-top: none;\\r\\n border-bottom: none;\\r\\n}\\r\\n\\r\\n.full-width {\\r\\n width: 100% !important;\\r\\n}\\r\\n\\r\\n.link-block {\\r\\n font-size: 12px;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.nav.navbar-top-links .link-block a {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.link-block a {\\r\\n font-size: 10px;\\r\\n color: inherit;\\r\\n\\r\\n}\\r\\n\\r\\nbody.mini-navbar .branding {\\r\\n display: none;\\r\\n}\\r\\n\\r\\nimg.circle-border {\\r\\n border: 6px solid #FFFFFF;\\r\\n border-radius: 50%;\\r\\n}\\r\\n\\r\\n.branding {\\r\\n float: left;\\r\\n color: #FFFFFF;\\r\\n font-size: 18px;\\r\\n font-weight: 600;\\r\\n padding: 17px 20px;\\r\\n text-align: center;\\r\\n background-color: $navy;\\r\\n}\\r\\n\\r\\n.login-panel {\\r\\n margin-top: 25%;\\r\\n}\\r\\n\\r\\n.icons-box h3 {\\r\\n margin-top: 10px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.icons-box .infont a i {\\r\\n font-size: 25px;\\r\\n display: block;\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.icons-box .infont a {\\r\\n color: #a6a8a9;\\r\\n}\\r\\n\\r\\n.icons-box .infont a {\\r\\n padding: 10px;\\r\\n\\r\\n margin: 1px;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.ui-draggable .ibox-title {\\r\\n cursor: move;\\r\\n}\\r\\n\\r\\n.breadcrumb {\\r\\n background-color: #ffffff;\\r\\n padding: 0;\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.breadcrumb > li a {\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.breadcrumb > .active {\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\ncode {\\r\\n background-color: #F9F2F4;\\r\\n border-radius: 4px;\\r\\n color: #ca4440;\\r\\n font-size: 90%;\\r\\n padding: 2px 4px;\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n.ibox {\\r\\n clear: both;\\r\\n margin-bottom: 25px;\\r\\n margin-top: 0;\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\n.ibox.collapsed .ibox-content{\\r\\n display: none;\\r\\n}\\r\\n.ibox.collapsed .fa.fa-chevron-up:before {\\r\\n content: \\\"\\\\f078\\\";\\r\\n}\\r\\n.ibox.collapsed .fa.fa-chevron-down:before {\\r\\n content: \\\"\\\\f077\\\";\\r\\n}\\r\\n\\r\\n.ibox:after, .ibox:before {\\r\\n display: table;\\r\\n}\\r\\n\\r\\n.ibox-title {\\r\\n -moz-border-bottom-colors: none;\\r\\n -moz-border-left-colors: none;\\r\\n -moz-border-right-colors: none;\\r\\n -moz-border-top-colors: none;\\r\\n background-color: $ibox-title-bg;\\r\\n border-color: $border-color;\\r\\n border-image: none;\\r\\n border-style: solid solid none;\\r\\n border-width: 0px 0px 0;\\r\\n color: inherit;\\r\\n margin-bottom: 0;\\r\\n padding: 14px 15px 7px;\\r\\n min-height: 48px;\\r\\n}\\r\\n\\r\\n.ibox-content {\\r\\n background-color: $ibox-content-bg;\\r\\n color: inherit;\\r\\n padding: 15px 20px 20px 20px;\\r\\n border-color: $border-color;\\r\\n border-image: none;\\r\\n border-style: solid;\\r\\n border-width: 1px;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n.ibox-footer {\\r\\n color: inherit;\\r\\n border-top: 1px solid $border-color;\\r\\n font-size: 90%;\\r\\n background: #ffffff;\\r\\n padding: 10px 15px;\\r\\n}\\r\\n\\r\\ntable.table-mail tr td {\\r\\n padding: 12px;\\r\\n}\\r\\n\\r\\n.table-mail .check-mail {\\r\\n padding-left: 20px;\\r\\n}\\r\\n\\r\\n.table-mail .mail-date {\\r\\n padding-right: 20px;\\r\\n}\\r\\n\\r\\n.star-mail, .check-mail {\\r\\n width: 40px;\\r\\n}\\r\\n\\r\\n.unread td a, .unread td {\\r\\n font-weight: 600;\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.read td a, .read td {\\r\\n font-weight: normal;\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.unread td {\\r\\n background-color: #f9f8f8;\\r\\n}\\r\\n\\r\\n.ibox-content {\\r\\n clear: both;\\r\\n}\\r\\n\\r\\n.ibox-heading {\\r\\n background-color: #f3f6fb;\\r\\n border-bottom: none;\\r\\n}\\r\\n\\r\\n.ibox-heading h3 {\\r\\n font-weight: 200;\\r\\n font-size: 24px;\\r\\n}\\r\\n\\r\\n.ibox-title h5 {\\r\\n display: inline-block;\\r\\n font-size: 14px;\\r\\n margin: 0 0 7px;\\r\\n padding: 0;\\r\\n text-overflow: ellipsis;\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.ibox-title .label {\\r\\n float: left;\\r\\n margin-left: 4px;\\r\\n}\\r\\n\\r\\n.ibox-tools {\\r\\n display: inline-block;\\r\\n float: right;\\r\\n margin-top: 0;\\r\\n position: relative;\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\n.ibox-tools a {\\r\\n cursor: pointer;\\r\\n margin-left: 5px;\\r\\n color: #c4c4c4;\\r\\n}\\r\\n\\r\\n.ibox-tools a.btn-primary {\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n.ibox-tools .dropdown-menu > li > a {\\r\\n padding: 4px 10px;\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.ibox .open > .dropdown-menu {\\r\\n left: auto;\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n/* BACKGROUNDS */\\r\\n\\r\\n.gray-bg {\\r\\n background-color: $gray;\\r\\n}\\r\\n\\r\\n.white-bg {\\r\\n background-color: #ffffff;\\r\\n}\\r\\n\\r\\n.navy-bg {\\r\\n background-color: $navy;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.blue-bg {\\r\\n background-color: $blue;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.lazur-bg {\\r\\n background-color: $lazur;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.yellow-bg {\\r\\n background-color: $yellow;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.red-bg {\\r\\n background-color: $red;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.black-bg {\\r\\n background-color: #262626;\\r\\n}\\r\\n\\r\\n.panel-primary {\\r\\n border-color: $navy;\\r\\n}\\r\\n\\r\\n.panel-primary > .panel-heading {\\r\\n background-color: $navy;\\r\\n border-color: $navy;\\r\\n}\\r\\n\\r\\n.panel-success {\\r\\n border-color: $blue;\\r\\n}\\r\\n\\r\\n.panel-success > .panel-heading {\\r\\n background-color: $blue;\\r\\n border-color: $blue;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.panel-info {\\r\\n border-color: $lazur;\\r\\n}\\r\\n\\r\\n.panel-info > .panel-heading {\\r\\n background-color: $lazur;\\r\\n border-color: $lazur;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.panel-warning {\\r\\n border-color: $yellow;\\r\\n}\\r\\n\\r\\n.panel-warning > .panel-heading {\\r\\n background-color: $yellow;\\r\\n border-color: $yellow;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.panel-danger {\\r\\n border-color: $red;\\r\\n}\\r\\n\\r\\n.panel-danger > .panel-heading {\\r\\n background-color: $red;\\r\\n border-color: $red;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.progress-bar {\\r\\n background-color: $navy;\\r\\n}\\r\\n\\r\\n.progress-small, .progress-small .progress-bar {\\r\\n height: 10px;\\r\\n}\\r\\n\\r\\n.progress-small, .progress-mini {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.progress-mini, .progress-mini .progress-bar {\\r\\n height: 5px;\\r\\n margin-bottom: 0px;\\r\\n}\\r\\n\\r\\n.progress-bar-navy-light {\\r\\n background-color: #3dc7ab;\\r\\n}\\r\\n\\r\\n.progress-bar-success {\\r\\n background-color: $blue;\\r\\n}\\r\\n\\r\\n.progress-bar-info {\\r\\n background-color: $lazur;\\r\\n}\\r\\n\\r\\n.progress-bar-warning {\\r\\n background-color: $yellow;\\r\\n}\\r\\n\\r\\n.progress-bar-danger {\\r\\n background-color: $red;\\r\\n}\\r\\n\\r\\n.panel-title {\\r\\n font-size: inherit;\\r\\n}\\r\\n\\r\\n.jumbotron {\\r\\n border-radius: 6px;\\r\\n padding: 40px;\\r\\n}\\r\\n\\r\\n.jumbotron h1 {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n/* COLORS */\\r\\n\\r\\n.text-navy {\\r\\n color: $navy;\\r\\n}\\r\\n\\r\\n.text-primary {\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.text-success {\\r\\n color: $fp-label-green-text;\\r\\n}\\r\\n\\r\\n.text-info {\\r\\n color: $fp-purple;\\r\\n}\\r\\n\\r\\n.text-warning {\\r\\n color: $yellow;\\r\\n}\\r\\n\\r\\n.text-danger {\\r\\n color: $red;\\r\\n}\\r\\n\\r\\n.text-muted {\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.simple_tag {\\r\\n background-color: #f3f3f4;\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 2px;\\r\\n color: inherit;\\r\\n font-size: 10px;\\r\\n margin-right: 5px;\\r\\n margin-top: 5px;\\r\\n padding: 5px 12px;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.img-shadow {\\r\\n -webkit-box-shadow: 0px 0px 3px 0px rgba(145,145,145,1);\\r\\n -moz-box-shadow: 0px 0px 3px 0px rgba(145,145,145,1);\\r\\n box-shadow: 0px 0px 3px 0px rgba(145,145,145,1);\\r\\n}\\r\\n\\r\\n/* For handle diferent bg color in AngularJS version */\\r\\n.dashboards\\\\.dashboard_2 nav.navbar,\\r\\n.dashboards\\\\.dashboard_3 nav.navbar,\\r\\n.mailbox\\\\.inbox nav.navbar,\\r\\n.mailbox\\\\.email_view nav.navbar,\\r\\n.mailbox\\\\.email_compose nav.navbar,\\r\\n.dashboards\\\\.dashboard_4_1 nav.navbar,\\r\\n.metrics nav.navbar, .metrics\\\\.index nav.navbar\\r\\n{\\r\\n background: #fff;\\r\\n}\\r\\n\\r\\n/* For handle diferent bg color in MVC version */\\r\\n.Dashboard_2 .navbar.navbar-static-top,\\r\\n.Dashboard_3 .navbar.navbar-static-top,\\r\\n.Dashboard_4_1 .navbar.navbar-static-top,\\r\\n.ComposeEmail .navbar.navbar-static-top,\\r\\n.EmailView .navbar.navbar-static-top,\\r\\n.Inbox .navbar.navbar-static-top,\\r\\n.Metrics .navbar.navbar-static-top {\\r\\n background: #fff;\\r\\n}\\r\\n\\r\\n\\r\\na.close-canvas-menu {\\r\\n position: absolute;\\r\\n top:10px;\\r\\n right: 15px;\\r\\n z-index: 1011;\\r\\n color: #a7b1c2;\\r\\n}\\r\\n\\r\\na.close-canvas-menu:hover {\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n/* FULL HEIGHT */\\r\\n\\r\\n\\r\\n.full-height {\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.fh-breadcrumb {\\r\\n height: calc(100% - 196px);\\r\\n margin: 0 -15px;\\r\\n position: relative\\r\\n}\\r\\n\\r\\n.fh-no-breadcrumb {\\r\\n height: calc(100% - 99px);\\r\\n margin: 0 -15px;\\r\\n position: relative\\r\\n}\\r\\n\\r\\n.fh-column {\\r\\n background: #fff;\\r\\n height: 100%;\\r\\n width: 240px;\\r\\n float: left\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.spiner-example {\\r\\n height: 200px;\\r\\n padding-top: 70px;\\r\\n}\\r\\n\\r\\n/* MARGINS & PADDINGS */\\r\\n\\r\\n.p-xxs {\\r\\n padding: 5px;\\r\\n}\\r\\n\\r\\n.p-xs {\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.p-sm {\\r\\n padding: 15px;\\r\\n}\\r\\n\\r\\n.p-m {\\r\\n padding: 20px;\\r\\n}\\r\\n\\r\\n.p-md {\\r\\n padding: 25px;\\r\\n}\\r\\n\\r\\n.p-lg {\\r\\n padding: 30px;\\r\\n}\\r\\n\\r\\n.p-xl {\\r\\n padding: 40px;\\r\\n}\\r\\n\\r\\n.m-xxs {\\r\\n margin: 2px 4px;\\r\\n}\\r\\n\\r\\n.m-xs {\\r\\n margin: 5px;\\r\\n}\\r\\n\\r\\n.m-sm {\\r\\n margin: 10px;\\r\\n}\\r\\n\\r\\n.m {\\r\\n margin: 15px;\\r\\n}\\r\\n\\r\\n.m-md {\\r\\n margin: 20px;\\r\\n}\\r\\n\\r\\n.m-lg {\\r\\n margin: 30px;\\r\\n}\\r\\n\\r\\n.m-xl {\\r\\n margin: 50px;\\r\\n}\\r\\n\\r\\n.m-n {\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.m-l-none {\\r\\n margin-left: 0;\\r\\n}\\r\\n\\r\\n.m-l-none-i {\\r\\n margin-left: 0 !important;\\r\\n}\\r\\n\\r\\n.m-l-xs {\\r\\n margin-left: 5px;\\r\\n}\\r\\n\\r\\n.m-l-sm {\\r\\n margin-left: 10px;\\r\\n}\\r\\n\\r\\n.m-l {\\r\\n margin-left: 15px;\\r\\n}\\r\\n\\r\\n.m-l-md {\\r\\n margin-left: 20px;\\r\\n}\\r\\n\\r\\n.m-l-lg {\\r\\n margin-left: 30px;\\r\\n}\\r\\n\\r\\n.m-l-xl {\\r\\n margin-left: 40px;\\r\\n}\\r\\n\\r\\n.m-l-n-xxs {\\r\\n margin-left: -1px;\\r\\n}\\r\\n\\r\\n.m-l-n-xs {\\r\\n margin-left: -5px;\\r\\n}\\r\\n\\r\\n.m-l-n-sm {\\r\\n margin-left: -10px;\\r\\n}\\r\\n\\r\\n.m-l-n {\\r\\n margin-left: -15px;\\r\\n}\\r\\n\\r\\n.m-l-n-md {\\r\\n margin-left: -20px;\\r\\n}\\r\\n\\r\\n.m-l-n-lg {\\r\\n margin-left: -30px;\\r\\n}\\r\\n\\r\\n.m-l-n-xl {\\r\\n margin-left: -40px;\\r\\n}\\r\\n\\r\\n.m-t-none {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n.m-t-none-i {\\r\\n margin-top: 0 !important;\\r\\n}\\r\\n\\r\\n.m-t-xxs {\\r\\n margin-top: 1px;\\r\\n}\\r\\n\\r\\n.m-t-xs {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.m-t-sm {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.m-t {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.m-t-md {\\r\\n margin-top: 20px;\\r\\n}\\r\\n\\r\\n.m-t-lg {\\r\\n margin-top: 30px;\\r\\n}\\r\\n\\r\\n.m-t-xl {\\r\\n margin-top: 40px;\\r\\n}\\r\\n\\r\\n.m-t-n-xxs {\\r\\n margin-top: -1px;\\r\\n}\\r\\n\\r\\n.m-t-n-xs {\\r\\n margin-top: -5px;\\r\\n}\\r\\n\\r\\n.m-t-n-sm {\\r\\n margin-top: -10px;\\r\\n}\\r\\n\\r\\n.m-t-n {\\r\\n margin-top: -15px;\\r\\n}\\r\\n\\r\\n.m-t-n-md {\\r\\n margin-top: -20px;\\r\\n}\\r\\n\\r\\n.m-t-n-lg {\\r\\n margin-top: -30px;\\r\\n}\\r\\n\\r\\n.m-t-n-xl {\\r\\n margin-top: -40px;\\r\\n}\\r\\n\\r\\n.m-r-none {\\r\\n margin-right: 0;\\r\\n}\\r\\n\\r\\n.m-r-none-i {\\r\\n margin-right: 0 !important;\\r\\n}\\r\\n\\r\\n.m-r-xxs {\\r\\n margin-right: 1px;\\r\\n}\\r\\n\\r\\n.m-r-xs {\\r\\n margin-right: 5px;\\r\\n}\\r\\n\\r\\n.m-r-sm {\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.m-r {\\r\\n margin-right: 15px;\\r\\n}\\r\\n\\r\\n.m-r-md {\\r\\n margin-right: 20px;\\r\\n}\\r\\n\\r\\n.m-r-lg {\\r\\n margin-right: 30px;\\r\\n}\\r\\n\\r\\n.m-r-xl {\\r\\n margin-right: 40px;\\r\\n}\\r\\n\\r\\n.m-r-n-xxs {\\r\\n margin-right: -1px;\\r\\n}\\r\\n\\r\\n.m-r-n-xs {\\r\\n margin-right: -5px;\\r\\n}\\r\\n\\r\\n.m-r-n-sm {\\r\\n margin-right: -10px;\\r\\n}\\r\\n\\r\\n.m-r-n {\\r\\n margin-right: -15px;\\r\\n}\\r\\n\\r\\n.m-r-n-md {\\r\\n margin-right: -20px;\\r\\n}\\r\\n\\r\\n.m-r-n-lg {\\r\\n margin-right: -30px;\\r\\n}\\r\\n\\r\\n.m-r-n-xl {\\r\\n margin-right: -40px;\\r\\n}\\r\\n\\r\\n.m-b-none {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.m-b-none-i {\\r\\n margin-bottom: 0 !important;\\r\\n}\\r\\n\\r\\n.m-b-xxs {\\r\\n margin-bottom: 1px;\\r\\n}\\r\\n\\r\\n.m-b-xs {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.m-b-sm {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.m-b {\\r\\n margin-bottom: 15px;\\r\\n}\\r\\n\\r\\n.m-b-md {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.m-b-lg {\\r\\n margin-bottom: 30px;\\r\\n}\\r\\n\\r\\n.m-b-xl {\\r\\n margin-bottom: 40px;\\r\\n}\\r\\n\\r\\n.m-b-n-xxs {\\r\\n margin-bottom: -1px;\\r\\n}\\r\\n\\r\\n.m-b-n-xs {\\r\\n margin-bottom: -5px;\\r\\n}\\r\\n\\r\\n.m-b-n-sm {\\r\\n margin-bottom: -10px;\\r\\n}\\r\\n\\r\\n.m-b-n {\\r\\n margin-bottom: -15px;\\r\\n}\\r\\n\\r\\n.m-b-n-md {\\r\\n margin-bottom: -20px;\\r\\n}\\r\\n\\r\\n.m-b-n-lg {\\r\\n margin-bottom: -30px;\\r\\n}\\r\\n\\r\\n.m-b-n-xl {\\r\\n margin-bottom: -40px;\\r\\n}\\r\\n\\r\\n.space-15 {\\r\\n margin: 15px 0;\\r\\n}\\r\\n\\r\\n.space-20 {\\r\\n margin: 20px 0;\\r\\n}\\r\\n\\r\\n.space-25 {\\r\\n margin: 25px 0;\\r\\n}\\r\\n\\r\\n.space-30 {\\r\\n margin: 30px 0;\\r\\n}\\r\\n\\r\\n// Bootstrap issue in 3.3.0 with modal https://github.com/twbs/bootstrap/issues/9855\\r\\n// Fix\\r\\nbody.modal-open { padding-right:inherit !important; }\\r\\n\\r\\n/* Style correction for Vector Map */\\r\\n.jvectormap-zoomin, .jvectormap-zoomout {\\r\\n width: 15px;\\r\\n height: 15px;\\r\\n background: #1ab394;\\r\\n}\",\"/* SEARCH PAGE */\\r\\n\\r\\n.search-form {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.search-result h3 {\\r\\n margin-bottom: 0;\\r\\n color: #1e0fbe;\\r\\n}\\r\\n\\r\\n.search-result .search-link {\\r\\n color: #006621;\\r\\n}\\r\\n\\r\\n.search-result p {\\r\\n font-size: 12px;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n/* CONTACTS */\\r\\n\\r\\n.contact-box {\\r\\n background-color: white;\\r\\n border: 1px solid $border-color;\\r\\n padding: 20px;\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.contact-box a {\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n/* INVOICE */\\r\\n\\r\\n.invoice-table tbody > tr > td:last-child, .invoice-table tbody > tr > td:nth-child(4), .invoice-table tbody > tr > td:nth-child(3), .invoice-table tbody > tr > td:nth-child(2) {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.invoice-table thead > tr > th:last-child, .invoice-table thead > tr > th:nth-child(4), .invoice-table thead > tr > th:nth-child(3), .invoice-table thead > tr > th:nth-child(2) {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.invoice-total > tbody > tr > td:first-child {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.invoice-total > tbody > tr > td {\\r\\n border: 0 none;\\r\\n}\\r\\n\\r\\n.invoice-total > tbody > tr > td:last-child {\\r\\n border-bottom: 1px solid #dddddd;\\r\\n text-align: right;\\r\\n width: 15%;\\r\\n}\\r\\n\\r\\n/* ERROR & LOGIN & LOCKSCREEN */\\r\\n\\r\\n.middle-box {\\r\\n max-width: 400px;\\r\\n z-index: 100;\\r\\n margin: 0 auto;\\r\\n padding-top: 40px;\\r\\n}\\r\\n\\r\\n.lockscreen.middle-box {\\r\\n width: 200px;\\r\\n padding-top: 110px;\\r\\n}\\r\\n\\r\\n.loginscreen.middle-box {\\r\\n width: 300px;\\r\\n}\\r\\n\\r\\n.loginColumns {\\r\\n max-width: 800px;\\r\\n margin: 0 auto;\\r\\n padding: 100px 20px 20px 20px;\\r\\n}\\r\\n\\r\\n.passwordBox {\\r\\n max-width: 460px;\\r\\n margin: 0 auto;\\r\\n padding: 100px 20px 20px 20px;\\r\\n}\\r\\n\\r\\n.logo-name {\\r\\n color: #e6e6e6;\\r\\n font-size: 180px;\\r\\n font-weight: 800;\\r\\n letter-spacing: -10px;\\r\\n margin-bottom: 0px;\\r\\n}\\r\\n\\r\\n.middle-box h1 {\\r\\n font-size: 170px;\\r\\n}\\r\\n\\r\\n.wrapper .middle-box {\\r\\n margin-top: 140px;\\r\\n}\\r\\n\\r\\n.lock-word {\\r\\n z-index: 10;\\r\\n position: absolute;\\r\\n top: 110px;\\r\\n left: 50%;\\r\\n margin-left: -470px;\\r\\n}\\r\\n\\r\\n.lock-word span {\\r\\n font-size: 100px;\\r\\n font-weight: 600;\\r\\n color: #e9e9e9;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.lock-word .first-word {\\r\\n margin-right: 160px;\\r\\n}\\r\\n\\r\\n/* DASBOARD */\\r\\n\\r\\n.dashboard-header {\\r\\n border-top: 0;\\r\\n padding: 20px 20px 20px 20px;\\r\\n}\\r\\n\\r\\n.dashboard-header h2 {\\r\\n margin-top: 10px;\\r\\n font-size: 26px;\\r\\n}\\r\\n\\r\\n.fist-item {\\r\\n border-top: none !important;\\r\\n}\\r\\n\\r\\n.statistic-box {\\r\\n margin-top: 40px;\\r\\n}\\r\\n\\r\\n.dashboard-header .list-group-item span.label {\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.list-group.clear-list .list-group-item {\\r\\n border-top: 1px solid $border-color;\\r\\n border-bottom: 0;\\r\\n border-right: 0;\\r\\n border-left: 0;\\r\\n padding: 10px 0;\\r\\n}\\r\\n\\r\\nul.clear-list:first-child {\\r\\n border-top: none !important;\\r\\n}\\r\\n\\r\\n/* Intimeline */\\r\\n\\r\\n.timeline-item .date i {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 0;\\r\\n padding: 5px;\\r\\n width: 30px;\\r\\n text-align: center;\\r\\n border-top: 1px solid $border-color;\\r\\n border-bottom: 1px solid $border-color;\\r\\n border-left: 1px solid $border-color;\\r\\n background: #f8f8f8;\\r\\n}\\r\\n\\r\\n.timeline-item .date {\\r\\n text-align: right;\\r\\n width: 110px;\\r\\n position: relative;\\r\\n padding-top: 30px;\\r\\n}\\r\\n\\r\\n.timeline-item .content {\\r\\n border-left: 1px solid $border-color;\\r\\n border-top: 1px solid $border-color;\\r\\n padding-top: 10px;\\r\\n min-height: 100px;\\r\\n}\\r\\n\\r\\n.timeline-item .content:hover {\\r\\n background: #f6f6f6;\\r\\n}\\r\\n\\r\\n/* PIN BOARD */\\r\\nul.notes li, ul.tag-list li {\\r\\n list-style: none;\\r\\n}\\r\\n\\r\\nul.notes li h4 {\\r\\n margin-top: 20px;\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\nul.notes li div {\\r\\n text-decoration: none;\\r\\n color: black;\\r\\n background: #ffffcc;\\r\\n display: block;\\r\\n height: 140px;\\r\\n width: 140px;\\r\\n padding: 1em;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\nul.notes li div small {\\r\\n position: absolute;\\r\\n top: 5px;\\r\\n right: 5px;\\r\\n font-size: 10px;\\r\\n}\\r\\n\\r\\nul.notes li div a {\\r\\n position: absolute;\\r\\n right: 10px;\\r\\n bottom: 10px;\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\nul.notes li {\\r\\n margin: 10px 40px 50px 0px;\\r\\n float: left;\\r\\n}\\r\\n\\r\\nul.notes li div p {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\nul.notes li div {\\r\\n text-decoration: none;\\r\\n color: black;\\r\\n background: #ffffcc;\\r\\n display: block;\\r\\n height: 140px;\\r\\n width: 140px;\\r\\n padding: 1em;\\r\\n /* Firefox */\\r\\n -moz-box-shadow: 5px 5px 2px rgba(33, 33, 33, 1);\\r\\n /* Safari+Chrome */\\r\\n -webkit-box-shadow: 5px 5px 2px rgba(33, 33, 33, 0.7);\\r\\n /* Opera */\\r\\n box-shadow: 5px 5px 2px rgba(33, 33, 33, 0.7);\\r\\n}\\r\\n\\r\\nul.notes li div {\\r\\n -webkit-transform: rotate(-6deg);\\r\\n -o-transform: rotate(-6deg);\\r\\n -moz-transform: rotate(-6deg);\\r\\n}\\r\\n\\r\\nul.notes li:nth-child(even) div {\\r\\n -o-transform: rotate(4deg);\\r\\n -webkit-transform: rotate(4deg);\\r\\n -moz-transform: rotate(4deg);\\r\\n position: relative;\\r\\n top: 5px;\\r\\n}\\r\\n\\r\\nul.notes li:nth-child(3n) div {\\r\\n -o-transform: rotate(-3deg);\\r\\n -webkit-transform: rotate(-3deg);\\r\\n -moz-transform: rotate(-3deg);\\r\\n position: relative;\\r\\n top: -5px;\\r\\n}\\r\\n\\r\\nul.notes li:nth-child(5n) div {\\r\\n -o-transform: rotate(5deg);\\r\\n -webkit-transform: rotate(5deg);\\r\\n -moz-transform: rotate(5deg);\\r\\n position: relative;\\r\\n top: -10px;\\r\\n}\\r\\n\\r\\nul.notes li div:hover, ul.notes li div:focus {\\r\\n -webkit-transform: scale(1.1);\\r\\n -moz-transform: scale(1.1);\\r\\n -o-transform: scale(1.1);\\r\\n position: relative;\\r\\n z-index: 5;\\r\\n}\\r\\n\\r\\nul.notes li div {\\r\\n text-decoration: none;\\r\\n color: black;\\r\\n background: #ffffcc;\\r\\n display: block;\\r\\n height: 210px;\\r\\n width: 210px;\\r\\n padding: 1em;\\r\\n -moz-box-shadow: 5px 5px 7px rgba(33, 33, 33, 1);\\r\\n -webkit-box-shadow: 5px 5px 7px rgba(33, 33, 33, 0.7);\\r\\n box-shadow: 5px 5px 7px rgba(33, 33, 33, 0.7);\\r\\n -moz-transition: -moz-transform 0.15s linear;\\r\\n -o-transition: -o-transform 0.15s linear;\\r\\n -webkit-transition: -webkit-transform 0.15s linear;\\r\\n}\\r\\n\\r\\n/* FILE MANAGER */\\r\\n\\r\\n.file-box {\\r\\n float: left;\\r\\n width: 220px;\\r\\n}\\r\\n\\r\\n.file-manager h5 {\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.file-manager {\\r\\n list-style: none outside none;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\n.folder-list li a {\\r\\n color: #666666;\\r\\n display: block;\\r\\n padding: 5px 0;\\r\\n}\\r\\n\\r\\n.folder-list li {\\r\\n border-bottom: 1px solid $border-color;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.folder-list li i {\\r\\n margin-right: 8px;\\r\\n color: #3d4d5d;\\r\\n}\\r\\n\\r\\n.category-list li a {\\r\\n color: #666666;\\r\\n display: block;\\r\\n padding: 5px 0;\\r\\n}\\r\\n\\r\\n.category-list li {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.category-list li i {\\r\\n margin-right: 8px;\\r\\n color: #3d4d5d;\\r\\n}\\r\\n\\r\\n.category-list li a .text-navy {\\r\\n color: $navy;\\r\\n}\\r\\n\\r\\n.category-list li a .text-primary {\\r\\n color: $blue;\\r\\n}\\r\\n\\r\\n.category-list li a .text-info {\\r\\n color: $lazur;\\r\\n}\\r\\n\\r\\n.category-list li a .text-danger {\\r\\n color: #ef5352;\\r\\n}\\r\\n\\r\\n.category-list li a .text-warning {\\r\\n color: #f8ac59;\\r\\n}\\r\\n\\r\\n.file-manager h5.tag-title {\\r\\n margin-top: 20px;\\r\\n}\\r\\n\\r\\n.tag-list li {\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.tag-list li a {\\r\\n font-size: 10px;\\r\\n background-color: $gray;\\r\\n padding: 5px 12px;\\r\\n color: inherit;\\r\\n border-radius: 2px;\\r\\n border: 1px solid $border-color;\\r\\n margin-right: 5px;\\r\\n margin-top: 5px;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.file {\\r\\n border: 1px solid $border-color;\\r\\n padding: 0;\\r\\n background-color: white;\\r\\n position: relative;\\r\\n margin-bottom: 20px;\\r\\n margin-right: 20px;\\r\\n}\\r\\n\\r\\n.file-manager .hr-line-dashed {\\r\\n margin: 15px 0;\\r\\n}\\r\\n\\r\\n.file .icon, .file .image {\\r\\n height: 100px;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.file .icon {\\r\\n padding: 15px 10px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.file-control {\\r\\n color: inherit;\\r\\n font-size: 11px;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.file-control.active {\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.file .icon i {\\r\\n font-size: 70px;\\r\\n color: #dadada;\\r\\n}\\r\\n\\r\\n.file .file-name {\\r\\n padding: 10px;\\r\\n background-color: #f8f8f8;\\r\\n border-top: 1px solid $border-color;\\r\\n}\\r\\n\\r\\n.file-name small {\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.file-name p {\\r\\n color: $text-color;\\r\\n font-weight: 700;\\r\\n}\\r\\n\\r\\n.corner {\\r\\n position: absolute;\\r\\n display: inline-block;\\r\\n width: 0;\\r\\n height: 0;\\r\\n line-height: 0;\\r\\n border: 0.6em solid transparent;\\r\\n border-right: 0.6em solid #f1f1f1;\\r\\n border-bottom: 0.6em solid #f1f1f1;\\r\\n right: 0em;\\r\\n bottom: 0em;\\r\\n}\\r\\n\\r\\na.compose-mail {\\r\\n padding: 8px 10px;\\r\\n}\\r\\n\\r\\n.mail-search {\\r\\n max-width: 300px;\\r\\n}\\r\\n\\r\\n/* PROFILE */\\r\\n\\r\\n.profile-content {\\r\\n border-top: none !important;\\r\\n}\\r\\n\\r\\n.feed-activity-list .feed-element {\\r\\n border-bottom: 1px solid $border-color;\\r\\n}\\r\\n\\r\\n.feed-element:first-child {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n.feed-element {\\r\\n padding-bottom: 15px;\\r\\n}\\r\\n\\r\\n.feed-element, .feed-element .media {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.feed-element, .media-body {\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.feed-element > .pull-left {\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.feed-element img.img-circle, .dropdown-messages-box img.img-circle {\\r\\n width: 38px;\\r\\n height: 38px;\\r\\n}\\r\\n\\r\\n.feed-element .well {\\r\\n border: 1px solid $border-color;\\r\\n box-shadow: none;\\r\\n margin-top: 10px;\\r\\n margin-bottom: 5px;\\r\\n padding: 10px 20px;\\r\\n font-size: 11px;\\r\\n line-height: 16px;\\r\\n}\\r\\n\\r\\n.feed-element .actions {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.feed-element .photos {\\r\\n margin: 10px 0;\\r\\n}\\r\\n\\r\\n.feed-photo {\\r\\n max-height: 180px;\\r\\n border-radius: 4px;\\r\\n overflow: hidden;\\r\\n margin-right: 10px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n/* MAILBOX */\\r\\n\\r\\n.mail-box {\\r\\n background-color: white;\\r\\n border: 1px solid $border-color;\\r\\n border-top: 0;\\r\\n padding: 0px;\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.mail-box-header {\\r\\n background-color: white;\\r\\n border: 1px solid $border-color;\\r\\n border-bottom: 0;\\r\\n padding: 30px 20px 20px 20px;\\r\\n}\\r\\n\\r\\n.mail-box-header h2 {\\r\\n margin-top: 0px;\\r\\n}\\r\\n\\r\\n.mailbox-content .tag-list li a {\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.mail-body {\\r\\n border-top: 1px solid $border-color;\\r\\n padding: 20px;\\r\\n}\\r\\n\\r\\n.mail-text {\\r\\n border-top: 1px solid $border-color;\\r\\n}\\r\\n\\r\\n.mail-text .note-toolbar {\\r\\n padding: 10px 15px;\\r\\n}\\r\\n\\r\\n.mail-body .form-group {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.mail-text .note-editor .note-toolbar {\\r\\n background-color: #f9f8f8;\\r\\n}\\r\\n\\r\\n.mail-attachment {\\r\\n border-top: 1px solid $border-color;\\r\\n padding: 20px;\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.mailbox-content {\\r\\n background: none;\\r\\n border: none;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.mail-ontact {\\r\\n width: 23%;\\r\\n}\\r\\n\\r\\n/* PROJECTS */\\r\\n.project-people, .project-actions {\\r\\n text-align: right;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\ndd.project-people {\\r\\n text-align: left;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.project-people img {\\r\\n width: 32px;\\r\\n height: 32px;\\r\\n}\\r\\n\\r\\n.project-title a {\\r\\n font-size: 14px;\\r\\n color: $text-color;\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.project-list table tr td {\\r\\n border-top: none;\\r\\n border-bottom: 1px solid $border-color;\\r\\n padding: 15px 10px;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.project-manager .tag-list li a {\\r\\n font-size: 10px;\\r\\n background-color: white;\\r\\n padding: 5px 12px;\\r\\n color: inherit;\\r\\n border-radius: 2px;\\r\\n border: 1px solid $border-color;\\r\\n margin-right: 5px;\\r\\n margin-top: 5px;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.project-files li a {\\r\\n font-size: 11px;\\r\\n color: $text-color;\\r\\n margin-left: 10px;\\r\\n line-height: 22px;\\r\\n}\\r\\n\\r\\n/* FAQ */\\r\\n\\r\\n.faq-item {\\r\\n padding: 20px;\\r\\n margin-bottom: 2px;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.faq-question {\\r\\n font-size: 18px;\\r\\n font-weight: 600;\\r\\n color: $navy;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.faq-question:hover {\\r\\n color: darken($navy, 5%);\\r\\n}\\r\\n\\r\\n.faq-answer {\\r\\n margin-top: 10px;\\r\\n background: $gray;\\r\\n border: 1px solid $border-color;\\r\\n border-radius: 3px;\\r\\n padding: 15px;\\r\\n}\\r\\n\\r\\n.faq-item .tag-item {\\r\\n background: $gray;\\r\\n padding: 2px 6px;\\r\\n font-size: 10px;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n\\r\\n/* Chat view */\\r\\n.message-input {\\r\\n height: 90px !important;\\r\\n}\\r\\n\\r\\n.chat-avatar {\\r\\n white: 36px;\\r\\n height: 36px;\\r\\n float: left;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.chat-user-name {\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.chat-user {\\r\\n padding: 8px 10px;\\r\\n border-bottom: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.chat-user a {\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.chat-view {\\r\\n z-index: 20012;\\r\\n}\\r\\n\\r\\n.chat-users, .chat-statistic {\\r\\n margin-left: -30px;\\r\\n}\\r\\n\\r\\n@media (max-width: 992px) {\\r\\n .chat-users,.chat-statistic {\\r\\n margin-left: 0px;\\r\\n }\\r\\n}\\r\\n.chat-view .ibox-content {\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\n.chat-message {\\r\\n padding: 10px 20px;\\r\\n}\\r\\n\\r\\n.message-avatar {\\r\\n height: 48px;\\r\\n width: 48px;\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 4px;\\r\\n margin-top: 1px;\\r\\n}\\r\\n\\r\\n.chat-discussion .chat-message.left .message-avatar {\\r\\n float: left;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.chat-discussion .chat-message.right .message-avatar {\\r\\n float: right;\\r\\n margin-left: 10px;\\r\\n}\\r\\n\\r\\n.message {\\r\\n background-color: #fff;\\r\\n border: 1px solid #C2C4CC;\\r\\n text-align: left;\\r\\n display: block;\\r\\n padding: 10px 20px;\\r\\n position: relative;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n.chat-discussion .chat-message.left .message-date {\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.chat-discussion .chat-message.right .message-date {\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.chat-discussion .chat-message.left .message {\\r\\n text-align: left;\\r\\n margin-left: 55px;\\r\\n}\\r\\n\\r\\n.chat-discussion .chat-message.right .message {\\r\\n text-align: right;\\r\\n margin-right: 55px;\\r\\n}\\r\\n\\r\\n.message-date {\\r\\n font-size: 10px;\\r\\n color: #888888;\\r\\n}\\r\\n\\r\\n.message-content {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.chat-discussion {\\r\\n background: #eee;\\r\\n padding: 15px;\\r\\n height: 400px;\\r\\n overflow-y: auto;\\r\\n}\\r\\n\\r\\n.chat-users {\\r\\n overflow-y: auto;\\r\\n height: 400px;\\r\\n}\\r\\n\\r\\n.chat-message-form .form-group {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n/* jsTree */\\r\\n.jstree-open > .jstree-anchor > .fa-folder:before {\\r\\n content: \\\"\\\\f07c\\\";\\r\\n}\\r\\n\\r\\n.jstree-default .jstree-icon.none {\\r\\n width: 0;\\r\\n}\\r\\n\\r\\n\\r\\n/* CLIENTS */\\r\\n\\r\\n.clients-list {\\r\\n margin-top: 20px;\\r\\n}\\r\\n\\r\\n.clients-list .tab-pane {\\r\\n position: relative;\\r\\n height: 600px;\\r\\n}\\r\\n\\r\\n.client-detail {\\r\\n position: relative;\\r\\n height: 620px;\\r\\n}\\r\\n\\r\\n.clients-list table tr td {\\r\\n height: 46px;\\r\\n vertical-align: middle;\\r\\n border: none ;\\r\\n}\\r\\n\\r\\n.client-link {\\r\\n font-weight: 600;\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.client-link:hover {\\r\\n color: inherit;\\r\\n}\\r\\n\\r\\n.client-avatar {\\r\\n width: 42px;\\r\\n}\\r\\n\\r\\n.client-avatar img {\\r\\n width: 28px;\\r\\n height: 28px;\\r\\n border-radius: 50%;\\r\\n}\\r\\n\\r\\n.contact-type {\\r\\n width: 20px;\\r\\n color: lighten($text-color, 35%);\\r\\n}\\r\\n\\r\\n.client-status {\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.client-detail .vertical-timeline-content p {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.client-detail .vertical-timeline-icon.gray-bg {\\r\\n color: lighten($text-color, 25px);\\r\\n}\\r\\n\\r\\n.clients-list {\\r\\n .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {\\r\\n border-bottom: 1px solid #fff;\\r\\n }\\r\\n}\\r\\n\\r\\n/* BLOG ARTICLE */\\r\\n.blog h2 {\\r\\n font-weight: 700;\\r\\n}\\r\\n\\r\\n.blog h5 {\\r\\n margin: 0 0 5px 0;\\r\\n}\\r\\n\\r\\n.blog .btn{\\r\\n margin: 0 0 5px 0;\\r\\n}\\r\\n\\r\\n.article h1 {\\r\\n font-size: 48px;\\r\\n font-weight: 700;\\r\\n color: #2F4050;\\r\\n}\\r\\n\\r\\n.article p {\\r\\n font-size: 15px;\\r\\n line-height: 26px;\\r\\n}\\r\\n\\r\\n.article-title {\\r\\n text-align: center;\\r\\n margin: 40px 0 100px 0;\\r\\n}\\r\\n\\r\\n.article .ibox-content {\\r\\n padding: 40px;\\r\\n}\\r\\n\\r\\n/* ISSUE TRACKER */\\r\\n\\r\\n.issue-tracker .btn-link {\\r\\n color: $navy;\\r\\n}\\r\\n\\r\\ntable.issue-tracker tbody tr td {\\r\\n vertical-align: middle;\\r\\n height: 50px;\\r\\n}\\r\\n\\r\\n.issue-info {\\r\\n width: 50%;\\r\\n}\\r\\n\\r\\n.issue-info a {\\r\\n font-weight: 600;\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.issue-info small {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n/* TEAMS */\\r\\n.team-members {\\r\\n margin: 10px 0;\\r\\n}\\r\\n\\r\\n.team-members img.img-circle {\\r\\n width: 42px;\\r\\n height: 42px;\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n/* AGILE BOARD */\\r\\n\\r\\n.sortable-list {\\r\\n padding: 10px 0;\\r\\n}\\r\\n.agile-list {\\r\\n list-style: none;\\r\\n margin: 0;\\r\\n}\\r\\n.agile-list li {\\r\\n background: #FAFAFB;\\r\\n border: 1px solid #C2C4CC;\\r\\n margin: 0px 0 10px 0;\\r\\n padding: 10px;\\r\\n border-radius: 2px;\\r\\n}\\r\\n.agile-list li:hover {\\r\\n cursor: pointer;\\r\\n background: #fff;\\r\\n}\\r\\n.agile-list li.warning-element {\\r\\n border-left: 3px solid $yellow;\\r\\n}\\r\\n.agile-list li.danger-element {\\r\\n border-left: 3px solid $red;\\r\\n}\\r\\n.agile-list li.info-element {\\r\\n border-left: 3px solid $blue;\\r\\n}\\r\\n.agile-list li.success-element {\\r\\n border-left: 3px solid $navy;\\r\\n}\\r\\n.agile-detail {\\r\\n margin-top: 5px;\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n/* DIFF */\\r\\nins {\\r\\n background-color: #c6ffc6;\\r\\n text-decoration: none;\\r\\n}\\r\\n\\r\\ndel {\\r\\n background-color: #ffc6c6;\\r\\n}\\r\\n\\r\\n\\r\\n/* E-commerce */\\r\\n.product-box {\\r\\n padding: 0;\\r\\n\\r\\n border: 1px solid $border-color;\\r\\n}\\r\\n\\r\\n.product-box:hover,\\r\\n.product-box.active {\\r\\n border: 1px solid transparent;\\r\\n -webkit-box-shadow: 0px 3px 7px 0px rgba(168,168,168,1);\\r\\n -moz-box-shadow: 0px 3px 7px 0px rgba(168,168,168,1);\\r\\n box-shadow: 0px 3px 7px 0px rgba(168,168,168,1);\\r\\n}\\r\\n\\r\\n.product-imitation {\\r\\n text-align: center;\\r\\n padding: 90px 0;\\r\\n background-color: lighten($gray, 2%);\\r\\n color: darken($gray, 20%);\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.product-imitation.xl {\\r\\n padding: 120px 0;\\r\\n}\\r\\n\\r\\n.product-desc {\\r\\n padding: 20px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.ecommerce .tag-list {\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\n.ecommerce .fa-star {\\r\\n color: $light-gray;\\r\\n}\\r\\n\\r\\n.ecommerce .fa-star.active {\\r\\n color: $yellow;\\r\\n}\\r\\n\\r\\n.ecommerce .note-editor {\\r\\n border: 1px solid $border-color;\\r\\n}\\r\\n\\r\\n.product-name {\\r\\n font-size: 16px;\\r\\n font-weight: 600;\\r\\n color: $text-color;\\r\\n display: block;\\r\\n margin: 2px 0 5px 0;\\r\\n}\\r\\n\\r\\n.product-name:hover,\\r\\n.product-name:focus {\\r\\n color: $navy;\\r\\n}\\r\\n\\r\\n.product-price {\\r\\n font-size: 14px;\\r\\n font-weight: 600;\\r\\n color: #ffffff;\\r\\n background-color: $navy;\\r\\n padding: 6px 12px;\\r\\n\\r\\n position: absolute;\\r\\n top: -32px;\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n/* Social feed */\\r\\n.social-feed-separated .social-feed-box {\\r\\n margin-left: 62px;\\r\\n}\\r\\n\\r\\n.social-feed-separated .social-avatar {\\r\\n float: left;\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\n.social-feed-separated .social-avatar img {\\r\\n width: 52px;\\r\\n height: 52px;\\r\\n border: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.social-feed-separated .social-feed-box .social-avatar {\\r\\n padding: 15px 15px 0 15px;\\r\\n float: none;\\r\\n}\\r\\n\\r\\n.social-feed-box {\\r\\n /*padding: 15px;*/\\r\\n border: 1px solid #C2C4CC;\\r\\n background: #fff;\\r\\n margin-bottom: 15px;\\r\\n}\\r\\n\\r\\n.article .social-feed-box {\\r\\n margin-bottom: 0;\\r\\n border-bottom: none;\\r\\n}\\r\\n\\r\\n.article .social-feed-box:last-child{\\r\\n margin-bottom: 0;\\r\\n border-bottom: 1px solid $border-color;\\r\\n}\\r\\n\\r\\n.article .social-feed-box p {\\r\\n font-size: 13px;\\r\\n line-height: 18px;\\r\\n}\\r\\n\\r\\n.social-action {\\r\\n margin: 15px;\\r\\n}\\r\\n\\r\\n.social-avatar {\\r\\n padding: 15px 15px 0 15px;\\r\\n}\\r\\n\\r\\n.social-comment .social-comment {\\r\\n margin-left: 45px;\\r\\n}\\r\\n\\r\\n.social-avatar img {\\r\\n height: 40px;\\r\\n width: 40px;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.social-avatar .media-body a {\\r\\n font-size: 14px;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.social-body {\\r\\n padding: 15px;\\r\\n}\\r\\n\\r\\n.social-body img {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.social-footer {\\r\\n border-top: 1px solid #C2C4CC;\\r\\n padding: 10px 15px;\\r\\n background: #f9f9f9;\\r\\n}\\r\\n\\r\\n.social-footer .social-comment img {\\r\\n width: 32px;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.social-comment:first-child {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n.social-comment {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.social-comment textarea {\\r\\n font-size: 12px;\\r\\n}\",\"#small-chat {\\r\\n position: fixed;\\r\\n bottom: 20px;\\r\\n right: 20px;\\r\\n z-index: 100;\\r\\n}\\r\\n\\r\\n#small-chat .badge {\\r\\n position: absolute;\\r\\n top: -3px;\\r\\n right: -4px;\\r\\n}\\r\\n\\r\\n.open-small-chat {\\r\\n height: 38px;\\r\\n width: 38px;\\r\\n display: block;\\r\\n background: #1ab394;\\r\\n padding: 9px 8px;\\r\\n text-align: center;\\r\\n color: #fff;\\r\\n border-radius: 50%;\\r\\n}\\r\\n\\r\\n.open-small-chat:hover {\\r\\n color: white;\\r\\n background: #1ab394;\\r\\n}\\r\\n\\r\\n\\r\\n.small-chat-box {\\r\\n display: none;\\r\\n position: fixed;\\r\\n bottom: 20px;\\r\\n right: 75px;\\r\\n background: #fff;\\r\\n border: 1px solid $border-color;\\r\\n width: 230px;\\r\\n height: 320px;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n.small-chat-box.ng-small-chat {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.body-small {\\r\\n .small-chat-box {\\r\\n bottom: 70px;\\r\\n right: 20px;\\r\\n }\\r\\n}\\r\\n\\r\\n.small-chat-box.active {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.small-chat-box {\\r\\n\\r\\n .heading {\\r\\n background: $nav-bg;\\r\\n padding: 8px 15px;\\r\\n font-weight: bold;\\r\\n color: #fff;\\r\\n }\\r\\n\\r\\n .chat-date {\\r\\n opacity: 0.6;\\r\\n font-size: 10px;\\r\\n font-weight: normal;\\r\\n }\\r\\n\\r\\n .content {\\r\\n padding: 15px 15px;\\r\\n\\r\\n .author-name {\\r\\n font-weight: bold;\\r\\n margin-bottom: 3px;\\r\\n font-size: 11px;\\r\\n }\\r\\n\\r\\n > div {\\r\\n padding-bottom: 20px;\\r\\n }\\r\\n\\r\\n .chat-message {\\r\\n padding: 5px 10px;\\r\\n border-radius: 6px;\\r\\n font-size: 11px;\\r\\n line-height: 14px;\\r\\n max-width: 80%;\\r\\n background: #f3f3f4;\\r\\n margin-bottom: 10px;\\r\\n }\\r\\n\\r\\n .chat-message.active {\\r\\n background: #1ab394;\\r\\n color: #fff;\\r\\n }\\r\\n\\r\\n .left {\\r\\n text-align: left;\\r\\n clear: both;\\r\\n\\r\\n .chat-message {\\r\\n float: left;\\r\\n }\\r\\n }\\r\\n\\r\\n .right {\\r\\n text-align: right;\\r\\n clear: both;\\r\\n\\r\\n .chat-message {\\r\\n float: right;\\r\\n }\\r\\n\\r\\n }\\r\\n\\r\\n }\\r\\n\\r\\n .form-chat {\\r\\n padding: 10px 10px;\\r\\n }\\r\\n\\r\\n}\",\"/*\\r\\n * metismenu - v2.0.2\\r\\n * A jQuery menu plugin\\r\\n * https://github.com/onokumus/metisMenu\\r\\n *\\r\\n * Made by Osman Nuri Okumus\\r\\n * Under MIT License\\r\\n */\\r\\n\\r\\n.metismenu .plus-minus, .metismenu .plus-times {\\r\\n float: right\\r\\n}\\r\\n\\r\\n.metismenu .arrow {\\r\\n float: right;\\r\\n line-height: 1.42857\\r\\n}\\r\\n\\r\\n.metismenu .glyphicon.arrow:before {\\r\\n content: \\\"\\\\e079\\\"\\r\\n}\\r\\n\\r\\n.metismenu .active > a > .glyphicon.arrow:before {\\r\\n content: \\\"\\\\e114\\\"\\r\\n}\\r\\n\\r\\n.metismenu .fa.arrow:before {\\r\\n content: \\\"\\\\f104\\\"\\r\\n}\\r\\n\\r\\n.metismenu .active > a > .fa.arrow:before {\\r\\n content: \\\"\\\\f107\\\"\\r\\n}\\r\\n\\r\\n.metismenu .ion.arrow:before {\\r\\n content: \\\"\\\\f3d2\\\"\\r\\n}\\r\\n\\r\\n.metismenu .active > a > .ion.arrow:before {\\r\\n content: \\\"\\\\f3d0\\\"\\r\\n}\\r\\n\\r\\n.metismenu .fa.plus-minus:before, .metismenu .fa.plus-times:before {\\r\\n content: \\\"\\\\f067\\\"\\r\\n}\\r\\n\\r\\n.metismenu .active > a > .fa.plus-times {\\r\\n -webkit-transform: rotate(45deg);\\r\\n -ms-transform: rotate(45deg);\\r\\n transform: rotate(45deg)\\r\\n}\\r\\n\\r\\n.metismenu .active > a > .fa.plus-minus:before {\\r\\n content: \\\"\\\\f068\\\"\\r\\n}\\r\\n\\r\\n.metismenu .collapse {\\r\\n display: none\\r\\n}\\r\\n\\r\\n.metismenu .collapse.in {\\r\\n display: block\\r\\n}\\r\\n\\r\\n.metismenu .collapsing {\\r\\n position: relative;\\r\\n height: 0;\\r\\n overflow: hidden;\\r\\n -webkit-transition-timing-function: ease;\\r\\n transition-timing-function: ease;\\r\\n -webkit-transition-duration: .35s;\\r\\n transition-duration: .35s;\\r\\n -webkit-transition-property: height, visibility;\\r\\n transition-property: height, visibility\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\",\"/*\\r\\n * Usage:\\r\\n *\\r\\n *
\\r\\n *\\r\\n */\\r\\n\\r\\n.sk-spinner-rotating-plane.sk-spinner {\\r\\n width: 30px;\\r\\n height: 30px;\\r\\n background-color: $spin-color;\\r\\n margin: $spin-margin;\\r\\n -webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out;\\r\\n animation: sk-rotatePlane 1.2s infinite ease-in-out; }\\r\\n\\r\\n@-webkit-keyframes sk-rotatePlane {\\r\\n 0% {\\r\\n -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);\\r\\n transform: perspective(120px) rotateX(0deg) rotateY(0deg); }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);\\r\\n transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);\\r\\n transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } }\\r\\n\\r\\n@keyframes sk-rotatePlane {\\r\\n 0% {\\r\\n -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);\\r\\n transform: perspective(120px) rotateX(0deg) rotateY(0deg); }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);\\r\\n transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);\\r\\n transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } }\\r\\n\\r\\n/*\\r\\n * Usage:\\r\\n *\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *\\r\\n */\\r\\n.sk-spinner-double-bounce.sk-spinner {\\r\\n width: 40px;\\r\\n height: 40px;\\r\\n position: relative;\\r\\n margin: $spin-margin; }\\r\\n.sk-spinner-double-bounce .sk-double-bounce1, .sk-spinner-double-bounce .sk-double-bounce2 {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n border-radius: 50%;\\r\\n background-color: $spin-color;\\r\\n opacity: 0.6;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n -webkit-animation: sk-doubleBounce 2s infinite ease-in-out;\\r\\n animation: sk-doubleBounce 2s infinite ease-in-out; }\\r\\n.sk-spinner-double-bounce .sk-double-bounce2 {\\r\\n -webkit-animation-delay: -1s;\\r\\n animation-delay: -1s; }\\r\\n\\r\\n@-webkit-keyframes sk-doubleBounce {\\r\\n 0%, 100% {\\r\\n -webkit-transform: scale(0);\\r\\n transform: scale(0); }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1); } }\\r\\n\\r\\n@keyframes sk-doubleBounce {\\r\\n 0%, 100% {\\r\\n -webkit-transform: scale(0);\\r\\n transform: scale(0); }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1); } }\\r\\n\\r\\n/*\\r\\n * Usage:\\r\\n *\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *\\r\\n */\\r\\n.sk-spinner-wave.sk-spinner {\\r\\n margin: $spin-margin;\\r\\n width: 50px;\\r\\n height: 30px;\\r\\n text-align: center;\\r\\n font-size: 10px; }\\r\\n.sk-spinner-wave div {\\r\\n background-color: $spin-color;\\r\\n height: 100%;\\r\\n width: 6px;\\r\\n display: inline-block;\\r\\n -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out;\\r\\n animation: sk-waveStretchDelay 1.2s infinite ease-in-out; }\\r\\n.sk-spinner-wave .sk-rect2 {\\r\\n -webkit-animation-delay: -1.1s;\\r\\n animation-delay: -1.1s; }\\r\\n.sk-spinner-wave .sk-rect3 {\\r\\n -webkit-animation-delay: -1s;\\r\\n animation-delay: -1s; }\\r\\n.sk-spinner-wave .sk-rect4 {\\r\\n -webkit-animation-delay: -0.9s;\\r\\n animation-delay: -0.9s; }\\r\\n.sk-spinner-wave .sk-rect5 {\\r\\n -webkit-animation-delay: -0.8s;\\r\\n animation-delay: -0.8s; }\\r\\n\\r\\n@-webkit-keyframes sk-waveStretchDelay {\\r\\n 0%, 40%, 100% {\\r\\n -webkit-transform: scaleY(0.4);\\r\\n transform: scaleY(0.4); }\\r\\n\\r\\n 20% {\\r\\n -webkit-transform: scaleY(1);\\r\\n transform: scaleY(1); } }\\r\\n\\r\\n@keyframes sk-waveStretchDelay {\\r\\n 0%, 40%, 100% {\\r\\n -webkit-transform: scaleY(0.4);\\r\\n transform: scaleY(0.4); }\\r\\n\\r\\n 20% {\\r\\n -webkit-transform: scaleY(1);\\r\\n transform: scaleY(1); } }\\r\\n\\r\\n/*\\r\\n * Usage:\\r\\n *\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *\\r\\n */\\r\\n.sk-spinner-wandering-cubes.sk-spinner {\\r\\n margin: $spin-margin;\\r\\n width: 32px;\\r\\n height: 32px;\\r\\n position: relative; }\\r\\n.sk-spinner-wandering-cubes .sk-cube1, .sk-spinner-wandering-cubes .sk-cube2 {\\r\\n background-color: $spin-color;\\r\\n width: 10px;\\r\\n height: 10px;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n -webkit-animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;\\r\\n animation: sk-wanderingCubeMove 1.8s infinite ease-in-out; }\\r\\n.sk-spinner-wandering-cubes .sk-cube2 {\\r\\n -webkit-animation-delay: -0.9s;\\r\\n animation-delay: -0.9s; }\\r\\n\\r\\n@-webkit-keyframes sk-wanderingCubeMove {\\r\\n 25% {\\r\\n -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);\\r\\n transform: translateX(42px) rotate(-90deg) scale(0.5); }\\r\\n\\r\\n 50% {\\r\\n /* Hack to make FF rotate in the right direction */\\r\\n -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);\\r\\n transform: translateX(42px) translateY(42px) rotate(-179deg); }\\r\\n\\r\\n 50.1% {\\r\\n -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);\\r\\n transform: translateX(42px) translateY(42px) rotate(-180deg); }\\r\\n\\r\\n 75% {\\r\\n -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);\\r\\n transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: rotate(-360deg);\\r\\n transform: rotate(-360deg); } }\\r\\n\\r\\n@keyframes sk-wanderingCubeMove {\\r\\n 25% {\\r\\n -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);\\r\\n transform: translateX(42px) rotate(-90deg) scale(0.5); }\\r\\n\\r\\n 50% {\\r\\n /* Hack to make FF rotate in the right direction */\\r\\n -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);\\r\\n transform: translateX(42px) translateY(42px) rotate(-179deg); }\\r\\n\\r\\n 50.1% {\\r\\n -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);\\r\\n transform: translateX(42px) translateY(42px) rotate(-180deg); }\\r\\n\\r\\n 75% {\\r\\n -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);\\r\\n transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: rotate(-360deg);\\r\\n transform: rotate(-360deg); } }\\r\\n\\r\\n/*\\r\\n * Usage:\\r\\n *\\r\\n *
\\r\\n *\\r\\n */\\r\\n.sk-spinner-pulse.sk-spinner {\\r\\n width: 40px;\\r\\n height: 40px;\\r\\n margin: $spin-margin;\\r\\n background-color: $spin-color;\\r\\n border-radius: 100%;\\r\\n -webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out;\\r\\n animation: sk-pulseScaleOut 1s infinite ease-in-out; }\\r\\n\\r\\n@-webkit-keyframes sk-pulseScaleOut {\\r\\n 0% {\\r\\n -webkit-transform: scale(0);\\r\\n transform: scale(0); }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n opacity: 0; } }\\r\\n\\r\\n@keyframes sk-pulseScaleOut {\\r\\n 0% {\\r\\n -webkit-transform: scale(0);\\r\\n transform: scale(0); }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1);\\r\\n opacity: 0; } }\\r\\n\\r\\n/*\\r\\n * Usage:\\r\\n *\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *\\r\\n */\\r\\n.sk-spinner-chasing-dots.sk-spinner {\\r\\n margin: $spin-margin;\\r\\n width: 40px;\\r\\n height: 40px;\\r\\n position: relative;\\r\\n text-align: center;\\r\\n -webkit-animation: sk-chasingDotsRotate 2s infinite linear;\\r\\n animation: sk-chasingDotsRotate 2s infinite linear; }\\r\\n.sk-spinner-chasing-dots .sk-dot1, .sk-spinner-chasing-dots .sk-dot2 {\\r\\n width: 60%;\\r\\n height: 60%;\\r\\n display: inline-block;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n background-color: $spin-color;\\r\\n border-radius: 100%;\\r\\n -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out;\\r\\n animation: sk-chasingDotsBounce 2s infinite ease-in-out; }\\r\\n.sk-spinner-chasing-dots .sk-dot2 {\\r\\n top: auto;\\r\\n bottom: 0px;\\r\\n -webkit-animation-delay: -1s;\\r\\n animation-delay: -1s; }\\r\\n\\r\\n@-webkit-keyframes sk-chasingDotsRotate {\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg); } }\\r\\n\\r\\n@keyframes sk-chasingDotsRotate {\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg); } }\\r\\n\\r\\n@-webkit-keyframes sk-chasingDotsBounce {\\r\\n 0%, 100% {\\r\\n -webkit-transform: scale(0);\\r\\n transform: scale(0); }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1); } }\\r\\n\\r\\n@keyframes sk-chasingDotsBounce {\\r\\n 0%, 100% {\\r\\n -webkit-transform: scale(0);\\r\\n transform: scale(0); }\\r\\n\\r\\n 50% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1); } }\\r\\n\\r\\n/*\\r\\n * Usage:\\r\\n *\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *\\r\\n */\\r\\n.sk-spinner-three-bounce.sk-spinner {\\r\\n margin: $spin-margin;\\r\\n width: 70px;\\r\\n text-align: center; }\\r\\n.sk-spinner-three-bounce div {\\r\\n width: 18px;\\r\\n height: 18px;\\r\\n background-color: $spin-color;\\r\\n border-radius: 100%;\\r\\n display: inline-block;\\r\\n -webkit-animation: sk-threeBounceDelay 1.4s infinite ease-in-out;\\r\\n animation: sk-threeBounceDelay 1.4s infinite ease-in-out;\\r\\n /* Prevent first frame from flickering when animation starts */\\r\\n -webkit-animation-fill-mode: both;\\r\\n animation-fill-mode: both; }\\r\\n.sk-spinner-three-bounce .sk-bounce1 {\\r\\n -webkit-animation-delay: -0.32s;\\r\\n animation-delay: -0.32s; }\\r\\n.sk-spinner-three-bounce .sk-bounce2 {\\r\\n -webkit-animation-delay: -0.16s;\\r\\n animation-delay: -0.16s; }\\r\\n\\r\\n@-webkit-keyframes sk-threeBounceDelay {\\r\\n 0%, 80%, 100% {\\r\\n -webkit-transform: scale(0);\\r\\n transform: scale(0); }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1); } }\\r\\n\\r\\n@keyframes sk-threeBounceDelay {\\r\\n 0%, 80%, 100% {\\r\\n -webkit-transform: scale(0);\\r\\n transform: scale(0); }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1); } }\\r\\n\\r\\n/*\\r\\n * Usage:\\r\\n *\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *\\r\\n */\\r\\n.sk-spinner-circle.sk-spinner {\\r\\n margin: $spin-margin;\\r\\n width: 22px;\\r\\n height: 22px;\\r\\n position: relative; }\\r\\n.sk-spinner-circle .sk-circle {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n position: absolute;\\r\\n left: 0;\\r\\n top: 0; }\\r\\n.sk-spinner-circle .sk-circle:before {\\r\\n content: '';\\r\\n display: block;\\r\\n margin: $spin-margin;\\r\\n width: 20%;\\r\\n height: 20%;\\r\\n background-color: $spin-color;\\r\\n border-radius: 100%;\\r\\n -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out;\\r\\n animation: sk-circleBounceDelay 1.2s infinite ease-in-out;\\r\\n /* Prevent first frame from flickering when animation starts */\\r\\n -webkit-animation-fill-mode: both;\\r\\n animation-fill-mode: both; }\\r\\n.sk-spinner-circle .sk-circle2 {\\r\\n -webkit-transform: rotate(30deg);\\r\\n -ms-transform: rotate(30deg);\\r\\n transform: rotate(30deg); }\\r\\n.sk-spinner-circle .sk-circle3 {\\r\\n -webkit-transform: rotate(60deg);\\r\\n -ms-transform: rotate(60deg);\\r\\n transform: rotate(60deg); }\\r\\n.sk-spinner-circle .sk-circle4 {\\r\\n -webkit-transform: rotate(90deg);\\r\\n -ms-transform: rotate(90deg);\\r\\n transform: rotate(90deg); }\\r\\n.sk-spinner-circle .sk-circle5 {\\r\\n -webkit-transform: rotate(120deg);\\r\\n -ms-transform: rotate(120deg);\\r\\n transform: rotate(120deg); }\\r\\n.sk-spinner-circle .sk-circle6 {\\r\\n -webkit-transform: rotate(150deg);\\r\\n -ms-transform: rotate(150deg);\\r\\n transform: rotate(150deg); }\\r\\n.sk-spinner-circle .sk-circle7 {\\r\\n -webkit-transform: rotate(180deg);\\r\\n -ms-transform: rotate(180deg);\\r\\n transform: rotate(180deg); }\\r\\n.sk-spinner-circle .sk-circle8 {\\r\\n -webkit-transform: rotate(210deg);\\r\\n -ms-transform: rotate(210deg);\\r\\n transform: rotate(210deg); }\\r\\n.sk-spinner-circle .sk-circle9 {\\r\\n -webkit-transform: rotate(240deg);\\r\\n -ms-transform: rotate(240deg);\\r\\n transform: rotate(240deg); }\\r\\n.sk-spinner-circle .sk-circle10 {\\r\\n -webkit-transform: rotate(270deg);\\r\\n -ms-transform: rotate(270deg);\\r\\n transform: rotate(270deg); }\\r\\n.sk-spinner-circle .sk-circle11 {\\r\\n -webkit-transform: rotate(300deg);\\r\\n -ms-transform: rotate(300deg);\\r\\n transform: rotate(300deg); }\\r\\n.sk-spinner-circle .sk-circle12 {\\r\\n -webkit-transform: rotate(330deg);\\r\\n -ms-transform: rotate(330deg);\\r\\n transform: rotate(330deg); }\\r\\n.sk-spinner-circle .sk-circle2:before {\\r\\n -webkit-animation-delay: -1.1s;\\r\\n animation-delay: -1.1s; }\\r\\n.sk-spinner-circle .sk-circle3:before {\\r\\n -webkit-animation-delay: -1s;\\r\\n animation-delay: -1s; }\\r\\n.sk-spinner-circle .sk-circle4:before {\\r\\n -webkit-animation-delay: -0.9s;\\r\\n animation-delay: -0.9s; }\\r\\n.sk-spinner-circle .sk-circle5:before {\\r\\n -webkit-animation-delay: -0.8s;\\r\\n animation-delay: -0.8s; }\\r\\n.sk-spinner-circle .sk-circle6:before {\\r\\n -webkit-animation-delay: -0.7s;\\r\\n animation-delay: -0.7s; }\\r\\n.sk-spinner-circle .sk-circle7:before {\\r\\n -webkit-animation-delay: -0.6s;\\r\\n animation-delay: -0.6s; }\\r\\n.sk-spinner-circle .sk-circle8:before {\\r\\n -webkit-animation-delay: -0.5s;\\r\\n animation-delay: -0.5s; }\\r\\n.sk-spinner-circle .sk-circle9:before {\\r\\n -webkit-animation-delay: -0.4s;\\r\\n animation-delay: -0.4s; }\\r\\n.sk-spinner-circle .sk-circle10:before {\\r\\n -webkit-animation-delay: -0.3s;\\r\\n animation-delay: -0.3s; }\\r\\n.sk-spinner-circle .sk-circle11:before {\\r\\n -webkit-animation-delay: -0.2s;\\r\\n animation-delay: -0.2s; }\\r\\n.sk-spinner-circle .sk-circle12:before {\\r\\n -webkit-animation-delay: -0.1s;\\r\\n animation-delay: -0.1s; }\\r\\n\\r\\n@-webkit-keyframes sk-circleBounceDelay {\\r\\n 0%, 80%, 100% {\\r\\n -webkit-transform: scale(0);\\r\\n transform: scale(0); }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1); } }\\r\\n\\r\\n@keyframes sk-circleBounceDelay {\\r\\n 0%, 80%, 100% {\\r\\n -webkit-transform: scale(0);\\r\\n transform: scale(0); }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scale(1);\\r\\n transform: scale(1); } }\\r\\n\\r\\n/*\\r\\n * Usage:\\r\\n *\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *\\r\\n */\\r\\n.sk-spinner-cube-grid {\\r\\n /*\\r\\n * Spinner positions\\r\\n * 1 2 3\\r\\n * 4 5 6\\r\\n * 7 8 9\\r\\n */ }\\r\\n.sk-spinner-cube-grid.sk-spinner {\\r\\n width: 30px;\\r\\n height: 30px;\\r\\n margin: $spin-margin; }\\r\\n.sk-spinner-cube-grid .sk-cube {\\r\\n width: 33%;\\r\\n height: 33%;\\r\\n background-color: $spin-color;\\r\\n float: left;\\r\\n -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;\\r\\n animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; }\\r\\n.sk-spinner-cube-grid .sk-cube:nth-child(1) {\\r\\n -webkit-animation-delay: 0.2s;\\r\\n animation-delay: 0.2s; }\\r\\n.sk-spinner-cube-grid .sk-cube:nth-child(2) {\\r\\n -webkit-animation-delay: 0.3s;\\r\\n animation-delay: 0.3s; }\\r\\n.sk-spinner-cube-grid .sk-cube:nth-child(3) {\\r\\n -webkit-animation-delay: 0.4s;\\r\\n animation-delay: 0.4s; }\\r\\n.sk-spinner-cube-grid .sk-cube:nth-child(4) {\\r\\n -webkit-animation-delay: 0.1s;\\r\\n animation-delay: 0.1s; }\\r\\n.sk-spinner-cube-grid .sk-cube:nth-child(5) {\\r\\n -webkit-animation-delay: 0.2s;\\r\\n animation-delay: 0.2s; }\\r\\n.sk-spinner-cube-grid .sk-cube:nth-child(6) {\\r\\n -webkit-animation-delay: 0.3s;\\r\\n animation-delay: 0.3s; }\\r\\n.sk-spinner-cube-grid .sk-cube:nth-child(7) {\\r\\n -webkit-animation-delay: 0s;\\r\\n animation-delay: 0s; }\\r\\n.sk-spinner-cube-grid .sk-cube:nth-child(8) {\\r\\n -webkit-animation-delay: 0.1s;\\r\\n animation-delay: 0.1s; }\\r\\n.sk-spinner-cube-grid .sk-cube:nth-child(9) {\\r\\n -webkit-animation-delay: 0.2s;\\r\\n animation-delay: 0.2s; }\\r\\n\\r\\n@-webkit-keyframes sk-cubeGridScaleDelay {\\r\\n 0%, 70%, 100% {\\r\\n -webkit-transform: scale3D(1, 1, 1);\\r\\n transform: scale3D(1, 1, 1); }\\r\\n\\r\\n 35% {\\r\\n -webkit-transform: scale3D(0, 0, 1);\\r\\n transform: scale3D(0, 0, 1); } }\\r\\n\\r\\n@keyframes sk-cubeGridScaleDelay {\\r\\n 0%, 70%, 100% {\\r\\n -webkit-transform: scale3D(1, 1, 1);\\r\\n transform: scale3D(1, 1, 1); }\\r\\n\\r\\n 35% {\\r\\n -webkit-transform: scale3D(0, 0, 1);\\r\\n transform: scale3D(0, 0, 1); } }\\r\\n\\r\\n/*\\r\\n * Usage:\\r\\n *\\r\\n *
\\r\\n * \\r\\n *
\\r\\n *\\r\\n */\\r\\n.sk-spinner-wordpress.sk-spinner {\\r\\n background-color: $spin-color;\\r\\n width: 30px;\\r\\n height: 30px;\\r\\n border-radius: 30px;\\r\\n position: relative;\\r\\n margin: $spin-margin;\\r\\n -webkit-animation: sk-innerCircle 1s linear infinite;\\r\\n animation: sk-innerCircle 1s linear infinite; }\\r\\n.sk-spinner-wordpress .sk-inner-circle {\\r\\n display: block;\\r\\n background-color: #fff;\\r\\n width: 8px;\\r\\n height: 8px;\\r\\n position: absolute;\\r\\n border-radius: 8px;\\r\\n top: 5px;\\r\\n left: 5px; }\\r\\n\\r\\n@-webkit-keyframes sk-innerCircle {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0); }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg); } }\\r\\n\\r\\n@keyframes sk-innerCircle {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0);\\r\\n transform: rotate(0); }\\r\\n\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg); } }\\r\\n\\r\\n/*\\r\\n * Usage:\\r\\n *\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *
\\r\\n *\\r\\n */\\r\\n.sk-spinner-fading-circle.sk-spinner {\\r\\n margin: $spin-margin;\\r\\n width: 22px;\\r\\n height: 22px;\\r\\n position: relative; }\\r\\n.sk-spinner-fading-circle .sk-circle {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n position: absolute;\\r\\n left: 0;\\r\\n top: 0; }\\r\\n.sk-spinner-fading-circle .sk-circle:before {\\r\\n content: '';\\r\\n display: block;\\r\\n margin: $spin-margin;\\r\\n width: 18%;\\r\\n height: 18%;\\r\\n background-color: $spin-color;\\r\\n border-radius: 100%;\\r\\n -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out;\\r\\n animation: sk-circleFadeDelay 1.2s infinite ease-in-out;\\r\\n /* Prevent first frame from flickering when animation starts */\\r\\n -webkit-animation-fill-mode: both;\\r\\n animation-fill-mode: both; }\\r\\n.sk-spinner-fading-circle .sk-circle2 {\\r\\n -webkit-transform: rotate(30deg);\\r\\n -ms-transform: rotate(30deg);\\r\\n transform: rotate(30deg); }\\r\\n.sk-spinner-fading-circle .sk-circle3 {\\r\\n -webkit-transform: rotate(60deg);\\r\\n -ms-transform: rotate(60deg);\\r\\n transform: rotate(60deg); }\\r\\n.sk-spinner-fading-circle .sk-circle4 {\\r\\n -webkit-transform: rotate(90deg);\\r\\n -ms-transform: rotate(90deg);\\r\\n transform: rotate(90deg); }\\r\\n.sk-spinner-fading-circle .sk-circle5 {\\r\\n -webkit-transform: rotate(120deg);\\r\\n -ms-transform: rotate(120deg);\\r\\n transform: rotate(120deg); }\\r\\n.sk-spinner-fading-circle .sk-circle6 {\\r\\n -webkit-transform: rotate(150deg);\\r\\n -ms-transform: rotate(150deg);\\r\\n transform: rotate(150deg); }\\r\\n.sk-spinner-fading-circle .sk-circle7 {\\r\\n -webkit-transform: rotate(180deg);\\r\\n -ms-transform: rotate(180deg);\\r\\n transform: rotate(180deg); }\\r\\n.sk-spinner-fading-circle .sk-circle8 {\\r\\n -webkit-transform: rotate(210deg);\\r\\n -ms-transform: rotate(210deg);\\r\\n transform: rotate(210deg); }\\r\\n.sk-spinner-fading-circle .sk-circle9 {\\r\\n -webkit-transform: rotate(240deg);\\r\\n -ms-transform: rotate(240deg);\\r\\n transform: rotate(240deg); }\\r\\n.sk-spinner-fading-circle .sk-circle10 {\\r\\n -webkit-transform: rotate(270deg);\\r\\n -ms-transform: rotate(270deg);\\r\\n transform: rotate(270deg); }\\r\\n.sk-spinner-fading-circle .sk-circle11 {\\r\\n -webkit-transform: rotate(300deg);\\r\\n -ms-transform: rotate(300deg);\\r\\n transform: rotate(300deg); }\\r\\n.sk-spinner-fading-circle .sk-circle12 {\\r\\n -webkit-transform: rotate(330deg);\\r\\n -ms-transform: rotate(330deg);\\r\\n transform: rotate(330deg); }\\r\\n.sk-spinner-fading-circle .sk-circle2:before {\\r\\n -webkit-animation-delay: -1.1s;\\r\\n animation-delay: -1.1s; }\\r\\n.sk-spinner-fading-circle .sk-circle3:before {\\r\\n -webkit-animation-delay: -1s;\\r\\n animation-delay: -1s; }\\r\\n.sk-spinner-fading-circle .sk-circle4:before {\\r\\n -webkit-animation-delay: -0.9s;\\r\\n animation-delay: -0.9s; }\\r\\n.sk-spinner-fading-circle .sk-circle5:before {\\r\\n -webkit-animation-delay: -0.8s;\\r\\n animation-delay: -0.8s; }\\r\\n.sk-spinner-fading-circle .sk-circle6:before {\\r\\n -webkit-animation-delay: -0.7s;\\r\\n animation-delay: -0.7s; }\\r\\n.sk-spinner-fading-circle .sk-circle7:before {\\r\\n -webkit-animation-delay: -0.6s;\\r\\n animation-delay: -0.6s; }\\r\\n.sk-spinner-fading-circle .sk-circle8:before {\\r\\n -webkit-animation-delay: -0.5s;\\r\\n animation-delay: -0.5s; }\\r\\n.sk-spinner-fading-circle .sk-circle9:before {\\r\\n -webkit-animation-delay: -0.4s;\\r\\n animation-delay: -0.4s; }\\r\\n.sk-spinner-fading-circle .sk-circle10:before {\\r\\n -webkit-animation-delay: -0.3s;\\r\\n animation-delay: -0.3s; }\\r\\n.sk-spinner-fading-circle .sk-circle11:before {\\r\\n -webkit-animation-delay: -0.2s;\\r\\n animation-delay: -0.2s; }\\r\\n.sk-spinner-fading-circle .sk-circle12:before {\\r\\n -webkit-animation-delay: -0.1s;\\r\\n animation-delay: -0.1s; }\\r\\n\\r\\n@-webkit-keyframes sk-circleFadeDelay {\\r\\n 0%, 39%, 100% {\\r\\n opacity: 0; }\\r\\n\\r\\n 40% {\\r\\n opacity: 1; } }\\r\\n\\r\\n@keyframes sk-circleFadeDelay {\\r\\n 0%, 39%, 100% {\\r\\n opacity: 0; }\\r\\n\\r\\n 40% {\\r\\n opacity: 1; } }\\r\\n\\r\\n\",\"//RTL Support\\r\\nbody.rtls {\\r\\n\\r\\n #page-wrapper {\\r\\n margin: 0 220px 0 0;\\r\\n }\\r\\n\\r\\n .nav-second-level li a {\\r\\n padding: 7px 35px 7px 10px;\\r\\n }\\r\\n\\r\\n .ibox-title h5 {\\r\\n float: right;\\r\\n }\\r\\n\\r\\n .pull-right {\\r\\n float: left !important;\\r\\n }\\r\\n\\r\\n .pull-left {\\r\\n float: right !important;\\r\\n }\\r\\n\\r\\n .ibox-tools {\\r\\n float: left;\\r\\n }\\r\\n\\r\\n .stat-percent {\\r\\n float: left;\\r\\n }\\r\\n\\r\\n .navbar-right {\\r\\n float: left !important;\\r\\n }\\r\\n\\r\\n .navbar-top-links li:last-child {\\r\\n margin-left: 40px;\\r\\n margin-right: 0;\\r\\n }\\r\\n\\r\\n .minimalize-styl-2 {\\r\\n float: right;\\r\\n margin: 14px 20px 5px 5px;\\r\\n }\\r\\n\\r\\n .feed-element > .pull-left {\\r\\n margin-left: 10px;\\r\\n margin-right: 0;\\r\\n }\\r\\n\\r\\n .timeline-item .date {\\r\\n text-align: left;\\r\\n }\\r\\n\\r\\n .timeline-item .date i {\\r\\n left: 0;\\r\\n right: auto;\\r\\n }\\r\\n\\r\\n .timeline-item .content {\\r\\n border-right: 1px solid #C2C4CC;\\r\\n border-left: none;\\r\\n }\\r\\n\\r\\n .theme-config {\\r\\n left: 0;\\r\\n right: auto;\\r\\n }\\r\\n\\r\\n .spin-icon {\\r\\n border-radius: 0 20px 20px 0;\\r\\n }\\r\\n\\r\\n .toast-close-button {\\r\\n float: left;\\r\\n }\\r\\n\\r\\n #toast-container > .toast:before {\\r\\n margin: auto -1.5em auto 0.5em;\\r\\n }\\r\\n\\r\\n #toast-container > div {\\r\\n padding: 15px 50px 15px 15px;\\r\\n }\\r\\n\\r\\n .center-orientation .vertical-timeline-icon i {\\r\\n margin-left: 0;\\r\\n margin-right: -12px;\\r\\n }\\r\\n\\r\\n .vertical-timeline-icon i {\\r\\n right: 50%;\\r\\n left: auto;\\r\\n margin-left: auto;\\r\\n margin-right: -12px;\\r\\n }\\r\\n\\r\\n .file-box {\\r\\n float: right;\\r\\n }\\r\\n\\r\\n ul.notes li {\\r\\n float: right;\\r\\n }\\r\\n\\r\\n .chat-users, .chat-statistic {\\r\\n margin-right: -30px;\\r\\n margin-left: auto;\\r\\n }\\r\\n\\r\\n .dropdown-menu > li > a {\\r\\n text-align: right;\\r\\n }\\r\\n\\r\\n .b-r {\\r\\n border-left: 1px solid #C2C4CC;\\r\\n border-right: none;\\r\\n }\\r\\n\\r\\n .dd-list .dd-list {\\r\\n padding-right: 30px;\\r\\n padding-left: 0;\\r\\n }\\r\\n\\r\\n .dd-item > button {\\r\\n float: right\\r\\n }\\r\\n /* Theme config */\\r\\n .theme-config-box {\\r\\n margin-left: -220px;\\r\\n margin-right: 0;\\r\\n }\\r\\n\\r\\n .theme-config-box.show {\\r\\n margin-left: 0;\\r\\n margin-right: 0;\\r\\n }\\r\\n\\r\\n .spin-icon {\\r\\n right: 0;\\r\\n left: auto;\\r\\n }\\r\\n\\r\\n .skin-setttings {\\r\\n margin-right: 40px;\\r\\n margin-left: 0;\\r\\n }\\r\\n\\r\\n .skin-setttings {\\r\\n direction: ltr;\\r\\n }\\r\\n\\r\\n .footer.fixed {\\r\\n margin-right: 220px;\\r\\n margin-left: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@media (max-width: 992px) {\\r\\n body.rtls {\\r\\n .chat-users,.chat-statistic {\\r\\n margin-right: 0px;\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\nbody.rtls.mini-navbar .footer.fixed, body.body-small.mini-navbar .footer.fixed {\\r\\n margin: 0 70px 0 0;\\r\\n}\\r\\n\\r\\nbody.rtls.mini-navbar.fixed-sidebar .footer.fixed, body.body-small.mini-navbar .footer.fixed {\\r\\n margin: 0 0 0 0;\\r\\n}\\r\\n\\r\\n\\r\\nbody.rtls.top-navigation .navbar-toggle {\\r\\n float: right;\\r\\n margin-left: 15px;\\r\\n margin-right: 15px;\\r\\n}\\r\\n\\r\\n.body-small.rtls.top-navigation .navbar-header {\\r\\n float: none;\\r\\n}\\r\\n\\r\\nbody.rtls.top-navigation #page-wrapper {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\nbody.rtls.mini-navbar #page-wrapper {\\r\\n margin: 0 70px 0 0;\\r\\n}\\r\\n\\r\\nbody.rtls.mini-navbar.fixed-sidebar #page-wrapper {\\r\\n margin: 0 0 0 0;\\r\\n}\\r\\n\\r\\nbody.rtls.body-small.fixed-sidebar.mini-navbar #page-wrapper {\\r\\n margin: 0 $sidebar-width 0 0;\\r\\n}\\r\\n\\r\\nbody.rtls.body-small.fixed-sidebar.mini-navbar .navbar-static-side {\\r\\n width: $sidebar-width;\\r\\n}\\r\\n\\r\\n.body-small.rtls .navbar-fixed-top {\\r\\n margin-right: 0px;\\r\\n}\\r\\n\\r\\n.body-small.rtls .navbar-header {\\r\\n float: right;\\r\\n}\\r\\n\\r\\nbody.rtls .navbar-top-links li:last-child {\\r\\n margin-left: 20px;\\r\\n}\\r\\n\\r\\nbody.rtls .top-navigation #page-wrapper, body.rtls.mini-navbar .top-navigation #page-wrapper, body.rtls.mini-navbar.top-navigation #page-wrapper {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\nbody.rtls .top-navigation .footer.fixed, body.rtls.top-navigation .footer.fixed {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n\\r\\n body.rtls .navbar-top-links li:last-child {\\r\\n margin-left: 20px;\\r\\n }\\r\\n\\r\\n .body-small.rtls #page-wrapper {\\r\\n position: inherit;\\r\\n margin: 0 0 0 0px;\\r\\n min-height: 1000px;\\r\\n }\\r\\n\\r\\n .body-small.rtls .navbar-static-side {\\r\\n display: none;\\r\\n z-index: 1001;\\r\\n position: absolute;\\r\\n width: 70px;\\r\\n }\\r\\n\\r\\n .body-small.rtls.mini-navbar .navbar-static-side {\\r\\n display: block;\\r\\n }\\r\\n\\r\\n .rtls.fixed-sidebar.body-small .navbar-static-side {\\r\\n display: none;\\r\\n z-index: 1\\r\\n 001;\\r\\n position: fixed;\\r\\n width: $sidebar-width;\\r\\n }\\r\\n\\r\\n .rtls.fixed-sidebar.body-small.mini-navbar .navbar-static-side {\\r\\n display: block;\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n// For special ltr supporting plugin\\r\\n.rtls .ltr-support {\\r\\n direction: ltr;\\r\\n}\\r\\n\",\"/*\\r\\n * This is style for skin config\\r\\n * Use only in demo theme\\r\\n */\\r\\n\\r\\n.theme-config {\\r\\n position: absolute;\\r\\n top: 90px;\\r\\n right: 0px;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.theme-config-box {\\r\\n margin-right: -220px;\\r\\n position: relative;\\r\\n z-index: 2000;\\r\\n transition-duration: 0.8s;\\r\\n}\\r\\n\\r\\n.theme-config-box.show {\\r\\n margin-right: 0px;\\r\\n}\\r\\n\\r\\n.spin-icon {\\r\\n background: $navy;\\r\\n position: absolute;\\r\\n padding: 7px 10px 7px 13px;\\r\\n border-radius: 20px 0px 0px 20px;\\r\\n font-size: 16px;\\r\\n top: 0;\\r\\n left: 0px;\\r\\n width: 40px;\\r\\n color: white;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.skin-setttings {\\r\\n width: 220px;\\r\\n margin-left: 40px;\\r\\n background: $gray;\\r\\n}\\r\\n\\r\\n.skin-setttings .title {\\r\\n background: #efefef;\\r\\n text-align: center;\\r\\n text-transform: uppercase;\\r\\n font-weight: 600;\\r\\n display: block;\\r\\n padding: 10px 15px;\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.setings-item {\\r\\n padding: 10px 30px;\\r\\n}\\r\\n\\r\\n.setings-item.skin {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.setings-item .switch {\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.skin-name a {\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.setings-item a {\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.default-skin, .blue-skin, .ultra-skin, .yellow-skin {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.default-skin {\\r\\n font-weight: 600;\\r\\n background: #1ab394;\\r\\n}\\r\\n\\r\\n.default-skin:hover {\\r\\n background: #199d82;\\r\\n}\\r\\n\\r\\n.blue-skin {\\r\\n font-weight: 600;\\r\\n background: url(\\\"patterns/header-profile-skin-1.png\\\") repeat scroll 0 0;\\r\\n}\\r\\n\\r\\n.blue-skin:hover {\\r\\n background: #0d8ddb;\\r\\n}\\r\\n\\r\\n.yellow-skin {\\r\\n font-weight: 600;\\r\\n background: url(\\\"patterns/header-profile-skin-3.png\\\") repeat scroll 0 100%;\\r\\n}\\r\\n\\r\\n.yellow-skin:hover {\\r\\n background: #ce8735;\\r\\n}\\r\\n\\r\\n.ultra-skin {\\r\\n font-weight: 600;\\r\\n background: url(\\\"patterns/header-profile-skin-2.png\\\") repeat scroll 0 0;\\r\\n}\\r\\n\\r\\n.ultra-skin:hover {\\r\\n background: #1a2d40;\\r\\n}\\r\\n\",\"/*\\r\\n * SKIN 1 - INSPINIA - Responsive Admin Theme\\r\\n * NAME - Blue light\\r\\n */\\r\\n\\r\\n// Main colors\\r\\n$skin-1-color: #0e9aef;\\r\\n$skin-1-nav-bg: #3e495f;\\r\\n$skin-1-a-color: #9ea6b9;\\r\\n$skin-1-page-bg: #f4f6fa;\\r\\n\\r\\n// Custom style\\r\\n.skin-1 .minimalize-styl-2 {\\r\\n margin: 14px 5px 5px 30px;\\r\\n}\\r\\n\\r\\n.skin-1 .navbar-top-links li:last-child {\\r\\n margin-right: 30px;\\r\\n}\\r\\n\\r\\n.skin-1.fixed-nav .minimalize-styl-2 {\\r\\n margin: 14px 5px 5px 15px;\\r\\n}\\r\\n\\r\\n.skin-1 .spin-icon {\\r\\n background: $skin-1-color !important;\\r\\n}\\r\\n\\r\\n.skin-1 .nav-header {\\r\\n background: $skin-1-color;\\r\\n background: url(\\\"patterns/header-profile-skin-1.png\\\");\\r\\n}\\r\\n\\r\\n.skin-1.mini-navbar .nav-second-level {\\r\\n background: $skin-1-nav-bg;\\r\\n}\\r\\n\\r\\n.skin-1 .breadcrumb {\\r\\n background: transparent;\\r\\n}\\r\\n\\r\\n.skin-1 .page-heading {\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.skin-1 .nav > li.active {\\r\\n background: darken($skin-1-nav-bg, 2%);\\r\\n}\\r\\n\\r\\n.skin-1 .nav > li > a {\\r\\n color: $skin-1-a-color;\\r\\n}\\r\\n\\r\\n.skin-1 .nav > li.active > a {\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.skin-1 .navbar-minimalize {\\r\\n background: $skin-1-color;\\r\\n border-color: $skin-1-color;\\r\\n}\\r\\n\\r\\nbody.skin-1 {\\r\\n background: $skin-1-nav-bg;\\r\\n}\\r\\n\\r\\n.skin-1 .navbar-static-top {\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.skin-1 .dashboard-header {\\r\\n background: transparent;\\r\\n border-bottom: none !important;\\r\\n border-top: none;\\r\\n padding: 20px 30px 10px 30px;\\r\\n}\\r\\n\\r\\n.fixed-nav.skin-1 .navbar-fixed-top {\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.skin-1 .wrapper-content {\\r\\n padding: 30px 15px;\\r\\n}\\r\\n\\r\\n.skin-1 #page-wrapper {\\r\\n background: $skin-1-page-bg;\\r\\n}\\r\\n\\r\\n.skin-1 .ibox-title, .skin-1 .ibox-content {\\r\\n border-width: 1px;\\r\\n}\\r\\n\\r\\n.skin-1 .ibox-content:last-child {\\r\\n border-style: solid solid solid solid;\\r\\n}\\r\\n\\r\\n.skin-1 .nav > li.active {\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.skin-1 .nav-header {\\r\\n padding: 35px 25px 25px 25px;\\r\\n}\\r\\n\\r\\n.skin-1 .nav-header a.dropdown-toggle {\\r\\n color: white;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.skin-1 .nav-header a.dropdown-toggle .text-muted {\\r\\n color: white;\\r\\n opacity: 0.8;\\r\\n}\\r\\n\\r\\n.skin-1 .profile-element {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.skin-1 .img-circle {\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.skin-1 .navbar-default .nav > li > a:hover, .skin-1 .navbar-default .nav > li > a:focus {\\r\\n background: darken($skin-1-nav-bg, 2%);\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.skin-1 .nav.nav-tabs > li.active > a {\\r\\n color: #555;\\r\\n}\\r\\n.skin-1 .nav.nav-tabs > li.active {\\r\\n background: transparent;\\r\\n}\\r\\n\\r\\n/*\\r\\n * SKIN 2 - INSPINIA - Responsive Admin Theme\\r\\n * NAME - Inspinia Ultra\\r\\n */\\r\\n\\r\\n// Main colors\\r\\n$skin-2-color: #23c6c8;\\r\\n$skin-2-nav-bg: #ededed;\\r\\n$skin-2-nav-top-bg: #213a53;\\r\\n\\r\\n// Custom style\\r\\n\\r\\nbody.skin-2 {\\r\\n color: #565758 !important;\\r\\n}\\r\\n\\r\\n.skin-2 .minimalize-styl-2 {\\r\\n margin: 14px 5px 5px 25px;\\r\\n}\\r\\n\\r\\n.skin-2 .navbar-top-links li:last-child {\\r\\n margin-right: 25px;\\r\\n}\\r\\n\\r\\n.skin-2 .spin-icon {\\r\\n background: $skin-2-color !important;\\r\\n}\\r\\n\\r\\n.skin-2 .nav-header {\\r\\n background: $skin-2-color;\\r\\n background: url(\\\"patterns/header-profile-skin-2.png\\\");\\r\\n}\\r\\n\\r\\n.skin-2.mini-navbar .nav-second-level {\\r\\n background: $skin-2-nav-bg;\\r\\n}\\r\\n\\r\\n.skin-2 .breadcrumb {\\r\\n background: transparent;\\r\\n}\\r\\n\\r\\n.skin-2.fixed-nav .minimalize-styl-2 {\\r\\n margin: 14px 5px 5px 15px;\\r\\n}\\r\\n\\r\\n.skin-2 .page-heading {\\r\\n border: none;\\r\\n background: rgba(255, 255, 255, 0.7);\\r\\n}\\r\\n\\r\\n.skin-2 .nav > li.active {\\r\\n background: #e0e0e0;\\r\\n}\\r\\n\\r\\n.skin-2 .logo-element {\\r\\n padding: 17px 0;\\r\\n}\\r\\n\\r\\n.skin-2 .nav > li > a, .skin-2 .welcome-message {\\r\\n color: #edf6ff;\\r\\n}\\r\\n\\r\\n.skin-2 #top-search::-moz-placeholder {\\r\\n color: #121321;\\r\\n font: bold;\\r\\n opacity: 0.5;\\r\\n}\\r\\n\\r\\n.skin-2 #side-menu > li > a, .skin-2 .nav.nav-second-level > li > a {\\r\\n color: #586b7d;\\r\\n}\\r\\n\\r\\n.skin-2 .nav > li.active > a {\\r\\n color: $skin-2-nav-top-bg;\\r\\n}\\r\\n\\r\\n.skin-2.mini-navbar .nav-header {\\r\\n background: $skin-2-nav-top-bg;\\r\\n}\\r\\n\\r\\n.skin-2 .navbar-minimalize {\\r\\n background: $skin-2-color;\\r\\n border-color: $skin-2-color;\\r\\n}\\r\\n\\r\\n.skin-2 .border-bottom {\\r\\n border-bottom: none !important;\\r\\n}\\r\\n\\r\\n.skin-2 #top-search {\\r\\n color: white;\\r\\n}\\r\\n\\r\\nbody.skin-2 #wrapper {\\r\\n background-color: $skin-2-nav-bg;\\r\\n}\\r\\n\\r\\n.skin-2 .navbar-static-top {\\r\\n background: $skin-2-nav-top-bg;\\r\\n}\\r\\n\\r\\n.fixed-nav.skin-2 .navbar-fixed-top {\\r\\n background: $skin-2-nav-top-bg;\\r\\n border-bottom: none !important;\\r\\n}\\r\\n\\r\\n.skin-2 .nav-header {\\r\\n padding: 30px 25px 30px 25px;\\r\\n}\\r\\n\\r\\n.skin-2 .dashboard-header {\\r\\n background: rgba(255, 255, 255, 0.4);\\r\\n border-bottom: none !important;\\r\\n border-top: none;\\r\\n padding: 20px 30px 20px 30px;\\r\\n}\\r\\n\\r\\n.skin-2 .wrapper-content {\\r\\n padding: 30px 15px;\\r\\n}\\r\\n\\r\\n.skin-2 .dashoard-1 .wrapper-content {\\r\\n padding: 0px 30px 25px 30px;\\r\\n}\\r\\n\\r\\n.skin-2 .ibox-title {\\r\\n background: rgba(255, 255, 255, 0.7);\\r\\n border: none;\\r\\n margin-bottom: 1px;\\r\\n}\\r\\n\\r\\n.skin-2 .ibox-content {\\r\\n background: rgba(255, 255, 255, 0.4);\\r\\n border: none !important;\\r\\n}\\r\\n\\r\\n.skin-2 #page-wrapper {\\r\\n background: rgba(246, 246, 246, 1);\\r\\n background: -webkit-radial-gradient(center, ellipse cover, rgba(246, 246, 246, 1) 20%, rgba(213, 213, 213, 1) 100%);\\r\\n background: -o-radial-gradient(center, ellipse cover, rgba(246, 246, 246, 1) 20%, rgba(213, 213, 213, 1) 100%);\\r\\n background: -ms-radial-gradient(center, ellipse cover, rgba(246, 246, 246, 1) 20%, rgba(213, 213, 213, 1) 100%);\\r\\n background: radial-gradient(ellipse at center, rgba(246, 246, 246, 1) 20%, rgba(213, 213, 213, 1) 100%);\\r\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.gradient(startColorstr=#f6f6f6, endColorstr=#d5d5d5)\\\";\\r\\n}\\r\\n\\r\\n.skin-2 .ibox-title, .skin-2 .ibox-content {\\r\\n border-width: 1px;\\r\\n}\\r\\n\\r\\n.skin-2 .ibox-content:last-child {\\r\\n border-style: solid solid solid solid;\\r\\n}\\r\\n\\r\\n.skin-2 .nav > li.active {\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.skin-2 .nav-header a.dropdown-toggle {\\r\\n color: #edf6ff;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.skin-2 .nav-header a.dropdown-toggle .text-muted {\\r\\n color: #edf6ff;\\r\\n opacity: 0.8;\\r\\n}\\r\\n\\r\\n.skin-2 .img-circle {\\r\\n border-radius: 10px;\\r\\n}\\r\\n\\r\\n.skin-2 .nav.navbar-top-links > li > a:hover, .skin-2 .nav.navbar-top-links > li > a:focus {\\r\\n background: darken($skin-2-nav-top-bg, 5%);\\r\\n}\\r\\n\\r\\n.skin-2 .navbar-default .nav > li > a:hover, .skin-2 .navbar-default .nav > li > a:focus {\\r\\n background: #e0e0e0;\\r\\n color: #213a53;\\r\\n}\\r\\n\\r\\n.skin-2 .nav.nav-tabs > li.active > a {\\r\\n color: #555;\\r\\n}\\r\\n.skin-2 .nav.nav-tabs > li.active {\\r\\n background: transparent;\\r\\n}\\r\\n\\r\\n/*\\r\\n * SKIN 3 - INSPINIA - Responsive Admin Theme\\r\\n * NAME - Yellow/purple\\r\\n */\\r\\n\\r\\n// Main colors\\r\\n$skin-3-color: #ecba52;\\r\\n$skin-3-nav-bg: #3e2c42;\\r\\n$skin-3-a-color: #948b96;\\r\\n$skin-3-page-bg: #f4f6fa;\\r\\n\\r\\n// Custom style\\r\\n.skin-3 .minimalize-styl-2 {\\r\\n margin: 14px 5px 5px 30px;\\r\\n}\\r\\n\\r\\n.skin-3 .navbar-top-links li:last-child {\\r\\n margin-right: 30px;\\r\\n}\\r\\n\\r\\n.skin-3.fixed-nav .minimalize-styl-2 {\\r\\n margin: 14px 5px 5px 15px;\\r\\n}\\r\\n\\r\\n.skin-3 .spin-icon {\\r\\n background: $skin-3-color !important;\\r\\n}\\r\\n\\r\\nbody.boxed-layout.skin-3 #wrapper {\\r\\n background: $skin-3-nav-bg;\\r\\n}\\r\\n\\r\\n.skin-3 .nav-header {\\r\\n background: $skin-3-color;\\r\\n background: url(\\\"patterns/header-profile-skin-3.png\\\");\\r\\n}\\r\\n\\r\\n.skin-3.mini-navbar .nav-second-level {\\r\\n background: $skin-3-nav-bg;\\r\\n}\\r\\n\\r\\n.skin-3 .breadcrumb {\\r\\n background: transparent;\\r\\n}\\r\\n\\r\\n.skin-3 .page-heading {\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.skin-3 .nav > li.active {\\r\\n background: darken($skin-3-nav-bg, 2%);\\r\\n}\\r\\n\\r\\n.fixed-nav.skin-3 .navbar-fixed-top {\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.skin-3 .nav > li > a {\\r\\n color: $skin-3-a-color;\\r\\n}\\r\\n\\r\\n.skin-3 .nav > li.active > a {\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.skin-3 .navbar-minimalize {\\r\\n background: $skin-3-color;\\r\\n border-color: $skin-3-color;\\r\\n}\\r\\n\\r\\nbody.skin-3 {\\r\\n background: $skin-3-nav-bg;\\r\\n}\\r\\n\\r\\n.skin-3 .navbar-static-top {\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.skin-3 .dashboard-header {\\r\\n background: transparent;\\r\\n border-bottom: none !important;\\r\\n border-top: none;\\r\\n padding: 20px 30px 10px 30px;\\r\\n}\\r\\n\\r\\n.skin-3 .wrapper-content {\\r\\n padding: 30px 15px;\\r\\n}\\r\\n\\r\\n.skin-3 #page-wrapper {\\r\\n background: $skin-3-page-bg;\\r\\n}\\r\\n\\r\\n.skin-3 .ibox-title, .skin-3 .ibox-content {\\r\\n border-width: 1px;\\r\\n}\\r\\n\\r\\n.skin-3 .ibox-content:last-child {\\r\\n border-style: solid solid solid solid;\\r\\n}\\r\\n\\r\\n.skin-3 .nav > li.active {\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.skin-3 .nav-header {\\r\\n padding: 35px 25px 25px 25px;\\r\\n}\\r\\n\\r\\n.skin-3 .nav-header a.dropdown-toggle {\\r\\n color: white;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.skin-3 .nav-header a.dropdown-toggle .text-muted {\\r\\n color: white;\\r\\n opacity: 0.8;\\r\\n}\\r\\n\\r\\n.skin-3 .profile-element {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.skin-3 .img-circle {\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.skin-3 .navbar-default .nav > li > a:hover, .skin-3 .navbar-default .nav > li > a:focus {\\r\\n background: darken($skin-3-nav-bg, 2%);\\r\\n color: white;\\r\\n}\\r\\n\\r\\n\\r\\n.skin-3 .nav.nav-tabs > li.active > a {\\r\\n color: #555;\\r\\n}\\r\\n.skin-3 .nav.nav-tabs > li.active {\\r\\n background: transparent;\\r\\n}\",\"@media (min-width: 768px) {\\r\\n #page-wrapper {\\r\\n position: inherit;\\r\\n margin: 0 0 0 $sidebar-width;\\r\\n min-height: 1200px;\\r\\n }\\r\\n .navbar-static-side {\\r\\n z-index: 1001;\\r\\n position: absolute;\\r\\n width: $sidebar-width;\\r\\n }\\r\\n .navbar-top-links .dropdown-messages,\\r\\n .navbar-top-links .dropdown-tasks,\\r\\n .navbar-top-links .dropdown-alerts {\\r\\n margin-left: auto;\\r\\n }\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n #page-wrapper {\\r\\n position: inherit;\\r\\n margin: 0 0 0 0px;\\r\\n min-height: 1000px;\\r\\n }\\r\\n .body-small .navbar-static-side {\\r\\n display: none;\\r\\n z-index:1001;\\r\\n position: absolute;\\r\\n width: 70px;\\r\\n }\\r\\n .body-small.mini-navbar .navbar-static-side {\\r\\n display: block;\\r\\n }\\r\\n .lock-word {\\r\\n display: none;\\r\\n }\\r\\n .navbar-form-custom {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n .navbar-header {\\r\\n display: inline;\\r\\n float: left;\\r\\n }\\r\\n .sidebard-panel {\\r\\n z-index: 2;\\r\\n position: relative;\\r\\n width: auto;\\r\\n min-height: 100% !important;\\r\\n }\\r\\n .sidebar-content .wrapper {\\r\\n padding-right: 0px;\\r\\n z-index: 1;\\r\\n }\\r\\n .fixed-sidebar.body-small .navbar-static-side {\\r\\n display: none;\\r\\n z-index: 1001;\\r\\n position: fixed;\\r\\n width: $sidebar-width;\\r\\n }\\r\\n .fixed-sidebar.body-small.mini-navbar .navbar-static-side {\\r\\n display: block;\\r\\n }\\r\\n\\r\\n .ibox-tools {\\r\\n float: none;\\r\\n text-align: right;\\r\\n display: block;\\r\\n }\\r\\n}\\r\\n\\r\\n@media (max-width: 350px) {\\r\\n .timeline-item .date {\\r\\n text-align: left;\\r\\n width: 110px;\\r\\n position: relative;\\r\\n padding-top: 30px;\\r\\n }\\r\\n .timeline-item .date i {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 15px;\\r\\n padding: 5px;\\r\\n width: 30px;\\r\\n text-align: center;\\r\\n border: 1px solid $border-color;\\r\\n background: #f8f8f8;\\r\\n }\\r\\n .timeline-item .content {\\r\\n border-left: none;\\r\\n border-top: 1px solid $border-color;\\r\\n padding-top: 10px;\\r\\n min-height: 100px;\\r\\n }\\r\\n .nav.navbar-top-links li.dropdown {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n .ibox-tools {\\r\\n float: none;\\r\\n text-align: left;\\r\\n display: inline-block;\\r\\n }\\r\\n}\\r\\n\",\"/* Only demo */\\r\\n@media (max-width: 1000px) {\\r\\n .welcome-message {\\r\\n display: none;\\r\\n }\\r\\n}\\r\\n\\r\\n.lightBoxGallery {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.lightBoxGallery img {\\r\\n margin: 5px;\\r\\n}\",\"/*\\r\\n *\\r\\n * INSPINIA - Responsive Admin Theme\\r\\n * version 2.2\\r\\n *\\r\\n*/\\r\\n\\r\\n// Google Fonts\\r\\n@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap');\\r\\n\\r\\n\\r\\n// Variables, Mixins\\r\\n@import \\\"variables\\\";\\r\\n@import \\\"mixins\\\";\\r\\n\\r\\n// INSPINIA Theme Elements\\r\\n@import \\\"typography\\\";\\r\\n@import \\\"navigation\\\";\\r\\n@import \\\"top_navigation\\\";\\r\\n@import \\\"buttons\\\";\\r\\n@import \\\"badgets_labels\\\";\\r\\n@import \\\"elements\\\";\\r\\n@import \\\"sidebar\\\";\\r\\n@import \\\"base\\\";\\r\\n@import \\\"pages\\\";\\r\\n@import \\\"chat\\\";\\r\\n@import \\\"metismenu\\\";\\r\\n@import \\\"spinners\\\";\\r\\n\\r\\n// Landing page\\r\\n/*@import \\\"landing\\\";*/\\r\\n\\r\\n// RTL Support\\r\\n@import \\\"rtl\\\";\\r\\n\\r\\n// For demo only - config box style\\r\\n@import \\\"theme-config\\\";\\r\\n\\r\\n// INSPINIA Skins\\r\\n@import \\\"skins\\\";\\r\\n\\r\\n// Media query style\\r\\n@import \\\"media\\\";\\r\\n\\r\\n// Custom style\\r\\n// Your custom style to override base style\\r\\n@import \\\"custom\\\";\\r\\n\\r\\nbody {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\",\".toast-title {\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.toast-message {\\r\\n word-wrap: break-word;\\r\\n}\\r\\n\\r\\n.toast-close-button {\\r\\n position: relative;\\r\\n right: -4px;\\r\\n top: -12px;\\r\\n float: right;\\r\\n font-size: 20px;\\r\\n font-weight: bold;\\r\\n color: rgb(103, 106, 108);\\r\\n -webkit-text-shadow: 0 1px 0 #ffffff;\\r\\n text-shadow: 0 1px 0 #ffffff;\\r\\n opacity: 0.8;\\r\\n outline: none;\\r\\n}\\r\\n\\r\\n .toast-close-button:hover,\\r\\n .toast-close-button:focus {\\r\\n color: #000000;\\r\\n text-decoration: none;\\r\\n cursor: pointer;\\r\\n opacity: 0.4;\\r\\n }\\r\\n/*Additional properties for button version\\r\\n iOS requires the button element instead of an anchor tag.\\r\\n If you want the anchor version, it requires `href=\\\"#\\\"`.*/\\r\\nbutton.toast-close-button {\\r\\n padding: 0;\\r\\n cursor: pointer;\\r\\n background: transparent;\\r\\n border: 0;\\r\\n -webkit-appearance: none;\\r\\n}\\r\\n\\r\\n.toast-top-center {\\r\\n top: 0;\\r\\n right: 0;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.toast-bottom-center {\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.toast-top-full-width {\\r\\n top: 0;\\r\\n right: 0;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.toast-bottom-full-width {\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.toast-top-left {\\r\\n top: 12px;\\r\\n left: 12px;\\r\\n}\\r\\n\\r\\n.toast-top-right {\\r\\n top: 12px;\\r\\n right: 12px;\\r\\n}\\r\\n\\r\\n.toast-bottom-right {\\r\\n right: 12px;\\r\\n bottom: 12px;\\r\\n}\\r\\n\\r\\n.toast-bottom-left {\\r\\n bottom: 12px;\\r\\n left: 12px;\\r\\n}\\r\\n\\r\\n#toast-container {\\r\\n position: fixed;\\r\\n z-index: 999999;\\r\\n /*overrides*/\\r\\n}\\r\\n\\r\\n #toast-container * {\\r\\n -moz-box-sizing: border-box;\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n }\\r\\n\\r\\n #toast-container .toast {\\r\\n position: relative;\\r\\n overflow: hidden;\\r\\n margin: 0 0 6px;\\r\\n padding: 15px 15px 15px 50px;\\r\\n width: 300px;\\r\\n -moz-border-radius: 3px 3px 3px 3px;\\r\\n -webkit-border-radius: 3px 3px 3px 3px;\\r\\n\\r\\n border-radius: 3px 3px 3px 3px;\\r\\n background-position: 15px center;\\r\\n background-repeat: no-repeat;\\r\\n /*-moz-box-shadow: 0 0 12px #999999;\\r\\n -webkit-box-shadow: 0 0 12px #999999;\\r\\n box-shadow: 0 0 12px #999999;*/\\r\\n color: #FFFFFF;\\r\\n color: rgb(103, 106, 108);\\r\\n opacity: 0.8;\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n #toast-container .toast > div {\\r\\n margin-left: 5px;\\r\\n }\\r\\n\\r\\n #toast-container .toast:hover {\\r\\n -moz-box-shadow: 0 0 12px #808080;\\r\\n -webkit-box-shadow: 0 0 12px #808080;\\r\\n box-shadow: 0 0 12px #808080;\\r\\n opacity: 1;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n.toast.toast-error, .toast.toast-loading, .toast.toast-info, .toast.toast-success, .toast.toast-warning {\\r\\n background-size: 34px;\\r\\n}\\r\\n\\r\\n\\r\\n.toast-loading {\\r\\n background-image: url('data:image/gif;base64,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');\\r\\n}\\r\\n\\r\\n.toast-info {\\r\\n background-image: url('../Content/Images/SVG/icons8-Info Squared.svg');\\r\\n}\\r\\n\\r\\n.toast-error {\\r\\n background-image: url('../Content/Images/SVG/icons8-WarningRed.svg');\\r\\n}\\r\\n\\r\\n.toast-success {\\r\\n background-image: url('../Content/Images/SVG/icons8-Ok.svg');\\r\\n}\\r\\n\\r\\n.toast-warning {\\r\\n background-image: url('../Content/Images/SVG/icons8-Warning.svg');\\r\\n}\\r\\n\\r\\n#toast-container.toast-top-center .toast,\\r\\n#toast-container.toast-bottom-center .toast {\\r\\n width: 300px;\\r\\n margin-left: auto;\\r\\n margin-right: auto;\\r\\n}\\r\\n\\r\\n#toast-container.toast-top-full-width .toast,\\r\\n#toast-container.toast-bottom-full-width .toast {\\r\\n width: 96%;\\r\\n margin-left: auto;\\r\\n margin-right: auto;\\r\\n}\\r\\n\\r\\n.toast {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.toast-success {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.toast-error {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.toast-info {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.toast-warning {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\nprogress-bar {\\r\\n position: absolute;\\r\\n left: 0;\\r\\n bottom: 0;\\r\\n height: 2px;\\r\\n background-color: #2675B3;\\r\\n opacity: 0.4;\\r\\n}\\r\\n/*Animations*/\\r\\ndiv[toast] {\\r\\n opacity: 1 !important;\\r\\n}\\r\\n\\r\\n div[toast].ng-enter {\\r\\n opacity: 0 !important;\\r\\n transition: opacity .3s linear;\\r\\n }\\r\\n\\r\\n div[toast].ng-enter.ng-enter-active {\\r\\n opacity: 1 !important;\\r\\n }\\r\\n\\r\\n div[toast].ng-leave {\\r\\n opacity: 1;\\r\\n transition: opacity .3s linear;\\r\\n }\\r\\n\\r\\n div[toast].ng-leave.ng-leave-active {\\r\\n opacity: 0 !important;\\r\\n }\\r\\n/*Responsive Design*/\\r\\n@media all and (max-width: 240px) {\\r\\n #toast-container .toast.div {\\r\\n padding: 8px 8px 8px 50px;\\r\\n width: 11em;\\r\\n }\\r\\n\\r\\n #toast-container .toast-close-button {\\r\\n right: -0.2em;\\r\\n top: -0.2em;\\r\\n }\\r\\n}\\r\\n\\r\\n@media all and (min-width: 241px) and (max-width: 480px) {\\r\\n #toast-container .toast.div {\\r\\n padding: 8px 8px 8px 50px;\\r\\n width: 18em;\\r\\n }\\r\\n\\r\\n #toast-container .toast-close-button {\\r\\n right: -0.2em;\\r\\n top: -0.2em;\\r\\n }\\r\\n}\\r\\n\\r\\n@media all and (min-width: 481px) and (max-width: 768px) {\\r\\n #toast-container .toast.div {\\r\\n padding: 15px 15px 15px 50px;\\r\\n width: 25em;\\r\\n }\\r\\n}\\r\\n\\r\\n.toast-container-archive {\\r\\n -moz-box-sizing: border-box;\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n border-bottom: 1px solid #C2C4CC;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n .toast-container-archive .toast {\\r\\n overflow: hidden;\\r\\n padding: 30px 15px 30px 55px;\\r\\n background-position: 15px center;\\r\\n background-repeat: no-repeat;\\r\\n color: rgb(103, 106, 108);\\r\\n opacity: 1;\\r\\n }\\r\\n\\r\\n .toast-container-archive .toast:hover {\\r\\n -moz-box-shadow: 0 0 12px #e2e2e2;\\r\\n -webkit-box-shadow: 0 0 12px #e2e2e2;\\r\\n box-shadow: 0 0 12px #e2e2e2;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n .toast-container-archive .close-btn {\\r\\n background-color: transparent;\\r\\n cursor: pointer;\\r\\n border-radius: 0;\\r\\n color: rgb(222, 222, 222);\\r\\n }\\r\\n\\r\\n .toast-container-archive .close-btn:hover {\\r\\n background-color: #f73415;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n.toast-date {\\r\\n position: absolute;\\r\\n bottom: 6px;\\r\\n right: 15px;\\r\\n color: #b4b4b4;\\r\\n}\\r\\n\",\"/*!\\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\\n */\\n\\n@import \\\"variables\\\";\\n@import \\\"mixins\\\";\\n@import \\\"path\\\";\\n@import \\\"core\\\";\\n@import \\\"larger\\\";\\n@import \\\"fixed-width\\\";\\n@import \\\"list\\\";\\n@import \\\"bordered-pulled\\\";\\n@import \\\"animated\\\";\\n@import \\\"rotated-flipped\\\";\\n@import \\\"stacked\\\";\\n@import \\\"icons\\\";\\n@import \\\"screen-reader\\\";\\n\",\"/* FONT PATH\\n * -------------------------- */\\n\\n@font-face {\\n font-family: 'FontAwesome';\\n src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');\\n src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),\\n url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),\\n url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),\\n url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),\\n url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');\\n// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts\\n font-weight: normal;\\n font-style: normal;\\n}\\n\",\"// Base Class Definition\\n// -------------------------\\n\\n.#{$fa-css-prefix} {\\n display: inline-block;\\n font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration\\n font-size: inherit; // can't have font-size inherit on line above, so need to override\\n text-rendering: auto; // optimizelegibility throws things off #1094\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n\\n}\\n\",\"// Icon Sizes\\n// -------------------------\\n\\n/* makes the font 33% larger relative to the icon container */\\n.#{$fa-css-prefix}-lg {\\n font-size: (4em / 3);\\n line-height: (3em / 4);\\n vertical-align: -15%;\\n}\\n.#{$fa-css-prefix}-2x { font-size: 2em; }\\n.#{$fa-css-prefix}-3x { font-size: 3em; }\\n.#{$fa-css-prefix}-4x { font-size: 4em; }\\n.#{$fa-css-prefix}-5x { font-size: 5em; }\\n\",\"// Fixed Width Icons\\n// -------------------------\\n.#{$fa-css-prefix}-fw {\\n width: (18em / 14);\\n text-align: center;\\n}\\n\",\"// List Icons\\n// -------------------------\\n\\n.#{$fa-css-prefix}-ul {\\n padding-left: 0;\\n margin-left: $fa-li-width;\\n list-style-type: none;\\n > li { position: relative; }\\n}\\n.#{$fa-css-prefix}-li {\\n position: absolute;\\n left: -$fa-li-width;\\n width: $fa-li-width;\\n top: (2em / 14);\\n text-align: center;\\n &.#{$fa-css-prefix}-lg {\\n left: -$fa-li-width + (4em / 14);\\n }\\n}\\n\",\"// Variables\\n// --------------------------\\n\\n$fa-font-path: \\\"../fonts\\\" !default;\\n$fa-font-size-base: 14px !default;\\n$fa-line-height-base: 1 !default;\\n//$fa-font-path: \\\"//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts\\\" !default; // for referencing Bootstrap CDN font files directly\\n$fa-css-prefix: fa !default;\\n$fa-version: \\\"4.7.0\\\" !default;\\n$fa-border-color: #eee !default;\\n$fa-inverse: #fff !default;\\n$fa-li-width: (30em / 14) !default;\\n\\n$fa-var-500px: \\\"\\\\f26e\\\";\\n$fa-var-address-book: \\\"\\\\f2b9\\\";\\n$fa-var-address-book-o: \\\"\\\\f2ba\\\";\\n$fa-var-address-card: \\\"\\\\f2bb\\\";\\n$fa-var-address-card-o: \\\"\\\\f2bc\\\";\\n$fa-var-adjust: \\\"\\\\f042\\\";\\n$fa-var-adn: \\\"\\\\f170\\\";\\n$fa-var-align-center: \\\"\\\\f037\\\";\\n$fa-var-align-justify: \\\"\\\\f039\\\";\\n$fa-var-align-left: \\\"\\\\f036\\\";\\n$fa-var-align-right: \\\"\\\\f038\\\";\\n$fa-var-amazon: \\\"\\\\f270\\\";\\n$fa-var-ambulance: \\\"\\\\f0f9\\\";\\n$fa-var-american-sign-language-interpreting: \\\"\\\\f2a3\\\";\\n$fa-var-anchor: \\\"\\\\f13d\\\";\\n$fa-var-android: \\\"\\\\f17b\\\";\\n$fa-var-angellist: \\\"\\\\f209\\\";\\n$fa-var-angle-double-down: \\\"\\\\f103\\\";\\n$fa-var-angle-double-left: \\\"\\\\f100\\\";\\n$fa-var-angle-double-right: \\\"\\\\f101\\\";\\n$fa-var-angle-double-up: \\\"\\\\f102\\\";\\n$fa-var-angle-down: \\\"\\\\f107\\\";\\n$fa-var-angle-left: \\\"\\\\f104\\\";\\n$fa-var-angle-right: \\\"\\\\f105\\\";\\n$fa-var-angle-up: \\\"\\\\f106\\\";\\n$fa-var-apple: \\\"\\\\f179\\\";\\n$fa-var-archive: \\\"\\\\f187\\\";\\n$fa-var-area-chart: \\\"\\\\f1fe\\\";\\n$fa-var-arrow-circle-down: \\\"\\\\f0ab\\\";\\n$fa-var-arrow-circle-left: \\\"\\\\f0a8\\\";\\n$fa-var-arrow-circle-o-down: \\\"\\\\f01a\\\";\\n$fa-var-arrow-circle-o-left: \\\"\\\\f190\\\";\\n$fa-var-arrow-circle-o-right: \\\"\\\\f18e\\\";\\n$fa-var-arrow-circle-o-up: \\\"\\\\f01b\\\";\\n$fa-var-arrow-circle-right: \\\"\\\\f0a9\\\";\\n$fa-var-arrow-circle-up: \\\"\\\\f0aa\\\";\\n$fa-var-arrow-down: \\\"\\\\f063\\\";\\n$fa-var-arrow-left: \\\"\\\\f060\\\";\\n$fa-var-arrow-right: \\\"\\\\f061\\\";\\n$fa-var-arrow-up: \\\"\\\\f062\\\";\\n$fa-var-arrows: \\\"\\\\f047\\\";\\n$fa-var-arrows-alt: \\\"\\\\f0b2\\\";\\n$fa-var-arrows-h: \\\"\\\\f07e\\\";\\n$fa-var-arrows-v: \\\"\\\\f07d\\\";\\n$fa-var-asl-interpreting: \\\"\\\\f2a3\\\";\\n$fa-var-assistive-listening-systems: \\\"\\\\f2a2\\\";\\n$fa-var-asterisk: \\\"\\\\f069\\\";\\n$fa-var-at: \\\"\\\\f1fa\\\";\\n$fa-var-audio-description: \\\"\\\\f29e\\\";\\n$fa-var-automobile: \\\"\\\\f1b9\\\";\\n$fa-var-backward: \\\"\\\\f04a\\\";\\n$fa-var-balance-scale: \\\"\\\\f24e\\\";\\n$fa-var-ban: \\\"\\\\f05e\\\";\\n$fa-var-bandcamp: \\\"\\\\f2d5\\\";\\n$fa-var-bank: \\\"\\\\f19c\\\";\\n$fa-var-bar-chart: \\\"\\\\f080\\\";\\n$fa-var-bar-chart-o: \\\"\\\\f080\\\";\\n$fa-var-barcode: \\\"\\\\f02a\\\";\\n$fa-var-bars: \\\"\\\\f0c9\\\";\\n$fa-var-bath: \\\"\\\\f2cd\\\";\\n$fa-var-bathtub: \\\"\\\\f2cd\\\";\\n$fa-var-battery: \\\"\\\\f240\\\";\\n$fa-var-battery-0: \\\"\\\\f244\\\";\\n$fa-var-battery-1: \\\"\\\\f243\\\";\\n$fa-var-battery-2: \\\"\\\\f242\\\";\\n$fa-var-battery-3: \\\"\\\\f241\\\";\\n$fa-var-battery-4: \\\"\\\\f240\\\";\\n$fa-var-battery-empty: \\\"\\\\f244\\\";\\n$fa-var-battery-full: \\\"\\\\f240\\\";\\n$fa-var-battery-half: \\\"\\\\f242\\\";\\n$fa-var-battery-quarter: \\\"\\\\f243\\\";\\n$fa-var-battery-three-quarters: \\\"\\\\f241\\\";\\n$fa-var-bed: \\\"\\\\f236\\\";\\n$fa-var-beer: \\\"\\\\f0fc\\\";\\n$fa-var-behance: \\\"\\\\f1b4\\\";\\n$fa-var-behance-square: \\\"\\\\f1b5\\\";\\n$fa-var-bell: \\\"\\\\f0f3\\\";\\n$fa-var-bell-o: \\\"\\\\f0a2\\\";\\n$fa-var-bell-slash: \\\"\\\\f1f6\\\";\\n$fa-var-bell-slash-o: \\\"\\\\f1f7\\\";\\n$fa-var-bicycle: \\\"\\\\f206\\\";\\n$fa-var-binoculars: \\\"\\\\f1e5\\\";\\n$fa-var-birthday-cake: \\\"\\\\f1fd\\\";\\n$fa-var-bitbucket: \\\"\\\\f171\\\";\\n$fa-var-bitbucket-square: \\\"\\\\f172\\\";\\n$fa-var-bitcoin: \\\"\\\\f15a\\\";\\n$fa-var-black-tie: \\\"\\\\f27e\\\";\\n$fa-var-blind: \\\"\\\\f29d\\\";\\n$fa-var-bluetooth: \\\"\\\\f293\\\";\\n$fa-var-bluetooth-b: \\\"\\\\f294\\\";\\n$fa-var-bold: \\\"\\\\f032\\\";\\n$fa-var-bolt: \\\"\\\\f0e7\\\";\\n$fa-var-bomb: \\\"\\\\f1e2\\\";\\n$fa-var-book: \\\"\\\\f02d\\\";\\n$fa-var-bookmark: \\\"\\\\f02e\\\";\\n$fa-var-bookmark-o: \\\"\\\\f097\\\";\\n$fa-var-braille: \\\"\\\\f2a1\\\";\\n$fa-var-briefcase: \\\"\\\\f0b1\\\";\\n$fa-var-btc: \\\"\\\\f15a\\\";\\n$fa-var-bug: \\\"\\\\f188\\\";\\n$fa-var-building: \\\"\\\\f1ad\\\";\\n$fa-var-building-o: \\\"\\\\f0f7\\\";\\n$fa-var-bullhorn: \\\"\\\\f0a1\\\";\\n$fa-var-bullseye: \\\"\\\\f140\\\";\\n$fa-var-bus: \\\"\\\\f207\\\";\\n$fa-var-buysellads: \\\"\\\\f20d\\\";\\n$fa-var-cab: \\\"\\\\f1ba\\\";\\n$fa-var-calculator: \\\"\\\\f1ec\\\";\\n$fa-var-calendar: \\\"\\\\f073\\\";\\n$fa-var-calendar-check-o: \\\"\\\\f274\\\";\\n$fa-var-calendar-minus-o: \\\"\\\\f272\\\";\\n$fa-var-calendar-o: \\\"\\\\f133\\\";\\n$fa-var-calendar-plus-o: \\\"\\\\f271\\\";\\n$fa-var-calendar-times-o: \\\"\\\\f273\\\";\\n$fa-var-camera: \\\"\\\\f030\\\";\\n$fa-var-camera-retro: \\\"\\\\f083\\\";\\n$fa-var-car: \\\"\\\\f1b9\\\";\\n$fa-var-caret-down: \\\"\\\\f0d7\\\";\\n$fa-var-caret-left: \\\"\\\\f0d9\\\";\\n$fa-var-caret-right: \\\"\\\\f0da\\\";\\n$fa-var-caret-square-o-down: \\\"\\\\f150\\\";\\n$fa-var-caret-square-o-left: \\\"\\\\f191\\\";\\n$fa-var-caret-square-o-right: \\\"\\\\f152\\\";\\n$fa-var-caret-square-o-up: \\\"\\\\f151\\\";\\n$fa-var-caret-up: \\\"\\\\f0d8\\\";\\n$fa-var-cart-arrow-down: \\\"\\\\f218\\\";\\n$fa-var-cart-plus: \\\"\\\\f217\\\";\\n$fa-var-cc: \\\"\\\\f20a\\\";\\n$fa-var-cc-amex: \\\"\\\\f1f3\\\";\\n$fa-var-cc-diners-club: \\\"\\\\f24c\\\";\\n$fa-var-cc-discover: \\\"\\\\f1f2\\\";\\n$fa-var-cc-jcb: \\\"\\\\f24b\\\";\\n$fa-var-cc-mastercard: \\\"\\\\f1f1\\\";\\n$fa-var-cc-paypal: \\\"\\\\f1f4\\\";\\n$fa-var-cc-stripe: \\\"\\\\f1f5\\\";\\n$fa-var-cc-visa: \\\"\\\\f1f0\\\";\\n$fa-var-certificate: \\\"\\\\f0a3\\\";\\n$fa-var-chain: \\\"\\\\f0c1\\\";\\n$fa-var-chain-broken: \\\"\\\\f127\\\";\\n$fa-var-check: \\\"\\\\f00c\\\";\\n$fa-var-check-circle: \\\"\\\\f058\\\";\\n$fa-var-check-circle-o: \\\"\\\\f05d\\\";\\n$fa-var-check-square: \\\"\\\\f14a\\\";\\n$fa-var-check-square-o: \\\"\\\\f046\\\";\\n$fa-var-chevron-circle-down: \\\"\\\\f13a\\\";\\n$fa-var-chevron-circle-left: \\\"\\\\f137\\\";\\n$fa-var-chevron-circle-right: \\\"\\\\f138\\\";\\n$fa-var-chevron-circle-up: \\\"\\\\f139\\\";\\n$fa-var-chevron-down: \\\"\\\\f078\\\";\\n$fa-var-chevron-left: \\\"\\\\f053\\\";\\n$fa-var-chevron-right: \\\"\\\\f054\\\";\\n$fa-var-chevron-up: \\\"\\\\f077\\\";\\n$fa-var-child: \\\"\\\\f1ae\\\";\\n$fa-var-chrome: \\\"\\\\f268\\\";\\n$fa-var-circle: \\\"\\\\f111\\\";\\n$fa-var-circle-o: \\\"\\\\f10c\\\";\\n$fa-var-circle-o-notch: \\\"\\\\f1ce\\\";\\n$fa-var-circle-thin: \\\"\\\\f1db\\\";\\n$fa-var-clipboard: \\\"\\\\f0ea\\\";\\n$fa-var-clock-o: \\\"\\\\f017\\\";\\n$fa-var-clone: \\\"\\\\f24d\\\";\\n$fa-var-close: \\\"\\\\f00d\\\";\\n$fa-var-cloud: \\\"\\\\f0c2\\\";\\n$fa-var-cloud-download: \\\"\\\\f0ed\\\";\\n$fa-var-cloud-upload: \\\"\\\\f0ee\\\";\\n$fa-var-cny: \\\"\\\\f157\\\";\\n$fa-var-code: \\\"\\\\f121\\\";\\n$fa-var-code-fork: \\\"\\\\f126\\\";\\n$fa-var-codepen: \\\"\\\\f1cb\\\";\\n$fa-var-codiepie: \\\"\\\\f284\\\";\\n$fa-var-coffee: \\\"\\\\f0f4\\\";\\n$fa-var-cog: \\\"\\\\f013\\\";\\n$fa-var-cogs: \\\"\\\\f085\\\";\\n$fa-var-columns: \\\"\\\\f0db\\\";\\n$fa-var-comment: \\\"\\\\f075\\\";\\n$fa-var-comment-o: \\\"\\\\f0e5\\\";\\n$fa-var-commenting: \\\"\\\\f27a\\\";\\n$fa-var-commenting-o: \\\"\\\\f27b\\\";\\n$fa-var-comments: \\\"\\\\f086\\\";\\n$fa-var-comments-o: \\\"\\\\f0e6\\\";\\n$fa-var-compass: \\\"\\\\f14e\\\";\\n$fa-var-compress: \\\"\\\\f066\\\";\\n$fa-var-connectdevelop: \\\"\\\\f20e\\\";\\n$fa-var-contao: \\\"\\\\f26d\\\";\\n$fa-var-copy: \\\"\\\\f0c5\\\";\\n$fa-var-copyright: \\\"\\\\f1f9\\\";\\n$fa-var-creative-commons: \\\"\\\\f25e\\\";\\n$fa-var-credit-card: \\\"\\\\f09d\\\";\\n$fa-var-credit-card-alt: \\\"\\\\f283\\\";\\n$fa-var-crop: \\\"\\\\f125\\\";\\n$fa-var-crosshairs: \\\"\\\\f05b\\\";\\n$fa-var-css3: \\\"\\\\f13c\\\";\\n$fa-var-cube: \\\"\\\\f1b2\\\";\\n$fa-var-cubes: \\\"\\\\f1b3\\\";\\n$fa-var-cut: \\\"\\\\f0c4\\\";\\n$fa-var-cutlery: \\\"\\\\f0f5\\\";\\n$fa-var-dashboard: \\\"\\\\f0e4\\\";\\n$fa-var-dashcube: \\\"\\\\f210\\\";\\n$fa-var-database: \\\"\\\\f1c0\\\";\\n$fa-var-deaf: \\\"\\\\f2a4\\\";\\n$fa-var-deafness: \\\"\\\\f2a4\\\";\\n$fa-var-dedent: \\\"\\\\f03b\\\";\\n$fa-var-delicious: \\\"\\\\f1a5\\\";\\n$fa-var-desktop: \\\"\\\\f108\\\";\\n$fa-var-deviantart: \\\"\\\\f1bd\\\";\\n$fa-var-diamond: \\\"\\\\f219\\\";\\n$fa-var-digg: \\\"\\\\f1a6\\\";\\n$fa-var-dollar: \\\"\\\\f155\\\";\\n$fa-var-dot-circle-o: \\\"\\\\f192\\\";\\n$fa-var-download: \\\"\\\\f019\\\";\\n$fa-var-dribbble: \\\"\\\\f17d\\\";\\n$fa-var-drivers-license: \\\"\\\\f2c2\\\";\\n$fa-var-drivers-license-o: \\\"\\\\f2c3\\\";\\n$fa-var-dropbox: \\\"\\\\f16b\\\";\\n$fa-var-drupal: \\\"\\\\f1a9\\\";\\n$fa-var-edge: \\\"\\\\f282\\\";\\n$fa-var-edit: \\\"\\\\f044\\\";\\n$fa-var-eercast: \\\"\\\\f2da\\\";\\n$fa-var-eject: \\\"\\\\f052\\\";\\n$fa-var-ellipsis-h: \\\"\\\\f141\\\";\\n$fa-var-ellipsis-v: \\\"\\\\f142\\\";\\n$fa-var-empire: \\\"\\\\f1d1\\\";\\n$fa-var-envelope: \\\"\\\\f0e0\\\";\\n$fa-var-envelope-o: \\\"\\\\f003\\\";\\n$fa-var-envelope-open: \\\"\\\\f2b6\\\";\\n$fa-var-envelope-open-o: \\\"\\\\f2b7\\\";\\n$fa-var-envelope-square: \\\"\\\\f199\\\";\\n$fa-var-envira: \\\"\\\\f299\\\";\\n$fa-var-eraser: \\\"\\\\f12d\\\";\\n$fa-var-etsy: \\\"\\\\f2d7\\\";\\n$fa-var-eur: \\\"\\\\f153\\\";\\n$fa-var-euro: \\\"\\\\f153\\\";\\n$fa-var-exchange: \\\"\\\\f0ec\\\";\\n$fa-var-exclamation: \\\"\\\\f12a\\\";\\n$fa-var-exclamation-circle: \\\"\\\\f06a\\\";\\n$fa-var-exclamation-triangle: \\\"\\\\f071\\\";\\n$fa-var-expand: \\\"\\\\f065\\\";\\n$fa-var-expeditedssl: \\\"\\\\f23e\\\";\\n$fa-var-external-link: \\\"\\\\f08e\\\";\\n$fa-var-external-link-square: \\\"\\\\f14c\\\";\\n$fa-var-eye: \\\"\\\\f06e\\\";\\n$fa-var-eye-slash: \\\"\\\\f070\\\";\\n$fa-var-eyedropper: \\\"\\\\f1fb\\\";\\n$fa-var-fa: \\\"\\\\f2b4\\\";\\n$fa-var-facebook: \\\"\\\\f09a\\\";\\n$fa-var-facebook-f: \\\"\\\\f09a\\\";\\n$fa-var-facebook-official: \\\"\\\\f230\\\";\\n$fa-var-facebook-square: \\\"\\\\f082\\\";\\n$fa-var-fast-backward: \\\"\\\\f049\\\";\\n$fa-var-fast-forward: \\\"\\\\f050\\\";\\n$fa-var-fax: \\\"\\\\f1ac\\\";\\n$fa-var-feed: \\\"\\\\f09e\\\";\\n$fa-var-female: \\\"\\\\f182\\\";\\n$fa-var-fighter-jet: \\\"\\\\f0fb\\\";\\n$fa-var-file: \\\"\\\\f15b\\\";\\n$fa-var-file-archive-o: \\\"\\\\f1c6\\\";\\n$fa-var-file-audio-o: \\\"\\\\f1c7\\\";\\n$fa-var-file-code-o: \\\"\\\\f1c9\\\";\\n$fa-var-file-excel-o: \\\"\\\\f1c3\\\";\\n$fa-var-file-image-o: \\\"\\\\f1c5\\\";\\n$fa-var-file-movie-o: \\\"\\\\f1c8\\\";\\n$fa-var-file-o: \\\"\\\\f016\\\";\\n$fa-var-file-pdf-o: \\\"\\\\f1c1\\\";\\n$fa-var-file-photo-o: \\\"\\\\f1c5\\\";\\n$fa-var-file-picture-o: \\\"\\\\f1c5\\\";\\n$fa-var-file-powerpoint-o: \\\"\\\\f1c4\\\";\\n$fa-var-file-sound-o: \\\"\\\\f1c7\\\";\\n$fa-var-file-text: \\\"\\\\f15c\\\";\\n$fa-var-file-text-o: \\\"\\\\f0f6\\\";\\n$fa-var-file-video-o: \\\"\\\\f1c8\\\";\\n$fa-var-file-word-o: \\\"\\\\f1c2\\\";\\n$fa-var-file-zip-o: \\\"\\\\f1c6\\\";\\n$fa-var-files-o: \\\"\\\\f0c5\\\";\\n$fa-var-film: \\\"\\\\f008\\\";\\n$fa-var-filter: \\\"\\\\f0b0\\\";\\n$fa-var-fire: \\\"\\\\f06d\\\";\\n$fa-var-fire-extinguisher: \\\"\\\\f134\\\";\\n$fa-var-firefox: \\\"\\\\f269\\\";\\n$fa-var-first-order: \\\"\\\\f2b0\\\";\\n$fa-var-flag: \\\"\\\\f024\\\";\\n$fa-var-flag-checkered: \\\"\\\\f11e\\\";\\n$fa-var-flag-o: \\\"\\\\f11d\\\";\\n$fa-var-flash: \\\"\\\\f0e7\\\";\\n$fa-var-flask: \\\"\\\\f0c3\\\";\\n$fa-var-flickr: \\\"\\\\f16e\\\";\\n$fa-var-floppy-o: \\\"\\\\f0c7\\\";\\n$fa-var-folder: \\\"\\\\f07b\\\";\\n$fa-var-folder-o: \\\"\\\\f114\\\";\\n$fa-var-folder-open: \\\"\\\\f07c\\\";\\n$fa-var-folder-open-o: \\\"\\\\f115\\\";\\n$fa-var-font: \\\"\\\\f031\\\";\\n$fa-var-font-awesome: \\\"\\\\f2b4\\\";\\n$fa-var-fonticons: \\\"\\\\f280\\\";\\n$fa-var-fort-awesome: \\\"\\\\f286\\\";\\n$fa-var-forumbee: \\\"\\\\f211\\\";\\n$fa-var-forward: \\\"\\\\f04e\\\";\\n$fa-var-foursquare: \\\"\\\\f180\\\";\\n$fa-var-free-code-camp: \\\"\\\\f2c5\\\";\\n$fa-var-frown-o: \\\"\\\\f119\\\";\\n$fa-var-futbol-o: \\\"\\\\f1e3\\\";\\n$fa-var-gamepad: \\\"\\\\f11b\\\";\\n$fa-var-gavel: \\\"\\\\f0e3\\\";\\n$fa-var-gbp: \\\"\\\\f154\\\";\\n$fa-var-ge: \\\"\\\\f1d1\\\";\\n$fa-var-gear: \\\"\\\\f013\\\";\\n$fa-var-gears: \\\"\\\\f085\\\";\\n$fa-var-genderless: \\\"\\\\f22d\\\";\\n$fa-var-get-pocket: \\\"\\\\f265\\\";\\n$fa-var-gg: \\\"\\\\f260\\\";\\n$fa-var-gg-circle: \\\"\\\\f261\\\";\\n$fa-var-gift: \\\"\\\\f06b\\\";\\n$fa-var-git: \\\"\\\\f1d3\\\";\\n$fa-var-git-square: \\\"\\\\f1d2\\\";\\n$fa-var-github: \\\"\\\\f09b\\\";\\n$fa-var-github-alt: \\\"\\\\f113\\\";\\n$fa-var-github-square: \\\"\\\\f092\\\";\\n$fa-var-gitlab: \\\"\\\\f296\\\";\\n$fa-var-gittip: \\\"\\\\f184\\\";\\n$fa-var-glass: \\\"\\\\f000\\\";\\n$fa-var-glide: \\\"\\\\f2a5\\\";\\n$fa-var-glide-g: \\\"\\\\f2a6\\\";\\n$fa-var-globe: \\\"\\\\f0ac\\\";\\n$fa-var-google: \\\"\\\\f1a0\\\";\\n$fa-var-google-plus: \\\"\\\\f0d5\\\";\\n$fa-var-google-plus-circle: \\\"\\\\f2b3\\\";\\n$fa-var-google-plus-official: \\\"\\\\f2b3\\\";\\n$fa-var-google-plus-square: \\\"\\\\f0d4\\\";\\n$fa-var-google-wallet: \\\"\\\\f1ee\\\";\\n$fa-var-graduation-cap: \\\"\\\\f19d\\\";\\n$fa-var-gratipay: \\\"\\\\f184\\\";\\n$fa-var-grav: \\\"\\\\f2d6\\\";\\n$fa-var-group: \\\"\\\\f0c0\\\";\\n$fa-var-h-square: \\\"\\\\f0fd\\\";\\n$fa-var-hacker-news: \\\"\\\\f1d4\\\";\\n$fa-var-hand-grab-o: \\\"\\\\f255\\\";\\n$fa-var-hand-lizard-o: \\\"\\\\f258\\\";\\n$fa-var-hand-o-down: \\\"\\\\f0a7\\\";\\n$fa-var-hand-o-left: \\\"\\\\f0a5\\\";\\n$fa-var-hand-o-right: \\\"\\\\f0a4\\\";\\n$fa-var-hand-o-up: \\\"\\\\f0a6\\\";\\n$fa-var-hand-paper-o: \\\"\\\\f256\\\";\\n$fa-var-hand-peace-o: \\\"\\\\f25b\\\";\\n$fa-var-hand-pointer-o: \\\"\\\\f25a\\\";\\n$fa-var-hand-rock-o: \\\"\\\\f255\\\";\\n$fa-var-hand-scissors-o: \\\"\\\\f257\\\";\\n$fa-var-hand-spock-o: \\\"\\\\f259\\\";\\n$fa-var-hand-stop-o: \\\"\\\\f256\\\";\\n$fa-var-handshake-o: \\\"\\\\f2b5\\\";\\n$fa-var-hard-of-hearing: \\\"\\\\f2a4\\\";\\n$fa-var-hashtag: \\\"\\\\f292\\\";\\n$fa-var-hdd-o: \\\"\\\\f0a0\\\";\\n$fa-var-header: \\\"\\\\f1dc\\\";\\n$fa-var-headphones: \\\"\\\\f025\\\";\\n$fa-var-heart: \\\"\\\\f004\\\";\\n$fa-var-heart-o: \\\"\\\\f08a\\\";\\n$fa-var-heartbeat: \\\"\\\\f21e\\\";\\n$fa-var-history: \\\"\\\\f1da\\\";\\n$fa-var-home: \\\"\\\\f015\\\";\\n$fa-var-hospital-o: \\\"\\\\f0f8\\\";\\n$fa-var-hotel: \\\"\\\\f236\\\";\\n$fa-var-hourglass: \\\"\\\\f254\\\";\\n$fa-var-hourglass-1: \\\"\\\\f251\\\";\\n$fa-var-hourglass-2: \\\"\\\\f252\\\";\\n$fa-var-hourglass-3: \\\"\\\\f253\\\";\\n$fa-var-hourglass-end: \\\"\\\\f253\\\";\\n$fa-var-hourglass-half: \\\"\\\\f252\\\";\\n$fa-var-hourglass-o: \\\"\\\\f250\\\";\\n$fa-var-hourglass-start: \\\"\\\\f251\\\";\\n$fa-var-houzz: \\\"\\\\f27c\\\";\\n$fa-var-html5: \\\"\\\\f13b\\\";\\n$fa-var-i-cursor: \\\"\\\\f246\\\";\\n$fa-var-id-badge: \\\"\\\\f2c1\\\";\\n$fa-var-id-card: \\\"\\\\f2c2\\\";\\n$fa-var-id-card-o: \\\"\\\\f2c3\\\";\\n$fa-var-ils: \\\"\\\\f20b\\\";\\n$fa-var-image: \\\"\\\\f03e\\\";\\n$fa-var-imdb: \\\"\\\\f2d8\\\";\\n$fa-var-inbox: \\\"\\\\f01c\\\";\\n$fa-var-indent: \\\"\\\\f03c\\\";\\n$fa-var-industry: \\\"\\\\f275\\\";\\n$fa-var-info: \\\"\\\\f129\\\";\\n$fa-var-info-circle: \\\"\\\\f05a\\\";\\n$fa-var-inr: \\\"\\\\f156\\\";\\n$fa-var-instagram: \\\"\\\\f16d\\\";\\n$fa-var-institution: \\\"\\\\f19c\\\";\\n$fa-var-internet-explorer: \\\"\\\\f26b\\\";\\n$fa-var-intersex: \\\"\\\\f224\\\";\\n$fa-var-ioxhost: \\\"\\\\f208\\\";\\n$fa-var-italic: \\\"\\\\f033\\\";\\n$fa-var-joomla: \\\"\\\\f1aa\\\";\\n$fa-var-jpy: \\\"\\\\f157\\\";\\n$fa-var-jsfiddle: \\\"\\\\f1cc\\\";\\n$fa-var-key: \\\"\\\\f084\\\";\\n$fa-var-keyboard-o: \\\"\\\\f11c\\\";\\n$fa-var-krw: \\\"\\\\f159\\\";\\n$fa-var-language: \\\"\\\\f1ab\\\";\\n$fa-var-laptop: \\\"\\\\f109\\\";\\n$fa-var-lastfm: \\\"\\\\f202\\\";\\n$fa-var-lastfm-square: \\\"\\\\f203\\\";\\n$fa-var-leaf: \\\"\\\\f06c\\\";\\n$fa-var-leanpub: \\\"\\\\f212\\\";\\n$fa-var-legal: \\\"\\\\f0e3\\\";\\n$fa-var-lemon-o: \\\"\\\\f094\\\";\\n$fa-var-level-down: \\\"\\\\f149\\\";\\n$fa-var-level-up: \\\"\\\\f148\\\";\\n$fa-var-life-bouy: \\\"\\\\f1cd\\\";\\n$fa-var-life-buoy: \\\"\\\\f1cd\\\";\\n$fa-var-life-ring: \\\"\\\\f1cd\\\";\\n$fa-var-life-saver: \\\"\\\\f1cd\\\";\\n$fa-var-lightbulb-o: \\\"\\\\f0eb\\\";\\n$fa-var-line-chart: \\\"\\\\f201\\\";\\n$fa-var-link: \\\"\\\\f0c1\\\";\\n$fa-var-linkedin: \\\"\\\\f0e1\\\";\\n$fa-var-linkedin-square: \\\"\\\\f08c\\\";\\n$fa-var-linode: \\\"\\\\f2b8\\\";\\n$fa-var-linux: \\\"\\\\f17c\\\";\\n$fa-var-list: \\\"\\\\f03a\\\";\\n$fa-var-list-alt: \\\"\\\\f022\\\";\\n$fa-var-list-ol: \\\"\\\\f0cb\\\";\\n$fa-var-list-ul: \\\"\\\\f0ca\\\";\\n$fa-var-location-arrow: \\\"\\\\f124\\\";\\n$fa-var-lock: \\\"\\\\f023\\\";\\n$fa-var-long-arrow-down: \\\"\\\\f175\\\";\\n$fa-var-long-arrow-left: \\\"\\\\f177\\\";\\n$fa-var-long-arrow-right: \\\"\\\\f178\\\";\\n$fa-var-long-arrow-up: \\\"\\\\f176\\\";\\n$fa-var-low-vision: \\\"\\\\f2a8\\\";\\n$fa-var-magic: \\\"\\\\f0d0\\\";\\n$fa-var-magnet: \\\"\\\\f076\\\";\\n$fa-var-mail-forward: \\\"\\\\f064\\\";\\n$fa-var-mail-reply: \\\"\\\\f112\\\";\\n$fa-var-mail-reply-all: \\\"\\\\f122\\\";\\n$fa-var-male: \\\"\\\\f183\\\";\\n$fa-var-map: \\\"\\\\f279\\\";\\n$fa-var-map-marker: \\\"\\\\f041\\\";\\n$fa-var-map-o: \\\"\\\\f278\\\";\\n$fa-var-map-pin: \\\"\\\\f276\\\";\\n$fa-var-map-signs: \\\"\\\\f277\\\";\\n$fa-var-mars: \\\"\\\\f222\\\";\\n$fa-var-mars-double: \\\"\\\\f227\\\";\\n$fa-var-mars-stroke: \\\"\\\\f229\\\";\\n$fa-var-mars-stroke-h: \\\"\\\\f22b\\\";\\n$fa-var-mars-stroke-v: \\\"\\\\f22a\\\";\\n$fa-var-maxcdn: \\\"\\\\f136\\\";\\n$fa-var-meanpath: \\\"\\\\f20c\\\";\\n$fa-var-medium: \\\"\\\\f23a\\\";\\n$fa-var-medkit: \\\"\\\\f0fa\\\";\\n$fa-var-meetup: \\\"\\\\f2e0\\\";\\n$fa-var-meh-o: \\\"\\\\f11a\\\";\\n$fa-var-mercury: \\\"\\\\f223\\\";\\n$fa-var-microchip: \\\"\\\\f2db\\\";\\n$fa-var-microphone: \\\"\\\\f130\\\";\\n$fa-var-microphone-slash: \\\"\\\\f131\\\";\\n$fa-var-minus: \\\"\\\\f068\\\";\\n$fa-var-minus-circle: \\\"\\\\f056\\\";\\n$fa-var-minus-square: \\\"\\\\f146\\\";\\n$fa-var-minus-square-o: \\\"\\\\f147\\\";\\n$fa-var-mixcloud: \\\"\\\\f289\\\";\\n$fa-var-mobile: \\\"\\\\f10b\\\";\\n$fa-var-mobile-phone: \\\"\\\\f10b\\\";\\n$fa-var-modx: \\\"\\\\f285\\\";\\n$fa-var-money: \\\"\\\\f0d6\\\";\\n$fa-var-moon-o: \\\"\\\\f186\\\";\\n$fa-var-mortar-board: \\\"\\\\f19d\\\";\\n$fa-var-motorcycle: \\\"\\\\f21c\\\";\\n$fa-var-mouse-pointer: \\\"\\\\f245\\\";\\n$fa-var-music: \\\"\\\\f001\\\";\\n$fa-var-navicon: \\\"\\\\f0c9\\\";\\n$fa-var-neuter: \\\"\\\\f22c\\\";\\n$fa-var-newspaper-o: \\\"\\\\f1ea\\\";\\n$fa-var-object-group: \\\"\\\\f247\\\";\\n$fa-var-object-ungroup: \\\"\\\\f248\\\";\\n$fa-var-odnoklassniki: \\\"\\\\f263\\\";\\n$fa-var-odnoklassniki-square: \\\"\\\\f264\\\";\\n$fa-var-opencart: \\\"\\\\f23d\\\";\\n$fa-var-openid: \\\"\\\\f19b\\\";\\n$fa-var-opera: \\\"\\\\f26a\\\";\\n$fa-var-optin-monster: \\\"\\\\f23c\\\";\\n$fa-var-outdent: \\\"\\\\f03b\\\";\\n$fa-var-pagelines: \\\"\\\\f18c\\\";\\n$fa-var-paint-brush: \\\"\\\\f1fc\\\";\\n$fa-var-paper-plane: \\\"\\\\f1d8\\\";\\n$fa-var-paper-plane-o: \\\"\\\\f1d9\\\";\\n$fa-var-paperclip: \\\"\\\\f0c6\\\";\\n$fa-var-paragraph: \\\"\\\\f1dd\\\";\\n$fa-var-paste: \\\"\\\\f0ea\\\";\\n$fa-var-pause: \\\"\\\\f04c\\\";\\n$fa-var-pause-circle: \\\"\\\\f28b\\\";\\n$fa-var-pause-circle-o: \\\"\\\\f28c\\\";\\n$fa-var-paw: \\\"\\\\f1b0\\\";\\n$fa-var-paypal: \\\"\\\\f1ed\\\";\\n$fa-var-pencil: \\\"\\\\f040\\\";\\n$fa-var-pencil-square: \\\"\\\\f14b\\\";\\n$fa-var-pencil-square-o: \\\"\\\\f044\\\";\\n$fa-var-percent: \\\"\\\\f295\\\";\\n$fa-var-phone: \\\"\\\\f095\\\";\\n$fa-var-phone-square: \\\"\\\\f098\\\";\\n$fa-var-photo: \\\"\\\\f03e\\\";\\n$fa-var-picture-o: \\\"\\\\f03e\\\";\\n$fa-var-pie-chart: \\\"\\\\f200\\\";\\n$fa-var-pied-piper: \\\"\\\\f2ae\\\";\\n$fa-var-pied-piper-alt: \\\"\\\\f1a8\\\";\\n$fa-var-pied-piper-pp: \\\"\\\\f1a7\\\";\\n$fa-var-pinterest: \\\"\\\\f0d2\\\";\\n$fa-var-pinterest-p: \\\"\\\\f231\\\";\\n$fa-var-pinterest-square: \\\"\\\\f0d3\\\";\\n$fa-var-plane: \\\"\\\\f072\\\";\\n$fa-var-play: \\\"\\\\f04b\\\";\\n$fa-var-play-circle: \\\"\\\\f144\\\";\\n$fa-var-play-circle-o: \\\"\\\\f01d\\\";\\n$fa-var-plug: \\\"\\\\f1e6\\\";\\n$fa-var-plus: \\\"\\\\f067\\\";\\n$fa-var-plus-circle: \\\"\\\\f055\\\";\\n$fa-var-plus-square: \\\"\\\\f0fe\\\";\\n$fa-var-plus-square-o: \\\"\\\\f196\\\";\\n$fa-var-podcast: \\\"\\\\f2ce\\\";\\n$fa-var-power-off: \\\"\\\\f011\\\";\\n$fa-var-print: \\\"\\\\f02f\\\";\\n$fa-var-product-hunt: \\\"\\\\f288\\\";\\n$fa-var-puzzle-piece: \\\"\\\\f12e\\\";\\n$fa-var-qq: \\\"\\\\f1d6\\\";\\n$fa-var-qrcode: \\\"\\\\f029\\\";\\n$fa-var-question: \\\"\\\\f128\\\";\\n$fa-var-question-circle: \\\"\\\\f059\\\";\\n$fa-var-question-circle-o: \\\"\\\\f29c\\\";\\n$fa-var-quora: \\\"\\\\f2c4\\\";\\n$fa-var-quote-left: \\\"\\\\f10d\\\";\\n$fa-var-quote-right: \\\"\\\\f10e\\\";\\n$fa-var-ra: \\\"\\\\f1d0\\\";\\n$fa-var-random: \\\"\\\\f074\\\";\\n$fa-var-ravelry: \\\"\\\\f2d9\\\";\\n$fa-var-rebel: \\\"\\\\f1d0\\\";\\n$fa-var-recycle: \\\"\\\\f1b8\\\";\\n$fa-var-reddit: \\\"\\\\f1a1\\\";\\n$fa-var-reddit-alien: \\\"\\\\f281\\\";\\n$fa-var-reddit-square: \\\"\\\\f1a2\\\";\\n$fa-var-refresh: \\\"\\\\f021\\\";\\n$fa-var-registered: \\\"\\\\f25d\\\";\\n$fa-var-remove: \\\"\\\\f00d\\\";\\n$fa-var-renren: \\\"\\\\f18b\\\";\\n$fa-var-reorder: \\\"\\\\f0c9\\\";\\n$fa-var-repeat: \\\"\\\\f01e\\\";\\n$fa-var-reply: \\\"\\\\f112\\\";\\n$fa-var-reply-all: \\\"\\\\f122\\\";\\n$fa-var-resistance: \\\"\\\\f1d0\\\";\\n$fa-var-retweet: \\\"\\\\f079\\\";\\n$fa-var-rmb: \\\"\\\\f157\\\";\\n$fa-var-road: \\\"\\\\f018\\\";\\n$fa-var-rocket: \\\"\\\\f135\\\";\\n$fa-var-rotate-left: \\\"\\\\f0e2\\\";\\n$fa-var-rotate-right: \\\"\\\\f01e\\\";\\n$fa-var-rouble: \\\"\\\\f158\\\";\\n$fa-var-rss: \\\"\\\\f09e\\\";\\n$fa-var-rss-square: \\\"\\\\f143\\\";\\n$fa-var-rub: \\\"\\\\f158\\\";\\n$fa-var-ruble: \\\"\\\\f158\\\";\\n$fa-var-rupee: \\\"\\\\f156\\\";\\n$fa-var-s15: \\\"\\\\f2cd\\\";\\n$fa-var-safari: \\\"\\\\f267\\\";\\n$fa-var-save: \\\"\\\\f0c7\\\";\\n$fa-var-scissors: \\\"\\\\f0c4\\\";\\n$fa-var-scribd: \\\"\\\\f28a\\\";\\n$fa-var-search: \\\"\\\\f002\\\";\\n$fa-var-search-minus: \\\"\\\\f010\\\";\\n$fa-var-search-plus: \\\"\\\\f00e\\\";\\n$fa-var-sellsy: \\\"\\\\f213\\\";\\n$fa-var-send: \\\"\\\\f1d8\\\";\\n$fa-var-send-o: \\\"\\\\f1d9\\\";\\n$fa-var-server: \\\"\\\\f233\\\";\\n$fa-var-share: \\\"\\\\f064\\\";\\n$fa-var-share-alt: \\\"\\\\f1e0\\\";\\n$fa-var-share-alt-square: \\\"\\\\f1e1\\\";\\n$fa-var-share-square: \\\"\\\\f14d\\\";\\n$fa-var-share-square-o: \\\"\\\\f045\\\";\\n$fa-var-shekel: \\\"\\\\f20b\\\";\\n$fa-var-sheqel: \\\"\\\\f20b\\\";\\n$fa-var-shield: \\\"\\\\f132\\\";\\n$fa-var-ship: \\\"\\\\f21a\\\";\\n$fa-var-shirtsinbulk: \\\"\\\\f214\\\";\\n$fa-var-shopping-bag: \\\"\\\\f290\\\";\\n$fa-var-shopping-basket: \\\"\\\\f291\\\";\\n$fa-var-shopping-cart: \\\"\\\\f07a\\\";\\n$fa-var-shower: \\\"\\\\f2cc\\\";\\n$fa-var-sign-in: \\\"\\\\f090\\\";\\n$fa-var-sign-language: \\\"\\\\f2a7\\\";\\n$fa-var-sign-out: \\\"\\\\f08b\\\";\\n$fa-var-signal: \\\"\\\\f012\\\";\\n$fa-var-signing: \\\"\\\\f2a7\\\";\\n$fa-var-simplybuilt: \\\"\\\\f215\\\";\\n$fa-var-sitemap: \\\"\\\\f0e8\\\";\\n$fa-var-skyatlas: \\\"\\\\f216\\\";\\n$fa-var-skype: \\\"\\\\f17e\\\";\\n$fa-var-slack: \\\"\\\\f198\\\";\\n$fa-var-sliders: \\\"\\\\f1de\\\";\\n$fa-var-slideshare: \\\"\\\\f1e7\\\";\\n$fa-var-smile-o: \\\"\\\\f118\\\";\\n$fa-var-snapchat: \\\"\\\\f2ab\\\";\\n$fa-var-snapchat-ghost: \\\"\\\\f2ac\\\";\\n$fa-var-snapchat-square: \\\"\\\\f2ad\\\";\\n$fa-var-snowflake-o: \\\"\\\\f2dc\\\";\\n$fa-var-soccer-ball-o: \\\"\\\\f1e3\\\";\\n$fa-var-sort: \\\"\\\\f0dc\\\";\\n$fa-var-sort-alpha-asc: \\\"\\\\f15d\\\";\\n$fa-var-sort-alpha-desc: \\\"\\\\f15e\\\";\\n$fa-var-sort-amount-asc: \\\"\\\\f160\\\";\\n$fa-var-sort-amount-desc: \\\"\\\\f161\\\";\\n$fa-var-sort-asc: \\\"\\\\f0de\\\";\\n$fa-var-sort-desc: \\\"\\\\f0dd\\\";\\n$fa-var-sort-down: \\\"\\\\f0dd\\\";\\n$fa-var-sort-numeric-asc: \\\"\\\\f162\\\";\\n$fa-var-sort-numeric-desc: \\\"\\\\f163\\\";\\n$fa-var-sort-up: \\\"\\\\f0de\\\";\\n$fa-var-soundcloud: \\\"\\\\f1be\\\";\\n$fa-var-space-shuttle: \\\"\\\\f197\\\";\\n$fa-var-spinner: \\\"\\\\f110\\\";\\n$fa-var-spoon: \\\"\\\\f1b1\\\";\\n$fa-var-spotify: \\\"\\\\f1bc\\\";\\n$fa-var-square: \\\"\\\\f0c8\\\";\\n$fa-var-square-o: \\\"\\\\f096\\\";\\n$fa-var-stack-exchange: \\\"\\\\f18d\\\";\\n$fa-var-stack-overflow: \\\"\\\\f16c\\\";\\n$fa-var-star: \\\"\\\\f005\\\";\\n$fa-var-star-half: \\\"\\\\f089\\\";\\n$fa-var-star-half-empty: \\\"\\\\f123\\\";\\n$fa-var-star-half-full: \\\"\\\\f123\\\";\\n$fa-var-star-half-o: \\\"\\\\f123\\\";\\n$fa-var-star-o: \\\"\\\\f006\\\";\\n$fa-var-steam: \\\"\\\\f1b6\\\";\\n$fa-var-steam-square: \\\"\\\\f1b7\\\";\\n$fa-var-step-backward: \\\"\\\\f048\\\";\\n$fa-var-step-forward: \\\"\\\\f051\\\";\\n$fa-var-stethoscope: \\\"\\\\f0f1\\\";\\n$fa-var-sticky-note: \\\"\\\\f249\\\";\\n$fa-var-sticky-note-o: \\\"\\\\f24a\\\";\\n$fa-var-stop: \\\"\\\\f04d\\\";\\n$fa-var-stop-circle: \\\"\\\\f28d\\\";\\n$fa-var-stop-circle-o: \\\"\\\\f28e\\\";\\n$fa-var-street-view: \\\"\\\\f21d\\\";\\n$fa-var-strikethrough: \\\"\\\\f0cc\\\";\\n$fa-var-stumbleupon: \\\"\\\\f1a4\\\";\\n$fa-var-stumbleupon-circle: \\\"\\\\f1a3\\\";\\n$fa-var-subscript: \\\"\\\\f12c\\\";\\n$fa-var-subway: \\\"\\\\f239\\\";\\n$fa-var-suitcase: \\\"\\\\f0f2\\\";\\n$fa-var-sun-o: \\\"\\\\f185\\\";\\n$fa-var-superpowers: \\\"\\\\f2dd\\\";\\n$fa-var-superscript: \\\"\\\\f12b\\\";\\n$fa-var-support: \\\"\\\\f1cd\\\";\\n$fa-var-table: \\\"\\\\f0ce\\\";\\n$fa-var-tablet: \\\"\\\\f10a\\\";\\n$fa-var-tachometer: \\\"\\\\f0e4\\\";\\n$fa-var-tag: \\\"\\\\f02b\\\";\\n$fa-var-tags: \\\"\\\\f02c\\\";\\n$fa-var-tasks: \\\"\\\\f0ae\\\";\\n$fa-var-taxi: \\\"\\\\f1ba\\\";\\n$fa-var-telegram: \\\"\\\\f2c6\\\";\\n$fa-var-television: \\\"\\\\f26c\\\";\\n$fa-var-tencent-weibo: \\\"\\\\f1d5\\\";\\n$fa-var-terminal: \\\"\\\\f120\\\";\\n$fa-var-text-height: \\\"\\\\f034\\\";\\n$fa-var-text-width: \\\"\\\\f035\\\";\\n$fa-var-th: \\\"\\\\f00a\\\";\\n$fa-var-th-large: \\\"\\\\f009\\\";\\n$fa-var-th-list: \\\"\\\\f00b\\\";\\n$fa-var-themeisle: \\\"\\\\f2b2\\\";\\n$fa-var-thermometer: \\\"\\\\f2c7\\\";\\n$fa-var-thermometer-0: \\\"\\\\f2cb\\\";\\n$fa-var-thermometer-1: \\\"\\\\f2ca\\\";\\n$fa-var-thermometer-2: \\\"\\\\f2c9\\\";\\n$fa-var-thermometer-3: \\\"\\\\f2c8\\\";\\n$fa-var-thermometer-4: \\\"\\\\f2c7\\\";\\n$fa-var-thermometer-empty: \\\"\\\\f2cb\\\";\\n$fa-var-thermometer-full: \\\"\\\\f2c7\\\";\\n$fa-var-thermometer-half: \\\"\\\\f2c9\\\";\\n$fa-var-thermometer-quarter: \\\"\\\\f2ca\\\";\\n$fa-var-thermometer-three-quarters: \\\"\\\\f2c8\\\";\\n$fa-var-thumb-tack: \\\"\\\\f08d\\\";\\n$fa-var-thumbs-down: \\\"\\\\f165\\\";\\n$fa-var-thumbs-o-down: \\\"\\\\f088\\\";\\n$fa-var-thumbs-o-up: \\\"\\\\f087\\\";\\n$fa-var-thumbs-up: \\\"\\\\f164\\\";\\n$fa-var-ticket: \\\"\\\\f145\\\";\\n$fa-var-times: \\\"\\\\f00d\\\";\\n$fa-var-times-circle: \\\"\\\\f057\\\";\\n$fa-var-times-circle-o: \\\"\\\\f05c\\\";\\n$fa-var-times-rectangle: \\\"\\\\f2d3\\\";\\n$fa-var-times-rectangle-o: \\\"\\\\f2d4\\\";\\n$fa-var-tint: \\\"\\\\f043\\\";\\n$fa-var-toggle-down: \\\"\\\\f150\\\";\\n$fa-var-toggle-left: \\\"\\\\f191\\\";\\n$fa-var-toggle-off: \\\"\\\\f204\\\";\\n$fa-var-toggle-on: \\\"\\\\f205\\\";\\n$fa-var-toggle-right: \\\"\\\\f152\\\";\\n$fa-var-toggle-up: \\\"\\\\f151\\\";\\n$fa-var-trademark: \\\"\\\\f25c\\\";\\n$fa-var-train: \\\"\\\\f238\\\";\\n$fa-var-transgender: \\\"\\\\f224\\\";\\n$fa-var-transgender-alt: \\\"\\\\f225\\\";\\n$fa-var-trash: \\\"\\\\f1f8\\\";\\n$fa-var-trash-o: \\\"\\\\f014\\\";\\n$fa-var-tree: \\\"\\\\f1bb\\\";\\n$fa-var-trello: \\\"\\\\f181\\\";\\n$fa-var-tripadvisor: \\\"\\\\f262\\\";\\n$fa-var-trophy: \\\"\\\\f091\\\";\\n$fa-var-truck: \\\"\\\\f0d1\\\";\\n$fa-var-try: \\\"\\\\f195\\\";\\n$fa-var-tty: \\\"\\\\f1e4\\\";\\n$fa-var-tumblr: \\\"\\\\f173\\\";\\n$fa-var-tumblr-square: \\\"\\\\f174\\\";\\n$fa-var-turkish-lira: \\\"\\\\f195\\\";\\n$fa-var-tv: \\\"\\\\f26c\\\";\\n$fa-var-twitch: \\\"\\\\f1e8\\\";\\n$fa-var-twitter: \\\"\\\\f099\\\";\\n$fa-var-twitter-square: \\\"\\\\f081\\\";\\n$fa-var-umbrella: \\\"\\\\f0e9\\\";\\n$fa-var-underline: \\\"\\\\f0cd\\\";\\n$fa-var-undo: \\\"\\\\f0e2\\\";\\n$fa-var-universal-access: \\\"\\\\f29a\\\";\\n$fa-var-university: \\\"\\\\f19c\\\";\\n$fa-var-unlink: \\\"\\\\f127\\\";\\n$fa-var-unlock: \\\"\\\\f09c\\\";\\n$fa-var-unlock-alt: \\\"\\\\f13e\\\";\\n$fa-var-unsorted: \\\"\\\\f0dc\\\";\\n$fa-var-upload: \\\"\\\\f093\\\";\\n$fa-var-usb: \\\"\\\\f287\\\";\\n$fa-var-usd: \\\"\\\\f155\\\";\\n$fa-var-user: \\\"\\\\f007\\\";\\n$fa-var-user-circle: \\\"\\\\f2bd\\\";\\n$fa-var-user-circle-o: \\\"\\\\f2be\\\";\\n$fa-var-user-md: \\\"\\\\f0f0\\\";\\n$fa-var-user-o: \\\"\\\\f2c0\\\";\\n$fa-var-user-plus: \\\"\\\\f234\\\";\\n$fa-var-user-secret: \\\"\\\\f21b\\\";\\n$fa-var-user-times: \\\"\\\\f235\\\";\\n$fa-var-users: \\\"\\\\f0c0\\\";\\n$fa-var-vcard: \\\"\\\\f2bb\\\";\\n$fa-var-vcard-o: \\\"\\\\f2bc\\\";\\n$fa-var-venus: \\\"\\\\f221\\\";\\n$fa-var-venus-double: \\\"\\\\f226\\\";\\n$fa-var-venus-mars: \\\"\\\\f228\\\";\\n$fa-var-viacoin: \\\"\\\\f237\\\";\\n$fa-var-viadeo: \\\"\\\\f2a9\\\";\\n$fa-var-viadeo-square: \\\"\\\\f2aa\\\";\\n$fa-var-video-camera: \\\"\\\\f03d\\\";\\n$fa-var-vimeo: \\\"\\\\f27d\\\";\\n$fa-var-vimeo-square: \\\"\\\\f194\\\";\\n$fa-var-vine: \\\"\\\\f1ca\\\";\\n$fa-var-vk: \\\"\\\\f189\\\";\\n$fa-var-volume-control-phone: \\\"\\\\f2a0\\\";\\n$fa-var-volume-down: \\\"\\\\f027\\\";\\n$fa-var-volume-off: \\\"\\\\f026\\\";\\n$fa-var-volume-up: \\\"\\\\f028\\\";\\n$fa-var-warning: \\\"\\\\f071\\\";\\n$fa-var-wechat: \\\"\\\\f1d7\\\";\\n$fa-var-weibo: \\\"\\\\f18a\\\";\\n$fa-var-weixin: \\\"\\\\f1d7\\\";\\n$fa-var-whatsapp: \\\"\\\\f232\\\";\\n$fa-var-wheelchair: \\\"\\\\f193\\\";\\n$fa-var-wheelchair-alt: \\\"\\\\f29b\\\";\\n$fa-var-wifi: \\\"\\\\f1eb\\\";\\n$fa-var-wikipedia-w: \\\"\\\\f266\\\";\\n$fa-var-window-close: \\\"\\\\f2d3\\\";\\n$fa-var-window-close-o: \\\"\\\\f2d4\\\";\\n$fa-var-window-maximize: \\\"\\\\f2d0\\\";\\n$fa-var-window-minimize: \\\"\\\\f2d1\\\";\\n$fa-var-window-restore: \\\"\\\\f2d2\\\";\\n$fa-var-windows: \\\"\\\\f17a\\\";\\n$fa-var-won: \\\"\\\\f159\\\";\\n$fa-var-wordpress: \\\"\\\\f19a\\\";\\n$fa-var-wpbeginner: \\\"\\\\f297\\\";\\n$fa-var-wpexplorer: \\\"\\\\f2de\\\";\\n$fa-var-wpforms: \\\"\\\\f298\\\";\\n$fa-var-wrench: \\\"\\\\f0ad\\\";\\n$fa-var-xing: \\\"\\\\f168\\\";\\n$fa-var-xing-square: \\\"\\\\f169\\\";\\n$fa-var-y-combinator: \\\"\\\\f23b\\\";\\n$fa-var-y-combinator-square: \\\"\\\\f1d4\\\";\\n$fa-var-yahoo: \\\"\\\\f19e\\\";\\n$fa-var-yc: \\\"\\\\f23b\\\";\\n$fa-var-yc-square: \\\"\\\\f1d4\\\";\\n$fa-var-yelp: \\\"\\\\f1e9\\\";\\n$fa-var-yen: \\\"\\\\f157\\\";\\n$fa-var-yoast: \\\"\\\\f2b1\\\";\\n$fa-var-youtube: \\\"\\\\f167\\\";\\n$fa-var-youtube-play: \\\"\\\\f16a\\\";\\n$fa-var-youtube-square: \\\"\\\\f166\\\";\\n\\n\",\"// Bordered & Pulled\\n// -------------------------\\n\\n.#{$fa-css-prefix}-border {\\n padding: .2em .25em .15em;\\n border: solid .08em $fa-border-color;\\n border-radius: .1em;\\n}\\n\\n.#{$fa-css-prefix}-pull-left { float: left; }\\n.#{$fa-css-prefix}-pull-right { float: right; }\\n\\n.#{$fa-css-prefix} {\\n &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }\\n &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }\\n}\\n\\n/* Deprecated as of 4.4.0 */\\n.pull-right { float: right; }\\n.pull-left { float: left; }\\n\\n.#{$fa-css-prefix} {\\n &.pull-left { margin-right: .3em; }\\n &.pull-right { margin-left: .3em; }\\n}\\n\",\"// Spinning Icons\\n// --------------------------\\n\\n.#{$fa-css-prefix}-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.#{$fa-css-prefix}-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(359deg);\\n transform: rotate(359deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(359deg);\\n transform: rotate(359deg);\\n }\\n}\\n\",\"// Rotated & Flipped Icons\\n// -------------------------\\n\\n.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }\\n.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }\\n.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }\\n\\n.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }\\n.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }\\n\\n// Hook for IE8-9\\n// -------------------------\\n\\n:root .#{$fa-css-prefix}-rotate-90,\\n:root .#{$fa-css-prefix}-rotate-180,\\n:root .#{$fa-css-prefix}-rotate-270,\\n:root .#{$fa-css-prefix}-flip-horizontal,\\n:root .#{$fa-css-prefix}-flip-vertical {\\n filter: none;\\n}\\n\",\"// Mixins\\n// --------------------------\\n\\n@mixin fa-icon() {\\n display: inline-block;\\n font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration\\n font-size: inherit; // can't have font-size inherit on line above, so need to override\\n text-rendering: auto; // optimizelegibility throws things off #1094\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n\\n}\\n\\n@mixin fa-icon-rotate($degrees, $rotation) {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})\\\";\\n -webkit-transform: rotate($degrees);\\n -ms-transform: rotate($degrees);\\n transform: rotate($degrees);\\n}\\n\\n@mixin fa-icon-flip($horiz, $vert, $rotation) {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)\\\";\\n -webkit-transform: scale($horiz, $vert);\\n -ms-transform: scale($horiz, $vert);\\n transform: scale($horiz, $vert);\\n}\\n\\n\\n// Only display content to screen readers. A la Bootstrap 4.\\n//\\n// See: http://a11yproject.com/posts/how-to-hide-content/\\n\\n@mixin sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0,0,0,0);\\n border: 0;\\n}\\n\\n// Use in conjunction with .sr-only to only display content when it's focused.\\n//\\n// Useful for \\\"Skip to main content\\\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\\n//\\n// Credit: HTML5 Boilerplate\\n\\n@mixin sr-only-focusable {\\n &:active,\\n &:focus {\\n position: static;\\n width: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n clip: auto;\\n }\\n}\\n\",\"// Stacked Icons\\n// -------------------------\\n\\n.#{$fa-css-prefix}-stack {\\n position: relative;\\n display: inline-block;\\n width: 2em;\\n height: 2em;\\n line-height: 2em;\\n vertical-align: middle;\\n}\\n.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {\\n position: absolute;\\n left: 0;\\n width: 100%;\\n text-align: center;\\n}\\n.#{$fa-css-prefix}-stack-1x { line-height: inherit; }\\n.#{$fa-css-prefix}-stack-2x { font-size: 2em; }\\n.#{$fa-css-prefix}-inverse { color: $fa-inverse; }\\n\",\"/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\\n readers do not read off random characters that represent icons */\\n\\n.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; }\\n.#{$fa-css-prefix}-music:before { content: $fa-var-music; }\\n.#{$fa-css-prefix}-search:before { content: $fa-var-search; }\\n.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; }\\n.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; }\\n.#{$fa-css-prefix}-star:before { content: $fa-var-star; }\\n.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; }\\n.#{$fa-css-prefix}-user:before { content: $fa-var-user; }\\n.#{$fa-css-prefix}-film:before { content: $fa-var-film; }\\n.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; }\\n.#{$fa-css-prefix}-th:before { content: $fa-var-th; }\\n.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; }\\n.#{$fa-css-prefix}-check:before { content: $fa-var-check; }\\n.#{$fa-css-prefix}-remove:before,\\n.#{$fa-css-prefix}-close:before,\\n.#{$fa-css-prefix}-times:before { content: $fa-var-times; }\\n.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; }\\n.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; }\\n.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; }\\n.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; }\\n.#{$fa-css-prefix}-gear:before,\\n.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; }\\n.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; }\\n.#{$fa-css-prefix}-home:before { content: $fa-var-home; }\\n.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; }\\n.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; }\\n.#{$fa-css-prefix}-road:before { content: $fa-var-road; }\\n.#{$fa-css-prefix}-download:before { content: $fa-var-download; }\\n.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; }\\n.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; }\\n.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; }\\n.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; }\\n.#{$fa-css-prefix}-rotate-right:before,\\n.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; }\\n.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; }\\n.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; }\\n.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; }\\n.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; }\\n.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; }\\n.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; }\\n.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; }\\n.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; }\\n.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; }\\n.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; }\\n.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; }\\n.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; }\\n.#{$fa-css-prefix}-book:before { content: $fa-var-book; }\\n.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; }\\n.#{$fa-css-prefix}-print:before { content: $fa-var-print; }\\n.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; }\\n.#{$fa-css-prefix}-font:before { content: $fa-var-font; }\\n.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; }\\n.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; }\\n.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; }\\n.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; }\\n.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; }\\n.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; }\\n.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; }\\n.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; }\\n.#{$fa-css-prefix}-list:before { content: $fa-var-list; }\\n.#{$fa-css-prefix}-dedent:before,\\n.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; }\\n.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; }\\n.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; }\\n.#{$fa-css-prefix}-photo:before,\\n.#{$fa-css-prefix}-image:before,\\n.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; }\\n.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; }\\n.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; }\\n.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; }\\n.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; }\\n.#{$fa-css-prefix}-edit:before,\\n.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; }\\n.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; }\\n.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; }\\n.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; }\\n.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; }\\n.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; }\\n.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; }\\n.#{$fa-css-prefix}-play:before { content: $fa-var-play; }\\n.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; }\\n.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; }\\n.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; }\\n.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; }\\n.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; }\\n.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; }\\n.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; }\\n.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; }\\n.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; }\\n.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; }\\n.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; }\\n.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; }\\n.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; }\\n.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; }\\n.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; }\\n.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; }\\n.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; }\\n.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; }\\n.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; }\\n.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; }\\n.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; }\\n.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; }\\n.#{$fa-css-prefix}-mail-forward:before,\\n.#{$fa-css-prefix}-share:before { content: $fa-var-share; }\\n.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; }\\n.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; }\\n.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; }\\n.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; }\\n.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; }\\n.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; }\\n.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; }\\n.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; }\\n.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; }\\n.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; }\\n.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; }\\n.#{$fa-css-prefix}-warning:before,\\n.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; }\\n.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; }\\n.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; }\\n.#{$fa-css-prefix}-random:before { content: $fa-var-random; }\\n.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; }\\n.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; }\\n.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; }\\n.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; }\\n.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; }\\n.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; }\\n.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; }\\n.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; }\\n.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; }\\n.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; }\\n.#{$fa-css-prefix}-bar-chart-o:before,\\n.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; }\\n.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; }\\n.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; }\\n.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; }\\n.#{$fa-css-prefix}-key:before { content: $fa-var-key; }\\n.#{$fa-css-prefix}-gears:before,\\n.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; }\\n.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; }\\n.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; }\\n.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; }\\n.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; }\\n.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; }\\n.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; }\\n.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; }\\n.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; }\\n.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; }\\n.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; }\\n.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; }\\n.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; }\\n.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; }\\n.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; }\\n.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; }\\n.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; }\\n.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; }\\n.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; }\\n.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; }\\n.#{$fa-css-prefix}-facebook-f:before,\\n.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; }\\n.#{$fa-css-prefix}-github:before { content: $fa-var-github; }\\n.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; }\\n.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; }\\n.#{$fa-css-prefix}-feed:before,\\n.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; }\\n.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; }\\n.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; }\\n.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; }\\n.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; }\\n.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; }\\n.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; }\\n.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; }\\n.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; }\\n.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; }\\n.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; }\\n.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; }\\n.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; }\\n.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; }\\n.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; }\\n.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; }\\n.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; }\\n.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; }\\n.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; }\\n.#{$fa-css-prefix}-group:before,\\n.#{$fa-css-prefix}-users:before { content: $fa-var-users; }\\n.#{$fa-css-prefix}-chain:before,\\n.#{$fa-css-prefix}-link:before { content: $fa-var-link; }\\n.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; }\\n.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; }\\n.#{$fa-css-prefix}-cut:before,\\n.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; }\\n.#{$fa-css-prefix}-copy:before,\\n.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; }\\n.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; }\\n.#{$fa-css-prefix}-save:before,\\n.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; }\\n.#{$fa-css-prefix}-square:before { content: $fa-var-square; }\\n.#{$fa-css-prefix}-navicon:before,\\n.#{$fa-css-prefix}-reorder:before,\\n.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; }\\n.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; }\\n.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; }\\n.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; }\\n.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; }\\n.#{$fa-css-prefix}-table:before { content: $fa-var-table; }\\n.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; }\\n.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; }\\n.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; }\\n.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; }\\n.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; }\\n.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; }\\n.#{$fa-css-prefix}-money:before { content: $fa-var-money; }\\n.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; }\\n.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; }\\n.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; }\\n.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; }\\n.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; }\\n.#{$fa-css-prefix}-unsorted:before,\\n.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; }\\n.#{$fa-css-prefix}-sort-down:before,\\n.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; }\\n.#{$fa-css-prefix}-sort-up:before,\\n.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; }\\n.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; }\\n.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; }\\n.#{$fa-css-prefix}-rotate-left:before,\\n.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; }\\n.#{$fa-css-prefix}-legal:before,\\n.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; }\\n.#{$fa-css-prefix}-dashboard:before,\\n.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; }\\n.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; }\\n.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; }\\n.#{$fa-css-prefix}-flash:before,\\n.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; }\\n.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; }\\n.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; }\\n.#{$fa-css-prefix}-paste:before,\\n.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; }\\n.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; }\\n.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; }\\n.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; }\\n.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; }\\n.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; }\\n.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; }\\n.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; }\\n.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; }\\n.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; }\\n.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; }\\n.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; }\\n.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; }\\n.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; }\\n.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; }\\n.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; }\\n.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; }\\n.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; }\\n.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; }\\n.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; }\\n.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; }\\n.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; }\\n.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; }\\n.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; }\\n.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; }\\n.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; }\\n.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; }\\n.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; }\\n.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; }\\n.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; }\\n.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; }\\n.#{$fa-css-prefix}-mobile-phone:before,\\n.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; }\\n.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; }\\n.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; }\\n.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; }\\n.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; }\\n.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; }\\n.#{$fa-css-prefix}-mail-reply:before,\\n.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; }\\n.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; }\\n.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; }\\n.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; }\\n.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; }\\n.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; }\\n.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; }\\n.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; }\\n.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; }\\n.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; }\\n.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; }\\n.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; }\\n.#{$fa-css-prefix}-code:before { content: $fa-var-code; }\\n.#{$fa-css-prefix}-mail-reply-all:before,\\n.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; }\\n.#{$fa-css-prefix}-star-half-empty:before,\\n.#{$fa-css-prefix}-star-half-full:before,\\n.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; }\\n.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; }\\n.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; }\\n.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; }\\n.#{$fa-css-prefix}-unlink:before,\\n.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; }\\n.#{$fa-css-prefix}-question:before { content: $fa-var-question; }\\n.#{$fa-css-prefix}-info:before { content: $fa-var-info; }\\n.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; }\\n.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; }\\n.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; }\\n.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; }\\n.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; }\\n.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; }\\n.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; }\\n.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; }\\n.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; }\\n.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; }\\n.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; }\\n.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; }\\n.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; }\\n.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; }\\n.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; }\\n.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; }\\n.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; }\\n.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; }\\n.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; }\\n.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; }\\n.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; }\\n.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; }\\n.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; }\\n.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; }\\n.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; }\\n.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; }\\n.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; }\\n.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; }\\n.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; }\\n.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; }\\n.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; }\\n.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; }\\n.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; }\\n.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; }\\n.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; }\\n.#{$fa-css-prefix}-toggle-down:before,\\n.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; }\\n.#{$fa-css-prefix}-toggle-up:before,\\n.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; }\\n.#{$fa-css-prefix}-toggle-right:before,\\n.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; }\\n.#{$fa-css-prefix}-euro:before,\\n.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; }\\n.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; }\\n.#{$fa-css-prefix}-dollar:before,\\n.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; }\\n.#{$fa-css-prefix}-rupee:before,\\n.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; }\\n.#{$fa-css-prefix}-cny:before,\\n.#{$fa-css-prefix}-rmb:before,\\n.#{$fa-css-prefix}-yen:before,\\n.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; }\\n.#{$fa-css-prefix}-ruble:before,\\n.#{$fa-css-prefix}-rouble:before,\\n.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; }\\n.#{$fa-css-prefix}-won:before,\\n.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; }\\n.#{$fa-css-prefix}-bitcoin:before,\\n.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; }\\n.#{$fa-css-prefix}-file:before { content: $fa-var-file; }\\n.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; }\\n.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; }\\n.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; }\\n.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; }\\n.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; }\\n.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; }\\n.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; }\\n.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; }\\n.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; }\\n.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; }\\n.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; }\\n.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; }\\n.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; }\\n.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; }\\n.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; }\\n.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; }\\n.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; }\\n.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; }\\n.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; }\\n.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; }\\n.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; }\\n.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; }\\n.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; }\\n.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; }\\n.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; }\\n.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; }\\n.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; }\\n.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; }\\n.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; }\\n.#{$fa-css-prefix}-android:before { content: $fa-var-android; }\\n.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; }\\n.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; }\\n.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; }\\n.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; }\\n.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; }\\n.#{$fa-css-prefix}-female:before { content: $fa-var-female; }\\n.#{$fa-css-prefix}-male:before { content: $fa-var-male; }\\n.#{$fa-css-prefix}-gittip:before,\\n.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; }\\n.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; }\\n.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; }\\n.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; }\\n.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; }\\n.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; }\\n.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; }\\n.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; }\\n.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; }\\n.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; }\\n.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; }\\n.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; }\\n.#{$fa-css-prefix}-toggle-left:before,\\n.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; }\\n.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; }\\n.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; }\\n.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; }\\n.#{$fa-css-prefix}-turkish-lira:before,\\n.#{$fa-css-prefix}-try:before { content: $fa-var-try; }\\n.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; }\\n.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; }\\n.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; }\\n.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; }\\n.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; }\\n.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; }\\n.#{$fa-css-prefix}-institution:before,\\n.#{$fa-css-prefix}-bank:before,\\n.#{$fa-css-prefix}-university:before { content: $fa-var-university; }\\n.#{$fa-css-prefix}-mortar-board:before,\\n.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; }\\n.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; }\\n.#{$fa-css-prefix}-google:before { content: $fa-var-google; }\\n.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; }\\n.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; }\\n.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; }\\n.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; }\\n.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; }\\n.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; }\\n.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; }\\n.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; }\\n.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; }\\n.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; }\\n.#{$fa-css-prefix}-language:before { content: $fa-var-language; }\\n.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; }\\n.#{$fa-css-prefix}-building:before { content: $fa-var-building; }\\n.#{$fa-css-prefix}-child:before { content: $fa-var-child; }\\n.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; }\\n.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; }\\n.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; }\\n.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; }\\n.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; }\\n.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; }\\n.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; }\\n.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; }\\n.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; }\\n.#{$fa-css-prefix}-automobile:before,\\n.#{$fa-css-prefix}-car:before { content: $fa-var-car; }\\n.#{$fa-css-prefix}-cab:before,\\n.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; }\\n.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; }\\n.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; }\\n.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; }\\n.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; }\\n.#{$fa-css-prefix}-database:before { content: $fa-var-database; }\\n.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; }\\n.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; }\\n.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; }\\n.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; }\\n.#{$fa-css-prefix}-file-photo-o:before,\\n.#{$fa-css-prefix}-file-picture-o:before,\\n.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; }\\n.#{$fa-css-prefix}-file-zip-o:before,\\n.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; }\\n.#{$fa-css-prefix}-file-sound-o:before,\\n.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; }\\n.#{$fa-css-prefix}-file-movie-o:before,\\n.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; }\\n.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; }\\n.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; }\\n.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; }\\n.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; }\\n.#{$fa-css-prefix}-life-bouy:before,\\n.#{$fa-css-prefix}-life-buoy:before,\\n.#{$fa-css-prefix}-life-saver:before,\\n.#{$fa-css-prefix}-support:before,\\n.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; }\\n.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; }\\n.#{$fa-css-prefix}-ra:before,\\n.#{$fa-css-prefix}-resistance:before,\\n.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; }\\n.#{$fa-css-prefix}-ge:before,\\n.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; }\\n.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; }\\n.#{$fa-css-prefix}-git:before { content: $fa-var-git; }\\n.#{$fa-css-prefix}-y-combinator-square:before,\\n.#{$fa-css-prefix}-yc-square:before,\\n.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; }\\n.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; }\\n.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; }\\n.#{$fa-css-prefix}-wechat:before,\\n.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; }\\n.#{$fa-css-prefix}-send:before,\\n.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; }\\n.#{$fa-css-prefix}-send-o:before,\\n.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; }\\n.#{$fa-css-prefix}-history:before { content: $fa-var-history; }\\n.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; }\\n.#{$fa-css-prefix}-header:before { content: $fa-var-header; }\\n.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; }\\n.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; }\\n.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; }\\n.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; }\\n.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; }\\n.#{$fa-css-prefix}-soccer-ball-o:before,\\n.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; }\\n.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; }\\n.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; }\\n.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; }\\n.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; }\\n.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; }\\n.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; }\\n.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; }\\n.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; }\\n.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; }\\n.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; }\\n.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; }\\n.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; }\\n.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; }\\n.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; }\\n.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; }\\n.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; }\\n.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; }\\n.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; }\\n.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; }\\n.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; }\\n.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; }\\n.#{$fa-css-prefix}-at:before { content: $fa-var-at; }\\n.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; }\\n.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; }\\n.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; }\\n.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; }\\n.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; }\\n.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; }\\n.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; }\\n.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; }\\n.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; }\\n.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; }\\n.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; }\\n.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; }\\n.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; }\\n.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; }\\n.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; }\\n.#{$fa-css-prefix}-shekel:before,\\n.#{$fa-css-prefix}-sheqel:before,\\n.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; }\\n.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; }\\n.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; }\\n.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; }\\n.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; }\\n.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; }\\n.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; }\\n.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; }\\n.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; }\\n.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; }\\n.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; }\\n.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; }\\n.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; }\\n.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; }\\n.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; }\\n.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; }\\n.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; }\\n.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; }\\n.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; }\\n.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; }\\n.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; }\\n.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; }\\n.#{$fa-css-prefix}-intersex:before,\\n.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; }\\n.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; }\\n.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; }\\n.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; }\\n.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; }\\n.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; }\\n.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; }\\n.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; }\\n.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; }\\n.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; }\\n.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; }\\n.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; }\\n.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; }\\n.#{$fa-css-prefix}-server:before { content: $fa-var-server; }\\n.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; }\\n.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; }\\n.#{$fa-css-prefix}-hotel:before,\\n.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; }\\n.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; }\\n.#{$fa-css-prefix}-train:before { content: $fa-var-train; }\\n.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; }\\n.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; }\\n.#{$fa-css-prefix}-yc:before,\\n.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; }\\n.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; }\\n.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; }\\n.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; }\\n.#{$fa-css-prefix}-battery-4:before,\\n.#{$fa-css-prefix}-battery:before,\\n.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; }\\n.#{$fa-css-prefix}-battery-3:before,\\n.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; }\\n.#{$fa-css-prefix}-battery-2:before,\\n.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; }\\n.#{$fa-css-prefix}-battery-1:before,\\n.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; }\\n.#{$fa-css-prefix}-battery-0:before,\\n.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; }\\n.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; }\\n.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; }\\n.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; }\\n.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; }\\n.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; }\\n.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; }\\n.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; }\\n.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; }\\n.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; }\\n.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; }\\n.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; }\\n.#{$fa-css-prefix}-hourglass-1:before,\\n.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; }\\n.#{$fa-css-prefix}-hourglass-2:before,\\n.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; }\\n.#{$fa-css-prefix}-hourglass-3:before,\\n.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; }\\n.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; }\\n.#{$fa-css-prefix}-hand-grab-o:before,\\n.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; }\\n.#{$fa-css-prefix}-hand-stop-o:before,\\n.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; }\\n.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; }\\n.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; }\\n.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; }\\n.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; }\\n.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; }\\n.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; }\\n.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; }\\n.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; }\\n.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; }\\n.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; }\\n.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; }\\n.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; }\\n.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; }\\n.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; }\\n.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; }\\n.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; }\\n.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; }\\n.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; }\\n.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; }\\n.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; }\\n.#{$fa-css-prefix}-tv:before,\\n.#{$fa-css-prefix}-television:before { content: $fa-var-television; }\\n.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; }\\n.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; }\\n.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; }\\n.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; }\\n.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; }\\n.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; }\\n.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; }\\n.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; }\\n.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; }\\n.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; }\\n.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; }\\n.#{$fa-css-prefix}-map:before { content: $fa-var-map; }\\n.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; }\\n.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; }\\n.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; }\\n.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; }\\n.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; }\\n.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; }\\n.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; }\\n.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; }\\n.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; }\\n.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; }\\n.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; }\\n.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; }\\n.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; }\\n.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; }\\n.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; }\\n.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; }\\n.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; }\\n.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; }\\n.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; }\\n.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; }\\n.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; }\\n.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; }\\n.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; }\\n.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; }\\n.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; }\\n.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; }\\n.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; }\\n.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; }\\n.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; }\\n.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; }\\n.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; }\\n.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; }\\n.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; }\\n.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; }\\n.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; }\\n.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; }\\n.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; }\\n.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; }\\n.#{$fa-css-prefix}-asl-interpreting:before,\\n.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; }\\n.#{$fa-css-prefix}-deafness:before,\\n.#{$fa-css-prefix}-hard-of-hearing:before,\\n.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; }\\n.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; }\\n.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; }\\n.#{$fa-css-prefix}-signing:before,\\n.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; }\\n.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; }\\n.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; }\\n.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; }\\n.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; }\\n.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; }\\n.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; }\\n.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; }\\n.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; }\\n.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; }\\n.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; }\\n.#{$fa-css-prefix}-google-plus-circle:before,\\n.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; }\\n.#{$fa-css-prefix}-fa:before,\\n.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; }\\n.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; }\\n.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; }\\n.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; }\\n.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; }\\n.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; }\\n.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; }\\n.#{$fa-css-prefix}-vcard:before,\\n.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; }\\n.#{$fa-css-prefix}-vcard-o:before,\\n.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; }\\n.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; }\\n.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; }\\n.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; }\\n.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; }\\n.#{$fa-css-prefix}-drivers-license:before,\\n.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; }\\n.#{$fa-css-prefix}-drivers-license-o:before,\\n.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; }\\n.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; }\\n.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; }\\n.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; }\\n.#{$fa-css-prefix}-thermometer-4:before,\\n.#{$fa-css-prefix}-thermometer:before,\\n.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; }\\n.#{$fa-css-prefix}-thermometer-3:before,\\n.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; }\\n.#{$fa-css-prefix}-thermometer-2:before,\\n.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; }\\n.#{$fa-css-prefix}-thermometer-1:before,\\n.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; }\\n.#{$fa-css-prefix}-thermometer-0:before,\\n.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; }\\n.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; }\\n.#{$fa-css-prefix}-bathtub:before,\\n.#{$fa-css-prefix}-s15:before,\\n.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; }\\n.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; }\\n.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; }\\n.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; }\\n.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; }\\n.#{$fa-css-prefix}-times-rectangle:before,\\n.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; }\\n.#{$fa-css-prefix}-times-rectangle-o:before,\\n.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; }\\n.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; }\\n.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; }\\n.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; }\\n.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; }\\n.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; }\\n.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; }\\n.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; }\\n.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; }\\n.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; }\\n.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; }\\n.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; }\\n\",\"// Screen Readers\\n// -------------------------\\n\\n.sr-only { @include sr-only(); }\\n.sr-only-focusable { @include sr-only-focusable(); }\\n\",\".ruleset-object-copy-modal {\\r\\n .copied-objects-container {\\r\\n border: 1px solid #DBDBDB;\\r\\n background: #DBDBDB;\\r\\n border-radius: 5px;\\r\\n max-height: 160px;\\r\\n overflow-y: auto;\\r\\n }\\r\\n\\r\\n .copied-objects-list {\\r\\n border: 1px solid #DBDBDB;\\r\\n background: #FFFFFF;\\r\\n }\\r\\n}\\r\\n\",\"/* Height difference causing floated zip code form-group to get stuck */\\r\\n.form-group.im-request-salesforce-user-state .k-widget.k-dropdown {\\r\\n height: 30px;\\r\\n}\",\".sap-security-designer {\\r\\n // resize stacked font icons to match standard ones in list view headings\\r\\n .input-group-addon {\\r\\n .fa-stack.fa-stack-small {\\r\\n font-size: .7em\\r\\n }\\r\\n }\\r\\n // minimize grid height for role modal when copying role\\r\\n .copy-grid {\\r\\n .k-grid-content {\\r\\n max-height: 20em;\\r\\n }\\r\\n }\\r\\n // list-item and context menu styles\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\\r\\n.sap-simulation-risk-analysis-report .k-grid-content {\\r\\n min-height: 340px;\\r\\n}\\r\\n\",\".saved-reports {\\r\\n .no-reports {\\r\\n color: #d5d5d6;\\r\\n text-align: center;\\r\\n font-size: 40px;\\r\\n\\r\\n p:nth-child(3) {\\r\\n font-size: 15px;\\r\\n }\\r\\n }\\r\\n}\\r\\n\",\".rounded-border {\\r\\n border-radius: 5px;\\r\\n}\\r\\n\",\".custom-ibox {\\r\\n /* Panel Header and Footer */\\r\\n\\r\\n ::-webkit-scrollbar {\\r\\n scrollbar-width: thin;\\r\\n scrollbar-color: #DEDEDE #F9F9F9;\\r\\n width: 12px;\\r\\n border: 1px solid #DEDEDE;\\r\\n }\\r\\n\\r\\n ::-webkit-scrollbar-track {\\r\\n background: #F9F9F9;\\r\\n }\\r\\n\\r\\n ::-webkit-scrollbar-thumb {\\r\\n background-color: #DEDEDE;\\r\\n border-radius: 20px;\\r\\n border: 3px solid #F9F9F9;\\r\\n }\\r\\n\\r\\n .ibox-dropdown {\\r\\n color: #121321 !important;\\r\\n max-width: 240px;\\r\\n border-radius: 5px;\\r\\n padding: 6px 16px 6px 12px;\\r\\n font-size: 12px;\\r\\n }\\r\\n\\r\\n .ibox-dropdown-sm {\\r\\n color: #121321 !important;\\r\\n max-width: 150px;\\r\\n border-radius: 5px;\\r\\n padding: 6px 16px 6px 12px;\\r\\n font-size: 12px;\\r\\n }\\r\\n\\r\\n select {\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n width: 200px;\\r\\n padding-right: 15px;\\r\\n }\\r\\n .criteria-drop {\\r\\n color: #121321 !important;\\r\\n }\\r\\n\\r\\n .form-group {\\r\\n margin: 0;\\r\\n }\\r\\n\\r\\n label {\\r\\n margin: 0;\\r\\n }\\r\\n\\r\\n .single-line {\\r\\n color: #121321 !important;\\r\\n }\\r\\n\\r\\n .full-span-ibox {\\r\\n width: 100% !important;\\r\\n }\\r\\n\\r\\n .font-w-500 {\\r\\n font-weight: 500;\\r\\n }\\r\\n\\r\\n .font-12 {\\r\\n font-size: 12px;\\r\\n }\\r\\n\\r\\n .pill-radio {\\r\\n background: white;\\r\\n color: $text-color;\\r\\n padding: 2px 12px;\\r\\n margin-right: 4px;\\r\\n font-size: 11px;\\r\\n border-radius: 14px;\\r\\n cursor: pointer;\\r\\n display: inline-block;\\r\\n }\\r\\n\\r\\n .pill-radio:hover {\\r\\n background: darken(white, 4%);\\r\\n color: $text-color;\\r\\n font-weight: 800;\\r\\n }\\r\\n\\r\\n .pill-radio.active {\\r\\n background: darken(white, 4%);\\r\\n color: $text-color;\\r\\n font-weight: 800;\\r\\n }\\r\\n\\r\\n .filter-pills-above-grid {\\r\\n background-color: #8EA7B8 !important;\\r\\n }\\r\\n\\r\\n .check-btn-placeholder {\\r\\n padding: 11px;\\r\\n }\\r\\n\\r\\n .flex-vcenter {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n }\\r\\n\\r\\n h5 {\\r\\n margin: 0;\\r\\n }\\r\\n\\r\\n .list-view-body {\\r\\n max-height: 550px;\\r\\n overflow-y: auto;\\r\\n }\\r\\n /* Desktops and laptops ----------- */\\r\\n @media only screen and (max-width : 1223px) {\\r\\n .list-view-body {\\r\\n max-height: 350px;\\r\\n overflow-y: auto;\\r\\n }\\r\\n }\\r\\n\\r\\n @media only screen and (min-width : 1224px) {\\r\\n .list-view-body {\\r\\n max-height: 350px;\\r\\n overflow-y: auto;\\r\\n }\\r\\n }\\r\\n /* Large screens ----------- */\\r\\n @media only screen and (min-width : 1824px) {\\r\\n .list-view-body {\\r\\n max-height: 500px;\\r\\n overflow-y: auto;\\r\\n }\\r\\n }\\r\\n\\r\\n list-item {\\r\\n border-right: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .ibox-title {\\r\\n border-radius: 5px 5px 0px 0px !important;\\r\\n background: #231556 !important;\\r\\n color: white;\\r\\n padding: 10px 15px;\\r\\n\\r\\n .switch :checked + i {\\r\\n box-shadow: inset 0 0 1px rgba(0,0,0,.38), inset 0 0 40px #291972;\\r\\n -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,.38), inset 0 0 40px #291972;\\r\\n }\\r\\n\\r\\n .fa-plus {\\r\\n color: #291972;\\r\\n }\\r\\n\\r\\n .fa-pencil {\\r\\n color: #291972;\\r\\n }\\r\\n\\r\\n .fa-copy {\\r\\n color: #291972;\\r\\n }\\r\\n }\\r\\n\\r\\n .fa-ellipsis-h {\\r\\n color: $fp-purple;\\r\\n }\\r\\n\\r\\n .fa-filter {\\r\\n margin-right: 5px;\\r\\n }\\r\\n\\r\\n .btn-default {\\r\\n border-radius: 5px;\\r\\n padding: 2px 6px;\\r\\n }\\r\\n\\r\\n .btn-secondary {\\r\\n font-weight: 600;\\r\\n color: $fp-purple;\\r\\n background: white;\\r\\n\\r\\n &:hover {\\r\\n outline: none;\\r\\n }\\r\\n\\r\\n &:focus {\\r\\n outline: none;\\r\\n }\\r\\n\\r\\n &:active {\\r\\n outline: none;\\r\\n }\\r\\n }\\r\\n\\r\\n .popover-title {\\r\\n color: #808080;\\r\\n }\\r\\n\\r\\n .btn-blueRadio {\\r\\n color: #808080;\\r\\n }\\r\\n\\r\\n .pagination-sm {\\r\\n color: $text-color;\\r\\n font-weight: 700;\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n background-color: white;\\r\\n }\\r\\n\\r\\n .pagination > li > a, .pagination > li > span {\\r\\n background: white;\\r\\n border-color: $border-color;\\r\\n color: $text-color;\\r\\n font-weight: 700;\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n margin: 0;\\r\\n font-size: 10px;\\r\\n }\\r\\n\\r\\n .pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span {\\r\\n border-top-left-radius: 6px;\\r\\n border-bottom-left-radius: 6px;\\r\\n }\\r\\n\\r\\n .pagination-sm > li:last-child > a, .pagination-sm > li:last-child > span {\\r\\n border-top-right-radius: 6px;\\r\\n border-bottom-right-radius: 6px;\\r\\n }\\r\\n\\r\\n .pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus {\\r\\n background: darken(white, 4%);\\r\\n color: $text-color;\\r\\n border-color: $text-color;\\r\\n font-weight: 700;\\r\\n }\\r\\n\\r\\n .ibox-bottom-bar {\\r\\n padding: 10px 15px;\\r\\n background: #EEEFF2;\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 4px;\\r\\n\\r\\n .saved-message {\\r\\n color: #121321;\\r\\n }\\r\\n\\r\\n .btn-default {\\r\\n background-color: $fp-gray-pager;\\r\\n }\\r\\n }\\r\\n}\\r\\n\",\".ac-my-reviews {\\r\\n .review-assignment-tile {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .review-submit-btn-wrap {\\r\\n a {\\r\\n color: white;\\r\\n }\\r\\n\\r\\n span {\\r\\n font-size: 12px;\\r\\n font-weight: 600;\\r\\n }\\r\\n }\\r\\n\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n\\r\\n .ibox-title-p-xs {\\r\\n border-radius: 5px 5px 0px 0px !important;\\r\\n background: $delinea-purple !important;\\r\\n color: white;\\r\\n padding: 10px;\\r\\n\\r\\n h5 {\\r\\n font-size: 22.5px;\\r\\n }\\r\\n }\\r\\n\\r\\n span.btn a {\\r\\n color: white;\\r\\n }\\r\\n\\r\\n .btn-greenRadio:focus, .btn-greenRadio:active, .btn-greenRadio.active, .open .dropdown-toggle.btn-greenRadio {\\r\\n background-color: $fp-label-green-bg;\\r\\n border-color: $fp-label-green-border;\\r\\n color: $fp-label-green-text !important;\\r\\n }\\r\\n}\\r\\n\",\".task-recording-manager {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n\\r\\n input {\\r\\n accent-color: #E74C3C;\\r\\n }\\r\\n\\r\\n .btn-danger {\\r\\n background: #E74C3C;\\r\\n font-size: 11px;\\r\\n padding: 3px 6px;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n .bulk-delete {\\r\\n background: #FBE1DE;\\r\\n color: #E74C3C;\\r\\n padding: 5px 15px;\\r\\n }\\r\\n\\r\\n .txt-danger {\\r\\n color: #E74C3C;\\r\\n }\\r\\n}\\r\\n\",\".review-schedules {\\r\\n .btn-blue {\\r\\n border: 2px solid $fp-yellow;\\r\\n color: white;\\r\\n font-size: 13px;\\r\\n font-weight: 600;\\r\\n display: inline-block;\\r\\n padding: 5px 10px;\\r\\n border-radius: 4px;\\r\\n background: $fp-yellow;\\r\\n }\\r\\n\\r\\n .btn-blue:focus {\\r\\n background-color: #261769;\\r\\n border-color: #261769;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n\\r\\n .btn-blue:hover {\\r\\n background-color: #261769;\\r\\n border-color: #261769;\\r\\n color: $delinea-green;\\r\\n }\\r\\n\\r\\n .btn-red {\\r\\n color: RGBA(231,76,60,1);\\r\\n border: 2px solid RGBA(231,76,60,1);\\r\\n font-size: 13px;\\r\\n font-weight: 600;\\r\\n display: inline-block;\\r\\n padding: 5px 10px;\\r\\n border-radius: 15px;\\r\\n background: white;\\r\\n font-weight: 700;\\r\\n }\\r\\n\\r\\n .btn-red:hover {\\r\\n background: RGBA(231,76,60,0.15);\\r\\n color: RGBA(231,76,60,1);\\r\\n }\\r\\n\\r\\n .sm-spinner-contain {\\r\\n position: relative;\\r\\n left: 4px;\\r\\n width: 24px;\\r\\n height: 8px;\\r\\n display: flex;\\r\\n }\\r\\n\\r\\n h3 {\\r\\n margin: 0px 15px 15px 15px;\\r\\n }\\r\\n\\r\\n .review-item {\\r\\n width: 100%;\\r\\n height: 7em;\\r\\n padding: 0px;\\r\\n margin: 0px;\\r\\n }\\r\\n\\r\\n .review-ibox {\\r\\n border-radius: 5px;\\r\\n width: 100%;\\r\\n\\r\\n .ibox-title {\\r\\n border-radius: 5px 5px 0px 0px;\\r\\n }\\r\\n\\r\\n .review-assignment-icon-circle {\\r\\n margin-right: 10px;\\r\\n }\\r\\n\\r\\n .ibox-content {\\r\\n border-radius: 0px 0px 5px 5px;\\r\\n }\\r\\n\\r\\n .col-xs-3, col-xs-9 {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n h4:nth-child(1) {\\r\\n color: RGBA(50,119,179,1);\\r\\n margin: 15px 15px 0px 15px;\\r\\n }\\r\\n\\r\\n .btn-blue {\\r\\n margin-top: 15px;\\r\\n margin-right: 10px;\\r\\n }\\r\\n }\\r\\n}\\r\\n\",\".group-item-owners-list {\\r\\n .label {\\r\\n white-space: normal;\\r\\n }\\r\\n\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".inbox-styles {\\r\\n * {\\r\\n scrollbar-width: thin;\\r\\n scrollbar-color: #E7E7E7 #FFF;\\r\\n }\\r\\n\\r\\n ::-webkit-scrollbar {\\r\\n width: 12px;\\r\\n border: 1px solid #E7E7E7;\\r\\n }\\r\\n\\r\\n ::-webkit-scrollbar-track {\\r\\n background: #FFF;\\r\\n }\\r\\n\\r\\n ::-webkit-scrollbar-thumb {\\r\\n background-color: #E7E7E7;\\r\\n border-radius: 20px;\\r\\n border: 3px solid #FFF;\\r\\n }\\r\\n\\r\\n .caret {\\r\\n margin-left: 10px;\\r\\n }\\r\\n\\r\\n .list-view-body {\\r\\n max-height: 500px;\\r\\n overflow-y: auto;\\r\\n }\\r\\n\\r\\n .no-left-padding {\\r\\n padding-left: 0px;\\r\\n }\\r\\n\\r\\n .inbox-red {\\r\\n color: $red;\\r\\n }\\r\\n\\r\\n .ibox-title {\\r\\n color: #121321;\\r\\n padding: 15px;\\r\\n border-radius: 5px;\\r\\n }\\r\\n\\r\\n .ibox {\\r\\n border-radius: 4px;\\r\\n }\\r\\n\\r\\n .list-item {\\r\\n background: white;\\r\\n }\\r\\n\\r\\n .list-item:nth-child(even) {\\r\\n background: #FFF;\\r\\n }\\r\\n\\r\\n label {\\r\\n font-weight: normal;\\r\\n }\\r\\n\\r\\n p {\\r\\n color: #707070;\\r\\n font-size: 10px;\\r\\n text-align: center;\\r\\n }\\r\\n\\r\\n .btn-default .badge {\\r\\n background-color: #FFD5D6;\\r\\n color: #BA0003;\\r\\n border: 1px solid #F91D21;\\r\\n }\\r\\n\\r\\n .btn-primary {\\r\\n font-size: 12px;\\r\\n font-weight: bold;\\r\\n\\r\\n &:hover {\\r\\n outline: none;\\r\\n }\\r\\n\\r\\n &:focus {\\r\\n outline: none;\\r\\n }\\r\\n\\r\\n &:active {\\r\\n outline: none;\\r\\n }\\r\\n }\\r\\n\\r\\n .btn-success {\\r\\n font-size: 12px;\\r\\n font-weight: bold;\\r\\n\\r\\n &:hover {\\r\\n background-color: #25a75c;\\r\\n border-color: #25a75c;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n &:focus {\\r\\n background-color: #25a75c;\\r\\n border-color: #25a75c;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n &:active {\\r\\n background-color: #25a75c;\\r\\n border-color: #25a75c;\\r\\n color: white;\\r\\n }\\r\\n }\\r\\n\\r\\n .open {\\r\\n .dropdown-toggle.btn-success {\\r\\n background-color: #25a75c;\\r\\n border-color: #25a75c;\\r\\n color: white;\\r\\n }\\r\\n }\\r\\n\\r\\n .btn-default {\\r\\n padding: 25px 20px;\\r\\n width: 300px;\\r\\n color: #121321;\\r\\n background-color: white;\\r\\n border-color: #C2C4CC;\\r\\n\\r\\n &:hover {\\r\\n background: #f5f5f5;\\r\\n color: #121321;\\r\\n outline: none;\\r\\n }\\r\\n\\r\\n &:active {\\r\\n &:focus {\\r\\n color: #121321;\\r\\n background-color: #e0e0e0;\\r\\n border-right: 4px solid $fp-purple;\\r\\n outline: none;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n &:hover {\\r\\n color: #121321;\\r\\n background-color: #f5f5f5;\\r\\n border-color: #C2C4CC;\\r\\n outline: none;\\r\\n }\\r\\n\\r\\n background: #e0e0e0;\\r\\n color: #121321;\\r\\n border-color: #C2C4CC;\\r\\n outline: none;\\r\\n }\\r\\n\\r\\n &:focus {\\r\\n background: #e0e0e0;\\r\\n color: #121321;\\r\\n font-weight: bold;\\r\\n border-right: 4px solid $fp-purple;\\r\\n outline: none;\\r\\n }\\r\\n }\\r\\n}\\r\\n\",\".maintain-risk-ruleset {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #e7e7e7;\\r\\n }\\r\\n\\r\\n .select-mode {\\r\\n border-right: 1px solid #E7ECEA;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n input {\\r\\n accent-color: #5DA45E;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n .btn-copy {\\r\\n background: #5DA45E;\\r\\n font-size: 11px;\\r\\n padding: 3px 6px;\\r\\n font-weight: bold;\\r\\n color: #fff;\\r\\n }\\r\\n\\r\\n .btn-copy:hover {\\r\\n background: #579858;\\r\\n font-size: 11px;\\r\\n padding: 3px 6px;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n .bulk-copy {\\r\\n background: #E3EFE3;\\r\\n color: #5DA45E;\\r\\n padding: 5px 15px;\\r\\n }\\r\\n\\r\\n .text-copy {\\r\\n color: #5DA45E;\\r\\n }\\r\\n}\\r\\n\",\".maintain-business-process {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n\\r\\n .select-mode {\\r\\n cursor: pointer;\\r\\n border-right: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n input {\\r\\n accent-color: #5DA45E;\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n .btn-copy {\\r\\n background: #5DA45E;\\r\\n font-size: 11px;\\r\\n padding: 3px 6px;\\r\\n font-weight: bold;\\r\\n color: #fff;\\r\\n }\\r\\n\\r\\n .btn-copy:hover {\\r\\n background: #579858;\\r\\n font-size: 11px;\\r\\n padding: 3px 6px;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n .bulk-copy {\\r\\n background: #E3EFE3;\\r\\n color: #5DA45E;\\r\\n padding: 5px 15px;\\r\\n }\\r\\n\\r\\n .text-copy {\\r\\n color: #5DA45E;\\r\\n }\\r\\n}\\r\\n\",\".certifications-all-review {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n\\r\\n .fa-filter {\\r\\n margin: 0;\\r\\n }\\r\\n}\\r\\n\",\".notification-teams {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".review-schedule-instances-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".instance-assignments-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".review-schedule-routing-criteria-instances-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".generated-reports {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #e7e7e7;\\r\\n }\\r\\n}\\r\\n\",\".sim-risk-analysis {\\r\\n .sapBack {\\r\\n font-size: 1.5em;\\r\\n margin: 5px;\\r\\n\\r\\n &:focus {\\r\\n outline: none;\\r\\n }\\r\\n }\\r\\n\\r\\n .btn-detailed {\\r\\n background: #2881EB;\\r\\n font-weight: 700;\\r\\n color: white;\\r\\n padding: 5px 10px;\\r\\n font-size: 12px;\\r\\n line-height: 1.5;\\r\\n border-radius: 3px;\\r\\n margin: 5px;\\r\\n\\r\\n &:hover {\\r\\n background: #2876D4;\\r\\n }\\r\\n\\r\\n &:active {\\r\\n background: #2876D4;\\r\\n }\\r\\n\\r\\n &:focus {\\r\\n background: #2876D4;\\r\\n outline: none;\\r\\n }\\r\\n }\\r\\n\\r\\n .btn-single {\\r\\n background: #2881EB;\\r\\n font-weight: 700;\\r\\n color: white;\\r\\n padding: 5px 10px;\\r\\n font-size: 12px;\\r\\n line-height: 1.5;\\r\\n border-radius: 3px;\\r\\n margin: 5px;\\r\\n\\r\\n &:hover {\\r\\n background: #2876D4;\\r\\n }\\r\\n\\r\\n &:active {\\r\\n background: #2876D4;\\r\\n }\\r\\n\\r\\n &:focus {\\r\\n background: #2876D4;\\r\\n outline: none;\\r\\n }\\r\\n }\\r\\n\\r\\n .btn-composite {\\r\\n background: #62BD60;\\r\\n font-weight: 700;\\r\\n color: white;\\r\\n padding: 5px 10px;\\r\\n font-size: 12px;\\r\\n line-height: 1.5;\\r\\n border-radius: 3px;\\r\\n margin: 5px;\\r\\n\\r\\n &:hover {\\r\\n background: #5AA758;\\r\\n }\\r\\n\\r\\n &:active {\\r\\n background: #5AA758;\\r\\n }\\r\\n\\r\\n &:focus {\\r\\n background: #5AA758;\\r\\n outline: none;\\r\\n }\\r\\n }\\r\\n}\\r\\n\",\".migrations-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".sap-auth-field-groups {\\r\\n .table {\\r\\n margin-bottom: 0px;\\r\\n }\\r\\n}\\r\\n\",\".approval-groups {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".company-templates-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".company-templates-companies-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".notification-types-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n\\r\\n .panel-heading {\\r\\n background-color: white;\\r\\n }\\r\\n}\\r\\n\",\".ownership-groups-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".group-roles-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".group-owners-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\\r\\n.group-multiselect-dropdown {\\r\\n div.k-multiselect-wrap {\\r\\n max-height: 15em;\\r\\n overflow: auto;\\r\\n }\\r\\n}\\r\\n\",\".group-owner-items-list {\\r\\n .label {\\r\\n white-space: normal;\\r\\n }\\r\\n\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".requester-groups-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".requester-group-users-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".role-templates-list {\\r\\n\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".role-template-roles-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".fastpath-user-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n }\\r\\n\\r\\n .list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n }\\r\\n}\\r\\n\",\".roles {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #e7e7e7;\\r\\n }\\r\\n\\r\\n .k-grid.k-widget .k-grid-content {\\r\\n max-height: 503px;\\r\\n }\\r\\n /* Desktops and laptops ----------- */\\r\\n @media only screen and (max-width : 1223px) {\\r\\n .k-grid.k-widget .k-grid-content {\\r\\n max-height: 303px;\\r\\n }\\r\\n }\\r\\n\\r\\n @media only screen and (min-width : 1224px) {\\r\\n .k-grid.k-widget .k-grid-content {\\r\\n max-height: 303px;\\r\\n }\\r\\n }\\r\\n /* Large screens ----------- */\\r\\n @media only screen and (min-width : 1824px) {\\r\\n .k-grid.k-widget .k-grid-content {\\r\\n max-height: 453px;\\r\\n }\\r\\n }\\r\\n}\\r\\n\",\".users {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #e7e7e7;\\r\\n }\\r\\n}\\r\\n\",\".security-assignment {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .k-grid.k-widget .k-grid-content {\\r\\n max-height: 503px;\\r\\n }\\r\\n /* Desktops and laptops ----------- */\\r\\n @media only screen and (max-width : 1223px) {\\r\\n .k-grid.k-widget .k-grid-content {\\r\\n max-height: 303px;\\r\\n }\\r\\n }\\r\\n\\r\\n @media only screen and (min-width : 1224px) {\\r\\n .k-grid.k-widget .k-grid-content {\\r\\n max-height: 303px;\\r\\n }\\r\\n }\\r\\n /* Large screens ----------- */\\r\\n @media only screen and (min-width : 1824px) {\\r\\n .k-grid.k-widget .k-grid-content {\\r\\n max-height: 453px;\\r\\n }\\r\\n }\\r\\n}\\r\\n\",\".identity-manager-request-details-view {\\r\\n\\r\\n .request-view {\\r\\n padding: 0px 10px;\\r\\n\\r\\n h3 {\\r\\n font-size: 11px;\\r\\n text-transform: uppercase;\\r\\n font-weight: 700;\\r\\n margin-top: 0px;\\r\\n }\\r\\n\\r\\n p {\\r\\n font-size: 13px;\\r\\n }\\r\\n\\r\\n .request-expiration {\\r\\n color: $red;\\r\\n font-weight: 700;\\r\\n }\\r\\n }\\r\\n\\r\\n .request-details-headers {\\r\\n background-color: white;\\r\\n\\r\\n h4 {\\r\\n font-size: 22.5px;\\r\\n font-weight: 600;\\r\\n }\\r\\n }\\r\\n\\r\\n .request-details-content {\\r\\n padding: 15px;\\r\\n background: white;\\r\\n border-top: 1px solid $border-color;\\r\\n border-bottom: 1px solid $border-color;\\r\\n }\\r\\n\\r\\n .rd-header-tabs {\\r\\n border: none;\\r\\n padding: 5px;\\r\\n }\\r\\n\\r\\n .rd-container {\\r\\n border: none;\\r\\n }\\r\\n\\r\\n .rd-notes {\\r\\n\\r\\n list-item {\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 4px;\\r\\n padding: 10px;\\r\\n background-color: white;\\r\\n }\\r\\n }\\r\\n\\r\\n .list-item {\\r\\n padding: 15px;\\r\\n }\\r\\n\\r\\n .table {\\r\\n margin-bottom: 0px;\\r\\n }\\r\\n\\r\\n .btn-approve-selected {\\r\\n background: $fp-label-green-bg;\\r\\n color: $fp-label-green-text;\\r\\n font-weight: 700;\\r\\n border-radius: 4px;\\r\\n border: 1px solid $fp-label-green-border;\\r\\n padding: 5px 10px;\\r\\n\\r\\n &:hover {\\r\\n background: $fp-label-green-text;\\r\\n color: $fp-label-green-bg;\\r\\n border: 1px solid $fp-label-green-border;\\r\\n }\\r\\n\\r\\n &:focus {\\r\\n background: $fp-label-green-text;\\r\\n color: $fp-label-green-bg;\\r\\n border: 1px solid $fp-label-green-border;\\r\\n }\\r\\n }\\r\\n\\r\\n .btn-delegate-selected {\\r\\n background: $fp-label-blue-bg;\\r\\n color: $fp-label-blue-text;\\r\\n font-weight: 700;\\r\\n padding: 5px 10px;\\r\\n border-radius: 4px;\\r\\n border: 1px solid $fp-label-blue-border;\\r\\n\\r\\n &:hover {\\r\\n background: $fp-label-blue-text;\\r\\n color: $fp-label-blue-bg;\\r\\n border: 1px solid $fp-label-blue-border;\\r\\n }\\r\\n\\r\\n &:focus {\\r\\n background: $fp-label-blue-text;\\r\\n color: $fp-label-blue-bg;\\r\\n border: 1px solid $fp-label-blue-border;\\r\\n }\\r\\n }\\r\\n\\r\\n .btn-deny-selected {\\r\\n background: $fp-label-red-bg;\\r\\n color: $fp-label-red-text;\\r\\n font-weight: 700;\\r\\n padding: 5px 10px;\\r\\n border-radius: 4px;\\r\\n border: 1px solid $fp-label-red-border;\\r\\n\\r\\n &:hover {\\r\\n background: $fp-label-red-text;\\r\\n color: $fp-label-red-bg;\\r\\n border: 1px solid $fp-label-red-border;\\r\\n }\\r\\n\\r\\n &:focus {\\r\\n background: $fp-label-red-text;\\r\\n color: $fp-label-red-bg;\\r\\n border: 1px solid $fp-label-red-border;\\r\\n }\\r\\n }\\r\\n\\r\\n .table-striped {\\r\\n tbody {\\r\\n tr.req-access-approve:nth-of-type(odd), tr.req-access-approve:nth-of-type(even) {\\r\\n background: $fp-label-green-bg;\\r\\n\\r\\n td:nth-child(2) {\\r\\n color: $fp-label-green-text;\\r\\n }\\r\\n }\\r\\n\\r\\n tr.req-access-deny:nth-of-type(odd), tr.req-access-deny:nth-of-type(even) {\\r\\n background: $fp-label-red-bg;\\r\\n\\r\\n td:nth-child(2) {\\r\\n color: $fp-label-red-text;\\r\\n }\\r\\n }\\r\\n\\r\\n tr.req-access-delegated:nth-of-type(odd), tr.req-access-delegated:nth-of-type(even) {\\r\\n background: $fp-label-blue-bg;\\r\\n\\r\\n td:nth-child(2) {\\r\\n color: $fp-label-blue-text;\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n .associated-items-table {\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 5px;\\r\\n width: 100%;\\r\\n height: auto;\\r\\n overflow-y: scroll;\\r\\n max-height: 135px;\\r\\n margin-bottom: 5px;\\r\\n }\\r\\n\\r\\n .label {\\r\\n display: inline-block;\\r\\n }\\r\\n\\r\\n .label-info {\\r\\n background-color: $fp-label-gray-bg;\\r\\n color: $fp-label-gray-text;\\r\\n border: 1px solid $fp-label-gray-border;\\r\\n }\\r\\n\\r\\n .label-warning {\\r\\n background-color: $fp-label-orange-bg;\\r\\n color: $fp-label-orange-text;\\r\\n border: 1px solid $fp-label-orange-border;\\r\\n }\\r\\n\\r\\n .label-danger {\\r\\n background-color: $fp-label-red-bg;\\r\\n color: $fp-label-red-text;\\r\\n border: 1px solid $fp-label-red-border;\\r\\n }\\r\\n\\r\\n .label-success {\\r\\n background-color: $fp-label-green-bg;\\r\\n color: $fp-label-green-text;\\r\\n border: 1px solid $fp-label-green-border;\\r\\n }\\r\\n\\r\\n .text-success {\\r\\n color: $fp-label-green-text;\\r\\n }\\r\\n\\r\\n .text-warning {\\r\\n color: $yellow;\\r\\n }\\r\\n\\r\\n .text-danger {\\r\\n color: $fp-label-red-text;\\r\\n }\\r\\n\\r\\n .pill-radio {\\r\\n background: white;\\r\\n color: $text-color;\\r\\n padding: 2px 12px;\\r\\n margin-right: 4px;\\r\\n font-size: 11px;\\r\\n border-radius: 4px;\\r\\n cursor: pointer;\\r\\n display: inline-block;\\r\\n }\\r\\n\\r\\n .pill-radio:hover {\\r\\n background: darken(white, 4%);\\r\\n color: $text-color;\\r\\n font-weight: 800;\\r\\n }\\r\\n\\r\\n .pill-radio.active {\\r\\n background: $fp-purple;\\r\\n color: $delinea-green;\\r\\n font-weight: 800;\\r\\n }\\r\\n\\r\\n .vAccordion--default v-pane-content {\\r\\n div {\\r\\n padding-bottom: 0;\\r\\n }\\r\\n }\\r\\n\\r\\n .vAccordion--default v-pane.is-expanded {\\r\\n v-pane-header {\\r\\n color: $fp-purple;\\r\\n border-color: #C2C4CC;\\r\\n }\\r\\n }\\r\\n\\r\\n .custom-vPane-header {\\r\\n border: 0;\\r\\n padding-left: 40px;\\r\\n\\r\\n h4 {\\r\\n margin-bottom: 0;\\r\\n color: $text-color;\\r\\n }\\r\\n }\\r\\n\\r\\n .custom-vPane-header:hover {\\r\\n color: $fp-purple;\\r\\n }\\r\\n\\r\\n .custom-vPane-header:focus {\\r\\n color: $fp-purple;\\r\\n }\\r\\n\\r\\n .vAccordion--default v-pane.is-expanded {\\r\\n .custom-vPane-header {\\r\\n color: $fp-purple;\\r\\n }\\r\\n }\\r\\n\\r\\n .icons8-new-window {\\r\\n cursor: pointer;\\r\\n font-size: 20px;\\r\\n color: $text-color;\\r\\n }\\r\\n}\\r\\n\",\".configuration {\\r\\n .company-logo {\\r\\n max-width: 150px;\\r\\n height:auto;\\r\\n }\\r\\n table {\\r\\n margin-bottom: 0px;\\r\\n }\\r\\n}\\r\\n\",\".ownership-group-assignments {\\r\\n div[list-view] {\\r\\n height: 300px;\\r\\n overflow: auto;\\r\\n }\\r\\n}\",\".maintain-templates-list {\\r\\n .list-item {\\r\\n padding: 0px;\\r\\n }\\r\\n\\r\\n .list-item-row-button {\\r\\n position: relative;\\r\\n border-left: 1px solid #e7e7e7;\\r\\n }\\r\\n}\\r\\n\",\".maintain-system-roles {\\r\\n\\r\\n .pill-radio {\\r\\n padding: 3px 8px;\\r\\n margin-right: 5px;\\r\\n background: #8EA7B8;\\r\\n color: #FFF;\\r\\n font-weight: 700;\\r\\n\\r\\n &:hover {\\r\\n background: #5A90BF;\\r\\n color: #FFF;\\r\\n font-weight: 700;\\r\\n }\\r\\n\\r\\n &:active {\\r\\n background: #5A90BF;\\r\\n color: #FFF;\\r\\n font-weight: 700;\\r\\n }\\r\\n }\\r\\n\\r\\n .pill-radio.active {\\r\\n background: #5A90BF;\\r\\n color: #FFF;\\r\\n font-weight: 700;\\r\\n }\\r\\n\\r\\n .badge {\\r\\n font-size: 11px;\\r\\n }\\r\\n\\r\\n .maintain-system-roles {\\r\\n .active-card {\\r\\n background-color: #291972;\\r\\n color: white;\\r\\n }\\r\\n }\\r\\n\\r\\n .maintain-system-roles-modal {\\r\\n .k-grid-content {\\r\\n min-height: 290px;\\r\\n }\\r\\n }\\r\\n}\\r\\n\",\".system-user-mappings-scrollable {\\r\\n max-height: 470px;\\r\\n overflow-y: scroll;\\r\\n}\\r\\n\\r\\n.bottom-border {\\r\\n border-bottom: 1px solid #C2C4CC;\\r\\n}\\r\\n\",\"/*CUSTOM EDITS FOR FASTPATH HERE*/\\r\\n\\r\\n* {\\r\\n scrollbar-width: thin;\\r\\n scrollbar-color: #aaa #e7e7e7;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar {\\r\\n height: 12px;\\r\\n width: 12px;\\r\\n border: 1px solid #aaa;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-track {\\r\\n background: #e7e7e7;\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar-thumb {\\r\\n background-color: #aaa;\\r\\n border-radius: 20px;\\r\\n border: 3px solid #e7e7e7;\\r\\n}\\r\\n\\r\\n.k-grouping-row td, .k-group-footer td, .k-grid-footer td {\\r\\n color: #291972;\\r\\n}\\r\\n\\r\\n.k-popup.k-list-container {\\r\\n width: 450px !important;\\r\\n}\\r\\n\\r\\n.k-i-loading {\\r\\n background-image: url('../Content/Images/SVG/16Spinner.svg');\\r\\n}\\r\\n\\r\\n.k-i-loading.k-hidden {\\r\\n /* hide loading icon in kendo UI widgets */\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.k-loading-image {\\r\\n background-image: url('plugins/kendo/Bootstrap/loading-image-spinner.gif');\\r\\n background-position: top;\\r\\n background-position-y: 35%;\\r\\n background-color: #3333330f;\\r\\n}\\r\\n\\r\\n.k-grid tr td {\\r\\n border-color: #C2C4CC;\\r\\n}\\r\\n\\r\\n.k-grid tr td {\\r\\n border-width: 0 0 0 0;\\r\\n}\\r\\n\\r\\n.k-gantt-toolbar .k-state-default, .k-grid .k-grouping-header, .k-grid-header, .k-grid-header-wrap, .k-grouping-header .k-group-indicator, .k-header, .k-pager-wrap, .k-pager-wrap .k-link, .k-pager-wrap .k-textbox {\\r\\n border-color: #C2C4CC;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.k-grid input.k-checkbox + label.k-checkbox-label {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.k-grid-header th.k-header {\\r\\n font-weight: 800;\\r\\n}\\r\\n\\r\\n.k-autocomplete, .k-block, .k-button-group .k-tool, .k-calendar th, .k-colorpicker .k-i-arrow-s, .k-content, .k-dropdown-wrap, .k-dropzone-active, .k-editable-area, .k-filter-row > th, .k-footer-template td, .k-grid td, .k-grid td.k-state-selected, .k-grid-content-locked, .k-grid-footer, .k-grid-footer-locked, .k-grid-footer-wrap, .k-grid-header, .k-grid-header-locked, .k-grid-header-wrap, .k-group, .k-group-footer td, .k-grouping-header, .k-grouping-header .k-group-indicator, .k-header, .k-input, .k-pager-refresh, .k-pager-wrap, .k-pager-wrap .k-link, .k-panel > .k-item > .k-link, .k-panelbar .k-content, .k-panelbar .k-panel, .k-panelbar > .k-item > .k-link, .k-separator, .k-slider-track, .k-splitbar, .k-state-default, .k-state-default .k-select, .k-state-disabled, .k-textbox, .k-textbox > input, .k-tiles, .k-toolbar, .k-tooltip, .k-treemap-tile, .k-upload-files, .k-widget {\\r\\n border-color: #C2C4CC;\\r\\n}\\r\\n\\r\\n.k-button.k-state-hover, .k-button:hover {\\r\\n color: #333;\\r\\n border-color: #cecece;\\r\\n background-color: #ebebeb;\\r\\n}\\r\\n\\r\\n.k-button {\\r\\n color: #333;\\r\\n border-color: #dbdbdb;\\r\\n background-color: #fff;\\r\\n}\\r\\n\\r\\n.k-autocomplete.k-state-default, .k-dropdown-wrap.k-state-default, .k-multiselect.k-header, .k-numeric-wrap.k-state-default, .k-picker-wrap.k-state-default {\\r\\n border-color: #dbdbdb;\\r\\n}\\r\\n\\r\\n.criteria-container .k-dropdown > .k-dropdown-wrap {\\r\\n padding: 5px 0px;\\r\\n}\\r\\n\\r\\n.criteria-container .k-dropdown > .k-dropdown-wrap > .k-select {\\r\\n padding-top: 3px;\\r\\n}\\r\\n\\r\\n.k-dropdown-wrap.k-state-hover {\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.k-grid tbody tr:last-child td {\\r\\n border-bottom: 1px solid #f5f5f5;\\r\\n}\\r\\n\\r\\n.cross-platform-users .k-grid tbody tr {\\r\\n height: 50px\\r\\n}\\r\\n\\r\\n.btn.disabled, .btn[disabled], fieldset[disabled] .btn {\\r\\n opacity: 85%;\\r\\n pointer-events: none;\\r\\n}\\r\\n\\r\\n.inline-block {\\r\\n display: inline-block;\\r\\n vertical-align: top;\\r\\n}\\r\\n\\r\\n.vr {\\r\\n border-left: 1px solid #eeeeee;\\r\\n margin: 0 8px;\\r\\n height: 18px;\\r\\n}\\r\\n\\r\\n.vr-ra {\\r\\n border-left: 1px solid #d3d3d3;\\r\\n margin: 0 8px;\\r\\n height: 18px;\\r\\n}\\r\\n\\r\\n.selected-tenant-in-dropdown {\\r\\n background-color: #e2e7e9;\\r\\n border-radius: 4px;\\r\\n pointer-events: none;\\r\\n}\\r\\n\\r\\n.set-min-col-width .k-grid col {\\r\\n width: 150px;\\r\\n}\\r\\n\\r\\n.sweet-alert-pre-wrap {\\r\\n white-space: pre-wrap;\\r\\n}\\r\\n\\r\\nbody.mini-navbar .nav-header {\\r\\n padding: 0;\\r\\n background-color: $delinea-purple;\\r\\n}\\r\\n\\r\\n.places-dropdown-shell {\\r\\n padding-bottom: 10px;\\r\\n}\\r\\n\\r\\n.places-dropdown-shell .form-inline .input-group {\\r\\n display: table;\\r\\n}\\r\\n\\r\\n.nav-header {\\r\\n background-color: $delinea-purple\\r\\n /*background-image: url('patterns/header-profile-black.png');*/\\r\\n}\\r\\n\\r\\n.semi-transparent-nav-icon {\\r\\n opacity: 0.32;\\r\\n}\\r\\n\\r\\n.center-grid-icon {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.search-icon {\\r\\n width: 12px;\\r\\n margin-bottom: 8px;\\r\\n margin-left: 4px;\\r\\n}\\r\\n\\r\\n.ad-user-link-text {\\r\\n vertical-align: bottom;\\r\\n}\\r\\n\\r\\n.grid-trash-icon {\\r\\n font-size: 1.2em;\\r\\n color: red;\\r\\n display: inline-flex;\\r\\n}\\r\\n\\r\\n.trash-icon-sd {\\r\\n font-size: 1.3em;\\r\\n display: inline-flex;\\r\\n margin: 0 6px 0px 0;\\r\\n}\\r\\n\\r\\n.sd-table-fields-pill-padding {\\r\\n padding: 3px 8px;\\r\\n}\\r\\n\\r\\n.plus-icon-trm {\\r\\n font-size: 1.8em;\\r\\n display: inline-flex;\\r\\n}\\r\\n\\r\\n.floating-left-icon {\\r\\n width: 42px;\\r\\n float: left;\\r\\n height: 100%;\\r\\n margin-top: 4px;\\r\\n}\\r\\n\\r\\n.float-icon8-left {\\r\\n width: 42px;\\r\\n float: left;\\r\\n margin-top: -4px;\\r\\n}\\r\\n\\r\\n.k-filter-row label>input[type=radio] {\\r\\n accent-color: $fp-purple;\\r\\n}\\r\\n\\r\\ninput[type=radio] {\\r\\n accent-color: $fp-purple;\\r\\n}\\r\\n\\r\\n.input-sm {\\r\\n font-size: 11px;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\ninput[type=checkbox] {\\r\\n accent-color: $fp-purple;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.label-pill {\\r\\n padding-right: .6em;\\r\\n padding-left: .6em;\\r\\n border-radius: 10rem;\\r\\n}\\r\\n\\r\\n.elastic-builder {\\r\\n\\r\\n .btn-primary {\\r\\n background-color: $fp-purple;\\r\\n border-color: $fp-purple;\\r\\n color: white;\\r\\n\\r\\n &:hover, .active, &:active, .open > .dropdown-toggle.btn-primary {\\r\\n background-color: $delinea-purple;\\r\\n }\\r\\n\\r\\n\\r\\n }\\r\\n}\\r\\n\\r\\n.btn-primary {\\r\\n background-color: $fp-yellow;\\r\\n border-color: $fp-yellow;\\r\\n color: #FFFFFF;\\r\\n}\\r\\n\\r\\n.btn-primary.active, .btn-primary:active, .open > .dropdown-toggle.btn-primary {\\r\\n background-color: $delinea-purple;\\r\\n}\\r\\n\\r\\n.searchBoxIcon {\\r\\n color: #2791D9;\\r\\n padding-right: 8px;\\r\\n padding-left: 4px;\\r\\n}\\r\\n\\r\\n.risk-details-for-mitigate-modal {\\r\\n background-color: #f4f4f4;\\r\\n padding: 16px 24px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.table-max-height-250 {\\r\\n max-height: 250px;\\r\\n overflow: auto;\\r\\n overflow-x: hidden;\\r\\n}\\r\\n\\r\\n.dropdown-max-height {\\r\\n max-height: 650px;\\r\\n overflow: auto;\\r\\n overflow-x: hidden;\\r\\n}\\r\\n\\r\\n#dropdown-prevent-default {\\r\\n left: 0;\\r\\n right: auto;\\r\\n}\\r\\n\\r\\n/*Style Navigation Items*/\\r\\n.NavigationIcon {\\r\\n height: 20px;\\r\\n width: 20px;\\r\\n display: inline-block;\\r\\n background-size: 20px 20px;\\r\\n background-repeat: no-repeat;\\r\\n vertical-align: middle;\\r\\n margin-bottom: 2px;\\r\\n}\\r\\n\\r\\n.NavigationIcon_review_assignments {\\r\\n height: 45px;\\r\\n width: 45px;\\r\\n display: inline-block;\\r\\n background-size: 45px 45px;\\r\\n background-repeat: no-repeat;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.CustomIcon10 {\\r\\n height: 10px;\\r\\n width: 10px;\\r\\n display: inline-block;\\r\\n background-size: 10px 10px;\\r\\n background-repeat: no-repeat;\\r\\n vertical-align: middle;\\r\\n margin-right: 3px;\\r\\n margin-bottom: 2px;\\r\\n}\\r\\n\\r\\n.custom-icon-for-h4 {\\r\\n height: 18px;\\r\\n width: 18px;\\r\\n display: inline-block;\\r\\n background-size: contain;\\r\\n background-repeat: no-repeat;\\r\\n vertical-align: middle;\\r\\n padding-bottom: 20px;\\r\\n}\\r\\n\\r\\n.custom-circle-icon {\\r\\n height: 12px;\\r\\n width: 12px;\\r\\n display: inline-block;\\r\\n background-size: contain;\\r\\n background-repeat: no-repeat;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.custom-icon-30 {\\r\\n height: 30px;\\r\\n width: 30px;\\r\\n display: inline-block;\\r\\n background-size: contain;\\r\\n background-repeat: no-repeat;\\r\\n vertical-align: middle;\\r\\n padding-bottom: 20px;\\r\\n}\\r\\n\\r\\n.custom-icon-20 {\\r\\n height: 20px;\\r\\n width: 20px;\\r\\n display: inline-block;\\r\\n background-size: contain;\\r\\n background-repeat: no-repeat;\\r\\n vertical-align: middle;\\r\\n padding-bottom: 20px;\\r\\n}\\r\\n\\r\\n.height-width-80 {\\r\\n height: 80px;\\r\\n width: 80px;\\r\\n background-size: contain;\\r\\n}\\r\\n\\r\\n.custom-icon-for-inline-text {\\r\\n height: 12px;\\r\\n width: 12px;\\r\\n display: inline-block;\\r\\n background-size: contain;\\r\\n background-repeat: no-repeat;\\r\\n vertical-align: middle;\\r\\n padding-bottom: 14px;\\r\\n}\\r\\n\\r\\n.delinea-plus {\\r\\n background-image: url('../Content/Images/SVG/SecurityDesignerCircleOnlyIcon.svg');\\r\\n}\\r\\n\\r\\n.custom-icon-for-p {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n display: inline-block;\\r\\n background-size: contain;\\r\\n background-repeat: no-repeat;\\r\\n vertical-align: middle;\\r\\n padding-bottom: 16px;\\r\\n}\\r\\n\\r\\n.noSecurityModelsLogo {\\r\\n height: 150px;\\r\\n width: 150px;\\r\\n display: inline-block;\\r\\n background-size: contain;\\r\\n background-repeat: no-repeat;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.SecurityDesignerCircleOnly {\\r\\n background-image: url('../Content/Images/SVG/SecurityDesignerCircleOnlyIcon.svg');\\r\\n}\\r\\n\\r\\n.wrap-security-model-name {\\r\\n overflow-wrap: break-word\\r\\n}\\r\\n\\r\\n.padding-left-10 {\\r\\n padding-left: 10px;\\r\\n}\\r\\n\\r\\n.label-dimgrey {\\r\\n background: $fp-label-gray-bg;\\r\\n color: $fp-label-gray-text;\\r\\n border: 1px solid $fp-label-gray-border;\\r\\n}\\r\\n\\r\\n.label-darkgray {\\r\\n background: #0a0a0a;\\r\\n color: #47535f;\\r\\n}\\r\\n\\r\\n.error-req {\\r\\n color: $red;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.count-info .badge {\\r\\n line-height: 12px;\\r\\n padding: 2px 5px;\\r\\n position: absolute;\\r\\n right: 6px;\\r\\n top: 12px;\\r\\n}\\r\\n\\r\\n.icons8-risk-analysis-results {\\r\\n background-image: url('../Content/Images/SVG/SecurityDesignerRiskAnalysisResults.svg');\\r\\n}\\r\\n\\r\\n.icons8-submit-progress {\\r\\n background-image: url('../Content/Images/SVG/icons8-Submit Progress.svg');\\r\\n}\\r\\n\\r\\n.defaultMitigationIcon {\\r\\n background-image: url('../Content/Images/SVG/DefaultMit.svg');\\r\\n}\\r\\n\\r\\n.Integrations {\\r\\n background-image: url('../Content/Images/SVG/ConnectionsWhite.svg');\\r\\n}\\r\\n\\r\\n.IntegrationsPurple {\\r\\n background-image: url('../Content/Images/SVG/ConnectionsPurple.svg');\\r\\n}\\r\\n\\r\\n.ChangeTracking {\\r\\n background-image: url('../Content/Images/SVG/Change ThemeWhite.svg');\\r\\n}\\r\\n\\r\\n.ChangeTrackingPurple {\\r\\n background-image: url('../Content/Images/SVG/Change ThemePurple.svg');\\r\\n}\\r\\n\\r\\n.AccessControl {\\r\\n background-image: url('../Content/Images/SVG/AccessRiskMonitorWhite.svg');\\r\\n}\\r\\n\\r\\n.AccessControlPurple {\\r\\n background-image: url('../Content/Images/SVG/AccessRiskMonitorPurple.svg');\\r\\n}\\r\\n\\r\\n.AccessCertifications {\\r\\n background-image: url('../Content/Images/SVG/certificationsWhite.svg');\\r\\n}\\r\\n\\r\\n.AccessCertificationsPurple {\\r\\n background-image: url('../Content/Images/SVG/certificationsPurple.svg');\\r\\n}\\r\\n\\r\\n.Setup {\\r\\n background-image: url('../Content/Images/SVG/SettingsWhite.svg');\\r\\n}\\r\\n\\r\\n.SetupPurple {\\r\\n background-image: url('../Content/Images/SVG/SettingsPurple.svg');\\r\\n}\\r\\n\\r\\n.SecuritySetup {\\r\\n background-image: url('../Content/Images/SVG/SecuritySetupWhite.svg');\\r\\n}\\r\\n\\r\\n.SecuritySetupPurple {\\r\\n background-image: url('../Content/Images/SVG/SecuritySetupPurple.svg');\\r\\n}\\r\\n\\r\\n.SystemConfiguration {\\r\\n background-image: url('../Content/Images/SVG/SettingsWhite.svg');\\r\\n}\\r\\n\\r\\n.SystemConfigurationPurple {\\r\\n background-image: url('../Content/Images/SVG/SettingsPurple.svg');\\r\\n}\\r\\n\\r\\n.ReportManagement {\\r\\n background-image: url('../Content/Images/SVG/CalendarWhite.svg');\\r\\n}\\r\\n\\r\\n.ReportManagementPurple {\\r\\n background-image: url('../Content/Images/SVG/CalendarPurple.svg');\\r\\n}\\r\\n\\r\\n.DataTransfer {\\r\\n background-image: url('../Content/Images/SVG/DataTransferPurple.svg');\\r\\n}\\r\\n\\r\\n.SecurityDesigner {\\r\\n background-image: url('../Content/Images/SVG/SecurityDesignerIconWhite.svg');\\r\\n}\\r\\n\\r\\n.SecurityDesignerPurple {\\r\\n background-image: url('../Content/Images/SVG/SecurityDesignerIconPurple.svg');\\r\\n}\\r\\n\\r\\n.IdentityManager {\\r\\n background-image: url('../Content/Images/SVG/Electronic Identity CardWhite.svg');\\r\\n}\\r\\n\\r\\n.IdentityManagerPurple {\\r\\n background-image: url('../Content/Images/SVG/Electronic Identity CardPurple.svg');\\r\\n}\\r\\n\\r\\n.TransactionMonitoring {\\r\\n background-image: url('../Content/Images/SVG/icons8-surveyWhite.svg');\\r\\n}\\r\\n\\r\\n.TransactionMonitoringPurple {\\r\\n background-image: url('../Content/Images/SVG/icons8-surveyPurple.svg');\\r\\n}\\r\\n\\r\\n.x-circle-12 {\\r\\n background-image: url('../Content/Images/SVG/x-circle-12.svg');\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n display: inline-block;\\r\\n background-size: contain;\\r\\n background-repeat: no-repeat;\\r\\n vertical-align: middle;\\r\\n padding-bottom: 20px;\\r\\n margin-left: 4px;\\r\\n}\\r\\n\\r\\n.uploadIcon {\\r\\n background-image: url('../Content/Images/SVG/UploadPurple.svg');\\r\\n}\\r\\n\\r\\n.dataBasePurge {\\r\\n background-image: url('../Content/Images/SVG/PurgeDataChanges.svg');\\r\\n}\\r\\n\\r\\n.dataBaseCollect {\\r\\n background-image: url('../Content/Images/SVG/CollectDataChanges.svg');\\r\\n}\\r\\n\\r\\n.dataBaseArchive {\\r\\n background-image: url('../Content/Images/SVG/ArchiveDataCanges.svg');\\r\\n}\\r\\n\\r\\n.dataBaseRestore {\\r\\n background-image: url('../Content/Images/SVG/RestoreDataChanges.svg');\\r\\n}\\r\\n\\r\\n.snapshotCollect {\\r\\n background-image: url('../Content/Images/SVG/CollectSnapshot.svg');\\r\\n}\\r\\n\\r\\n.menu-item-shield {\\r\\n background-image: url('../Content/Images/SVG/Application Shield.svg');\\r\\n}\\r\\n\\r\\n.xml-box-icon {\\r\\n background-image: url('../Content/Images/SVG/XML.svg');\\r\\n}\\r\\n\\r\\n.information {\\r\\n background-image: url('../Content/Images/SVG/securityDesigner/icons8-info.svg');\\r\\n}\\r\\n\\r\\n.information-fade {\\r\\n background-image: url('../Content/Images/SVG/securityDesigner/icons8-info-fade.svg');\\r\\n}\\r\\n\\r\\n.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.navbar-default {\\r\\n font-weight: normal;\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.k-grid, .k-scheduler, .k-menu, .k-editor {\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\n.k-block, .k-button, .k-textbox, .k-drag-clue, .k-touch-scrollbar, .k-window, .k-window-titleless .k-window-content, .k-window-action, .k-inline-block, .k-grid .k-filter-options, .k-grouping-header .k-group-indicator, .k-autocomplete, .k-multiselect, .k-combobox, .k-dropdown, .k-dropdown-wrap, .k-datepicker, .k-timepicker, .k-colorpicker, .k-datetimepicker, .k-notification, .k-numerictextbox, .k-picker-wrap, .k-numeric-wrap, .k-colorpicker, .k-list-container, .k-calendar-container, .k-calendar td, .k-calendar .k-link, .k-treeview .k-in, .k-editor-inline, .k-tooltip, .k-tile, .k-slider-track, .k-slider-selection, .k-upload, .k-split-button {\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\n.list-group-item {\\r\\n border: 0px;\\r\\n}\\r\\n\\r\\n.k-widget.k-tooltip-validation {\\r\\n border-color: #FFDEAB;\\r\\n background-color: #FFDEAB;\\r\\n color: #2D2D2D;\\r\\n}\\r\\n\\r\\n.glyphicon-star-favorite:before {\\r\\n content: \\\"\\\\e006\\\";\\r\\n font-size: 18px;\\r\\n color: $fp-yellow;\\r\\n}\\r\\n\\r\\n.glyphicon-star-favorite-empty:before {\\r\\n content: \\\"\\\\e006\\\";\\r\\n font-size: 18px;\\r\\n color: $fp-dark-gray;\\r\\n}\\r\\n\\r\\n.navigationPlaceMarker {\\r\\n color: #2791D9;\\r\\n}\\r\\n\\r\\n.hr-line-dashed-thin {\\r\\n border-top: 1px dashed #C2C4CC;\\r\\n color: #ffffff;\\r\\n background-color: #ffffff;\\r\\n height: 1px;\\r\\n margin: 14px 0;\\r\\n}\\r\\n\\r\\n.params-box-minimize {\\r\\n position: absolute;\\r\\n bottom: 0px;\\r\\n color: #434343;\\r\\n padding-top: 2px;\\r\\n padding-bottom: 2px;\\r\\n padding-left: 8px;\\r\\n padding-right: 8px;\\r\\n border-top-right-radius: 5px;\\r\\n border-top-left-radius: 5px;\\r\\n font-size: 11px;\\r\\n width: 150px;\\r\\n}\\r\\n\\r\\n.params-box-minimize:hover, .params-box-minimize:focus {\\r\\n background-color: #d1dadd;\\r\\n color: #646a6c;\\r\\n}\\r\\n\\r\\n.marginBottom {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.marginTopRequestManagement {\\r\\n margin-top: 30px;\\r\\n}\\r\\n\\r\\n.marginBottomTen {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.whiteText {\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.whiteHelpIcon {\\r\\n color: $fp-dark-gray;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n.blue-report-header {\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.import-progress-bar {\\r\\n background: #ffbd55;\\r\\n}\\r\\n\\r\\n.progress-bar-bad-data {\\r\\n background-color: #cbcbcb;\\r\\n color: #595959;\\r\\n}\\r\\n\\r\\n.navbar-fixed-top, .navbar-static-top {\\r\\n background: #FFFFFF;\\r\\n}\\r\\n\\r\\n.headerPaddingTwenty {\\r\\n padding-left: 20px;\\r\\n}\\r\\n\\r\\n.headerPaddingThirty {\\r\\n padding-left: 28px;\\r\\n}\\r\\n\\r\\n\\r\\n.reportParametersBox {\\r\\n padding-top: 20px;\\r\\n padding-bottom: 25px;\\r\\n padding-right: 30px;\\r\\n padding-left: 30px;\\r\\n background: white;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.ibox {\\r\\n box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12);\\r\\n}\\r\\n\\r\\n.panel-body {\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\n.darkBlueButtonHeader {\\r\\n background-color: #1b527e;\\r\\n border-color: #1b527e;\\r\\n border: 1px solid #1b527e;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.darkBlueButtonHeader:hover, .darkBlueButtonHeader:focus, .darkBlueButtonHeader:active, .darkBlueButtonHeader.active, .open .dropdown-toggle.darkBlueButtonHeader {\\r\\n background-color: #163450;\\r\\n border-color: #163450;\\r\\n border: 1px solid #163450;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.k-state-selected a, .k-state-selected:link a {\\r\\n color: white;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.btn {\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.filter-dropdown-width {\\r\\n width: 220px;\\r\\n}\\r\\n\\r\\ntextarea {\\r\\n resize: none;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n.form-control, .single-line {\\r\\n border: 1px solid $border-color;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n.alert {\\r\\n margin-bottom: 2px;\\r\\n border-radius: 4px;\\r\\n border: none;\\r\\n font-weight: 700;\\r\\n}\\r\\n\\r\\n.alert-info {\\r\\n color: $fp-label-yellow-text;\\r\\n background-color: $fp-label-yellow-bg;\\r\\n border-left: 4px solid $fp-label-yellow-border;\\r\\n}\\r\\n\\r\\n.alert-warning {\\r\\n background-color: $fp-label-orange-bg;\\r\\n color: $fp-label-orange-text;\\r\\n border-left: 4px solid $fp-label-orange-border;\\r\\n}\\r\\n\\r\\n.alert-danger {\\r\\n background-color: $fp-label-red-bg;\\r\\n color: $fp-label-red-text;\\r\\n border-left: 4px solid $fp-label-red-border;\\r\\n}\\r\\n\\r\\n.alert-success {\\r\\n background-color: $fp-label-green-bg;\\r\\n color: $fp-label-green-text;\\r\\n border-left: 4px solid $fp-label-green-border;\\r\\n}\\r\\n\\r\\n.btn-blue {\\r\\n border: 2px solid $fp-yellow;\\r\\n color: white;\\r\\n font-size: 13px;\\r\\n font-weight: 600;\\r\\n display: inline-block;\\r\\n padding: 5px 10px;\\r\\n border-radius: 4px;\\r\\n background: $fp-yellow;\\r\\n}\\r\\n\\r\\n.btn-blue:focus {\\r\\n background-color: #261769;\\r\\n border-color: #261769;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n\\r\\n.btn-blue:hover {\\r\\n background-color: #261769;\\r\\n border-color: #261769;\\r\\n color: $delinea-green;\\r\\n}\\r\\n\\r\\n.btn-red {\\r\\n color: RGBA(231,76,60,1);\\r\\n border: 2px solid RGBA(231,76,60,1);\\r\\n font-size: 13px;\\r\\n font-weight: 600;\\r\\n display: inline-block;\\r\\n padding: 5px 10px;\\r\\n border-radius: 15px;\\r\\n background: white;\\r\\n font-weight: 700;\\r\\n}\\r\\n\\r\\n.btn-red:hover {\\r\\n background: RGBA(231,76,60,0.15);\\r\\n color: RGBA(231,76,60,1);\\r\\n}\\r\\n\\r\\n.btn-green {\\r\\n color: RGBA(123, 197, 123, 1);\\r\\n border: 2px solid RGBA(123, 197, 123, 1);\\r\\n font-size: 13px;\\r\\n font-weight: 600;\\r\\n display: inline-block;\\r\\n padding: 5px 10px;\\r\\n border-radius: 15px;\\r\\n background: white;\\r\\n font-weight: 700;\\r\\n}\\r\\n\\r\\n.btn-green:hover {\\r\\n background: RGBA(123, 197, 123, 0.15);\\r\\n color: RGBA(123, 197, 123, 1);\\r\\n}\\r\\n\\r\\n.btn-orange {\\r\\n color: RGBA(249, 182, 105, 1);\\r\\n border: 2px solid RGBA(249, 182, 105, 1);\\r\\n font-size: 13px;\\r\\n font-weight: 600;\\r\\n display: inline-block;\\r\\n padding: 5px 10px;\\r\\n border-radius: 15px;\\r\\n background: white;\\r\\n font-weight: 700;\\r\\n}\\r\\n\\r\\n.btn-orange:hover {\\r\\n background: RGBA(249, 182, 105, 0.10);\\r\\n color: RGBA(249, 182, 105, 1);\\r\\n}\\r\\n\\r\\n.btn-light {\\r\\n color: #707070;\\r\\n border: 1px solid #C2C3C4;\\r\\n font-size: 13px;\\r\\n font-weight: 600;\\r\\n display: inline-block;\\r\\n padding: 5px 10px;\\r\\n border-radius: 5px;\\r\\n background: white;\\r\\n font-weight: 700;\\r\\n}\\r\\n\\r\\n.btn-light:hover {\\r\\n background: #F4F4F4;\\r\\n}\\r\\n\\r\\n.btn-modalClose {\\r\\n color: #4b4f66;\\r\\n border: none;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.btn-modalClose:hover {\\r\\n color: $red;\\r\\n}\\r\\n\\r\\n.btn-modalClose i {\\r\\n font-size: 1.3333333333em;\\r\\n}\\r\\n\\r\\n.gridToolbarWrapper {\\r\\n border: 1px solid #dbdbdb;\\r\\n}\\r\\n\\r\\n.customToolbar {\\r\\n padding: 4px;\\r\\n border-bottom: 1px solid #dbdbdb;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.hr-line-dashed-extra-padding {\\r\\n border-top: 1px dashed #C2C4CC;\\r\\n color: #ffffff;\\r\\n background-color: #ffffff;\\r\\n height: 1px;\\r\\n margin: 30px 0;\\r\\n}\\r\\n\\r\\n#custom-bootstrap-menu.navbar-default {\\r\\n font-size: 12px;\\r\\n background-color: #E2E7E9;\\r\\n}\\r\\n\\r\\n#custom-bootstrap-menu.navbar-default .nav > li {\\r\\n padding-right: 4px;\\r\\n}\\r\\n\\r\\n.nav > li.activeNoBorder {\\r\\n background-color: #242633;\\r\\n border-left: none;\\r\\n}\\r\\n\\r\\n.gridToolbarWrapper .k-grid {\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.navbar-form-custom .form-group {\\r\\n margin-bottom: 14px;\\r\\n margin-top: 13px;\\r\\n}\\r\\n\\r\\n.navbar-form-custom .form-control {\\r\\n height: 31px;\\r\\n}\\r\\n\\r\\n.navbar .form-control:focus {\\r\\n background: #FFFFFF;\\r\\n}\\r\\n\\r\\n.progress-strip {\\r\\n height: 20px;\\r\\n background-color: #07061D;\\r\\n}\\r\\n\\r\\n.params-submit-button {\\r\\n position: absolute;\\r\\n right: 30px;\\r\\n bottom: 12px;\\r\\n}\\r\\n\\r\\n.navbar .dropdown-menu {\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\n/*.label {\\r\\n text-align: left;\\r\\n max-width: 400px;\\r\\n white-space: normal;\\r\\n}*/\\r\\n\\r\\n.list-group.clear-list .list-group-item {\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n.k-grid-content {\\r\\n max-height: 540px;\\r\\n}\\r\\n\\r\\n.big-icon {\\r\\n font-size: 110px !important;\\r\\n}\\r\\n\\r\\n.big-icon-50 {\\r\\n font-size: 50px !important;\\r\\n}\\r\\n\\r\\n.new-wizard-icon:hover {\\r\\n color: #595d72;\\r\\n}\\r\\n\\r\\n.modify-wizard-icon:hover {\\r\\n color: #595d72;\\r\\n}\\r\\n\\r\\n.terminate-wizard-icon:hover {\\r\\n color: #595d72;\\r\\n}\\r\\n\\r\\n.passwordRequirementMet {\\r\\n color: #5CB85C;\\r\\n}\\r\\n\\r\\n.selectedBigIcon {\\r\\n color: #76798b;\\r\\n}\\r\\n\\r\\n.selectedBigIcon:hover {\\r\\n color: #595d72;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n/* WIZARD PROGRESS BAR */\\r\\n.wizard-progress-container {\\r\\n margin-top: 20px;\\r\\n padding: 15px;\\r\\n width: 100%;\\r\\n position: absolute;\\r\\n bottom: 0;\\r\\n}\\r\\n\\r\\n.no-gutter > [class*='col-'] {\\r\\n padding-right: 0;\\r\\n padding-left: 0;\\r\\n}\\r\\n\\r\\n.small-gutter > [class*='col-'] {\\r\\n padding-right: 6px;\\r\\n padding-left: 6px;\\r\\n}\\r\\n\\r\\n.small-gutter {\\r\\n margin-left: -9px;\\r\\n margin-right: -9px;\\r\\n}\\r\\n\\r\\n.step-disabled {\\r\\n pointer-events: none;\\r\\n cursor: default;\\r\\n}\\r\\n\\r\\n.roles-grid-disabled {\\r\\n pointer-events: none;\\r\\n cursor: default;\\r\\n opacity: 0.6;\\r\\n}\\r\\n\\r\\n#wizard-body-content {\\r\\n padding: 30px;\\r\\n min-height: 400px;\\r\\n /*overflow: auto;*/\\r\\n /*overflow-x: hidden;*/\\r\\n}\\r\\n\\r\\n.passwordRequirements {\\r\\n padding-left: 10px;\\r\\n}\\r\\n\\r\\n.btn-info.active.focus, .btn-info.active:focus, .btn-info.active:hover, .btn-info:active.focus, .btn-info:active:focus, .btn-info:active:hover, .open > .dropdown-toggle.btn-info.focus, .open > .dropdown-toggle.btn-info:focus, .open > .dropdown-toggle.btn-info:hover {\\r\\n color: #fff;\\r\\n background-color: #24a259;\\r\\n border-color: #24a259;\\r\\n}\\r\\n\\r\\n.row-eq-height {\\r\\n display: -webkit-box;\\r\\n display: -webkit-flex;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n.wizard-navigation {\\r\\n background-color: white;\\r\\n border: 1px solid $border-color;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n.wizard-sub-heading {\\r\\n color: $text-color;\\r\\n font-size: 22.5px;\\r\\n}\\r\\n\\r\\n.simple-unordered-list {\\r\\n list-style: none outside none;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\n.form-control-dark {\\r\\n border: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.form-control-clear {\\r\\n border: 0px;\\r\\n}\\r\\n\\r\\n.ibox-padding {\\r\\n padding: 10px 20px 10px 15px;\\r\\n}\\r\\n\\r\\n.table-icon {\\r\\n padding-right: 3px;\\r\\n}\\r\\n\\r\\n.btn-white, .btn-white:hover, .btn-white:focus, .btn-white:active, .btn-white.active, .open .dropdown-toggle.btn-white {\\r\\n color: #676a6c;\\r\\n}\\r\\n\\r\\n.btn-white:active, .btn-white.active {\\r\\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.21) inset;\\r\\n}\\r\\n\\r\\n.button-label {\\r\\n position: relative;\\r\\n left: -10px;\\r\\n display: inline-block;\\r\\n padding: 6px 12px;\\r\\n background: rgba(0,0,0,0.15);\\r\\n border-radius: 3px 0 0 3px;\\r\\n}\\r\\n\\r\\n.btn-labeled {\\r\\n padding-top: 0;\\r\\n padding-bottom: 0;\\r\\n}\\r\\n\\r\\n.wizard-selection-columns {\\r\\n padding: 100px 20px 20px 20px;\\r\\n}\\r\\n\\r\\n.back-button-wrapper {\\r\\n text-align: center;\\r\\n background-color: #BDBDBD;\\r\\n color: #eeeeee;\\r\\n width: 50px;\\r\\n height: 48px;\\r\\n line-height: 44px;\\r\\n padding-top: 2px;\\r\\n border-top-left-radius: 10px;\\r\\n border-top-right-radius: 10px;\\r\\n border-bottom-right-radius: 10px;\\r\\n border-bottom-left-radius: 10px;\\r\\n margin-bottom: 10px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.back-button-wrapper:hover {\\r\\n background-color: #AFAEAE;\\r\\n}\\r\\n\\r\\n.back-button-wrapper i.fa {\\r\\n line-height: inherit;\\r\\n}\\r\\n\\r\\n.yellow-edit-background {\\r\\n background-color: #FFF1C5;\\r\\n}\\r\\n\\r\\n.img-center {\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.edit-border {\\r\\n border: solid $fp-purple 4px;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n.edit-wizard-label {\\r\\n background-color: white;\\r\\n color: $fp-purple;\\r\\n font-size: 18px;\\r\\n padding: 6px 10px;\\r\\n}\\r\\n\\r\\n.active-panel-header {\\r\\n background: #0088CC;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.panel-group .panel {\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\n.panel-default {\\r\\n border-color: $border-color;\\r\\n}\\r\\n\\r\\n.panel-default > .panel-heading {\\r\\n color: $text-color;\\r\\n background-color: white;\\r\\n border-color: $border-color;\\r\\n}\\r\\n\\r\\n.panel-heading > h4 {\\r\\n font-size: 22.5px;\\r\\n}\\r\\n\\r\\n\\r\\n/* WIZARD NAVIGATION */\\r\\n.wizard-steps {\\r\\n background-color: #f5f5f5;\\r\\n border-radius: 4px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.wizard-nav-container {\\r\\n padding-bottom: 30px;\\r\\n}\\r\\n\\r\\n.wizard-nav-list {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.previous-page-link {\\r\\n color: $text-color;\\r\\n font-weight: 700;\\r\\n font-size: 14px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.previous-page-link .fa {\\r\\n float: left;\\r\\n margin-top: 13px;\\r\\n color: $fp-purple;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.wizard-nav-link .glyphicon, .wizard-nav-link .fa {\\r\\n float: right;\\r\\n margin-top: 12px;\\r\\n margin-right: -6px;\\r\\n color: $fp-purple;\\r\\n}\\r\\n\\r\\n.wizard-nav-list > li.step-disabled > a .fa, .wizard-nav-list > li.step-disabled > a .glyphicon {\\r\\n float: right;\\r\\n margin-top: 12px;\\r\\n margin-right: -6px;\\r\\n color: #12132140;\\r\\n}\\r\\n\\r\\nli.wizard-nav-item.active .glyphicon, li.wizard-nav-item.active .fa {\\r\\n opacity: 1;\\r\\n}\\r\\n\\r\\n.blue-info-link {\\r\\n color: #8BB7F0;\\r\\n}\\r\\n\\r\\nli.wizard-nav-item {\\r\\n border-bottom: solid 1px $border-color;\\r\\n line-height: 40px;\\r\\n}\\r\\n\\r\\n.wizard-nav-list > li.active {\\r\\n border-left: none;\\r\\n}\\r\\n\\r\\n.wizard-nav-list > li.step-disabled > a {\\r\\n color: #12132140;\\r\\n background-color: #ffffff40;\\r\\n}\\r\\n\\r\\n.wizard-nav-list > li > a {\\r\\n background-color: white;\\r\\n padding: 3px 15px 3px 20px;\\r\\n color: $text-color;\\r\\n font-weight: 400;\\r\\n}\\r\\n\\r\\n.wizard-nav-list > li > a:hover {\\r\\n background-color: #f5f5f5;\\r\\n}\\r\\n\\r\\n.wizard-nav-list > li.already-visited > a.wizard-nav-link {\\r\\n color: $text-color;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.wizard-nav-list > li.active > a.wizard-nav-link {\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.wizard-nav-item .already-visited .active {\\r\\n background-color: #5794C4;\\r\\n}\\r\\n\\r\\n.wizard-nav-list li.active > a {\\r\\n background-color: #e0e0e0;\\r\\n font-weight: 600;\\r\\n border-left: 4px solid $fp-purple;\\r\\n}\\r\\n\\r\\nli.wizard-child-item {\\r\\n line-height: 20px;\\r\\n text-indent: 15px;\\r\\n font-weight: 400;\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.wizard-child-list li.active > a {\\r\\n background-color: #EEF1FF;\\r\\n font-weight: 600;\\r\\n border-left: none;\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.identity-manager-application-icon {\\r\\n background-color: white;\\r\\n padding: 15px;\\r\\n}\\r\\n\\r\\n.tile-919aa6b9-8083-4c08-ace7-9322aa69bc4e {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/NetSuiteIMTile.svg');\\r\\n}\\r\\n\\r\\n.tile-c311c379-e109-4e68-8082-f9c2f2e843ff {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/Dynamics365IMTile.svg');\\r\\n}\\r\\n\\r\\n.tile-a4066336-3e11-4856-a7cc-9726460448b0 {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/SAPIMTile.svg');\\r\\n}\\r\\n\\r\\n/*.tile-a4066336-3e11-4 {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/SAPB1IMTile.svg');\\r\\n}*/\\r\\n\\r\\n.tile-34d25422-9dc2-4918-8d85-084373e4bbb3 {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/OracleIMTile.svg');\\r\\n}\\r\\n\\r\\n.tile-e0981441-d1f9-4d5a-af74-cbb7339991a0 {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/DynamicsGPIMTile.svg');\\r\\n}\\r\\n\\r\\n.tile-e39d0c80-61ea-4f40-8179-a5def6869507 {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/DynamicsAXIMTile.svg');\\r\\n}\\r\\n\\r\\n.tile-19c49353-308b-4485-babe-f4200dfd1bf0 {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/DynamicsNAVIMTile.svg');\\r\\n}\\r\\n\\r\\n.tile-79f1178d-d827-460e-84e5-758c0b799115 {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/Dynamics365CustomerEngagementIMTile.svg');\\r\\n}\\r\\n\\r\\n.tile-286e7a77-4450-4527-987c-c08680356b00 {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/OracleCloudIMTile.svg');\\r\\n}\\r\\n\\r\\n.tile-e636d4fc-dd34-4dca-9171-d61270179167 {\\r\\n background-image: url('../Content/Images/ApplicationLogos/AzureActiveDirectory.svg');\\r\\n}\\r\\n\\r\\n.tile-23fa3370-b057-489e-b6bb-49aa2a2fa040 {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/UniversalProduct.svg');\\r\\n}\\r\\n\\r\\n.tile-52c24698-ed59-4734-a80f-c7bcde27b16f {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IMTiles/PeopleSoftIMTile.svg');\\r\\n}\\r\\n\\r\\n.tile-Salesforce {\\r\\n background-image: url('../Content/Images/ApplicationLogos/SalesforceLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.tile-Intacct {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IntacctLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.identity-manager-application-tile {\\r\\n height: 100px;\\r\\n width: 100%;\\r\\n display: inline-block;\\r\\n background-size: contain;\\r\\n background-repeat: no-repeat;\\r\\n}\\r\\n\\r\\n.file-application:hover {\\r\\n border: #D0D0D0 solid 1px;\\r\\n}\\r\\n\\r\\n.selected-application {\\r\\n box-shadow: inset 0px 0px 40px 40px rgba(120,167,204,0.14);\\r\\n}\\r\\n\\r\\n.disabled-application-tile {\\r\\n pointer-events: none;\\r\\n cursor: default;\\r\\n opacity: .7;\\r\\n}\\r\\n\\r\\n.available-roles-table {\\r\\n height: 300px !important;\\r\\n overflow: auto;\\r\\n overflow-x: hidden;\\r\\n}\\r\\n\\r\\n@media (min-width: 1170px) {\\r\\n .available-roles-table td.role-wrap {\\r\\n word-wrap: break-word;\\r\\n min-width: 160px;\\r\\n max-width: 160px;\\r\\n }\\r\\n}\\r\\n\\r\\n.vertical-scroll {\\r\\n overflow-y: auto;\\r\\n}\\r\\n\\r\\n.roles-table {\\r\\n height: 300px !important;\\r\\n overflow: -moz-scrollbars-vertical;\\r\\n overflow-y: scroll;\\r\\n}\\r\\n\\r\\n.record-types-table {\\r\\n height: 400px !important;\\r\\n overflow: auto;\\r\\n}\\r\\n\\r\\n.btn-approve {\\r\\n background-color: #73C940;\\r\\n border-color: #73C940;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-approve:hover, .btn-approve:focus, .btn-approve:active, .btn-approve.active, .open .dropdown-toggle.btn-approve {\\r\\n background-color: #6DBD3D;\\r\\n border-color: #6DBD3D;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-approve.active.focus, .btn-approve.active:focus, .btn-approve.active:hover, .btn-approve:active.focus, .btn-approve:active:focus, .btn-approve:active:hover, .open > .dropdown-toggle.btn-approve.focus, .open > .dropdown-toggle.btn-approve:focus, .open > .dropdown-toggle.btn-approve:hover {\\r\\n background-color: #6DBD3D;\\r\\n border-color: #6DBD3D;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.fontWeight600 {\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.btn-default {\\r\\n color: #291972;\\r\\n background-color: #fff;\\r\\n}\\r\\n\\r\\n.btn-default:hover {\\r\\n color: #291972;\\r\\n background-color: darken(#fff, 4%);\\r\\n}\\r\\n\\r\\n.btn-default.active.focus, .btn-default.active:focus, .btn-default.active:hover, .btn-default:active.focus, .btn-default:active:focus, .btn-default:active:hover, .open > .dropdown-toggle.btn-default.focus, .open > .dropdown-toggle.btn-default:focus, .open > .dropdown-toggle.btn-default:hover {\\r\\n color: #291972;\\r\\n background-color: darken(#fff, 4%);\\r\\n}\\r\\n\\r\\n.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default {\\r\\n color: #291972;\\r\\n background-color: darken(#fff, 4%);\\r\\n}\\r\\n\\r\\n.full button span {\\r\\n background-color: limegreen;\\r\\n border-radius: 32px;\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.partially button span {\\r\\n background-color: orange;\\r\\n border-radius: 32px;\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.table tbody > tr > td.vert-align {\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.table tbody > tr > td.vert-align-bottom {\\r\\n vertical-align: bottom;\\r\\n}\\r\\n\\r\\n.col-centered {\\r\\n float: none;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.ibox-min-height {\\r\\n min-height: 400px;\\r\\n padding: 30px;\\r\\n}\\r\\n\\r\\n.review-assignments-pane {\\r\\n min-height: 700px;\\r\\n}\\r\\n\\r\\n.verticalTabs .nav > li.active {\\r\\n border-left: 0px;\\r\\n background-color: transparent;\\r\\n}\\r\\n\\r\\n.topMarginForScheduleDropdown {\\r\\n margin-top: 34px;\\r\\n}\\r\\n\\r\\n.topMarginForScheduleSave {\\r\\n margin-top: 56px;\\r\\n}\\r\\n\\r\\n.modalBodyGray {\\r\\n background: #F2F3F5;\\r\\n /*box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);*/\\r\\n /*margin-bottom: 10px;*/\\r\\n}\\r\\n\\r\\n.topPaddingFifty {\\r\\n padding-top: 50px;\\r\\n}\\r\\n\\r\\n.backButtonPadding {\\r\\n padding-top: 10px;\\r\\n padding-bottom: 10px;\\r\\n}\\r\\n\\r\\n.navigationBack {\\r\\n font-size: 22px;\\r\\n margin-right: 10px;\\r\\n background-color: $fp-yellow;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.btn-greenRadio {\\r\\n background: #F1F1F1;\\r\\n color: rgb(103, 106, 108) !important;\\r\\n border: solid 1px #A9A9A9;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.btn-greenRadio:focus, .btn-greenRadio:active, .btn-greenRadio.active, .open .dropdown-toggle.btn-greenRadio {\\r\\n background-color: $fp-label-green-bg;\\r\\n border-color: $fp-label-green-border;\\r\\n color: $fp-label-green-text !important;\\r\\n}\\r\\n\\r\\n.btn-redRadio {\\r\\n background: #F1F1F1;\\r\\n color: rgb(103, 106, 108) !important;\\r\\n border: solid 1px #A9A9A9;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.btn-redRadio:focus, .btn-redRadio:active, .btn-redRadio.active, .open .dropdown-toggle.btn-redRadio {\\r\\n background-color: $fp-label-red-bg;\\r\\n border-color: $fp-label-red-border;\\r\\n color: $fp-label-red-text !important;\\r\\n}\\r\\n\\r\\n.btn-blueRadio {\\r\\n background: #F1F1F1;\\r\\n border: solid 1px #dadada;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.btn-blueRadio:focus, .btn-blueRadio:active, .btn-blueRadio.active, .open .dropdown-toggle.btn-blueRadio {\\r\\n background-color: $fp-purple;\\r\\n border-color: $fp-purple;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-blueRadio-darkBG {\\r\\n background: #F1F1F1;\\r\\n color: rgb(103, 106, 108) !important;\\r\\n border: solid 1px #A9A9A9;\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n.btn-blueRadio-darkBG:focus, .btn-blueRadio-darkBG:active, .btn-blueRadio-darkBG.active, .open .dropdown-toggle.btn-blueRadio-darkBG {\\r\\n background-color: #3070A5;\\r\\n border-color: #6F6F6F;\\r\\n color: white !important;\\r\\n}\\r\\n\\r\\n.criteria-container {\\r\\n position: relative;\\r\\n width: 280px;\\r\\n}\\r\\n\\r\\n.loading-select-icon {\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.medBlackSpinnerPlace {\\r\\n height: 50px;\\r\\n width: 50px;\\r\\n margin-left: 10px;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.medBlackSpinnerRelative {\\r\\n height: 110px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.pdfFontColor {\\r\\n color: #F56445;\\r\\n}\\r\\n\\r\\n.excelFontColor {\\r\\n color: #7cba89;\\r\\n}\\r\\n\\r\\n.text-blue {\\r\\n color: #5794C4;\\r\\n}\\r\\n\\r\\n\\r\\n.text-white {\\r\\n color: #FFFFFF;\\r\\n}\\r\\n\\r\\n.k-button.k-state-disabled, .k-button.k-state-disabled:active, .k-button.k-state-disabled:active:hover, .k-button.k-state-disabled:hover, .k-button[disabled], .k-state-disabled .k-button, .k-state-disabled .k-button:active, .k-state-disabled .k-button:hover {\\r\\n opacity: .65;\\r\\n}\\r\\n\\r\\n.k-grid-header-disabled {\\r\\n pointer-events: none;\\r\\n opacity: .7;\\r\\n}\\r\\n\\r\\n.wizard-disabled {\\r\\n pointer-events: none;\\r\\n opacity: .6;\\r\\n}\\r\\n\\r\\n.k-grid tbody tr {\\r\\n height: 28px;\\r\\n}\\r\\n\\r\\n.k-grid td {\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n.navbar-default .special_link a {\\r\\n background: #135284;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.navbar-default .special_link a:hover {\\r\\n background: #0f456f !important;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.navbar-default .special_link a:focus {\\r\\n background: #135284 !important;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.detailedButton {\\r\\n padding-right: 20px;\\r\\n padding-left: 20px;\\r\\n color: white;\\r\\n border-radius: 15px;\\r\\n background-color: rgba(255, 255, 255, 0.2);\\r\\n}\\r\\n\\r\\n.detailedButton:hover {\\r\\n color: white;\\r\\n background-color: rgba(255, 255, 255, 0.3);\\r\\n}\\r\\n\\r\\n.backToReportViewerButton {\\r\\n padding-right: 20px;\\r\\n padding-left: 20px;\\r\\n color: white;\\r\\n border-radius: 15px;\\r\\n background-color: rgba(38, 117, 179, 0.70);\\r\\n}\\r\\n\\r\\n.backToReportViewerButton:hover {\\r\\n color: white;\\r\\n background-color: rgba(38, 117, 179, 0.80);\\r\\n}\\r\\n\\r\\n.backToReportViewer {\\r\\n padding-top: 15px;\\r\\n padding-left: 18px;\\r\\n padding-right: 18px;\\r\\n}\\r\\n\\r\\n.wrap-report-button-text {\\r\\n text-overflow: ellipsis;\\r\\n overflow: hidden;\\r\\n white-space: normal\\r\\n}\\r\\n\\r\\n.nav-header {\\r\\n background-repeat: no-repeat;\\r\\n}\\r\\n\\r\\n.dropdown-menu > li > a:focus, .dropdown-menu > li > a:hover {\\r\\n background: #f5f5f5;\\r\\n}\\r\\n\\r\\n.favorite-star-color {\\r\\n color: #FFBD55;\\r\\n}\\r\\n\\r\\n.play-saved-report-color {\\r\\n color: #8CB9F3;\\r\\n}\\r\\n\\r\\n/*.todo-list.small-list :hover {\\r\\n background: #edf0f5;\\r\\n}\\r\\n\\r\\n.todo-list.small-list > li {\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\n.todo-list.small-list > li {\\r\\n background: white;\\r\\n margin-bottom: 0;\\r\\n padding-bottom: 8px;\\r\\n padding-top: 8px;\\r\\n}*/\\r\\n\\r\\n.thinGrayBorderBottom {\\r\\n border-bottom: solid 1px #f3f3f3;\\r\\n}\\r\\n\\r\\n.file-application:hover i {\\r\\n color: #adadad;\\r\\n}\\r\\n\\r\\n.file-application .fileIconChecked i {\\r\\n color: #3276b1;\\r\\n}\\r\\n\\r\\n.file-application > a {\\r\\n color: #676a6c;\\r\\n}\\r\\n\\r\\n.nav .open > a, .nav .open > a:focus, .nav .open > a:hover {\\r\\n background-color: #1d1d1e;\\r\\n}\\r\\n\\r\\n.nav.navbar-top-links > li > a:hover, .nav.navbar-top-links > li > a:focus {\\r\\n background-color: white;\\r\\n color: darken($fp-purple, 10%);\\r\\n}\\r\\n\\r\\n.fixed-ibox-height {\\r\\n min-height: 650px;\\r\\n}\\r\\n\\r\\n.Absolute-Center {\\r\\n margin: auto;\\r\\n position: absolute;\\r\\n top: 120px;\\r\\n left: 50%;\\r\\n bottom: 0;\\r\\n right: 50%;\\r\\n}\\r\\n\\r\\n.business-process-level {\\r\\n min-height: 60px;\\r\\n padding: 19px;\\r\\n padding: 14px;\\r\\n margin-bottom: 10px;\\r\\n box-shadow: 2px 2px 3px #dadada;\\r\\n}\\r\\n\\r\\n.bp-level-one {\\r\\n background-color: #F4F5F8;\\r\\n}\\r\\n\\r\\n.bp-level-two {\\r\\n background-color: #F1F0F2;\\r\\n}\\r\\n\\r\\n.bp-level-three {\\r\\n background-color: #E8E8EB;\\r\\n}\\r\\n\\r\\n.bp-level-three-scroll-section {\\r\\n max-height: 450px;\\r\\n overflow: auto;\\r\\n overflow-x: hidden;\\r\\n padding-bottom: 10px;\\r\\n}\\r\\n\\r\\n.max-height-mitigate-modal {\\r\\n max-height: 280px;\\r\\n overflow: auto;\\r\\n overflow-x: hidden;\\r\\n padding-left: 20px;\\r\\n padding-right: 20px;\\r\\n}\\r\\n\\r\\n/*.bp-level-four {\\r\\n background-color: #D7D7D8;\\r\\n}*/\\r\\n\\r\\n.business-process-label {\\r\\n width: 100%;\\r\\n display: inline-block;\\r\\n padding: 6px 12px;\\r\\n font-size: 12px;\\r\\n font-weight: 400;\\r\\n line-height: 1.42857143;\\r\\n text-align: left;\\r\\n white-space: nowrap;\\r\\n border-radius: 3px;\\r\\n background: #4F5C67;\\r\\n color: white;\\r\\n margin: 2px;\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n max-width: 220px;\\r\\n outline: none;\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.form-control-max-width {\\r\\n max-width: 300px;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.business-process-label[disabled], .business-process-label[readonly], fieldset[disabled] .business-process-label {\\r\\n color: white;\\r\\n opacity: .7;\\r\\n}\\r\\n\\r\\n.business-process-tile {\\r\\n text-align: center;\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n margin: 2px;\\r\\n height: 100px;\\r\\n width: 160px;\\r\\n padding: 10px;\\r\\n border-radius: 2px;\\r\\n background: #4F5C67;\\r\\n color: white;\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n border: none;\\r\\n}\\r\\n\\r\\n/*.business-process-tile:hover {\\r\\n background: #3c4954;\\r\\n }*/\\r\\n\\r\\n/*.transparent-business-process-tile {\\r\\n text-align: center;\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n margin: 1px;\\r\\n padding: 12px;\\r\\n border-radius: 2px;\\r\\n color: #899E8C;\\r\\n overflow: hidden;\\r\\n height: 100px;\\r\\n width: 160px;\\r\\n padding-top: 25px;\\r\\n background: #9CB09F;\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n}\\r\\n\\r\\n .transparent-business-process-tile a {\\r\\n color: #f9f9f9;\\r\\n }\\r\\n\\r\\n .transparent-business-process-tile a:hover {\\r\\n color: white;\\r\\n }*/\\r\\n\\r\\n.absolute-top-right-10 {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n right: 10px;\\r\\n}\\r\\n\\r\\n.absolute-top-right-5 {\\r\\n position: absolute;\\r\\n top: 5px;\\r\\n right: 5px;\\r\\n}\\r\\n\\r\\n.absolute-top-right {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n.absolute-bottom {\\r\\n position: absolute;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: 0;\\r\\n}\\r\\n\\r\\n.tile-x-out {\\r\\n background: #36424c;\\r\\n padding: 2px;\\r\\n padding-top: 1px;\\r\\n padding-bottom: 1px;\\r\\n padding-left: 2px;\\r\\n padding-right: 2px;\\r\\n border-top-right-radius: 2px;\\r\\n}\\r\\n\\r\\n.tile-x-out a {\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.business-process-tile-bottom {\\r\\n height: 18px;\\r\\n background: #36424c;\\r\\n}\\r\\n\\r\\n.text-red-when-hover {\\r\\n color: #888888;\\r\\n}\\r\\n\\r\\n.text-orange-when-hover {\\r\\n color: #888888;\\r\\n}\\r\\n\\r\\n.light-gray-link {\\r\\n color: #4b4f66;\\r\\n}\\r\\n\\r\\na.text-red-when-hover:hover {\\r\\n color: #d60000;\\r\\n}\\r\\n\\r\\na.text-orange-when-hover:hover {\\r\\n color: #f39c12;\\r\\n}\\r\\n\\r\\n.user-mapping-link-button {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.k-grid tr:hover .user-mapping-link-button {\\r\\n display: inline;\\r\\n}\\r\\n\\r\\n.user-mapping-link-button a.user-mapping-link-button:hover {\\r\\n color: #121321;\\r\\n}\\r\\n\\r\\n.material-design-box {\\r\\n /* border-radius: 3px; */\\r\\n /* box-shadow: 2px 2px 3px #dadada; */\\r\\n /* box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12); */\\r\\n border: 1px solid #eeeeee;\\r\\n padding: 10px 15px;\\r\\n text-align: left;\\r\\n display: block;\\r\\n margin-bottom: 10px;\\r\\n margin-right: 10px;\\r\\n background: rgb(246, 246, 246);\\r\\n}\\r\\n\\r\\n.contain-background-icon {\\r\\n width: 30px;\\r\\n height: 30px;\\r\\n -webkit-border-radius: 3px;\\r\\n -webkit-background-clip: padding-box;\\r\\n -moz-border-radius: 3px;\\r\\n -moz-background-clip: padding;\\r\\n border-radius: 3px;\\r\\n background-clip: padding-box;\\r\\n background-size: contain;\\r\\n}\\r\\n\\r\\n.height-width-64 {\\r\\n width: 64px;\\r\\n height: 64px;\\r\\n background-size: contain;\\r\\n}\\r\\n\\r\\n.height-width-32 {\\r\\n width: 32px;\\r\\n height: 32px;\\r\\n background-size: contain;\\r\\n}\\r\\n\\r\\n.height-width-16 {\\r\\n width: 16px;\\r\\n height: 16px;\\r\\n background-size: contain;\\r\\n}\\r\\n\\r\\n.height-width-14 {\\r\\n width: 14px;\\r\\n height: 14px;\\r\\n background-size: contain;\\r\\n}\\r\\n\\r\\n.file-type-icon {\\r\\n width: 42px;\\r\\n float: left;\\r\\n height: 100%;\\r\\n margin-top: 4px;\\r\\n}\\r\\n\\r\\n.fp-circle-success {\\r\\n background-image: url('../Content/Images/SVG/fp-circle-success.svg');\\r\\n}\\r\\n\\r\\n.fp-circle-inactive {\\r\\n background-image: url('../Content/Images/SVG/fp-circle-inactive.svg');\\r\\n}\\r\\n\\r\\n.excel-file-icon-64 {\\r\\n background-image: url('../Content/Images/FileTypeIcons/xlsx_64.png');\\r\\n}\\r\\n\\r\\n.pdf-file-icon-64 {\\r\\n background-image: url('../Content/Images/FileTypeIcons/pdf_64.png');\\r\\n}\\r\\n\\r\\n.word-file-icon-64 {\\r\\n background-image: url('../Content/Images/FileTypeIcons/docx_64.png');\\r\\n}\\r\\n\\r\\n.excel-file-icon-16 {\\r\\n background-image: url('../Content/Images/FileTypeIcons/xlsx_16.png');\\r\\n}\\r\\n\\r\\n.pdf-file-icon-16 {\\r\\n background-image: url('../Content/Images/FileTypeIcons/pdf_16.png');\\r\\n}\\r\\n\\r\\n.csv-file-icon-16 {\\r\\n background-image: url('../Content/Images/FileTypeIcons/csv-16.png');\\r\\n}\\r\\n\\r\\n.default-file-icon-16 {\\r\\n background-image: url('../Content/Images/FileTypeIcons/default-16.png');\\r\\n}\\r\\n\\r\\n.default-file-icon-64 {\\r\\n background-image: url('../Content/Images/FileTypeIcons/default-64.png');\\r\\n}\\r\\n\\r\\n.word-file-icon-16 {\\r\\n background-image: url('../Content/Images/FileTypeIcons/docx_16.png');\\r\\n}\\r\\n\\r\\n.excel-file-icon {\\r\\n background-image: url('../Content/Images/FileTypeIcons/xlsx_32.png');\\r\\n}\\r\\n\\r\\n.pdf-file-icon {\\r\\n background-image: url('../Content/Images/FileTypeIcons/pdf_32.png');\\r\\n}\\r\\n\\r\\n.csv-file-icon {\\r\\n background-image: url('../Content/Images/FileTypeIcons/csv-64.png');\\r\\n}\\r\\n\\r\\n.word-file-icon {\\r\\n background-image: url('../Content/Images/FileTypeIcons/docx_32.png');\\r\\n}\\r\\n\\r\\n.acumatica-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/AcumaticaSVG.svg');\\r\\n}\\r\\n\\r\\n.oracle-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/OracleLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.jde-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/OracleJDEdwardsSVG.svg');\\r\\n}\\r\\n\\r\\n.orfc-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/OracleCloudFinLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.peoplesoft-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/PeopleSoftSVG.svg');\\r\\n}\\r\\n\\r\\n.coupa-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/CoupaSVG.svg');\\r\\n}\\r\\n\\r\\n.dynamics-365-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/Dynamics365SVG.svg');\\r\\n}\\r\\n\\r\\n.dynamics-365-sales-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/Dynamics365SalesSVG.svg');\\r\\n}\\r\\n\\r\\n.dynamics-365-businesscentral-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/DynamicsNav2019BusinessCentral.svg');\\r\\n}\\r\\n\\r\\n.gp-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/DynamicsGPSVG.svg');\\r\\n}\\r\\n\\r\\n.ax-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/DynamicsAXSVG.svg');\\r\\n}\\r\\n\\r\\n.sl-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/DynamicsSLSVG.svg');\\r\\n}\\r\\n\\r\\n.netSuite-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/netsuite-oracle.svg');\\r\\n}\\r\\n\\r\\n.sapb1-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/SAPB1LogoSVG.svg');\\r\\n}\\r\\n\\r\\n.sap-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/SAPLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.salesforce-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/SalesforceLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.intacct-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/IntacctLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.nav-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/DynamicsNAVSVG.svg');\\r\\n}\\r\\n\\r\\n.zendesk-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/ZendeskLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.jira-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/JiraLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.workday-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/WorkdaySVG.svg');\\r\\n}\\r\\n\\r\\n.workiva-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/WorkivaLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.azure-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/AzureSVG.svg');\\r\\n}\\r\\n\\r\\n.azure-active-directory-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/AzureActiveDirectory.svg');\\r\\n}\\r\\n\\r\\n.active-directory-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/microsoftActiveDirectory.svg');\\r\\n}\\r\\n\\r\\n.service-now-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/service-now.svg');\\r\\n}\\r\\n\\r\\n.zuo-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/ZuoraLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.ala-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/ALA_Logo.svg');\\r\\n}\\r\\n\\r\\n.ariba-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/AribaLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.freshservice-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/FreshserviceLogo.svg');\\r\\n}\\r\\n\\r\\n.auditboard-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/AuditBoardLogo.svg');\\r\\n}\\r\\n\\r\\n.azure-devops-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/AzureDevOpsLogoSVG.svg');\\r\\n}\\r\\n\\r\\n.concur-avatar-logo {\\r\\n background-image: url('../Content/Images/ApplicationLogos/SAPConcurLogo.svg');\\r\\n}\\r\\n\\r\\n.plugin-dropdown-logo {\\r\\n background-image: url('../Content/Images/SVG/LinkClippedWithDropdown.svg');\\r\\n}\\r\\n\\r\\n.disabled-plugin {\\r\\n font-size: 16px;\\r\\n font-weight: 400;\\r\\n padding-top: 40px;\\r\\n}\\r\\n\\r\\n.material-design-box-header {\\r\\n font-weight: 600;\\r\\n font-size: 13px;\\r\\n padding-bottom: 4px;\\r\\n}\\r\\n\\r\\n.material-design-box .info {\\r\\n padding-top: 8px;\\r\\n}\\r\\n\\r\\n.material-design-image {\\r\\n width: 42px;\\r\\n float: left;\\r\\n height: 100%;\\r\\n margin-top: 4px;\\r\\n}\\r\\n\\r\\n.add-objects-rounded-btn {\\r\\n padding-right: 20px;\\r\\n padding-left: 20px;\\r\\n color: white;\\r\\n border-radius: 15px;\\r\\n background-color: #27ae60;\\r\\n font-weight: 600;\\r\\n font-size: 11px;\\r\\n}\\r\\n\\r\\n.add-objects-rounded-btn:hover {\\r\\n color: white;\\r\\n background-color: #25a75c;\\r\\n}\\r\\n\\r\\n.label-warning-light, .badge-warning-light {\\r\\n background-color: $fp-label-orange-bg;\\r\\n color: $fp-label-orange-text;\\r\\n border: 1px solid $fp-label-orange-border;\\r\\n}\\r\\n\\r\\n.label-danger-light, .badge-danger-light {\\r\\n background-color: $fp-label-red-bg;\\r\\n color: $fp-label-red-text;\\r\\n border: 1px solid $fp-label-red-border;\\r\\n}\\r\\n\\r\\n.label-primary-light, .badge-primary-light {\\r\\n background-color: $fp-purple;\\r\\n color: white;\\r\\n border: 1px solid $text-color;\\r\\n}\\r\\n\\r\\n.label-success-light, .badge-success-light {\\r\\n background-color: $fp-label-green-bg;\\r\\n color: $fp-label-green-text;\\r\\n border: 1px solid $fp-label-green-border;\\r\\n}\\r\\n\\r\\n.label-dimgrey-light, .badge-dimgrey-light {\\r\\n background-color: $fp-label-gray-bg;\\r\\n color: $fp-label-gray-text;\\r\\n border: 1px solid $fp-label-gray-border;\\r\\n}\\r\\n\\r\\n.label-go-light, .badge-go-light {\\r\\n background-color: $fp-label-green-bg;\\r\\n color: $fp-label-green-text;\\r\\n border: 1px solid $fp-label-green-border;\\r\\n}\\r\\n\\r\\n.light-gray-badge-background {\\r\\n background-color: $fp-label-gray-bg;\\r\\n}\\r\\n\\r\\n.white-background {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.label-microsoft-account, .badge-microsoft-account {\\r\\n background-color: #01A7F0;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.popover {\\r\\n box-shadow: 0 5px 10px rgba(0,0,0,.2);\\r\\n}\\r\\n\\r\\n.label {\\r\\n display: inline-block;\\r\\n font-weight: 400;\\r\\n}\\r\\n\\r\\n.form-control:focus {\\r\\n border-color: $fp-purple !important;\\r\\n outline: 0;\\r\\n}\\r\\n\\r\\n.filter-pills-above-grid {\\r\\n padding: 10px 20px;\\r\\n background-color: #f5f5f5;\\r\\n border: solid 1px $border-color;\\r\\n border-bottom: none;\\r\\n}\\r\\n\\r\\n.pill-radio {\\r\\n color: #434343;\\r\\n padding: 3px 14px;\\r\\n font-size: 12px;\\r\\n border-radius: 14px;\\r\\n cursor: pointer;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.pill-radio:hover {\\r\\n background-color: rgba(0, 0, 0, 0.11);\\r\\n}\\r\\n\\r\\n.pill-radio.active {\\r\\n color: #fafafa;\\r\\n background-color: $fp-purple;\\r\\n}\\r\\n\\r\\na.text-dark {\\r\\n color: #5a5a5a;\\r\\n}\\r\\n\\r\\na.text-dark:hover {\\r\\n color: #383838;\\r\\n}\\r\\n\\r\\n.dynamic-side-grid-header {\\r\\n border-bottom: solid 1px #dbdbdb;\\r\\n color: #31708f;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.float-manage-data-logo-left {\\r\\n padding-top: 4px;\\r\\n width: 50px;\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.float-product-logo-left {\\r\\n padding-top: 6px;\\r\\n width: 75px;\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.large-avatar-logo {\\r\\n width: 50px;\\r\\n height: 50px;\\r\\n}\\r\\n\\r\\n.product-import-header {\\r\\n font-size: 20px;\\r\\n color: #47506e;\\r\\n font-weight: 400;\\r\\n line-height: normal;\\r\\n margin: 0 0 4px;\\r\\n}\\r\\n\\r\\n.product-import-description {\\r\\n color: #8991a6;\\r\\n font-size: 12px;\\r\\n overflow: auto;\\r\\n}\\r\\n\\r\\n.panel-ibox-content {\\r\\n background-color: $ibox-content-bg;\\r\\n color: inherit;\\r\\n padding: 15px 20px 20px 20px;\\r\\n border-color: $border-color;\\r\\n border-image: none;\\r\\n border-style: solid;\\r\\n border-width: 1px;\\r\\n border-radius: 4px;\\r\\n\\r\\n}\\r\\n\\r\\n.panel-ibox-title {\\r\\n border-radius: 5px 5px 0px 0px !important;\\r\\n background: white !important;\\r\\n color: #121321 !important;\\r\\n padding: 10px 15px;\\r\\n}\\r\\n\\r\\n.panel-ibox-title h5 {\\r\\n float: none;\\r\\n font-size: 22.5px;\\r\\n}\\r\\n\\r\\n.product-import-action {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.light-gray-behind-icon {\\r\\n padding: 15px 15px;\\r\\n display: inline-block;\\r\\n -moz-border-radius: 100px;\\r\\n -webkit-border-radius: 100px;\\r\\n border-radius: 100px;\\r\\n background-color: #f6f6f6;\\r\\n}\\r\\n\\r\\n.manual-mapping-modal-tile {\\r\\n padding: 5px 10px;\\r\\n}\\r\\n\\r\\n.manual-mapping-yellow-tile {\\r\\n color: #B27E00;\\r\\n background-color: #fff0cc;\\r\\n border-radius: 4px;\\r\\n border: dashed 1px rgb(206, 206, 206);\\r\\n}\\r\\n\\r\\n.manual-mapping-tile-selected {\\r\\n border: dashed 1px rgb(206, 206, 206);\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n.center-div {\\r\\n padding-top: 100px;\\r\\n margin: auto;\\r\\n width: 100px;\\r\\n height: 100px;\\r\\n}\\r\\n\\r\\n.disabledDiv {\\r\\n pointer-events: none;\\r\\n opacity: 0.4;\\r\\n}\\r\\n\\r\\n.new-mapping-dot {\\r\\n color: #291972;\\r\\n font-size: .5em;\\r\\n padding-right: 8px;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\na.text-danger:focus, a.text-danger:hover {\\r\\n color: #c9483b;\\r\\n}\\r\\n\\r\\na.text-success:focus, a.text-success:hover {\\r\\n color: #228f50;\\r\\n}\\r\\n\\r\\n.dynamic-side-grid-shell {\\r\\n border-bottom: solid 1px #f2f2f2;\\r\\n}\\r\\n\\r\\n.dynamic-side-grid-shell h5 {\\r\\n color: #121321;\\r\\n}\\r\\n\\r\\n.table tr.active th,\\r\\n.table tr.active td {\\r\\n color: #2675B3;\\r\\n /*font-weight: 600;*/\\r\\n}\\r\\n\\r\\n.k-widget.k-tooltip {\\r\\n border-color: #000;\\r\\n color: #333;\\r\\n padding: 7px;\\r\\n background-color: #fff;\\r\\n border: 1px solid #ccc;\\r\\n border: 1px solid rgba(0,0,0,.2);\\r\\n border-radius: 6px;\\r\\n -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);\\r\\n box-shadow: 0 5px 10px rgba(0,0,0,.2);\\r\\n word-wrap: break-word;\\r\\n}\\r\\n\\r\\n.k-callout-n {\\r\\n border-bottom-color: darkgray;\\r\\n}\\r\\n\\r\\n.k-callout-w {\\r\\n border-right-color: darkgray;\\r\\n}\\r\\n\\r\\n.k-callout-s {\\r\\n border-top-color: darkgray;\\r\\n}\\r\\n\\r\\n.k-callout-e {\\r\\n border-left-color: darkgray;\\r\\n}\\r\\n\\r\\n.toolbar-link {\\r\\n display: inline-block;\\r\\n color: #121321;\\r\\n padding: 3px 14px;\\r\\n font-size: 12px;\\r\\n border-radius: 4px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.toolbar-link:hover {\\r\\n background-color: rgba(0, 0, 0, 0.05);\\r\\n}\\r\\n\\r\\n.toolbar-link[disabled] {\\r\\n pointer-events: none;\\r\\n cursor: default;\\r\\n opacity: 0.7;\\r\\n}\\r\\n\\r\\n.select-a-row-for-details-info {\\r\\n text-align: center;\\r\\n padding: 20px;\\r\\n padding-top: 30px;\\r\\n color: #a2a2a2;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.gray-kendo-dropdown .k-dropdown-wrap.k-state-default {\\r\\n background-color: white;\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\n.gray-kendo-dropdown .k-dropdown-wrap.k-state-default:hover {\\r\\n background-color: rgba(0, 0, 0, 0.05);\\r\\n}\\r\\n\\r\\n.k-filter-menu label {\\r\\n padding-right: 20px;\\r\\n}\\r\\n\\r\\n.k-filter-menu label input {\\r\\n margin-right: 5px;\\r\\n}\\r\\n\\r\\n.k-link input {\\r\\n margin-right: 5px;\\r\\n}\\r\\n\\r\\n.k-dropdown .k-input {\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.k-item .k-link {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n/*.btn-grid-row-settings {\\r\\n color: #373a3c;\\r\\n background-color: white !important;\\r\\n border-radius: 0;\\r\\n border: none;\\r\\n border-bottom: solid 1px #d3d3d3;\\r\\n border-right: solid 1px #d3d3d3;\\r\\n padding: 4px;\\r\\n}*/\\r\\n\\r\\n.btn-grid-row-settings {\\r\\n background-color: inherit;\\r\\n border-radius: 0;\\r\\n padding: 4px;\\r\\n}\\r\\n\\r\\n.btn-grid-row-settings:hover {\\r\\n background-color: #d9d9d9 !important\\r\\n}\\r\\n\\r\\n.k-grid {\\r\\n tr.k-state-selected {\\r\\n background-color: $fp-purple;\\r\\n\\r\\n &:hover td {\\r\\n background-color: $fp-purple;\\r\\n }\\r\\n }\\r\\n}\\r\\n\\r\\n.k-link {\\r\\n color: $fp-purple;\\r\\n}\\r\\n\\r\\n.k-calendar .k-footer .k-nav-today {\\r\\n color: $fp-purple;\\r\\n}\\r\\n\\r\\n.k-calendar .k-today .k-link {\\r\\n color: $text-color;\\r\\n box-shadow: inset 0 0 7px 0 $fp-purple;\\r\\n}\\r\\n\\r\\n.k-calendar .k-footer .k-nav-today:hover {\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.k-calendar td.k-state-focused .k-link {\\r\\n color: $text-color;\\r\\n box-shadow: inset 0 0 7px 0 $fp-purple;\\r\\n}\\r\\n\\r\\n.k-calendar td.k-state-focused .k-link:hover {\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.k-state-selected {\\r\\n background-color: $fp-purple;\\r\\n border-color: $fp-purple;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.k-state-selected .btn-grid-row-settings {\\r\\n color: white;\\r\\n background-color: white;\\r\\n border-color: none;\\r\\n}\\r\\n\\r\\n.k-icon {\\r\\n color: $fp-purple;\\r\\n}\\r\\n\\r\\n.k-grid-header .k-i-sort-asc-sm, .k-grid-header .k-i-sort-desc-sm, .k-grid-header .k-sort-order {\\r\\n color: $fp-purple;\\r\\n}\\r\\n\\r\\n.row-settings-drop-padding {\\r\\n padding-top: 12px;\\r\\n padding-bottom: 20px;\\r\\n}\\r\\n\\r\\n.btn-text-only {\\r\\n color: $fp-purple;\\r\\n background-color: white;\\r\\n border-color: white;\\r\\n}\\r\\n\\r\\n.btn-text-only:hover {\\r\\n color: $fp-purple;\\r\\n background-color: darken(white, 4%);\\r\\n border-color: darken(white, 4%);\\r\\n}\\r\\n\\r\\n.btn-secondary {\\r\\n color: $fp-purple;\\r\\n background-color: white;\\r\\n border-color: $fp-purple;\\r\\n}\\r\\n\\r\\n.btn-secondary:hover {\\r\\n color: darken($fp-purple, 4%);\\r\\n background-color: darken(white, 4%);\\r\\n border-color: $fp-purple;\\r\\n}\\r\\n\\r\\n.btn-secondary:focus, .btn-secondary:active, .btn-secondary.active, .open .dropdown-toggle.btn-secondary {\\r\\n background-color: darken(white, 4%);\\r\\n}\\r\\n\\r\\n\\r\\n.disabled-ibox {\\r\\n opacity: .50;\\r\\n pointer-events: none;\\r\\n}\\r\\n\\r\\n.unfocused-ibox-content {\\r\\n opacity: .4;\\r\\n}\\r\\n\\r\\n.focused-ibox-content {\\r\\n border-top: 1px solid #cdcdcd;\\r\\n border-bottom: 1px solid #cdcdcd;\\r\\n}\\r\\n\\r\\n.import-sub-title {\\r\\n text-transform: uppercase;\\r\\n color: $fp-dark-gray;\\r\\n font-size: 15px;\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.centered-div-1200-max {\\r\\n max-width: 1200px;\\r\\n height: auto;\\r\\n margin: 0 auto;\\r\\n padding: 10px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.centered-div-800-max {\\r\\n max-width: 800px;\\r\\n height: auto;\\r\\n margin: 0 auto;\\r\\n padding: 10px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.centered-div-450-max {\\r\\n max-width: 450px;\\r\\n height: auto;\\r\\n margin: 0 auto;\\r\\n padding: 10px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.div-400-max {\\r\\n max-width: 400px;\\r\\n width: 100%;\\r\\n display: inline-block;\\r\\n margin-right: 30px;\\r\\n vertical-align: top;\\r\\n /*height: auto;\\r\\n margin: 0 auto;\\r\\n padding: 10px;\\r\\n position: relative;*/\\r\\n}\\r\\n\\r\\n.configuartion-window-pane {\\r\\n min-height: 500px;\\r\\n}\\r\\n\\r\\n.sm-spinner-contain {\\r\\n position: relative;\\r\\n left: 4px;\\r\\n width: 24px;\\r\\n height: 8px;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.ibox-title h5 {\\r\\n float: none;\\r\\n font-size: 22.5px;\\r\\n}\\r\\n\\r\\n.ibox-title-border-bottom {\\r\\n border-bottom: solid 1px #C2C4CC;\\r\\n min-height: 59px;\\r\\n}\\r\\n\\r\\n.label-out-of-box-template {\\r\\n color: $fp-label-gray-text;\\r\\n background-color: $fp-label-gray-bg;\\r\\n border: 1px solid $fp-label-gray-border;\\r\\n}\\r\\n\\r\\n.label-custom-template {\\r\\n color: $fp-label-blue-text;\\r\\n background-color: $fp-label-blue-bg;\\r\\n border: 1px solid $fp-label-blue-border;\\r\\n}\\r\\n\\r\\n.label-sim-deployed {\\r\\n background-color: $fp-label-blue-bg;\\r\\n color: $fp-label-blue-text;\\r\\n border: 1px solid $fp-label-blue-border;\\r\\n}\\r\\n\\r\\n.label-sim-draft {\\r\\n background: $fp-label-gray-bg;\\r\\n color: $fp-label-gray-text;\\r\\n border: 1px solid $fp-label-gray-border;\\r\\n}\\r\\n\\r\\n.label-sim-ready {\\r\\n background-color: $fp-label-green-bg;\\r\\n color: $fp-label-green-text;\\r\\n border: 1px solid $fp-label-green-border;\\r\\n}\\r\\n\\r\\n.label-sim-analyzing {\\r\\n background-color: $fp-label-orange-bg;\\r\\n color: $fp-label-orange-text;\\r\\n border: 1px solid $fp-label-orange-border;\\r\\n}\\r\\n\\r\\n.label-modify {\\r\\n background-color: $fp-label-orange-bg;\\r\\n color: $fp-label-orange-text;\\r\\n border: 1px solid $fp-label-orange-border;\\r\\n}\\r\\n\\r\\n.label-add {\\r\\n background-color: $fp-label-green-bg;\\r\\n color: $fp-label-green-text;\\r\\n border: 1px solid $fp-label-green-border;\\r\\n}\\r\\n\\r\\n.label-remove {\\r\\n background-color: $fp-label-red-bg;\\r\\n color: $fp-label-red-text;\\r\\n border: 1px solid $fp-label-red-border;\\r\\n}\\r\\n\\r\\n.role-modification-item {\\r\\n padding-bottom: 2px;\\r\\n padding-top: 2px;\\r\\n}\\r\\n\\r\\n.simulator-role-child-item {\\r\\n padding: 6px 14px;\\r\\n border-bottom: solid 1px #f4f4f4;\\r\\n}\\r\\n\\r\\n.badge-simulation-object-count {\\r\\n font-size: 9px;\\r\\n background-color: #eeeeee;\\r\\n margin-bottom: 2px;\\r\\n}\\r\\n\\r\\n.permission-level-selection {\\r\\n border: none;\\r\\n color: #3276B1;\\r\\n width: 58px;\\r\\n}\\r\\n\\r\\n.run-simulation-button {\\r\\n width: 50%;\\r\\n min-width: 170px;\\r\\n}\\r\\n\\r\\n\\r\\n.additional-downloads-btn {\\r\\n position: absolute;\\r\\n top: 40px;\\r\\n right: 22px;\\r\\n}\\r\\n\\r\\n.file-exporting-opacity {\\r\\n opacity: 0.48;\\r\\n}\\r\\n\\r\\n.settings-title-link:hover {\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.stats-number {\\r\\n font-weight: 200;\\r\\n font-size: 20px;\\r\\n}\\r\\n\\r\\n.max-height-none {\\r\\n height: auto !important;\\r\\n}\\r\\n\\r\\n/*Removes pager numbers if unable to see page 2*/\\r\\n.k-pager-numbers li:nth-child(2):last-child {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.dropdown-header {\\r\\n color: $text-color;\\r\\n font-weight: 600;\\r\\n padding: 10px 22px;\\r\\n border-bottom: solid 1px $border-color;\\r\\n}\\r\\n\\r\\nbutton[title=\\\"Clear\\\"].k-button-icon {\\r\\n border: none;\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\nspan[title=\\\"clear\\\"].k-clear-value {\\r\\n display: none !important;\\r\\n}\\r\\n\\r\\n\\r\\n.k-dropdown-operator > .k-dropdown-wrap.k-state-default {\\r\\n border-color: transparent;\\r\\n}\\r\\n\\r\\n.dropdown-menu > li > a {\\r\\n margin: 0;\\r\\n padding: 6px 16px;\\r\\n}\\r\\n\\r\\n#right-sidebar-notifications {\\r\\n background-color: #fff;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n border-top: 1px solid #C2C4CC;\\r\\n overflow: hidden;\\r\\n position: fixed;\\r\\n top: 60px;\\r\\n width: 300px !important;\\r\\n z-index: 1008;\\r\\n bottom: 0;\\r\\n right: -260px;\\r\\n}\\r\\n\\r\\n#right-sidebar {\\r\\n background-color: #fff;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n border-top: 1px solid #C2C4CC;\\r\\n overflow: hidden;\\r\\n position: fixed;\\r\\n top: 60px;\\r\\n width: 300px !important;\\r\\n z-index: 1009;\\r\\n bottom: 0;\\r\\n right: -300px;\\r\\n}\\r\\n\\r\\n#right-sidebar-notifications.sidebar-open {\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n#right-sidebar-notifications.sidebar-open.sidebar-top {\\r\\n top: 0;\\r\\n border-top: none;\\r\\n}\\r\\n\\r\\n.vertical-align-middle {\\r\\n display: inline-block;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.import-status-icon {\\r\\n display: inline-block;\\r\\n width: 15px;\\r\\n height: 15px;\\r\\n}\\r\\n\\r\\ninput[type=\\\"radio\\\"] {\\r\\n vertical-align: bottom;\\r\\n}\\r\\n\\r\\ninput[type=\\\"checkbox\\\"] {\\r\\n vertical-align: bottom;\\r\\n}\\r\\n\\r\\n.o-btn {\\r\\n display: inline-block;\\r\\n width: 100%;\\r\\n padding: 25px 0;\\r\\n border-radius: 2px;\\r\\n color: $fp-purple;\\r\\n border-color: $border-color;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.o-btn:hover {\\r\\n background-color: #f4f4f5;\\r\\n border-color: $border-color;\\r\\n}\\r\\n\\r\\n.save-report-modal-helper-text {\\r\\n color: $text-color;\\r\\n margin-bottom: 5px;\\r\\n font-size: 10px;\\r\\n}\\r\\n\\r\\noi-select .select-dropdown-optgroup-option.active:not(.disabled) {\\r\\n background-color: #f5f5f5;\\r\\n color: $text-color;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.no-data-to-display-message {\\r\\n color: #f0f0f0;\\r\\n font-size: 50px;\\r\\n padding-top: 60px;\\r\\n}\\r\\n\\r\\n.swal-confirm-button {\\r\\n background-color: $fp-purple !important;\\r\\n color: white !important;\\r\\n box-shadow: none !important;\\r\\n border-radius: 4px;\\r\\n border: 1px $fp-purple solid !important;\\r\\n}\\r\\n\\r\\n.swal-confirm-button:hover {\\r\\n background-color: #261769 !important;\\r\\n border-color: #261769;\\r\\n color: $delinea-green !important;\\r\\n}\\r\\n\\r\\n.swal-cancel-button {\\r\\n background-color: white !important;\\r\\n color: #121321 !important;\\r\\n box-shadow: none !important;\\r\\n border-radius: 4px;\\r\\n border: 1px #291971 solid !important;\\r\\n}\\r\\n\\r\\n.swal-cancel-button:hover {\\r\\n background-color: darken(white, 4%) !important;\\r\\n border-color: #291971;\\r\\n color: #121321 !important;\\r\\n}\\r\\n\\r\\n\\r\\n.swal2-modal {\\r\\n font-family: 'Manrope', 'Manrope', Helvetica, Arial, sans-serif;\\r\\n border-radius: 4px;\\r\\n}\\r\\n\\r\\n.swal2-container {\\r\\n z-index: 99999;\\r\\n}\\r\\n\\r\\n.btn-group button {\\r\\n outline: none !important;\\r\\n}\\r\\n\\r\\n.modal-body-no-side-padding {\\r\\n padding-top: 20px;\\r\\n padding-bottom: 30px;\\r\\n}\\r\\n\\r\\n.overflow-visible {\\r\\n overflow: visible !important;\\r\\n}\\r\\n\\r\\n.dropdown-menu-text-color {\\r\\n color: #333;\\r\\n}\\r\\n\\r\\n.no-margin {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.btn-modalClose-white {\\r\\n color: #f2f2f2;\\r\\n background-color: transparent;\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.btn-modalClose-white:hover {\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.zendesk-modal-header {\\r\\n background-color: #03363D;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.zendesk-status-new {\\r\\n color: #F5CA00;\\r\\n}\\r\\n\\r\\n.zendesk-status-open {\\r\\n color: #E82A2A;\\r\\n}\\r\\n\\r\\n.zendesk-status-pending {\\r\\n color: #59BBE0;\\r\\n}\\r\\n\\r\\n.zendesk-status-solved {\\r\\n color: #828282;\\r\\n}\\r\\n\\r\\n.jira-cat-toDo {\\r\\n color: #4A6785;\\r\\n}\\r\\n\\r\\n.jira-cat-inProgress {\\r\\n color: #FFD351;\\r\\n}\\r\\n\\r\\n.jira-cat-done {\\r\\n color: #14892C\\r\\n}\\r\\n\\r\\n.jira-no-cat {\\r\\n color: #CCCCCC;\\r\\n}\\r\\n\\r\\n.fixed-btn-width {\\r\\n width: 50px;\\r\\n}\\r\\n\\r\\n.media-body {\\r\\n width: inherit;\\r\\n}\\r\\n\\r\\n.wrapper-content {\\r\\n min-height: 800px;\\r\\n}\\r\\n\\r\\n.drag-drop-pane {\\r\\n border: 2px dashed lightgray;\\r\\n border-radius: 4px;\\r\\n text-align: center;\\r\\n color: #A9B2BE;\\r\\n}\\r\\n\\r\\n.drag-drop-pane-open {\\r\\n border: 2px dashed lightgray;\\r\\n}\\r\\n\\r\\n.drag-drop-pane-active {\\r\\n border: 2px dashed gray;\\r\\n}\\r\\n\\r\\n.ibox-clickable {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.ibox-clickable:hover {\\r\\n cursor: pointer;\\r\\n background-color: #FAFBFC;\\r\\n}\\r\\n\\r\\n.ibox-list-item {\\r\\n padding: 15px 20px 15px 20px;\\r\\n border-top: solid 1px #C2C4CC;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.ibox-list-item > .pull-left {\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.ibox-muted-text {\\r\\n color: #d0d0d0\\r\\n}\\r\\n\\r\\n.tracking-template-table-physical-name {\\r\\n font-size: 10px;\\r\\n padding-left: 10px;\\r\\n color: darkgray;\\r\\n}\\r\\n\\r\\n.k-filtercell > .k-operator-hidden > label {\\r\\n font-weight: 400;\\r\\n padding-right: 15px;\\r\\n margin-bottom: -5px;\\r\\n}\\r\\n\\r\\n.k-filtercell > .k-operator-hidden > label:checked {\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.k-filtercell > .k-operator-hidden > label > input {\\r\\n margin-left: 3px;\\r\\n}\\r\\n\\r\\n.new-record-list-item {\\r\\n border-left: 3px solid #5b91c0;\\r\\n}\\r\\n\\r\\n.saved-report-filter-counter {\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.text-toggle-on-color {\\r\\n color: $fp-purple;\\r\\n}\\r\\n\\r\\n.vAccordion--default v-pane-header {\\r\\n border-bottom: 1px solid $border-color;\\r\\n}\\r\\n\\r\\n.vAccordion--default v-pane-content > div {\\r\\n padding-bottom: 0;\\r\\n border-bottom: solid 1px $border-color;\\r\\n}\\r\\n\\r\\n.vAccordion--default v-pane-header::after, .vAccordion--default v-pane-header::before {\\r\\n background-color: $text-color; \\r\\n}\\r\\n\\r\\nv-pane-header::after {\\r\\n left: 20px !important;\\r\\n}\\r\\n\\r\\nv-pane-header::before {\\r\\n left: 20px !important;\\r\\n}\\r\\n\\r\\n.vAccordion--default v-pane-header {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.custom-vPane-header {\\r\\n padding: 20px;\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\nlabel[disabled] {\\r\\n cursor: pointer;\\r\\n opacity: .65;\\r\\n pointer-events: none;\\r\\n}\\r\\n\\r\\na[disabled] {\\r\\n cursor: pointer;\\r\\n opacity: .65;\\r\\n pointer-events: none;\\r\\n}\\r\\n\\r\\n.list-item-row-button {\\r\\n height: 100%;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 0;\\r\\n color: $text-color;\\r\\n background-color: #fff;\\r\\n border: none;\\r\\n border-left: solid 1px;\\r\\n border-color: #C2C4CC;\\r\\n width: 35px;\\r\\n padding: 4px;\\r\\n outline: none;\\r\\n}\\r\\n\\r\\n.list-item-row-button:hover {\\r\\n background-color: #e0e0e0;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.saved-message {\\r\\n background-color: transparent;\\r\\n border-color: transparent;\\r\\n cursor: default;\\r\\n pointer-events: none;\\r\\n color: #2ab27b;\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.fadein,\\r\\n.fadeout {\\r\\n -webkit-transition: all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.0s;\\r\\n -moz-transition: all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.0s;\\r\\n -o-transition: all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.0s;\\r\\n transition: all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.0s;\\r\\n}\\r\\n\\r\\n.fadein.ng-hide-remove,\\r\\n.fadeout.ng-hide-add.ng-hide-add-active {\\r\\n opacity: 0;\\r\\n}\\r\\n\\r\\n.fadeout.ng-hide-add,\\r\\n.fadein.ng-hide-remove.ng-hide-remove-active {\\r\\n opacity: 1;\\r\\n}\\r\\n\\r\\n\\r\\n.criteria-drop {\\r\\n padding: 10px 6px;\\r\\n width: 100%;\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 2px;\\r\\n -webkit-appearance: none;\\r\\n -webkit-box-shadow: none;\\r\\n -moz-appearance: none;\\r\\n background: white url('../Content/Images/SVG/icons8-Sort Down.svg') no-repeat 99% center;\\r\\n}\\r\\n\\r\\nselect:hover {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.criteria-number {\\r\\n display: block;\\r\\n padding: 10px 6px;\\r\\n width: 90px;\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 2px;\\r\\n -webkit-appearance: none;\\r\\n -webkit-box-shadow: none;\\r\\n -moz-appearance: none;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.criteria-text {\\r\\n display: block;\\r\\n padding: 10px 6px;\\r\\n width: 100%;\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 2px;\\r\\n -webkit-appearance: none;\\r\\n -webkit-box-shadow: none;\\r\\n -moz-appearance: none;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.form-inline .criteria-time input.form-control {\\r\\n width: 50px;\\r\\n height: 39px;\\r\\n padding: 10px 6px;\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n.criteria-drop-date-pick {\\r\\n padding: 10px 6px;\\r\\n width: 100%;\\r\\n border: 1px solid #C2C4CC;\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n.criteria-drop:focus {\\r\\n border-color: #C2C4CC !important;\\r\\n outline: 0;\\r\\n}\\r\\n\\r\\n.criteria-drop[disabled] {\\r\\n cursor: not-allowed;\\r\\n}\\r\\n\\r\\n.criteria-drop[disabled], .criteria-drop[readonly] {\\r\\n background-color: #eee;\\r\\n opacity: 1;\\r\\n}\\r\\n\\r\\n.criteria-attached-button {\\r\\n padding: 8px;\\r\\n padding-bottom: 9px;\\r\\n border: 1px solid #C2C4CC;\\r\\n}\\r\\n\\r\\n.security-object-condition-container {\\r\\n padding: 6px 7px;\\r\\n border-radius: 6px;\\r\\n border: solid 1px #C2C4CC;\\r\\n background-color: #fafafa;\\r\\n border-left: solid #291972;\\r\\n}\\r\\n\\r\\n.disable-pointer-events {\\r\\n pointer-events: none;\\r\\n cursor: default;\\r\\n opacity: .40;\\r\\n}\\r\\n\\r\\n.help-icon-modal-header {\\r\\n font-size: 12px;\\r\\n margin-left: 5px;\\r\\n}\\r\\n\\r\\n.k-popup .k-list .k-state-focused {\\r\\n border-radius: 0;\\r\\n -webkit-box-shadow: none;\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\n.k-popup .k-list .k-state-selected {\\r\\n border-radius: 0;\\r\\n -webkit-box-shadow: none;\\r\\n box-shadow: none;\\r\\n background-color: #ebebeb;\\r\\n color: $text-color;\\r\\n border: solid 1px #121321;\\r\\n}\\r\\n\\r\\n.k-popup .k-list .k-state-hover .k-state-selected {\\r\\n border-radius: 0;\\r\\n -webkit-box-shadow: none;\\r\\n box-shadow: none;\\r\\n color: $text-color;\\r\\n}\\r\\n\\r\\n.k-popup .k-list .k-state-hover {\\r\\n border-radius: 0;\\r\\n -webkit-box-shadow: none;\\r\\n background-color: #f5f5f5;\\r\\n cursor: pointer;\\r\\n box-shadow: none;\\r\\n}\\r\\n\\r\\n.k-calendar td.k-state-selected .k-link {\\r\\n border-color: $fp-purple;\\r\\n background-color: $fp-purple;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.k-popup.k-calendar-container, .k-popup.k-list-container {\\r\\n padding: 0px;\\r\\n border-width: 0px;\\r\\n}\\r\\n\\r\\n.k-dropdown-wrap.k-state-active.k-state-border-down, .k-numeric-wrap .k-link.k-state-selected, .k-pager-numbers.k-state-expanded .k-current-page .k-link, .k-picker-wrap.k-state-active.k-state-border-down {\\r\\n -webkit-box-shadow: none;\\r\\n box-shadow: none;\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\n.k-list-filter {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.btn-ax-security-designer {\\r\\n text-align: left;\\r\\n font-weight: 600;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n.centered-btn-ax-security-designer {\\r\\n text-align: center;\\r\\n font-weight: 600;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n.centered-text-left-btn-ax-security-designer {\\r\\n text-align: center;\\r\\n font-weight: 600;\\r\\n font-size: 13px;\\r\\n}\\r\\n\\r\\n.btn-block {\\r\\n white-space: normal;\\r\\n}\\r\\n\\r\\n.security-designer-card {\\r\\n /*display: inherit;*/\\r\\n border-radius: 4px;\\r\\n border: 1px solid #C2C4CC;\\r\\n padding: 30px 20px;\\r\\n background-color: white;\\r\\n position: relative;\\r\\n margin-bottom: 8px;\\r\\n}\\r\\n\\r\\n.large-badge {\\r\\n padding: 2px 7px;\\r\\n border-radius: 360px;\\r\\n font-size: 12px;\\r\\n}\\r\\n\\r\\n.large-badge:empty {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.ax-roles-badge-color {\\r\\n background-color: $fp-purple;\\r\\n color: white;\\r\\n border: 1px solid $text-color;\\r\\n}\\r\\n\\r\\n.ax-duties-badge-color {\\r\\n background-color: $fp-label-purple-bg;\\r\\n color: $fp-label-purple-text;\\r\\n border: 1px solid $fp-label-purple-border;\\r\\n}\\r\\n\\r\\n.ax-tables-badge-color {\\r\\n background-color: $fp-label-green-bg;\\r\\n color: $fp-label-green-text;\\r\\n border: 1px solid $fp-label-green-border;\\r\\n}\\r\\n\\r\\n.ax-table-fields-badge-color {\\r\\n background-color: $fp-label-green-bg;\\r\\n color: $fp-label-green-text;\\r\\n border: 1px solid $fp-label-green-border;\\r\\n}\\r\\n\\r\\n.ax-privileges-badge-color {\\r\\n background-color: $fp-label-blue-bg;\\r\\n color: $fp-label-blue-text;\\r\\n border: 1px solid $fp-label-blue-border;\\r\\n}\\r\\n\\r\\n.ax-subroles-badge-color {\\r\\n background-color: $fp-label-yellow-bg;\\r\\n color: $fp-label-yellow-text;\\r\\n border: 1px solid $fp-label-yellow-border;\\r\\n}\\r\\n\\r\\n.ax-menuitems-badge-color {\\r\\n background-color: $fp-label-gray-bg;\\r\\n color: $fp-label-gray-text;\\r\\n border: 1px solid $fp-label-gray-border;\\r\\n}\\r\\n\\r\\n.ax-dataentities-badge-color {\\r\\n background-color: $fp-label-blue-bg;\\r\\n color: $fp-label-blue-text;\\r\\n border: 1px solid $fp-label-blue-border;\\r\\n}\\r\\n\\r\\n.ax-serviceoperations-badge-color {\\r\\n background-color: $fp-label-pink-bg;\\r\\n color: $fp-label-pink-text;\\r\\n border: 1px solid $fp-label-pink-border;\\r\\n}\\r\\n\\r\\n.btn-success {\\r\\n background-color: #27ae60;\\r\\n border-color: #27ae60;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-success:disabled, .btn-success:disabled:hover {\\r\\n background-color: #27ae60;\\r\\n border-color: #27ae60;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.btn-success:hover, .btn-success:active, .btn-success:focus {\\r\\n background-color: #25a75c;\\r\\n border-color: #25a75c;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n/*for font smoothing*/\\r\\n.icons8, [class^=\\\"icons8-\\\"]:before {\\r\\n font-weight: inherit;\\r\\n}\\r\\n\\r\\n.rounded-search-box {\\r\\n border-radius: 4px;\\r\\n max-width: 158px;\\r\\n display: inline-block;\\r\\n border-color: #4B4F66;\\r\\n}\\r\\n\\r\\n.inline-grid-dropdown {\\r\\n padding: 10px 2px;\\r\\n width: 100%;\\r\\n border: solid 1px #dbdbdb;\\r\\n -webkit-appearance: none;\\r\\n -webkit-box-shadow: none;\\r\\n -moz-appearance: none;\\r\\n background: transparent url('../Content/Images/SVG/icons8-Sort Down.svg') no-repeat 99% center;\\r\\n}\\r\\n\\r\\n.pagination {\\r\\n margin: 10px 0;\\r\\n}\\r\\n\\r\\n.emptyStateMessage {\\r\\n text-align: center;\\r\\n color: #A9B2BE;\\r\\n margin-top: 100px;\\r\\n}\\r\\n\\r\\n.large-transparent-dropdown-header {\\r\\n border: none;\\r\\n background-color: transparent;\\r\\n font-size: 20px;\\r\\n font-weight: 600;\\r\\n outline: none;\\r\\n padding: 6px;\\r\\n padding-right: 22px;\\r\\n -webkit-appearance: none;\\r\\n -webkit-box-shadow: none;\\r\\n -moz-appearance: none;\\r\\n background: transparent url('../Content/Images/SVG/icons8-Sort Down.svg') no-repeat 99% center;\\r\\n}\\r\\n\\r\\n.large-transparent-dropdown-header:hover {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n.large-transparent-dropdown-header:disabled {\\r\\n opacity: 0.65;\\r\\n}\\r\\n\\r\\n.security-designer-top-page-break {\\r\\n margin-top: 0px;\\r\\n border-color: #d3d3d3;\\r\\n}\\r\\n\\r\\n.netSuite-passedValidation {\\r\\n text-decoration: line-through;\\r\\n opacity: 0.4;\\r\\n}\\r\\n\\r\\n.netSuiteSecurityDesignerValidation {\\r\\n font-size: 25px;\\r\\n padding-left: 6px;\\r\\n margin-bottom: -30px;\\r\\n margin-left: -45px;\\r\\n}\\r\\n\\r\\n.disable-list-during-load {\\r\\n pointer-events: none;\\r\\n opacity: .8;\\r\\n}\\r\\n\\r\\n.is-modified-security-desiger-card {\\r\\n border-left: $fp-label-orange-border 5px solid;\\r\\n}\\r\\n\\r\\n.is-modified-security-designer-button {\\r\\n border-left: 4px solid $fp-label-orange-border !important;\\r\\n}\\r\\n\\r\\n.is-custom-security-desiger-card {\\r\\n border-left: $fp-label-green-border 5px solid;\\r\\n}\\r\\n\\r\\n.permission-level-label {\\r\\n text-transform: uppercase;\\r\\n font-size: 10px;\\r\\n font-weight: 700;\\r\\n padding-left: 8px;\\r\\n}\\r\\n\\r\\n.steps-completed-counter {\\r\\n color: white;\\r\\n white-space: nowrap;\\r\\n padding-left: 4px;\\r\\n padding-right: 4px;\\r\\n}\\r\\n\\r\\n.progress-bar[aria-valuenow=\\\"0\\\"] > .steps-completed-counter {\\r\\n color: #333;\\r\\n}\\r\\n\\r\\n.center-change-dot {\\r\\n text-align: center;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.action-revoke-security-designer-card {\\r\\n opacity: 0.5;\\r\\n pointer-events: none;\\r\\n}\\r\\n\\r\\n.center-icon {\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 50%;\\r\\n height: 50%;\\r\\n transform: translate(-50%, -50%);\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.center-info {\\r\\n position: absolute;\\r\\n top: 45%;\\r\\n left: 50%;\\r\\n height: 50%;\\r\\n transform: translate(-50%, -50%);\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.block-display {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.loading-text-for-spinner {\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n padding-top: 8vh;\\r\\n}\\r\\n\\r\\n.center-cells {\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.vcenter {\\r\\n position: absolute;\\r\\n left: 50%;\\r\\n top: 50%;\\r\\n}\\r\\n\\r\\n.tooltip-inner {\\r\\n word-break: break-word;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.security-designer-modifications-more-details {\\r\\n margin-right: -16px;\\r\\n margin-top: 6px;\\r\\n}\\r\\n\\r\\n\\r\\n.dashboard_card {\\r\\n /*margin-bottom: 16px;*/\\r\\n /*border: 1px solid #ddd;*/\\r\\n border-radius: 6px;\\r\\n background-color: white;\\r\\n box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.05);\\r\\n}\\r\\n\\r\\n.dashboard_card header {\\r\\n /*background: #f4f4f4;*/\\r\\n border-bottom: 1px solid #ddd;\\r\\n color: $fp-purple;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.dashboard_card header {\\r\\n border-top-left-radius: 6px;\\r\\n border-top-right-radius: 6px;\\r\\n position: relative;\\r\\n font-size: 16px;\\r\\n height: 45px;\\r\\n line-height: 45px;\\r\\n cursor: move;\\r\\n}\\r\\n\\r\\n.dashboard_card .dashboard_card_content {\\r\\n -webkit-align-items: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n display: -webkit-flex;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-flex-direction: row;\\r\\n -ms-flex-direction: row;\\r\\n flex-direction: row;\\r\\n position: relative;\\r\\n background-color: #fff;\\r\\n border-bottom-left-radius: 6px;\\r\\n border-bottom-right-radius: 6px;\\r\\n padding-bottom: 10px;\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.dashboard_card_icon {\\r\\n font-size: 40px;\\r\\n /*margin-bottom: 10px;*/\\r\\n color: #2675b3;\\r\\n}\\r\\n\\r\\n.dashboard_tile {\\r\\n /*color: #fff;*/\\r\\n /*background-color: #04476C;*/\\r\\n height: 102.5px;\\r\\n padding-top: 18px;\\r\\n /*border-radius: 6px;*/\\r\\n}\\r\\n\\r\\n.dashboard_tile_count {\\r\\n font-size: 28px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.dashboard_tile_percent {\\r\\n font-size: 14px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.card_selection_pane_icon {\\r\\n font-size: 26px;\\r\\n color: #5191C2;\\r\\n}\\r\\n\\r\\n/*[class$=\\\"-creditgroup\\\"] {\\r\\n display: none;\\r\\n}*/\\r\\n\\r\\n.card-selection-pane {\\r\\n position: absolute;\\r\\n right: 0px;\\r\\n top: 0px;\\r\\n width: 380px;\\r\\n height: 100%;\\r\\n background-color: #fff;\\r\\n border-left: 1px solid #C2C4CC;\\r\\n z-index: 1;\\r\\n bottom: 0;\\r\\n overflow: auto;\\r\\n overflow-x: hidden;\\r\\n /*margin-bottom: 40px;*/\\r\\n}\\r\\n\\r\\n\\r\\n.item {\\r\\n width: 500px;\\r\\n /*height: 200px;*/\\r\\n /*margin: 10px;*/\\r\\n /*background: pink;*/\\r\\n}\\r\\n\\r\\n.tile {\\r\\n width: 240px;\\r\\n /*margin: 10px;*/\\r\\n}\\r\\n\\r\\n/*.packery-drop-placeholder {\\r\\n outline: 1px dashed #ddd;\\r\\n outline-offset: -6px;\\r\\n -webkit-transition: -webkit-transform 0.1s;\\r\\n transition: transform 0.1s;\\r\\n}*/\\r\\n\\r\\n.is-pointer-down.is-dragging {\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n.margin-bottom-last-card-selection {\\r\\n border-bottom: solid 1px #C2C4CC;\\r\\n margin-bottom: 30px;\\r\\n}\\r\\n\\r\\n.detailed-label {\\r\\n margin-left: 3px;\\r\\n opacity: 0.75;\\r\\n font-size: 9px;\\r\\n}\\r\\n\\r\\n.mini-navbar .detailed-label {\\r\\n display: block !important;\\r\\n}\\r\\n\\r\\n.affected-objects-item {\\r\\n margin-left: 2.5em;\\r\\n}\\r\\n\\r\\n.dropdown-on-top {\\r\\n z-index: 99999999999;\\r\\n}\\r\\n\\r\\n.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:focus, .dropdown-menu > .disabled > a:hover {\\r\\n color: #dadada;\\r\\n}\\r\\n\\r\\n.popover .arrow {\\r\\n visibility: hidden;\\r\\n}\\r\\n\\r\\n#AADExchange {\\r\\n background-image: url('../Content/Images/ApplicationLogos/Microsoft_logo.png');\\r\\n background-repeat: no-repeat;\\r\\n background-size: 45px;\\r\\n background-position: 4px;\\r\\n}\\r\\n\\r\\n#FastpathAccount {\\r\\n background-image: url(../Content/Images/SVG/fastpath-white-mono.svg);\\r\\n background-repeat: no-repeat;\\r\\n background-size: 42px;\\r\\n background-position: 5px;\\r\\n}\\r\\n\\r\\n.FastpathAccount {\\r\\n background-image: url(../Content/Images/SVG/fastpath-white-mono.svg);\\r\\n background-repeat: no-repeat;\\r\\n background-size: 42px;\\r\\n background-position: 5px;\\r\\n}\\r\\n\\r\\n.AADExchange {\\r\\n background-image: url('../Content/Images/ApplicationLogos/Microsoft_logo.png');\\r\\n background-repeat: no-repeat;\\r\\n background-size: 45px;\\r\\n background-position: 4px;\\r\\n}\\r\\n\\r\\n.SAML2 {\\r\\n background-image: url('../Content/Images/ApplicationLogos/SAML-logo.svg');\\r\\n background-repeat: no-repeat;\\r\\n background-size: 45px;\\r\\n background-position: 4px;\\r\\n}\\r\\n\\r\\n.user-type-selection {\\r\\n color: #434343;\\r\\n padding: 18px 60px;\\r\\n font-size: 12px;\\r\\n border-radius: 3px;\\r\\n cursor: pointer;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.user-type-selection:hover {\\r\\n background-color: rgba(0, 0, 0, 0.11);\\r\\n}\\r\\n\\r\\n.user-type-selection.active {\\r\\n color: #fafafa;\\r\\n background-color: $fp-purple;\\r\\n font-weight: 600;\\r\\n}\\r\\n\\r\\n.popover {\\r\\n font-size: 12px;\\r\\n border: solid 1px #eeeeee;\\r\\n}\\r\\n\\r\\n.popover-title {\\r\\n background-color: inherit;\\r\\n}\\r\\n\\r\\n.side-margin-15 {\\r\\n margin: 0px 15px;\\r\\n}\\r\\n\\r\\n.side-margin-9 {\\r\\n margin: 0px 9px;\\r\\n}\\r\\n\\r\\n.text-align-left {\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.row_cell {\\r\\n flex: 1\\r\\n}\\r\\n\\r\\n.row--top {\\r\\n align-items: flex-start\\r\\n}\\r\\n\\r\\n.row_cell--center {\\r\\n align-self: center\\r\\n}\\r\\n\\r\\n.row-flex {\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n.row-template-bottom-padding {\\r\\n padding-bottom: 20px;\\r\\n}\\r\\n\\r\\n.pill-trash-spacing {\\r\\n margin-left: 0.75em;\\r\\n}\\r\\n\\r\\n.long-and-break-word {\\r\\n flex: 1;\\r\\n /*white-space: nowrap;*/\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n word-wrap: break-word;\\r\\n}\\r\\n\\r\\n.break-word {\\r\\n word-wrap: break-word;\\r\\n}\\r\\n\\r\\n.truncate-text {\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n display: -webkit-box;\\r\\n -webkit-line-clamp: 2;\\r\\n -webkit-box-orient: vertical;\\r\\n}\\r\\n\\r\\n.max-w-87 {\\r\\n max-width: 87%;\\r\\n}\\r\\n/* ^ for panels with items in table / makes margins look equal and text doesn't extend under scrollbar */\\r\\n\\r\\n.deployed-badge {\\r\\n background-color: transparent;\\r\\n border: solid 1px #e6e6e6;\\r\\n color: #c3c3c3;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.deployed-disabled-button {\\r\\n background-color: transparent;\\r\\n border: solid 1px #e6e6e6;\\r\\n color: #c3c3c3;\\r\\n}\\r\\n\\r\\n.dimmed {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.dimmed:after {\\r\\n content: \\\" \\\";\\r\\n z-index: 10;\\r\\n display: block;\\r\\n position: absolute;\\r\\n height: 100%;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n background: rgba(0, 0, 0, 0.5);\\r\\n}\\r\\n\\r\\n.chart-details-quick-view {\\r\\n padding: 50px 16px 35px 35px;\\r\\n}\\r\\n\\r\\n.group-by-listview-height {\\r\\n height: 631px;\\r\\n}\\r\\n\\r\\n.select-listview-height-paged {\\r\\n height: 571px;\\r\\n}\\r\\n\\r\\n.select-listview-height {\\r\\n height: 622px;\\r\\n}\\r\\n\\r\\n.list-view-body.paged {\\r\\n height: 599px;\\r\\n}\\r\\n\\r\\n.list-view-body.filter-tab {\\r\\n height: 624px;\\r\\n}\\r\\n\\r\\n.list-view-body.filter-tab.paged {\\r\\n height: 547px;\\r\\n}\\r\\n\\r\\n.list-view-body.filter-tab.dropdown-filter {\\r\\n height: 615px;\\r\\n}\\r\\n\\r\\n.list-view-body.filter-tab.dropdown-filter.paged {\\r\\n height: 564px;\\r\\n}\\r\\n\\r\\n.my-reviews-standard-height-listview {\\r\\n background: white;\\r\\n height: 648px;\\r\\n}\\r\\n\\r\\n.review-status-badge {\\r\\n margin-left: auto;\\r\\n margin-top: -50px;\\r\\n}\\r\\n\\r\\n.review-status-badge-complete {\\r\\n color: gray;\\r\\n}\\r\\n\\r\\n.review-status-capitalized {\\r\\n text-transform: capitalize;\\r\\n}\\r\\n\\r\\n.review-assignment-tile {\\r\\n padding: 10px;\\r\\n /*width: 200px;*/\\r\\n background: white;\\r\\n /*display: inline-block;*/\\r\\n position: relative;\\r\\n border: solid 1px $border-color;\\r\\n}\\r\\n\\r\\n.review-assignment-icon-circle {\\r\\n border-radius: 90px;\\r\\n padding: 5px;\\r\\n border: solid 1px #e8e8e8;\\r\\n background-color: #f8f8f8;\\r\\n}\\r\\n\\r\\n.review-assignment-icon-circle.review-assignment-clickable.text-not-selected {\\r\\n border-color: #b3b3b3;\\r\\n}\\r\\n\\r\\n.text-success.review-assignment-icon-circle {\\r\\n border-color: #27ae60;\\r\\n}\\r\\n\\r\\n.text-danger.review-assignment-icon-circle {\\r\\n border-color: #e74c3c;\\r\\n}\\r\\n\\r\\n.review-assignment_Risk,\\r\\n.review-assignment_Risk {\\r\\n color: #FCC201;\\r\\n}\\r\\n\\r\\n.review-assignment_Roles,\\r\\n.review-assignment_SecurityRole {\\r\\n color: #8550B3\\r\\n}\\r\\n\\r\\n.review-assignment_Products,\\r\\n.review-assignment_Product {\\r\\n color: #ADBACB\\r\\n}\\r\\n\\r\\n.review-assignment_Manager {\\r\\n color: #36BFCE\\r\\n}\\r\\n\\r\\n.review-assignment_BusinessProcess {\\r\\n color: #E22159\\r\\n}\\r\\n\\r\\n.review-assignment-icons8 {\\r\\n /*color: white;*/\\r\\n font-size: 22px;\\r\\n font-weight: 300;\\r\\n}\\r\\n\\r\\n.review-assignment-tile-container {\\r\\n /*color: darkgray;*/\\r\\n height: 100px;\\r\\n}\\r\\n\\r\\n.review-assignment-tile:hover {\\r\\n background: #e0e0e0;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.review-assignment-tile.active-tile {\\r\\n background: #e0e0e0;\\r\\n border: solid 1px #C2C4CC;\\r\\n /*cursor: pointer;*/\\r\\n}\\r\\n\\r\\n.review-tile-counter {\\r\\n position: absolute;\\r\\n bottom: 5px;\\r\\n width: 100%;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.list-view-no-hover > list-item:hover {\\r\\n background-color: inherit;\\r\\n}\\r\\n\\r\\n.list-view-height {\\r\\n min-height: 700px;\\r\\n}\\r\\n\\r\\n.text-transparent {\\r\\n color: transparent;\\r\\n}\\r\\n\\r\\n.review-assignment-clickable.text-not-selected:hover {\\r\\n cursor: pointer;\\r\\n border-color: #cfcfcf;\\r\\n}\\r\\n\\r\\n.flexbox_container {\\r\\n height: 100%;\\r\\n display: -ms-flexbox;\\r\\n display: -webkit-box;\\r\\n display: -moz-box;\\r\\n display: -ms-box;\\r\\n display: box;\\r\\n -ms-flex-direction: row;\\r\\n -webkit-box-orient: horizontal;\\r\\n -moz-box-orient: horizontal;\\r\\n -ms-box-orient: horizontal;\\r\\n box-orient: horizontal;\\r\\n}\\r\\n\\r\\n.flexbox_icon_slot {\\r\\n width: 60px;\\r\\n -ms-flex: 0 40px;\\r\\n -webkit-box-flex: 0;\\r\\n -moz-box-flex: 0;\\r\\n -ms-box-flex: 0;\\r\\n box-flex: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.flexbox_content_slot {\\r\\n -ms-flex: 1;\\r\\n -webkit-box-flex: 1;\\r\\n -moz-box-flex: 1;\\r\\n -ms-box-flex: 1;\\r\\n box-flex: 1;\\r\\n}\\r\\n\\r\\n.text-status-light {\\r\\n color: #7fb3e0;\\r\\n}\\r\\n\\r\\n.text-not-selected {\\r\\n color: #b3b3b3;\\r\\n}\\r\\n\\r\\n/*Grid-specific height settings*/\\r\\n#JiraTicketsGrid .k-grid-content {\\r\\n min-height: 330px;\\r\\n}\\r\\n\\r\\n#ZenDeskTicketsGrid .k-grid-content {\\r\\n min-height: 330px;\\r\\n}\\r\\n\\r\\n.revoked-role-offset {\\r\\n margin-right: 50%;\\r\\n}\\r\\n\\r\\n.loading-overlay span {\\r\\n position: relative;\\r\\n top: 50%;\\r\\n left: 50%;\\r\\n}\\r\\n\\r\\nlist-item.selected-item {\\r\\n background-color: #e0e0e0;\\r\\n}\\r\\n\\r\\n/*Container for non-criteria select elements with loading spinner*/\\r\\n.select-spinner-container {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.input-group-unstyled .input-group-addon {\\r\\n border: 0px;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .modal-xl {\\r\\n width: 1200px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*Give kendo dropdowns using form control class similar appearance to standard select controls*/\\r\\n.form-control.input-sm span.k-dropdown-wrap {\\r\\n height: 100%\\r\\n}\\r\\n\\r\\n/* Flexbox */\\r\\n\\r\\n.flex-inline {\\r\\n display: -webkit-inline-box;\\r\\n display: -ms-inline-flexbox;\\r\\n display: inline-flex !important;\\r\\n}\\r\\n\\r\\n.flex-center {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n flex-direction: row;\\r\\n}\\r\\n\\r\\n.flex-vcenter {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.flex-between {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: justify;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: space-between;\\r\\n flex-direction: row;\\r\\n}\\r\\n\\r\\n.flex-start {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: horizontal;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: row;\\r\\n flex-direction: row;\\r\\n -webkit-box-align: start;\\r\\n -ms-flex-align: start;\\r\\n align-items: flex-start;\\r\\n}\\r\\n\\r\\n.flex-inline {\\r\\n display: -webkit-inline-box;\\r\\n display: -ms-inline-flexbox;\\r\\n display: inline-flex;\\r\\n}\\r\\n\\r\\n.flex-end {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-pack: justify;\\r\\n -ms-flex-pack: justify;\\r\\n justify-content: flex-end;\\r\\n flex-direction: row;\\r\\n}\\r\\n\\r\\n.flex-wrap {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-wrap: wrap;\\r\\n flex-wrap: wrap;\\r\\n}\\r\\n\\r\\n.flex-column {\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.flex-equal {\\r\\n -webkit-box-flex: 1;\\r\\n -ms-flex: 1;\\r\\n flex: 1;\\r\\n}\\r\\n\\r\\n/* Word Break */\\r\\n\\r\\n.break-words {\\r\\n overflow-wrap: break-word;\\r\\n word-wrap: break-word;\\r\\n -ms-word-break: break-all;\\r\\n word-break: break-all;\\r\\n word-break: break-word;\\r\\n -ms-hyphens: auto;\\r\\n -moz-hyphens: auto;\\r\\n -webkit-hyphens: auto;\\r\\n hyphens: auto;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export default __webpack_public_path__ + \"images/ALA_Logo.svg\";","export default __webpack_public_path__ + \"images/AcumaticaSVG.svg\";","export default __webpack_public_path__ + \"images/AribaLogoSVG.svg\";","export default __webpack_public_path__ + \"images/AuditBoardLogo.svg\";","export default __webpack_public_path__ + \"images/AzureActiveDirectory.svg\";","export default __webpack_public_path__ + \"images/AzureDevOpsLogoSVG.svg\";","export default __webpack_public_path__ + \"images/AzureSVG.svg\";","export default __webpack_public_path__ + \"images/CoupaSVG.svg\";","export default __webpack_public_path__ + \"images/Dynamics365SVG.svg\";","export default __webpack_public_path__ + \"images/Dynamics365SalesSVG.svg\";","export default __webpack_public_path__ + \"images/DynamicsAXSVG.svg\";","export default __webpack_public_path__ + \"images/DynamicsGPSVG.svg\";","export default __webpack_public_path__ + \"images/DynamicsNAVSVG.svg\";","export default __webpack_public_path__ + \"images/DynamicsNav2019BusinessCentral.svg\";","export default __webpack_public_path__ + \"images/DynamicsSLSVG.svg\";","export default __webpack_public_path__ + \"images/FreshserviceLogo.svg\";","export default __webpack_public_path__ + \"images/Dynamics365CustomerEngagementIMTile.svg\";","export default __webpack_public_path__ + \"images/Dynamics365IMTile.svg\";","export default __webpack_public_path__ + \"images/DynamicsAXIMTile.svg\";","export default __webpack_public_path__ + \"images/DynamicsGPIMTile.svg\";","export default __webpack_public_path__ + \"images/DynamicsNAVIMTile.svg\";","export default __webpack_public_path__ + \"images/NetSuiteIMTile.svg\";","export default __webpack_public_path__ + \"images/OracleCloudIMTile.svg\";","export default __webpack_public_path__ + \"images/OracleIMTile.svg\";","export default __webpack_public_path__ + \"images/PeopleSoftIMTile.svg\";","export default __webpack_public_path__ + \"images/SAPIMTile.svg\";","export default __webpack_public_path__ + \"images/UniversalProduct.svg\";","export default __webpack_public_path__ + \"images/IntacctLogoSVG.svg\";","export default __webpack_public_path__ + \"images/JiraLogoSVG.svg\";","export default __webpack_public_path__ + \"images/Microsoft_logo.png\";","export default __webpack_public_path__ + \"images/OracleCloudFinLogoSVG.svg\";","export default __webpack_public_path__ + \"images/OracleJDEdwardsSVG.svg\";","export default __webpack_public_path__ + \"images/OracleLogoSVG.svg\";","export default __webpack_public_path__ + \"images/PeopleSoftSVG.svg\";","export default __webpack_public_path__ + \"images/SAML-logo.svg\";","export default __webpack_public_path__ + \"images/SAPB1LogoSVG.svg\";","export default __webpack_public_path__ + \"images/SAPConcurLogo.svg\";","export default __webpack_public_path__ + \"images/SAPLogoSVG.svg\";","export default __webpack_public_path__ + \"images/SalesforceLogoSVG.svg\";","export default __webpack_public_path__ + \"images/WorkdaySVG.svg\";","export default __webpack_public_path__ + \"images/WorkivaLogoSVG.svg\";","export default __webpack_public_path__ + \"images/ZendeskLogoSVG.svg\";","export default __webpack_public_path__ + \"images/ZuoraLogoSVG.svg\";","export default __webpack_public_path__ + \"images/microsoftActiveDirectory.svg\";","export default __webpack_public_path__ + \"images/netsuite-oracle.svg\";","export default __webpack_public_path__ + \"images/service-now.svg\";","export default __webpack_public_path__ + \"images/csv-16.png\";","export default __webpack_public_path__ + \"images/csv-64.png\";","export default __webpack_public_path__ + \"images/default-16.png\";","export default __webpack_public_path__ + \"images/default-64.png\";","export default __webpack_public_path__ + \"images/docx_16.png\";","export default __webpack_public_path__ + \"images/docx_32.png\";","export default __webpack_public_path__ + \"images/docx_64.png\";","export default __webpack_public_path__ + \"images/pdf_16.png\";","export default __webpack_public_path__ + \"images/pdf_32.png\";","export default __webpack_public_path__ + \"images/pdf_64.png\";","export default __webpack_public_path__ + \"images/xlsx_16.png\";","export default __webpack_public_path__ + \"images/xlsx_32.png\";","export default __webpack_public_path__ + \"images/xlsx_64.png\";","export default __webpack_public_path__ + \"images/16Spinner.svg\";","export default __webpack_public_path__ + \"images/AccessRiskMonitorPurple.svg\";","export default __webpack_public_path__ + \"images/AccessRiskMonitorWhite.svg\";","export default __webpack_public_path__ + \"images/Application Shield.svg\";","export default __webpack_public_path__ + \"images/ArchiveDataCanges.svg\";","export default __webpack_public_path__ + \"images/CalendarPurple.svg\";","export default __webpack_public_path__ + \"images/CalendarWhite.svg\";","export default __webpack_public_path__ + \"images/Change ThemePurple.svg\";","export default __webpack_public_path__ + \"images/Change ThemeWhite.svg\";","export default __webpack_public_path__ + \"images/CollectDataChanges.svg\";","export default __webpack_public_path__ + \"images/CollectSnapshot.svg\";","export default __webpack_public_path__ + \"images/ConnectionsPurple.svg\";","export default __webpack_public_path__ + \"images/ConnectionsWhite.svg\";","export default __webpack_public_path__ + \"images/DataTransferPurple.svg\";","export default __webpack_public_path__ + \"images/DefaultMit.svg\";","export default __webpack_public_path__ + \"images/Electronic Identity CardPurple.svg\";","export default __webpack_public_path__ + \"images/Electronic Identity CardWhite.svg\";","export default __webpack_public_path__ + \"images/LinkClippedWithDropdown.svg\";","export default __webpack_public_path__ + \"images/PurgeDataChanges.svg\";","export default __webpack_public_path__ + \"images/RestoreDataChanges.svg\";","export default __webpack_public_path__ + \"images/SecurityDesignerCircleOnlyIcon.svg\";","export default __webpack_public_path__ + \"images/SecurityDesignerIconPurple.svg\";","export default __webpack_public_path__ + \"images/SecurityDesignerIconWhite.svg\";","export default __webpack_public_path__ + \"images/SecurityDesignerRiskAnalysisResults.svg\";","export default __webpack_public_path__ + \"images/SecuritySetupPurple.svg\";","export default __webpack_public_path__ + \"images/SecuritySetupWhite.svg\";","export default __webpack_public_path__ + \"images/SettingsPurple.svg\";","export default __webpack_public_path__ + \"images/SettingsWhite.svg\";","export default __webpack_public_path__ + \"images/UploadPurple.svg\";","export default __webpack_public_path__ + \"images/XML.svg\";","export default __webpack_public_path__ + \"images/certificationsPurple.svg\";","export default __webpack_public_path__ + \"images/certificationsWhite.svg\";","export default __webpack_public_path__ + \"images/fastpath-white-mono.svg\";","export default __webpack_public_path__ + \"images/fp-circle-inactive.svg\";","export default __webpack_public_path__ + \"images/fp-circle-success.svg\";","export default __webpack_public_path__ + \"images/icons8-Info Squared.svg\";","export default __webpack_public_path__ + \"images/icons8-Ok.svg\";","export default __webpack_public_path__ + \"images/icons8-Sort Down.svg\";","export default __webpack_public_path__ + \"images/icons8-Submit Progress.svg\";","export default __webpack_public_path__ + \"images/icons8-Warning.svg\";","export default __webpack_public_path__ + \"images/icons8-WarningRed.svg\";","export default __webpack_public_path__ + \"images/icons8-surveyPurple.svg\";","export default __webpack_public_path__ + \"images/icons8-surveyWhite.svg\";","export default __webpack_public_path__ + \"images/icons8-info-fade.svg\";","export default __webpack_public_path__ + \"images/icons8-info.svg\";","export default __webpack_public_path__ + \"images/x-circle-12.svg\";","export default __webpack_public_path__ + \"images/Collection 1-b8f80e9f63.svg\";","export default __webpack_public_path__ + \"images/header-profile-skin-1.png\";","export default __webpack_public_path__ + \"images/header-profile-skin-2.png\";","export default __webpack_public_path__ + \"images/header-profile-skin-3.png\";","export default __webpack_public_path__ + \"images/header-profile.png\";","export default __webpack_public_path__ + \"images/shattered.png\";","export default __webpack_public_path__ + \"images/loading-image-spinner.gif\";","export default __webpack_public_path__ + \"fonts/dd9e2a49022a2a6b8a571fbba007cd2e.eot\";","export default __webpack_public_path__ + \"fonts/21c7da8db118835db36e0a984d72213a.ttf\";","export default __webpack_public_path__ + \"fonts/c57bec0105439af47b2412fd91d6a584.woff\";","export default \"data:application/font-woff;base64,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\""],"sourceRoot":""}