{"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/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/LinkClippedWithDrop.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","reportId","Columns","Sortings","sortsAndFilters","Criteria","Filters","DateFilters","fullExportName","ExportId","ExportName","shouldBeOpen","config","getConfigurationValues","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","downloadsRadioFilter","_getExports","exportsAreLoading","userName","fullName","listOfExports","myDownloads","_getExportsSharedWithUser","_yield$myDownloadsDat2","listOfSharedExports","showFilters","deleteExport","_deleteExport","el","downloadItem","downloadReportExport","_openShareExportModal","shareExportModal","shareExportsModalController","_openEditDownloadModal","editDownloadModal","editDownloadModalController","determineStatusLabelClass","ActionName","setExportingOpacity","downloadItemClicked","changeRadioFilter","reduce","newList","ExportStatus","CreatedOn","ExportType","Owner","OwnerName","menuOptions","click","$itemScope","displayed","openEditDownloadModal","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","selected","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","map","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","_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","includes","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","routeString","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","AtHeaderId","buildHeaderPost","headerPostData","headerEndpoint","RecId","ChangeDate","Template","TableName","Event","User","Responsibility","Application","ObjRecId","ModifiedOn","ModifiedBy","ChangeNumber","_unLinkRecord","AtHeaderTicketId","linkRecordToZendesk","unLinkRecord","model","CreatedDate","TotalTicketCount","Count","Tickets","isCustomProduct","p","TableLogID","entryNo","TicketId","populatedTicket","columnsFromVM","_linkRecord","linkRecord","_linkRecordToJira","linkRecordToJira","_linkCustomTicket","customTicketId","_buildHeaderPost","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","clearObjectSelection","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","searchBoxSelectedObjects","openManageConditionsModal","openRiskRulesetModal","openRulesetObjectCopyModal","exportRiskRuleset","openRiskModal","deleteRisk","openBusinessProcessObjectsModal","businessProcessObjectsModalController","removeFromSelectedRiskObjects","openAvailableObjectsModal","selectObject","selectedObjects","_vm$selectedRisk","every","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","ticketType","showLinkTicketBody","isJira","isFreshservice","isServiceNow","isZendesk","updateTicketGrid","removeIMRequestTicketLink","jiraTicketLinked","freshServiceTicketLinked","serviceNowTicketLinked","zendeskTicketLinked","customTicketLinked","onRemoveTicket","openTicketTable","createLink","linkedTicket","isLinked","onUpdateTicket","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","AuditTrailEntityDataService","getObjectId","_getObjectId","HasAuditTrailModule","loadSavedReportCriteria","setupFilters","arr","seen","strObj","dateFilter","onRead","selectedTemplateType","dateFieldName","templateTypesDataSource","templateDropdownIsLoading","getAllTemplates","Insert","Delete","All","ModifiedDate","TimeStamp","dateandTime","templateTypes","QueryInput","deselectSelectedTemplateType","thirtyDaysAgo","today","maxDate","ticketTemplate","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","_defineProperty","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","option","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","headerTemplate","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","_unused","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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EAAQ,CACJwpI,EACA1C,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GArDJvpI,EAAQ,CACJ8mI,EACAoC,EACAC,EACAM,EACAL,EACAE,EACAC,GApDJvpI,EAAQ,CACJ8mI,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAyEQp2N,QAAQmE,KAAK0oF,EAEjC,EAEA,IAAIwpI,EAA0B,CAC1Bx+M,YAAa,mFACbxN,MAAO,wBACP+nN,SAAS,EACTr8I,OAAQ,MAER49I,EAAyB,CACzB97M,YAAa,kFACbxN,MAAO,sBACP+nN,SAAS,EACTr8I,OAAQ,MAER69I,EAAsC,CACtC/7M,YAAa,wFACbxN,MAAO,mBACP+nN,SAAS,EACTr8I,OAAQ,aAER89I,EAA4B,CAC5Bh8M,YAAa,8EACbxN,MAAO,QACP+nN,SAAS,EACTr8I,OAAQ,aAER+9I,EAA4B,CAC5Bj8M,YAAa,8EACbxN,MAAO,+BACP+nN,SAAS,EACTr8I,OAAQ,eAERg+I,EAAkB,CAClBl8M,YAAa,oEACbxN,MAAO,oBACP+nN,SAAS,EACTr8I,OAAQ,eAERi+I,EAAuB,CACvBn8M,YAAa,yEACbxN,MAAO,0BACP+nN,SAAS,EACTr8I,OAAQ,eAERk+I,EAA2B,CAC3Bp8M,YAAa,gFACbxN,MAAO,oDACP+nN,SAAS,EACTr8I,OAAQ,oCAERm+I,EAAiB,CACjBr8M,YAAa,sEACbxN,MAAO,yCACP+nN,SAAS,EACTr8I,OAAQ,oCAERo+I,EAAiB,CACjBt8M,YAAa,sEACbxN,MAAO,yCACP+nN,SAAS,EACTr8I,OAAQ,oCAERq+I,EAAyB,CACzBv8M,YAAa,2EACbxN,MAAO,6DACP+nN,SAAS,EACTr8I,OAAQ,6CAERs+I,EAAe,CACfx8M,YAAa,iEACbxN,MAAO,kDACP+nN,SAAS,EACTr8I,OAAQ,6CAERu+I,EAAoB,CACpBz8M,YAAa,sEACbxN,MAAO,wDACP+nN,SAAS,EACTr8I,OAAQ,6CAERw+I,EAAyB,CACzB18M,YAAa,4EACbxN,MAAO,4BACP+nN,SAAS,EACTr8I,OAAQ,YAER2+I,EAAe,CACf78M,YAAa,kEACbxN,MAAO,iBACP+nN,SAAS,EACTr8I,OAAQ,YAERy+I,EAAgB,CAChB38M,YAAa,mEACbxN,MAAO,kBACP+nN,SAAS,EACTr8I,OAAQ,YAER0+I,EAAkB,CAClB58M,YAAa,qEACbxN,MAAO,oBACP+nN,SAAS,EACTr8I,OAAQ,YAER4+I,EAAgC,CAChC98M,YAAa,wFACbxN,MAAO,8BACP+nN,SAAS,EACTr8I,OAAQ,cAER6+I,EAA6B,CAC7B/8M,YAAa,2FACbxN,MAAO,sBACP+nN,SAAS,EACTr8I,OAAQ,cAER8+I,EAAgC,CAChCh9M,YAAa,8FACbxN,MAAO,6BACP+nN,SAAS,EACTr8I,OAAQ,cAER++I,EAAwB,CACxBj9M,YAAa,0EACbxN,MAAO,+BACP+nN,SAAS,EACTr8I,OAAQ,eAERi/I,EAAc,CACdn9M,YAAa,gEACbxN,MAAO,oBACP+nN,SAAS,EACTr8I,OAAQ,eAERg/I,EAAkB,CAClBl9M,YAAa,oEACbxN,MAAO,wBACP+nN,SAAS,EACTr8I,OAAQ,eAERk/I,EAAyB,CACzBp9M,YAAa,4EACbxN,MAAO,gCACP+nN,SAAS,EACTr8I,OAAQ,gBAERm/I,EAAwB,CACxBr9M,YAAa,2EACbxN,MAAO,+BACP+nN,SAAS,EACTr8I,OAAQ,gBAERo/I,EAAoB,CACpBt9M,YAAa,uEACbxN,MAAO,2BACP+nN,SAAS,EACTr8I,OAAQ,gBAERq/I,EAA8B,CAC9Bv9M,YAAa,gFACbxN,MAAO,4BACP+nN,SAAS,EACTr8I,OAAQ,YAERs/I,EAAoB,CACpBx9M,YAAa,sEACbxN,MAAO,iBACP+nN,SAAS,EACTr8I,OAAQ,YAERu/I,EAAgC,CAChCz9M,YAAa,kFACbxN,MAAO,8BACP+nN,SAAS,EACTr8I,OAAQ,YAERw/I,EAA4B,CAC5B19M,YAAa,8EACbxN,MAAO,8BACP+nN,SAAS,EACTr8I,OAAQ,cAERy/I,EAAkB,CAClB39M,YAAa,oEACbxN,MAAO,mBACP+nN,SAAS,EACTr8I,OAAQ,cAER0/I,EAA6B,CAC7B59M,YAAa,+EACbxN,MAAO,8BACP+nN,SAAS,EACTr8I,OAAQ,cAER2/I,EAAiC,CACjC79M,YAAa,wFACbxN,MAAO,gCACP+nN,SAAS,EACTr8I,OAAQ,gBAER4/I,EAAuB,CACvB99M,YAAa,8EACbxN,MAAO,qBACP+nN,SAAS,EACTr8I,OAAQ,gBAER6/I,EAAgC,CAChC/9M,YAAa,kFACbxN,MAAO,8BACP+nN,SAAS,EACTr8I,OAAQ,cAER8/I,EAAsB,CACtBh+M,YAAa,wEACbxN,MAAO,mBACP+nN,SAAS,EACTr8I,OAAQ,cAER+/I,EAAyB,CACzBj+M,YAAa,4EACbxN,MAAO,uBACP+nN,SAAS,EACTr8I,OAAQ,OAERggJ,EAAqB,CACrBl+M,YAAa,kEACbxN,MAAO,mBACP+nN,SAAS,EACTr8I,OAAQ,OAERigJ,EAAwB,CACxBn+M,YAAa,2EACbxN,MAAO,sBACP+nN,SAAS,EACTr8I,OAAQ,OAERugJ,EAA2B,CAC3Bz+M,YAAa,yEACbxN,MAAO,6BACP+nN,SAAS,EACTr8I,OAAQ,OAERkgJ,EAAqB,CACrBp+M,YAAa,8EACbxN,MAAO,yBACP+nN,SAAS,EACTr8I,OAAQ,WAERmgJ,EAAmB,CACnBr+M,YAAa,4EACbxN,MAAO,gBACP+nN,SAAS,EACTr8I,OAAQ,WAERogJ,EAAmB,CACnBt+M,YAAa,4EACbxN,MAAO,gBACP+nN,SAAS,EACTr8I,OAAQ,WAERqgJ,EAAc,CACdv+M,YAAa,uEACbxN,MAAO,UACP+nN,SAAS,EACTr8I,OAAQ,UAGhB,IHnXK37C,QAAQ,qCI/DE,WAEXvsB,KAAK0oN,aAAe,SAAUlsN,EAAOmsN,EAAgBl4N,GAAQ,IAAAm4N,EAErDC,EAAeF,EAAeG,kBAC9BC,EAAkB,KAClB/pI,EAAQvuF,EAAOuuF,MAQnB,GANA6pI,EAAap1N,SAAQ,SAAUC,EAAK+d,GAC5BjV,IAAU9I,EAAI8I,QACdusN,EAAkBt3M,EAE1B,IAEa,QAATm3M,EAAAn4N,EAAO+H,UAAE,IAAAowN,GAATA,EAAWjH,2BAAuC,wBAAVnlN,GAA6C,+BAAVA,GAC3E,OAAO,EAGX,GAAwB,IAApBusN,EACA,OAAO,EAKX,IAFA,IAAIC,EAA2B,KAEtBv3M,EAAI,EAAGA,EAAIo3M,EAAanzN,OAAQ+b,IAAK,CAC1C,IAAgC,IAA5Bo3M,EAAap3M,GAAGw3M,UAA0C,IAArBjqI,EAAMvtE,GAAG8yM,QAAkB,CAChEyE,EAA2Bv3M,EAC3B,KACJ,EAA2B,IAArButE,EAAMvtE,GAAG8yM,UACXyE,EAA2BD,EAAkB,EAErD,CAEA,OAAIA,EAAkBC,CAK1B,EAEAhpN,KAAKkpN,sBAAwB,SAAUhhJ,EAAQygJ,EAAgB3pI,GAC3D,IAAImqI,EAAYR,EAAeS,oBAAsB,EAErD,OAAkB,GAAdD,GACInqI,EAAMmqI,GAAWjhJ,SAAWA,CAIxC,EAEAloE,KAAKg0M,sBAAwB,SAAU7uK,EAAuBw1J,GAE1D,IADA,IAAI0uB,EAAoB,KACf53M,EAAI,EAAGA,EAAI0zB,EAAsBzvC,OAAQ+b,IAE5B,MAAdkpL,GAAoC,aAAdA,GAAkE,GAArCx1J,EAAsB1zB,GAAGgd,SAC5E46L,GAAoB,EACwB,GAArClkL,EAAsB1zB,GAAGgd,WAChC46L,GAAoB,GAG5B,OAAOA,CACX,EAEArpN,KAAKspN,oBAAsB,SAAUtqI,EAAO2pI,GACxC,IAAK,IAAIl3M,EAAIk3M,EAAeS,oBAAqB33M,EAAIutE,EAAMtpF,OAAQ+b,IAAK,CACpE,IAAI6yM,EAAOtlI,EAAMvtE,GACjB,GAAoB,GAAhB6yM,EAAKC,QACL,OAAOD,CAEf,CACJ,EAEAtkN,KAAKupN,wBAA0B,SAAUvqI,EAAO2pI,GAC5C,IAAK,IAAIl3M,EAAIk3M,EAAeS,oBAAsB,EAAG33M,GAAK,EAAGA,IAAK,CAC9D,IAAI6yM,EAAOtlI,EAAMvtE,GACjB,GAAoB,GAAhB6yM,EAAKC,QACL,OAAOD,CAEf,CACJ,EAEAtkN,KAAKwpN,qBAAuB,SAAUb,GAClC,GAAIA,EAAec,cACf,OAAOd,EAAec,cAAcjtN,KAE5C,CAEJ,IJvBS,KK9DoB,SAAA3N,GAAU4B,EAAQQ,GAE3CR,EAAOi5N,2CA8EL,SAGuD5rN,GAAA,OAAA6rN,EAAAr5N,MAAC,KAADC,UAAA,EA7EzD,IAAIq5N,EAAc,SAAU7nN,GACxB/B,KAAK2/E,OAAS59E,EAAO49E,OACrB3/E,KAAKi+C,UAAYl8C,EAAOk8C,UACxBj+C,KAAK46E,SAAW74E,EAAO64E,SACvB56E,KAAK0wD,YAAc3uD,EAAO2uD,YAC1B1wD,KAAK6pN,aAAe9nN,EAAO8nN,YAC/B,EAuEyD,SAAAF,IASxD,OATwDA,GAAA36N,OAAAC,UAAzD,SAAAC,EAA0D68D,GAAY,OAAA98D,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAExD+G,IAAKpF,EAAc4pC,iBAAiB,mDAAoD,oEAAF7nC,OAAsE+4D,EAAa15D,KAAI,qCAAqC,UAAS,OACjO5B,EAAO+H,GAAGyjM,0BAA0BxoM,SAAQ,SAAAk8B,GACxCA,EAAgB,UAAIo8B,EAAarO,SACrC,IAAGtuD,EAAAE,KAAA,sBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAAAA,EAAAqP,OAAA,kCAAArP,EAAAiB,OAAA,GAAAnB,EAAA,mBAIVoB,MAAA,KAAAC,UAAA,CA9EDE,EAAOo5N,cAAe,EAEtBp5N,EAAOq5N,cAAgB,SAAUn6L,GAC7Bl/B,EAAO+H,GAAG0jM,2BAA2BzoM,SAAQ,SAAUC,EAAK+d,GACpD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAG0jM,2BAA2BxkL,OAAOjG,EAAG,GAC/ChhB,EAAO+H,GAAGyjM,0BAA0BlsM,KAAK4/B,GAEjD,IACAl/B,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOu5N,mBAAqB,SAAUr6L,GAClCl/B,EAAO+H,GAAGyjM,0BAA0BxoM,SAAQ,SAAUC,EAAK+d,GACnD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAGyjM,0BAA0BvkL,OAAOjG,EAAG,GAC1Cke,EAAK2rK,cACL7qM,EAAO+H,GAAG0jM,2BAA2BnsM,KAAK2D,GAGtD,IAEAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOw5N,mBAAqB,SAAUt6L,GAClCl/B,EAAO+H,GAAG0xN,0BAA0Bz2N,SAAQ,SAAUC,EAAK+d,GACnD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAG0xN,0BAA0BxyM,OAAOjG,EAAG,GAC9ChhB,EAAO+H,GAAG0jM,2BAA2BnsM,KAAK2D,GAElD,IAEAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAO05N,eAAiB,SAAUxsK,EAASlvB,GACvCh+B,EAAO+H,GAAGyjM,0BAA0BxoM,SAAQ,SAAUC,EAAK+d,GACnD/d,EAAI+Z,KAAOhd,EAAOs7D,aAAat+C,KAE1B/Z,EAAIuqD,YAA0B,IAAbxvB,GAClBh+B,EAAO+H,GAAG4xN,kBAAkB1yM,OAAOjG,EAAG,IAEzB,IAAbgd,GACAh+B,EAAO+H,GAAG4xN,kBAAkBr6N,KACxB,IAAI65N,EAAY,CACZjqI,OAAQjsF,EAAIisF,OACZ1hC,UAAWN,EAAQM,UACnB28B,SAAUlnF,EAAIknF,SACdlqB,YAAa/S,EAAQ+S,YACrBm5J,cAAc,KAKlC,GACJ,EAEAp5N,EAAO45N,4BAA8B,SAAUt+J,EAAcvgC,EAAM1nB,EAAO4mD,GAClEA,EACAj6D,EAAO+H,GAAGyjM,0BAA0BxoM,SAAQ,SAAAk8B,GACxCA,EAAKnE,GAAQ1nB,CACjB,IAEAioD,EAAavgC,GAAQ1nB,CAE7B,EAcArT,EAAOs7D,aAAe,KAEtBt7D,EAAOqvD,yBAA2B,SAAUZ,GACxCzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,CACJ,CCrG6B,SAAArwD,GAAU4B,EAAQoW,EAAWnW,EAAO6oM,EAA4BvC,EAA0Bx9L,GAGnH/I,EAAO+H,GAAG8xN,qBAAuB,KACjC75N,EAAO+H,GAAG+xN,mBAAqB,KAC/B95N,EAAO+H,GAAGgyN,cAAgB,IAAI9xN,KAC9B,IAAI+xN,EAAgB,IAAI/xN,KAcD,SAAAvH,IAGtB,OAHsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACyCo7N,IAAkB,OAAvDj6N,EAAOk6N,sBAAqBv7N,EAAAI,KA0B5BiB,EAAO+H,GAAGoyN,yBAA2B,CACjCnzL,gBAAgB,EAChB/3B,SAAU,8GAGVvL,OAAQ,WACRmmD,UAAU,EACV6wD,UAAW,EACX1pE,YAAa,wBAGjBhxC,EAAO+H,GAAGyiM,4BAA8B,IAAIx7L,MAAM5N,KAAKmlB,WAAW,CAC9DC,UAAW,CACPvD,KAAM,SAAAvT,GAEFA,EAAQ+W,QAAQzmB,EAAO+H,GAAGokM,sBAC9B,KAzCgB,wBAAAxtM,EAAAiB,OAAA,GAAAnB,EAAA,MAC3BoB,MAAA,KAAAC,UAAA,UAEcm6N,IAAgB,OAAAG,EAAAv6N,MAAC,KAADC,UAAA,UAAAs6N,IAc9B,OAd8BA,GAAA77N,OAAAC,UAA/B,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAG+BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,8EAA4E,OAAxG,GACc,MADdjB,EAAAtC,KACDqC,KAAKgN,MAAa,CAAA/M,EAAAxC,KAAA,gBAAAwC,EAAAxC,KAAA,EACrBw7N,IAA0B,cAAAh5N,EAAA2M,OAAA,UACzB,GAAI,eAAA3M,EAAA2M,OAAA,UAEJ,GAAK,QAAA3M,EAAAxC,KAAA,wBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAG,GAAAH,EAAA,SAAAA,EAAA2M,OAAA,UAGT,GAAK,yBAAA3M,EAAAzB,OAAA,GAAAsB,EAAA,oBAGnBrB,MAAA,KAAAC,UAAA,UAEcu6N,IAAwB,OAAAC,EAAAz6N,MAAC,KAADC,UAAA,UAAAw6N,IAGtC,OAHsCA,GAAA/7N,OAAAC,UAAvC,SAAAwD,IAAA,IAAAC,EAAA,OAAAzD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EAC2BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,uCAAqC,OAAzEL,EAAQC,EAAAnD,KACdiB,EAAO+H,GAAGwyN,cAAgBt4N,EAASb,KAAK,wBAAAc,EAAAtC,OAAA,GAAAoC,EAAA,MAC3CnC,MAAA,KAAAC,UAAA,CArCDk6N,EAAcpkN,SAAS,EAAG,EAAG,EAAG,GAEhC5V,EAAO+H,GAAGiyN,cAAgBA,EACrBh6N,EAAO+H,GAAG+sD,KAAKy2I,aAChBvrM,EAAO+H,GAAG+sD,KAAKy2I,WAAa,CAAC,GAEJ,QAAzBvrM,EAAO+H,GAAGmiM,aACVlqM,EAAO+H,GAAG+sD,KAAKy2I,WAAWzrH,SAAU,GAExC9/E,EAAO+H,GAAG+sD,KAAKy2I,WAAWv2J,YAAc,KAE7B,WAEYt0C,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,GAkDAlE,EAAOw6N,sBAAwB,WAC3B,IAAIr9M,EAEAA,EADuC,IAAvCnd,EAAO+H,GAAG+sD,KAAKy2I,WAAW/2L,UACnB,IAAIvM,KAEJ,IAAIA,KAAKjI,EAAO+H,GAAG+sD,KAAKy2I,WAAW/2L,WAG9CxU,EAAO+H,GAAGiyN,cAAgB78M,EAC1Bnd,EAAO+H,GAAG0yN,UAAYt9M,EACtBnd,EAAO+H,GAAG2yN,YAAcv9M,EACS,MAA7Bnd,EAAO+H,GAAG+sD,KAAKy2I,aACfvrM,EAAO+H,GAAG+sD,KAAKy2I,WAAa,CAAC,EAErC,EAEAvrM,EAAO26N,oBAAsB,WACzB36N,EAAO+H,GAAGgyN,cAAgB,IAAI9xN,KAAKjI,EAAO+H,GAAG+sD,KAAKy2I,WAAW72L,SAC7D1U,EAAO+H,GAAG6yN,UAAY,IAAI3yN,KAAKjI,EAAO+H,GAAG+sD,KAAKy2I,WAAW72L,SACzD1U,EAAO+H,GAAG8yN,YAAc,IAAI5yN,KAAKjI,EAAO+H,GAAG+sD,KAAKy2I,WAAW/2L,WAC1B,MAA7BxU,EAAO+H,GAAG+sD,KAAKy2I,aACfvrM,EAAO+H,GAAG+sD,KAAKy2I,WAAa,CAAC,EAErC,EAEAvrM,EAAO86N,iBAAmB,WACtB96N,EAAO+H,GAAG+sD,KAAKy2I,WAAW5F,IAAM,KAChC3lM,EAAO+H,GAAG+sD,KAAKy2I,WAAW3I,cAAgB,KAC1C5iM,EAAO+H,GAAG+sD,KAAKy2I,WAAW/F,aAAe,KACzCxlM,EAAO+H,GAAG+sD,KAAKy2I,WAAWl2J,SAAW,KACrCr1C,EAAO+H,GAAG+sD,KAAKy2I,WAAW7F,cAAgB,IAC9C,EAGA1lM,EAAOqY,OAAO,sBAAsB,SAAU0iN,GACpB,MAAlB/6N,EAAO+H,GAAG+sD,MAA6C,MAA7B90D,EAAO+H,GAAG+sD,KAAKy2I,YAA0D,MAApCvrM,EAAO+H,GAAG+sD,KAAKy2I,WAAWx2L,SACzF/U,EAAO+H,GAAG+sD,KAAKy2I,WAAW7F,cAAgB1lM,EAAO+H,GAAG+sD,KAAKy2I,WAAWx2L,OAAOmP,MAAMlkB,EAAO+H,GAAG+sD,KAAKy2I,WAAWx2L,OAAO2C,QAAQ,KAAO,EAAG1X,EAAO+H,GAAG+sD,KAAKy2I,WAAWx2L,OAAO9P,QAE7K,IAAG,GAEHjF,EAAOgvD,UAAY,WACfhvD,EAAO+H,GAAG8+L,gCAAkC,KAE5CzwL,EAAUvU,KAAK,CACX0X,YAAa,uFACbC,WAAY,iCACZG,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,GAEf,EAEAA,EAAOqY,OAAO,gCAAgC,SAAU0iN,GAC9B,MAAlB/6N,EAAO+H,GAAG+sD,MAA6C,MAA7B90D,EAAO+H,GAAG+sD,KAAKy2I,YAA6D,MAAvCvrM,EAAO+H,GAAG+sD,KAAKy2I,WAAWQ,WACzF/rM,EAAOg7N,iBAEf,IAAG,GAEHh7N,EAAOg7N,gBAAkB,WACsB,MAAvCh7N,EAAO+H,GAAG+sD,KAAKy2I,WAAWQ,WAC1BjD,EAA2BoD,sBAAsBlsM,EAAO+H,GAAG+sD,KAAKy2I,WAAWQ,UAAU3+J,KAAKtqC,MAAK,SAAUb,GACrGjC,EAAO+H,GAAGokM,sBAAwBlqM,EAASb,KAC3CpB,EAAO+H,GAAGyiM,4BAA4BvnL,MAC1C,IAAG,SAAuBhhB,GACtB,GAGZ,EAEAjC,EAAOi7N,kBAAoB,SAAUz4N,EAAQiiM,GACzC8B,EAAyB/B,QAAQhiM,EAAQiiM,GACpC3hM,MAAK,SAAAb,IACoB,IAAlBA,EAASb,MACTpB,EAAOk7N,YAAa,EACpBl7N,EAAOm7N,WAAWC,SAASxkJ,aAAa,YAAY,KAGpD52E,EAAOk7N,YAAa,EACpBl7N,EAAOm7N,WAAWC,SAASxkJ,aAAa,YAAY,GAG5D,IAAE,OACK,SAAA3kC,GACHlpC,EAAiB,MAAOkpC,EAC5B,GACR,EAEAjyC,EAAOq7N,YAAY,CAAC,+BAAgC,qCAAqC,WACjFr7N,EAAO+H,GAAG+sD,KAAKy2I,WAAW7F,eAAiB1lM,EAAO+H,GAAG+sD,KAAKy2I,WAAWQ,WAAsC,QAAzB/rM,EAAO+H,GAAGmiM,YAC5FlqM,EAAOi7N,kBAAkBj7N,EAAO+H,GAAG+sD,KAAKy2I,WAAW7F,cAAe1lM,EAAO+H,GAAG+sD,KAAKy2I,WAAWQ,UAAU3+J,IAE9G,IAEAptC,EAAOs7N,cAAgB,SAAUC,GAC7Bv7N,EAAO+H,GAAG+sD,KAAKy2I,WAAW+H,OAAS,CAC/BkoB,YAAaD,EAAaC,YAC1BC,gBAAiBF,EAAaE,gBAC9BC,WAAYH,EAAaG,WACzBC,mBAAoBJ,EAAaI,oBAGrC37N,EAAO47N,gBAAiB,CAC5B,CACJ,CC3K6B,SAAAx9N,GAAU4B,EAAQS,GAIpB,SAAAC,IAGtB,OAHsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACUg9N,IAAwB,cAAAl9N,EAAAE,KAAA,EACxBi9N,IAA8B,wBAAAn9N,EAAAiB,OAAA,GAAAnB,EAAA,MACvCoB,MAAA,KAAAC,UAAA,UAEc+7N,IAAsB,OAAAE,EAAAl8N,MAAC,KAADC,UAAA,UAAAi8N,IAGpC,OAHoCA,GAAAx9N,OAAAC,UAArC,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyB4B,EAAyB67C,mCAAmC,MAAO,0BAAyB,OAA7Gr6C,EAAQZ,EAAAtC,KACZiB,EAAOg8N,SAAmC,MAAxB/5N,EAASb,KAAKgN,MAAc,wBAAA/M,EAAAzB,OAAA,GAAAsB,EAAA,MACjDrB,MAAA,KAAAC,UAAA,UAEcg8N,IAA4B,OAAAG,EAAAp8N,MAAC,KAADC,UAAA,CAK3C,SAAAm8N,IAFC,OAEDA,GAAA19N,OAAAC,UALA,SAAAwD,IAAA,IAAAC,EAAA,OAAAzD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EACyB4B,EAAyB67C,mCAAmC,MAAO,2BAA0B,OAA9Gr6C,EAAQC,EAAAnD,KACZiB,EAAO+H,GAAGm0N,sBAAgD,MAAxBj6N,EAASb,KAAKgN,MAAc,wBAAAlM,EAAAtC,OAAA,GAAAoC,EAAA,MACjEnC,MAAA,KAAAC,UAAA,EAfU,WAEYY,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,GAmBA,IAAIi1N,EAAc,SAAU7nN,GACxB/B,KAAK2/E,OAAS59E,EAAO49E,OACrB3/E,KAAKi+C,UAAYl8C,EAAOk8C,UACxBj+C,KAAK46E,SAAW74E,EAAO64E,SACvB56E,KAAK0wD,YAAc3uD,EAAO2uD,YAC1B1wD,KAAK6pN,aAAe9nN,EAAO8nN,YAC/B,EAKA,SAAS+C,IACLn8N,EAAO+H,GAAG8hM,qBAAuB,KAC7B7pM,EAAO+H,GAAG0hM,uBAAuBxkM,OAAS,IAC1CjF,EAAO+H,GAAG8hM,sBAAuB,GAEjC7pM,EAAO+H,GAAGq0N,uBAAuBn3N,OAAS,IAC1CjF,EAAO+H,GAAG8hM,sBAAuB,EAEzC,CAXA7pM,EAAOo5N,cAAe,EACtBp5N,EAAOm8N,wBAA0BA,EAYjCn8N,EAAOq5N,cAAgB,SAAUn6L,GAC7Bl/B,EAAO+H,GAAG2hM,wBAAwB1mM,SAAQ,SAAUC,EAAK+d,GACjD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAG2hM,wBAAwBziL,OAAOjG,EAAG,GAC5ChhB,EAAO+H,GAAG0hM,uBAAuBnqM,KAAK4/B,GAE9C,IACAl/B,EAAO+H,GAAGuxN,gBAAkB,KAC5B6C,GACJ,EAEAn8N,EAAOu5N,mBAAqB,SAAUr6L,GAClCl/B,EAAO+H,GAAG0hM,uBAAuBzmM,SAAQ,SAAUC,EAAK+d,GAChD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAG0hM,uBAAuBxiL,OAAOjG,EAAG,GACvCke,EAAK2rK,cACL7qM,EAAO+H,GAAG2hM,wBAAwBpqM,KAAK2D,GAGnD,IAEAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5B6C,GACJ,EAEAn8N,EAAOw5N,mBAAqB,SAAUt6L,GAClCl/B,EAAO+H,GAAGq0N,uBAAuBp5N,SAAQ,SAAUC,EAAK+d,GAChD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAGq0N,uBAAuBn1M,OAAOjG,EAAG,GAC3ChhB,EAAO+H,GAAG2hM,wBAAwBpqM,KAAK2D,GAE/C,IAEAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5B6C,GACJ,EAEAn8N,EAAO05N,eAAiB,SAAUxsK,EAASlvB,GACvCh+B,EAAO+H,GAAG0hM,uBAAuBzmM,SAAQ,SAAUC,EAAK+d,GAChD/d,EAAI+Z,KAAOhd,EAAOs7D,aAAat+C,KAE1B/Z,EAAIuqD,YAA0B,IAAbxvB,GAClBh+B,EAAO+H,GAAGs0N,mBAAmBp1M,OAAOjG,EAAG,IAE1B,IAAbgd,GACAh+B,EAAO+H,GAAGs0N,mBAAmB/8N,KACzB,IAAI65N,EAAY,CACZjqI,OAAQjsF,EAAIisF,OACZ1hC,UAAWN,EAAQM,UACnB28B,SAAUlnF,EAAIknF,SACdlqB,YAAa/S,EAAQ+S,YACrBm5J,cAAc,KAKlC,GACJ,EAEAp5N,EAAO45N,4BAA8B,SAAUt+J,EAAcvgC,EAAM1nB,EAAO4mD,GAClEA,EACAj6D,EAAO+H,GAAG0hM,uBAAuBzmM,SAAQ,SAAAk8B,GACrCA,EAAKnE,GAAQ1nB,CACjB,IAEAioD,EAAavgC,GAAQ1nB,CAE7B,EAEArT,EAAOqvD,yBAA2B,SAAUZ,GACxCzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,EAEAzuD,EAAOs7D,aAAe,IAE1B,CCrH6B,SAAAl9D,GAAU4B,EAAQumM,EAA0Bx9L,EAAmBtI,EAA0BR,GAGlHD,EAAO+H,GAAG8xN,qBAAuB,KACjC75N,EAAO+H,GAAG+xN,mBAAqB,KAC/B95N,EAAO+H,GAAGgyN,cAAgB,IAAI9xN,KAC9B,IAAI+xN,EAAgB,IAAI/xN,KAcxB,SAAS/D,IACDlE,EAAO+H,GAAGwiM,oBAAsBvqM,EAAO+H,GAAGwiM,mBAAmBtlM,OAAS,IAQ7E,WAE0Cq3N,EAAAz8N,MAAC,KAADC,UAAA,CATnCy8N,GACKv8N,EAAO+H,GAAG+sD,KAAKu0I,QAAQzG,eACxB45B,IAsBRx8N,EAAO+H,GAAGoyN,yBAA2B,CACjCnzL,gBAAgB,EAChB/3B,SAAU,8GAGVvL,OAAQ,WACRmmD,UAAU,EACV6wD,UAAW,EACX1pE,YAAa,uBACbotB,UAAW,SAAA3rD,GACP,IAAIgqN,EAA6BryN,MAAfqI,EAAK/O,OAAsB+O,EAAK/O,OAAO2P,MAAQ,GACjEZ,EAAKjD,iBAELiD,EAAKnD,OAAO+R,WAAW3d,OAAO,CAC1Bg5N,MAAO,KACP35M,QAAS,CACL,CACInC,MAAO,cACPwhB,SAAU,WACV/uB,MAAOopN,GAEX,CACI77M,MAAO,YACPwhB,SAAU,WACV/uB,MAAOopN,KAIvB,GAGJz8N,EAAO+H,GAAGyiM,4BAA8B,IAAIx7L,MAAM5N,KAAKmlB,WAAW,CAC9DC,UAAW,CACPvD,KAAM,SAAAvT,GAEFA,EAAQ+W,QAAQzmB,EAAO+H,GAAGwiM,mBAAmB7mM,QAAO,SAAAwpD,GAAO,MAA4B,gBAAxBA,EAAQgT,WAA6B,IACxG,KArDZ,CAE2C,SAAAo8J,IAO1C,OAP0CA,GAAA/9N,OAAAC,UAA3C,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAE+B4B,EAAyB67C,mCAAmC,MAAO,2BAA0B,OAA9Gr6C,EAAQtD,EAAAI,KACdiB,EAAO28N,iBAA2C,MAAxB16N,EAASb,KAAKgN,MAAczP,EAAAE,KAAA,uBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAAAA,EAAAqP,OAAA,UAE/C,GAAK,yBAAArP,EAAAiB,OAAA,GAAAnB,EAAA,mBAEnBoB,MAAA,KAAAC,UAAA,UAEc08N,IAAW,OAAAI,EAAA/8N,MAAC,KAADC,UAAA,UAAA88N,IAGzB,OAHyBA,GAAAr+N,OAAAC,UAA1B,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,yDAAuD,OAA3FL,EAAQZ,EAAAtC,KACZiB,EAAO+H,GAAG+sD,KAAKu0I,QAAQzG,cAAgB3gM,EAASb,KAAKgN,MAAM,wBAAA/M,EAAAzB,OAAA,GAAAsB,EAAA,MAC9DrB,MAAA,KAAAC,UAAA,CApCDk6N,EAAcpkN,SAAS,EAAG,EAAG,EAAG,GAEhC5V,EAAO+H,GAAG80N,aAmJV,SAAsB59N,GAClBe,EAAO+H,GAAG+sD,KAAKu0I,QAAUpqM,EACH,UAAlBA,EAAK4jM,UACL25B,GAER,EAtJAx8N,EAAO+H,GAAGiyN,cAAgBA,EAErBh6N,EAAO+H,GAAG+sD,KAAKu0I,UAChBrpM,EAAO+H,GAAG+sD,KAAKu0I,QAAU,CAAC,GAE9BrpM,EAAO+H,GAAG+sD,KAAKu0I,QAAQr0J,YAAc,MAErC9wC,IAoE6B,QAAzBlE,EAAO+H,GAAGmiM,aACVlqM,EAAO+H,GAAG+sD,KAAKu0I,QAAQvpH,SAAU,GAEhC9/E,EAAO+H,GAAG+sD,KAAKu0I,QAAQuJ,aACxB5yM,EAAO+H,GAAG+sD,KAAKu0I,QAAQuJ,WAAa,CAAC,GAGzC5yM,EAAOw6N,sBAAwB,WAC3B,IAAIr9M,EAEAA,EADqC,KAArCnd,EAAO+H,GAAG+sD,KAAKu0I,QAAQ70L,UAChB,IAAIvM,KAEJ,IAAIA,KAAKjI,EAAO+H,GAAG+sD,KAAKu0I,QAAQ70L,WAG3CxU,EAAO+H,GAAGiyN,cAAgB78M,EAC1Bnd,EAAO+H,GAAG0yN,UAAYt9M,EACtBnd,EAAO+H,GAAG2yN,YAAcv9M,EACM,MAA1Bnd,EAAO+H,GAAG+sD,KAAKu0I,UACfrpM,EAAO+H,GAAG+sD,KAAKu0I,QAAU,CAAC,EAElC,EAEArpM,EAAO26N,oBAAsB,WACzB36N,EAAO+H,GAAGgyN,cAAgB,IAAI9xN,KAAKjI,EAAO+H,GAAG+sD,KAAKu0I,QAAQ30L,SAC1D1U,EAAO+H,GAAG6yN,UAAY,IAAI3yN,KAAKjI,EAAO+H,GAAG+sD,KAAKu0I,QAAQ30L,SACtD1U,EAAO+H,GAAG8yN,YAAc,IAAI5yN,KAAKjI,EAAO+H,GAAG+sD,KAAKu0I,QAAQ70L,WAC1B,MAA1BxU,EAAO+H,GAAG+sD,KAAKu0I,UACfrpM,EAAO+H,GAAG+sD,KAAKu0I,QAAU,CAAC,EAElC,EAEArpM,EAAOi7N,kBAAoB,SAAUz4N,GACjC+jM,EAAyBhC,SAAS/hM,GAC7BM,MAAK,SAAAb,IACoB,IAAlBA,EAASb,MACTpB,EAAOk7N,YAAa,EACpBl7N,EAAOm7N,WAAW2B,UAAUlmJ,aAAa,aAAa,KAGtD52E,EAAOk7N,YAAa,EACpBl7N,EAAOm7N,WAAW2B,UAAUlmJ,aAAa,aAAa,GAE9D,IAAE,OACK,SAAA3kC,GACHlpC,EAAiB,MAAOkpC,EAC5B,GACR,EAEAjyC,EAAOqY,OAAO,0BAA0B,WAAM,IAAA2wL,EACxB,QAAdA,EAAAhpM,EAAO+H,GAAG+sD,YAAI,IAAAk0I,GAAS,QAATA,EAAdA,EAAgBK,eAAO,IAAAL,GAAvBA,EAAyBj0L,QAAmC,QAAzB/U,EAAO+H,GAAGmiM,YAC7ClqM,EAAOi7N,kBAAkBj7N,EAAO+H,GAAG+sD,KAAKu0I,QAAQt0L,OAExD,IAEA/U,EAAOqY,OAAO,yBAAyB,WACnCnU,GACJ,IAEAlE,EAAOs7N,cAAgB,SAAUC,GAC7Bv7N,EAAO+H,GAAG+sD,KAAKu0I,QAAQuJ,WAAa,CAChC4oB,YAAaD,EAAaC,YAC1BC,gBAAiBF,EAAaE,gBAC9BC,WAAYH,EAAaG,WACzBC,mBAAoBJ,EAAaI,oBAGrC37N,EAAO47N,gBAAiB,CAC5B,CASJ,CCnK6B,SAAAx9N,GAAU4B,GA8BnC,SAAS+8N,IACL/8N,EAAO+H,GAAGi1N,wBAA0B,KAChCh9N,EAAO+H,GAAGqwM,yBAAyBnzM,OAAS,IAC5CjF,EAAO+H,GAAGi1N,yBAA0B,EAE5C,CAjCAh9N,EAAOq5N,cAIP,SAAuBn6L,GACnBl/B,EAAO+H,GAAG40M,0BAA0B35M,SAAQ,SAAUC,EAAK+d,GACnD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAG40M,0BAA0B11L,OAAOjG,EAAG,GAC9ChhB,EAAO+H,GAAGqwM,yBAAyB94M,KAAK2D,GAEhD,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5ByD,GACJ,EAZA/8N,EAAOu5N,mBAcP,SAA4Br6L,GACxBl/B,EAAO+H,GAAGqwM,yBAAyBp1M,SAAQ,SAAUC,EAAK+d,GAClD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAGqwM,yBAAyBnxL,OAAOjG,EAAG,GACzCke,EAAK2rK,cACL7qM,EAAO+H,GAAG40M,0BAA0Br9M,KAAK2D,GAGrD,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5ByD,GACJ,EAxBA/8N,EAAOqvD,yBAiCP,SAAkCZ,GAC9BzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,CACJ,CCxC6B,SAAArwD,GAAU4B,GA2BnC,SAASi9N,IACLj9N,EAAO+H,GAAGm1N,uBAAyB,KAC/Bl9N,EAAO+H,GAAGswM,yBAAyBpzM,OAAS,IAC5CjF,EAAO+H,GAAGm1N,wBAAyB,EAE3C,CA9BAl9N,EAAOm9N,cAGP,SAAuB5vF,GACnBvtI,EAAO+H,GAAG80M,0BAA0B75M,SAAQ,SAAUC,EAAK+d,GACnD/d,EAAI+Z,KAAOuwH,EAAKvwH,KAChBhd,EAAO+H,GAAG80M,0BAA0B51L,OAAOjG,EAAG,GAC9ChhB,EAAO+H,GAAGswM,yBAAyB/4M,KAAK2D,GAEhD,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5B2D,GACJ,EAXAj9N,EAAOo9N,mBAaP,SAA4B7vF,GACxBvtI,EAAO+H,GAAGswM,yBAAyBr1M,SAAQ,SAAUC,EAAK+d,GAClD/d,EAAI+Z,KAAOuwH,EAAKvwH,KAChBhd,EAAO+H,GAAGswM,yBAAyBpxL,OAAOjG,EAAG,GAC7ChhB,EAAO+H,GAAG80M,0BAA0Bv9M,KAAK2D,GAEjD,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5B2D,GACJ,CAQJ,CCjC6B,SAAA7+N,GAAU4B,EAAQE,EAASs7M,EAA+Bh7M,GAEnF,IAAIuH,EAAKwH,KA8DT,SAAS8tN,IACuC,OAAxCr9N,EAAO+H,GAAG+sD,KAAKmjJ,UAAUO,YACzBzwM,EAAGu1N,4BAA6B,EAChC9hB,EAA8BuC,8BAA8B/9M,EAAO+H,GAAG+sD,KAAKmjJ,UAAUO,YAAY11M,MAAK,SAAAb,GAClGA,EAASb,KAAKm8M,WAAar9M,EAAQ,UAARA,CAAmB+B,EAASb,KAAKm8M,WAAY,SACxEx1M,EAAGw1N,2BAA6Bt7N,EAASb,KAAKm8M,WAC9Cx1M,EAAGu1N,4BAA6B,EAChCv1N,EAAGy1N,qBAAsB,CAC7B,IAAE,OAAO,SAAAv7N,GACLzB,EAAc2d,iBAAiBlc,EAASb,MACxC2G,EAAGu1N,4BAA6B,CACpC,MAEAv1N,EAAGy1N,qBAAsB,EACzBz1N,EAAGw1N,2BAA6B,KAExC,CA7EAx1N,EAAGy1N,qBAAsB,EACzBz1N,EAAGs1N,gBAAkBA,EACrBt1N,EAAG01N,2BA6EH,WACIz9N,EAAO+H,GAAGqwM,yBAA2B,GACrCp4M,EAAO+H,GAAGswM,yBAA2B,GAErCmD,EAA8BkB,yBAAyB18M,EAAO+H,GAAG+sD,KAAKmjJ,UAAUQ,gBAAgB31M,MAAK,SAAAb,GACjGA,EAASb,KAAOa,EAASb,KAAKsC,QAAO,SAAAw7B,GAAI,OAAIA,EAAK2rK,YAAY,IAC9D7qM,EAAO+H,GAAG40M,0BAA4B16M,EAASb,IACnD,IAEAo6M,EAA8BoB,yBAAyB58M,EAAO+H,GAAG+sD,KAAKmjJ,UAAUQ,gBAAgB31M,MAAK,SAAAb,GACjGjC,EAAO+H,GAAG80M,0BAA4B56M,EAASb,IACnD,GACJ,EAxFApB,EAAO+H,GAAG80N,aA0FV,SAAsB59N,GAClBe,EAAO+H,GAAG+sD,KAAKmjJ,UAAYh5M,CAC/B,EA3FKe,EAAO+H,GAAG+sD,KAAKmjJ,YAChBj4M,EAAO+H,GAAG+sD,KAAKmjJ,UAAY,CAAC,GAEhCj4M,EAAO+H,GAAG+sD,KAAKmjJ,UAAUjjK,YAAc,QAEvCh1C,EAAOiE,IAAI,oCAAoC,SAACmC,EAAOC,GAAI,OAAKg3N,GAAiB,GAuFrF,CCnG6B,SAAAj/N,GAAU4B,GAI/BA,EAAOq6D,iBAAmB,SAAUnN,GAChCltD,EAAO+H,GAAG02M,2BAA2Bz7M,SAAQ,SAAUC,EAAK+d,GACpD/d,EAAI+Z,KAAOkwC,EAAQlwC,KACnBhd,EAAO+H,GAAG02M,2BAA2Bx3L,OAAOjG,EAAG,GAC/ChhB,EAAO+H,GAAGquM,0BAA0B92M,KAAK2D,GAEjD,IACAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAO09N,sBAAwB,SAAUxwK,GACrCltD,EAAO+H,GAAGquM,0BAA0BpzM,SAAQ,SAAUC,EAAK+d,GACnD/d,EAAI+Z,KAAOkwC,EAAQlwC,KACnBhd,EAAO+H,GAAGquM,0BAA0BnvL,OAAOjG,EAAG,GAC9ChhB,EAAO+H,GAAG02M,2BAA2Bn/M,KAAK2D,GAE1CjD,EAAO+H,GAAGkuM,oBAAsBj2M,EAAO+H,GAAGkuM,oBAAoBvyM,QAAO,SAAA43D,GAAY,OAAIA,EAAalZ,QAAQplC,KAAOkwC,EAAQlwC,EAAE,IAEnI,IACAhd,EAAO+H,GAAGuxN,gBAAkB,IAChC,CACR,CCzB6B,SAAAl7N,GAAU4B,EAAQS,GAIN,SAAAk9N,IAGpC,OAHoCA,GAAAp/N,OAAAC,UAArC,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACyB4B,EAAyB67C,mCAAmC,KAAM,0BAAyB,OAA5Gr6C,EAAQtD,EAAAI,KACZiB,EAAO+H,GAAGi0N,SAAW/5N,EAASb,KAAKgN,MAAM,wBAAAzP,EAAAiB,OAAA,GAAAnB,EAAA,MAC5CoB,MAAA,KAAAC,UAAA,EALwB,WAEY69N,EAAA99N,MAAC,KAADC,UAAA,CAFrC89N,GAOK59N,EAAO+H,GAAGkuM,sBAAqBj2M,EAAO+H,GAAGkuM,oBAAsB,IAEpEj2M,EAAOq5N,cAAgB,SAAUn6L,GAC7Bl/B,EAAO+H,GAAGy2M,uBAAuBx7M,SAAQ,SAAUC,EAAK+d,GAChD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAGy2M,uBAAuBv3L,OAAOjG,EAAG,GACtChhB,EAAO+H,GAAGkuM,sBAAqBj2M,EAAO+H,GAAGkuM,oBAAsB,IACpEj2M,EAAO+H,GAAGkuM,oBAAoB32M,KAAK,CAAEmtD,KAAMxpD,EAAKm/C,QAASpiD,EAAO+H,GAAG4P,kBACnE3X,EAAO+H,GAAGw2M,sBAAsBj/M,KAAK,CAAEmtD,KAAMxpD,EAAKm/C,QAASpiD,EAAO+H,GAAG4P,kBAE7E,IACA3X,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOu5N,mBAAqB,SAAUr6L,GAClCl/B,EAAO+H,GAAGw2M,sBAAsBv7M,SAAQ,SAAUC,EAAK+d,GAC/C/d,EAAIwpD,KAAKzvC,KAAOkiB,EAAKutB,KAAKzvC,IAAM/Z,EAAIm/C,QAAQplC,KAAOkiB,EAAKkjB,QAAQplC,KAEhEhd,EAAO+H,GAAGw2M,sBAAsBt3L,OAAOjG,EAAG,GAE1C/d,EAAIwpD,KAAKrK,QAAUn/C,EAAIm/C,QACnBljB,EAAKutB,KAAKo+I,cACV7qM,EAAO+H,GAAGy2M,uBAAuBl/M,KAAK2D,EAAIwpD,MAGtD,IACAzsD,EAAO+H,GAAGkuM,oBAAoBjzM,SAAQ,SAAUC,EAAK+d,GAC7C/d,EAAIwpD,KAAKzvC,KAAOkiB,EAAKutB,KAAKzvC,IAAM/Z,EAAIm/C,QAAQplC,KAAOkiB,EAAKkjB,QAAQplC,IAChEhd,EAAO+H,GAAGkuM,oBAAoBhvL,OAAOjG,EAAG,EAEhD,IAGAhhB,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAO69N,cAAgB,WACnB,IAAIC,EAAap8N,QAAQmE,KAAK7F,EAAO+H,GAAG4P,iBACxC3X,EAAO+H,GAAG+sD,KAAK8gJ,OAAO3oJ,UAAU3tD,KAAK,CAAE62M,cAAen2M,EAAO+H,GAAGg2N,qBAAsB37K,QAAS07K,GACnG,EAEA99N,EAAOkhF,sBAAwB,WAC3BlhF,EAAOg+N,cACX,EAEAh+N,EAAOi+N,sBAAwB,WAEtBj+N,EAAO+H,GAAG+sD,KAAK8gJ,OAAO3oJ,YACvBjtD,EAAO+H,GAAG+sD,KAAK8gJ,OAAO3oJ,UAAY,IAGtC,IAAIipJ,EAAel2M,EAAO+H,GAAG+sD,KAAK8gJ,OAAO3oJ,UAAUniD,MAAK,SAAUoiD,GAC9D,OAAOA,EAAQ9K,QAAQplC,KAAOhd,EAAO+H,GAAG4P,gBAAgBqF,EAC5D,IAEIk5L,EACAA,EAAaC,cAAgBn2M,EAAO+H,GAAGg2N,qBAEvC/9N,EAAO69N,eAEf,EAEA79N,EAAOg+N,aAAe,WAElB,GAAIh+N,EAAO+H,GAAG4P,iBAAmB3X,EAAO+H,GAAG+sD,KAAK8gJ,QAAU51M,EAAO+H,GAAG+sD,KAAK8gJ,OAAO3oJ,UAAW,CACvF,IAAIipJ,EAAel2M,EAAO+H,GAAG+sD,KAAK8gJ,OAAO3oJ,UAAUniD,MAAK,SAAAoiD,GAAO,IAAAgxK,EAAA,OAAIhxK,SAAgB,QAATgxK,EAAPhxK,EAAS9K,eAAO,IAAA87K,OAAA,EAAhBA,EAAkBlhN,MAAOhd,EAAO+H,GAAG4P,gBAAgBqF,EAAE,IAExH,GAAIk5L,EACA,GAAmC,KAA/BA,EAAaC,cAAsB,CACnC,IAAI+I,EAAkBhJ,EAAaC,cAAcn5L,GAAKk5L,EAAaC,cAAcn5L,GAAKk5L,EAAaC,cACnGn2M,EAAO+H,GAAGg2N,qBAAuB/9N,EAAO+H,GAAGi3M,0BAA0Bl0M,MAAK,SAAAy2D,GAAO,OAAIA,EAAQvkD,KAAOkiM,CAAe,GACvH,MAEIhJ,EAAaC,cAAgBn2M,EAAO+H,GAAGi3M,0BAA0B,GACjEh/M,EAAO+H,GAAGg2N,qBAAuB/9N,EAAO+H,GAAGi3M,0BAA0B,QAGzEh/M,EAAO+H,GAAGg2N,qBAAuB/9N,EAAO+H,GAAGi3M,0BAA0B,GACrEh/M,EAAO69N,eAEf,MACS79N,EAAO+H,GAAG+sD,KAAK8gJ,OAAO3oJ,YACvBjtD,EAAO+H,GAAG+sD,KAAK8gJ,OAAO3oJ,UAAY,IAEtCjtD,EAAO+H,GAAGg2N,qBAAuB/9N,EAAO+H,GAAGi3M,0BAA0B,GACrEh/M,EAAO69N,gBAGN79N,EAAO+H,GAAG4P,kBACX3X,EAAO+H,GAAGy2M,uBAAyB,GACnCx+M,EAAO+H,GAAGg2N,qBAAuB,MAGrC/9N,EAAO+H,GAAGw2M,sBAAwB,GAG9Bv+M,EAAO+H,GAAG4P,kBACV3X,EAAO+H,GAAGy2M,uBAAyB98M,QAAQmE,KAAK7F,EAAO+H,GAAG62M,2BACtD5+M,EAAOmqM,qBAAgD,QAAzBnqM,EAAO+H,GAAGmiM,aAAyBlqM,EAAO+H,GAAG83L,cACxD7/L,EAAOmqM,oBAAoB9zJ,MAAM3yC,QAAO,SAAAw7B,GAAI,MAAoB,SAAhBA,EAAKs5E,QAA0C,OAArBt5E,EAAK8V,WAAoB,IAEzGhyC,SAAQ,SAAAk8B,GACjBl/B,EAAOq5N,cAAcn6L,EACzB,IACOl/B,EAAO+H,GAAGkuM,qBACjBj2M,EAAO+H,GAAGkuM,oBAAoBjzM,SAAQ,SAAAmqD,GAC9BA,EAAY/K,QAAQplC,GAAG+J,aAAe/mB,EAAO+H,GAAG4P,gBAAgBqF,GAAG+J,aAEnEomC,EAAY29I,QAAU9qM,EAAO+H,GAAG22M,uBAAuBt6L,MAAK,SAAA2mL,GAAW,OAAIA,EAAYt+I,KAAKzvC,KAAOmwC,EAAYV,KAAKzvC,IAAM+tL,EAAY3oJ,QAAQplC,KAAOmwC,EAAY/K,QAAQplC,EAAE,IAE3Khd,EAAO+H,GAAGw2M,sBAAsBj/M,KAAK6tD,GAErCntD,EAAO+H,GAAGy2M,uBAAuBx7M,SAAQ,SAAUC,EAAK+d,GAChD/d,EAAI+Z,KAAOmwC,EAAYV,KAAKzvC,IAC5Bhd,EAAO+H,GAAGy2M,uBAAuBv3L,OAAOjG,EAAG,EAEnD,IAER,IAIJhhB,EAAO+H,GAAGy2M,uBAAyBx+M,EAAO+H,GAAGy2M,uBAAuBr9K,KAAI,SAAAg9L,GAAiB,IAAAhG,EAGrF,OAFAgG,EAAcrzB,QAAmB,QAAZqtB,EAAGn4N,EAAO+H,UAAE,IAAAowN,GAAwB,QAAxBA,EAATA,EAAWzZ,8BAAsB,IAAAyZ,OAAA,EAAjCA,EAAmCrtN,KAAKszN,GAAiB5tJ,KAAK,KAAMxwE,EAAO+H,GAAG4P,gBAAiBwmN,IAEhHA,CACX,IAER,EAEAn+N,EAAOqvD,yBAA2B,SAAUZ,GACxCzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,CACJ,CAEA,SAAS2vK,GAAiBzmN,EAAiBwmN,EAAevxB,GACtD,OAAOuxB,EAAcnhN,KAAO4vL,EAAYngJ,KAAKzvC,IAAMrF,EAAgBqF,KAAO4vL,EAAYxqJ,QAAQplC,EAClG,CClJ6B,SAAA5e,GAAU4B,EAAQI,EAAYF,EAASkW,EAAW6nM,EAA4Bl1M,EAAmBw9L,GAE1H,IAAIx+L,EAAK/H,EAAO+H,GAChBA,EAAGs2N,aAAe,KAEbr+N,EAAO+H,GAAG+sD,KAAK8gJ,SAChB51M,EAAO+H,GAAG+sD,KAAK8gJ,OAAS,CAAC,GAE7B51M,EAAO+H,GAAG+sD,KAAK8gJ,OAAO5gK,YAAc,KAGhCh1C,EAAO+H,GAAGu2N,uBAAyBrgB,EAA2BqB,kBAI9Dt/M,EAAO+H,GAAGw2N,sBAAwBtgB,EAA2BsB,iBAGzDn/M,EAAWiO,oBAAoBmwN,WAAa,IAC5Cx+N,EAAO+H,GAAGw2N,sBAAwBr+N,EAAQ,SAARA,CAAkBF,EAAO+H,GAAGw2N,sBAAuB,CAAEvhN,GAAI,QAI/Fhd,EAAO+H,GAAG02N,qBAAuBxgB,EAA2BuB,gBAQhEz3M,EAAG22N,qBAAuB,KAC1B32N,EAAG42N,mBAAqB,KACxB52N,EAAG62N,cAAgB,IAAI32N,KACvB,IAAI42N,EAAgB,IAAI52N,KACxB42N,EAAcjpN,SAAS,EAAG,EAAG,EAAG,GAEhC7N,EAAG82N,cAAgBA,EACnB92N,EAAG+2N,sBAAwB,WACvB,IAAI3hN,EAEAA,EADoC,KAApCnd,EAAO+H,GAAG+sD,KAAK8gJ,OAAOphM,UACf,IAAIvM,KAEJ,IAAIA,KAAKjI,EAAO+H,GAAG+sD,KAAK8gJ,OAAOphM,WAG1CxU,EAAO+H,GAAG82N,cAAgB1hN,EAC1Bnd,EAAO+H,GAAGg3N,UAAY5hN,EACtBnd,EAAO+H,GAAG2yN,YAAcv9M,EACK,MAAzBnd,EAAO+H,GAAG+sD,KAAK8gJ,SACf51M,EAAO+H,GAAG+sD,KAAK8gJ,OAAS,CAAC,EAEjC,EACA7tM,EAAGi3N,oBAAsB,WACrBh/N,EAAO+H,GAAG62N,cAAgB,IAAI32N,KAAKjI,EAAO+H,GAAG+sD,KAAK8gJ,OAAOlhM,SACzD1U,EAAO+H,GAAGk3N,UAAY,IAAIh3N,KAAKjI,EAAO+H,GAAG+sD,KAAK8gJ,OAAOlhM,SACrD1U,EAAO+H,GAAGm3N,YAAc,IAAIj3N,KAAKjI,EAAO+H,GAAG+sD,KAAK8gJ,OAAOphM,WAC1B,MAAzBxU,EAAO+H,GAAG+sD,KAAK8gJ,SACf51M,EAAO+H,GAAG+sD,KAAK8gJ,OAAS,CAAC,EAEjC,EAEA7tM,EAAG+yN,iBAAmB,WACH,MAAX/yN,EAAG+sD,MAAkC,MAAlB/sD,EAAG+sD,KAAK8gJ,SAC3B7tM,EAAG+sD,KAAK8gJ,OAAO/P,cAAgB,KAC/B99L,EAAG+sD,KAAK8gJ,OAAO9P,YAAc,KAC7B/9L,EAAG+sD,KAAK8gJ,OAAO7P,SAAW,KAE1Bh+L,EAAG+sD,KAAK8gJ,OAAO54L,GAAK,KACpBjV,EAAG+sD,KAAK8gJ,OAAOvgK,SAAW,KAE1BttC,EAAGs2N,aAAe,KAE1B,EAEAr+N,EAAOi7N,kBAAoB,SAAUz4N,GACjC+jM,EAAyB7B,QAAQliM,GAC5BM,MAAK,SAAAb,GACFjC,EAAO+H,GAAGs2N,aAAep8N,EAASb,MACZ,IAAlBa,EAASb,KACTpB,EAAOm7N,WAAWgE,SAASvoJ,aAAa,YAAY,GAEpD52E,EAAOm7N,WAAWgE,SAASvoJ,aAAa,YAAY,EAE5D,IAAE,OAAO,SAAA3kC,GACLlpC,EAAiB,MAAOkpC,EAC5B,GACR,EAEAjyC,EAAOqY,OAAO,qBAAqB,WAC3BtQ,EAAG+sD,KAAK8gJ,OAAO54L,IAAwB,QAAlBjV,EAAGmiM,YACxBlqM,EAAOi7N,kBAAkBlzN,EAAG+sD,KAAK8gJ,OAAO54L,GAEhD,GAEJ,CC/F6B,SAAA5e,GAAU4B,EAAQS,GAS3C,SAAAk9N,IAFC,OAEDA,GAAAp/N,OAAAC,UALA,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACyB4B,EAAyB67C,mCAAmC,MAAO,0BAAyB,OAA7Gr6C,EAAQtD,EAAAI,KACZiB,EAAOg8N,SAAW/5N,EAASb,KAAKgN,MAAM,wBAAAzP,EAAAiB,OAAA,GAAAnB,EAAA,MACzCoB,MAAA,KAAAC,UAAA,EALwB,WAEY69N,EAAA99N,MAAC,KAADC,UAAA,CAFrC89N,GASA,IAAIzE,EAAc,SAAU7nN,GACxB/B,KAAK2/E,OAAS59E,EAAO49E,OACrB3/E,KAAKi+C,UAAYl8C,EAAOk8C,UACxBj+C,KAAK46E,SAAW74E,EAAO64E,SACvB56E,KAAK0wD,YAAc3uD,EAAO2uD,YAC1B1wD,KAAK6pN,aAAe9nN,EAAO8nN,YAC/B,EAEAp5N,EAAOo5N,cAAe,EAEtBp5N,EAAOo/N,2BAA6B,SAAU9nB,GAC1CA,EAAcrqJ,UAAYqqJ,EAAciU,aAAapqL,KAAI,SAAAp3B,GACrD,MAAO,CAAEnI,KAAMmI,EACnB,GACJ,EAEA/J,EAAOq5N,cAAgB,SAAUn6L,GAC7Bl/B,EAAO+H,GAAG4hN,iCAAiC3mN,SAAQ,SAAUC,EAAK+d,GAC1D/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAG4hN,iCAAiC1iM,OAAOjG,EAAG,GACrDhhB,EAAO+H,GAAGsvM,gCAAgC/3M,KAAK4/B,GAEvD,IACAl/B,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOu5N,mBAAqB,SAAUr6L,GAClCl/B,EAAO+H,GAAGsvM,gCAAgCr0M,SAAQ,SAAUC,EAAK+d,GACzD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAGsvM,gCAAgCpwL,OAAOjG,EAAG,GAChDke,EAAK2rK,cACL7qM,EAAO+H,GAAG4hN,iCAAiCrqN,KAAK2D,GAG5D,IAEAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAO05N,eAAiB,SAAUxsK,EAASlvB,GACvCh+B,EAAO+H,GAAGsvM,gCAAgCr0M,SAAQ,SAAUC,EAAK+d,GACzD/d,EAAI+Z,KAAOhd,EAAOs7D,aAAat+C,KAE1B/Z,EAAIuqD,YAA0B,IAAbxvB,GAClBh+B,EAAO+H,GAAGs3N,mBAAmBp4M,OAAOjG,EAAG,IAE1B,IAAbgd,GACAh+B,EAAO+H,GAAGs3N,mBAAmB//N,KACzB,IAAI65N,EAAY,CACZjqI,OAAQjsF,EAAIisF,OACZ1hC,UAAWN,EAAQM,UACnB28B,SAAUlnF,EAAIknF,SACdlqB,YAAa/S,EAAQ+S,YACrBm5J,cAAc,KAIlC,GACJ,EAEAp5N,EAAOs7D,aAAe,KAEtBt7D,EAAOqvD,yBAA2B,SAAUZ,GACxCzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,CAEJ,CC7E6B,SAAArwD,GAAU4B,GAInCA,EAAOs/N,YAAc,SAASx7E,GAC1B9jJ,EAAO+H,GAAG6hN,6BAA6B5mN,SAAQ,SAAUgnC,GACrDA,EAAM8hE,YAAa,CACvB,IACAg4C,EAAUh4C,YAAa,CAC3B,EAEA,IAAIqtH,EAAc,SAAU7nN,GACxB/B,KAAK2/E,OAAS59E,EAAO49E,OACrB3/E,KAAKi+C,UAAYl8C,EAAOk8C,UACxBj+C,KAAK46E,SAAW74E,EAAO64E,SACvB56E,KAAK0wD,YAAc3uD,EAAO2uD,YAC1B1wD,KAAK6pN,aAAe9nN,EAAO8nN,YAC/B,EAEAp5N,EAAOo5N,cAAe,EAEtBp5N,EAAOu/N,sBAAwB,SAAUv1L,GACrCA,EAAMijB,UAAYjjB,EAAMuhL,aAAapqL,KAAI,SAAAp3B,GACrC,MAAO,CAAEnI,KAAMmI,EACnB,GACJ,EAEA/J,EAAOq5N,cAAgB,SAAUn6L,GAC7Bl/B,EAAO+H,GAAG6hN,6BAA6B5mN,SAAQ,SAAUC,EAAK+d,GACtD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAG6hN,6BAA6B3iM,OAAOjG,EAAG,GACjDhhB,EAAO+H,GAAGwvM,4BAA4Bj4M,KAAK4/B,GAEnD,IACAl/B,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOu5N,mBAAqB,SAAUr6L,GAClCl/B,EAAO+H,GAAGwvM,4BAA4Bv0M,SAAQ,SAAUC,EAAK+d,GACrD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAGwvM,4BAA4BtwL,OAAOjG,EAAG,GAChDhhB,EAAO+H,GAAG6hN,6BAA6BtqN,KAAK2D,GAEpD,IAEAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAO05N,eAAiB,SAAUxsK,EAASlvB,GACvCh+B,EAAO+H,GAAGwvM,4BAA4Bv0M,SAAQ,SAAUC,EAAK+d,GACrD/d,EAAI+Z,KAAOhd,EAAOs7D,aAAat+C,KAEV,MAAjB/Z,EAAIuqD,WAAiC,GAAZxvB,GACzBh+B,EAAO+H,GAAGs3N,mBAAmBp4M,OAAOjG,EAAG,GAE3B,GAAZgd,GACAh+B,EAAO+H,GAAGs3N,mBAAmB//N,KACzB,IAAI65N,EAAY,CACZjqI,OAAQjsF,EAAIisF,OACZ1hC,UAAWN,EAAQM,UACnB28B,SAAUlnF,EAAIknF,SACdlqB,YAAa/S,EAAQ+S,YACrBm5J,cAAc,KAKlC,GACJ,EAEAp5N,EAAOs7D,aAAe,IAE1B,CCxE6B,SAAAl9D,GAAU4B,EAAQoW,EAAWs0M,GACtD1qN,EAAOw/N,QAAU,CAAC,EAMbx/N,EAAO+H,GAAG+sD,KAAKkiJ,UAChBh3M,EAAO+H,GAAG+sD,KAAKkiJ,QAAU,CAAC,GAE9Bh3M,EAAO+H,GAAG+sD,KAAKkiJ,QAAQhiK,YAAc,MACrCh1C,EAAO+H,GAAG+sD,KAAKkiJ,QAAQtT,MAAQ,IAP3B1jM,EAAO+H,GAAG03N,yBAA2B/U,EAA4BgB,qBAYrE1rN,EAAO+H,GAAG23N,qBAAuB,KACjC1/N,EAAO+H,GAAG43N,mBAAqB,KAC/B3/N,EAAO+H,GAAG63N,cAAgB,IAAI33N,KAC9B,IAAI43N,EAAgB,IAAI53N,KACxB43N,EAAcjqN,SAAS,EAAG,EAAG,EAAG,GAEhC5V,EAAO+H,GAAG83N,cAAgBA,EAE1B7/N,EAAO8/N,sBAAwB,WAC3B,IAAI3iN,EAEAA,EADoC,IAApCnd,EAAO+H,GAAG+sD,KAAKkiJ,QAAQxiM,UAChB,IAAIvM,KAEJ,IAAIA,KAAKjI,EAAO+H,GAAG+sD,KAAKkiJ,QAAQxiM,WAG3CxU,EAAO+H,GAAG83N,cAAgB1iN,EAC1Bnd,EAAO+H,GAAG0yN,UAAYt9M,EACtBnd,EAAO+H,GAAG2yN,YAAcv9M,EACM,MAA1Bnd,EAAO+H,GAAG+sD,KAAKkiJ,UACfh3M,EAAO+H,GAAG+sD,KAAKkiJ,QAAU,CAAC,EAC1Bh3M,EAAO+H,GAAG+sD,KAAKkiJ,QAAQtT,MAAQ,EAEvC,EAEA1jM,EAAO+/N,oBAAsB,WACzB//N,EAAO+H,GAAG63N,cAAgB,IAAI33N,KAAKjI,EAAO+H,GAAG+sD,KAAKkiJ,QAAQtiM,SAC1D1U,EAAO+H,GAAGi4N,UAAY,IAAI/3N,KAAKjI,EAAO+H,GAAG+sD,KAAKkiJ,QAAQtiM,SACtD1U,EAAO+H,GAAGm3N,YAAc,IAAIj3N,KAAKjI,EAAO+H,GAAG+sD,KAAKkiJ,QAAQxiM,WAC1B,MAA1BxU,EAAO+H,GAAG+sD,KAAKkiJ,UACfh3M,EAAO+H,GAAG+sD,KAAKkiJ,QAAU,CAAC,EAC1Bh3M,EAAO+H,GAAG+sD,KAAKkiJ,QAAQtT,MAAQ,EAEvC,CAEJ,CCjD6B,SAAAtlM,GAAU4B,EAAQ0T,EAAmBtS,EAAMZ,GAEpE,IAAIuH,EAAK/H,EAAO+H,GAAK,CAAC,EAWtBA,EAAGk4N,yBAA2Bz/N,EAAc4uC,mBAPjC,CACH,CAAExuB,MAAO,YAAa7U,MAAO,aAAc6a,YAAY,GACvD,CAAEhG,MAAO,WAAY7U,MAAO,YAAa6a,YAAY,GACrD,CAAEhG,MAAO,QAAS7U,MAAO,QAAS6a,YAAY,IAIoC,KAC1F7e,EAAGk4N,yBAAyBp2K,UAAW,EAEvC7pD,EAAOkgO,oCAAsC,IAAIlxN,MAAM5N,KAAKmlB,WAAW,CACnE+iC,SAAUliB,GACVhmC,KAAMA,EAAK++N,gBAGfp4N,EAAGq4N,mBAAqB,SAAUt0K,GAE9B,IAAI7sC,EAAO6sC,EAAWx8C,OAClB+wN,EAAuBphN,EAAKqpB,SAASrpB,EAAKspB,UAE1CusB,EAAO,CACXA,aAAoB,IACpBA,EAAKvf,WAAan0C,EAAKk/N,iBAEvBxrK,EAAK25I,aAAe4xB,EACpB3sN,EAAkBuC,MAAM6+C,EAC5B,EAEA90D,EAAOuK,OAAS,WACZmJ,EAAkBuC,OACtB,CACJ,CCvC6B,SAAA7X,GAAU4B,GAI/BA,EAAOugO,sBAAwB,SAAUvxI,GAErChvF,EAAO+H,GAAGs8M,mCAAmCrhN,SAAQ,SAAUC,EAAK+d,GAC5D/d,EAAI+Z,KAAOgyE,EAAWhyE,KACtBhd,EAAO+H,GAAGs8M,mCAAmCp9L,OAAOjG,EAAG,GACvD/d,EAAIqrM,cAAgB,KACpBtuM,EAAO+H,GAAGqmM,kCAAkC9uM,KAAK2D,GAEzD,IACAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOwgO,yBAA2B,SAAUnP,GACxCrxN,EAAO+H,GAAGqmM,kCAAkCprM,SAAQ,SAAUC,EAAK+d,GAC3D/d,EAAI+Z,KAAOq0M,EAAmBr0M,KAC9Bhd,EAAO+H,GAAGqmM,kCAAkCnnL,OAAOjG,EAAG,GACtDhhB,EAAO+H,GAAGs8M,mCAAmC/kN,KAAK2D,GAE1D,IACAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,CAER,CC1B6B,SAAAl7N,GAAU4B,GAMnC,SAASygO,IACLzgO,EAAO+H,GAAGkkN,2BAA6B,MACV,WAAzBjsN,EAAO+H,GAAGmiM,YAGNlqM,EAAO+H,GAAG8mM,4BAA4B5pM,OAAS,KAFnDjF,EAAO+H,GAAGkkN,4BAA6B,EAM/C,CAXAjsN,EAAOygO,8BAAgCA,EAavCzgO,EAAOq5N,cAAgB,SAAUn6L,GAC7Bl/B,EAAO+H,GAAGk8M,6BAA6BjhN,SAAQ,SAAUC,EAAK+d,GACtD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAGk8M,6BAA6Bh9L,OAAOjG,EAAG,GACjDhhB,EAAO+H,GAAG8mM,4BAA4BvvM,KAAK2D,GAEnD,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5BmH,GACJ,EAEAzgO,EAAOu5N,mBAAqB,SAAUr6L,GAClCl/B,EAAO+H,GAAG8mM,4BAA4B7rM,SAAQ,SAAUC,EAAK+d,GACrD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAG8mM,4BAA4B5nL,OAAOjG,EAAG,GAC5Cke,EAAK2rK,cACL7qM,EAAO+H,GAAGk8M,6BAA6B3kN,KAAK2D,GAGxD,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5BmH,GACJ,EAEAzgO,EAAOqvD,yBAA2B,SAAUZ,GACxCzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,CACJ,CC1C6B,SAAArwD,GAAU4B,EAAQoW,EAAWw1M,EAAkCh/F,EAAuB3sH,GAE1GD,EAAO+H,GAAG+sD,KAAK25I,eAChBzuM,EAAO+H,GAAG+sD,KAAK25I,aAAe,CAAC,GAGnCzuM,EAAO+H,GAAG23H,WA8GV,SAAoBzgI,GAChBe,EAAO+H,GAAG+sD,KAAK25I,aAAexvM,EACR,UAAlBA,EAAK4jM,UAGZ,WAEyB69B,EAAA7gO,MAAC,KAADC,UAAA,CAJlB6gO,EAER,EAlHA3gO,EAAO+H,GAAG+sD,KAAK25I,aAAaz5J,YAAc,KAmGxC,WAEwC4rL,EAAA/gO,MAAC,KAADC,UAAA,CApG1C+gO,GAEA7gO,EAAO+H,GAAG+4N,yBAA2B,SAAUC,IAM/C,SAAwBA,GAEA,MAAhBA,IACAA,EAAe/gO,EAAO+H,GAAG+sD,KAAK25I,cAG9BsyB,EAAa5xB,YACbyc,EAAiCiB,2BAA2BkU,EAAa5xB,WAAWnyL,IAAIla,MAAK,SAAUb,GACnGjC,EAAO+H,GAAG+kN,uBAAyB7qN,EAASb,IAChD,GAER,CAhBI4/N,CAAeD,GAkBnB,SAAoBA,GAEI,MAAhBA,IACAA,EAAe/gO,EAAO+H,GAAG+sD,KAAK25I,cAG9BsyB,EAAa5xB,YACbyc,EAAiChM,uBAAuBmhB,EAAa5xB,WAAWnyL,IAAIla,MAAK,SAAUb,GAC/FjC,EAAO+H,GAAGglN,kBAAoB9qN,EAASb,IAC3C,GAER,CA5BI6/N,CAAWF,GA8Bf,SAAsBA,GAEE,MAAhBA,IACAA,EAAe/gO,EAAO+H,GAAG+sD,KAAK25I,cAG9BsyB,EAAa5xB,YACbyc,EAAiCoB,yBAAyB+T,EAAa5xB,WAAWnyL,IAAIla,MAAK,SAAUb,GACjGjC,EAAO+H,GAAGklN,qBAAuBhrN,EAASb,IAC9C,GAER,CAxCI8/N,CAAaH,EACjB,EAyCA/gO,EAAO+H,GAAGo5N,YAAc,WACpBnhO,EAAO+H,GAAG+sD,KAAK25I,aAAe,KAC9BzuM,EAAO+H,GAAG+kN,uBAAyB,KACnC9sN,EAAO+H,GAAGklN,qBAAuB,KACjCjtN,EAAO+H,GAAGglN,kBAAoB,IAClC,EAGA/sN,EAAO+H,GAAG23N,qBAAuB,KACjC1/N,EAAO+H,GAAG43N,mBAAqB,KAC/B3/N,EAAO+H,GAAG63N,cAAgB,IAAI33N,KAC9B,IAAI43N,EAAgB,IAAI53N,KA0CkB,SAAA24N,IAMzC,OANyCA,GAAAriO,OAAAC,UAA1C,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE8G,OAD1GmB,EAAO+H,GAAGq5N,iBAA0F,MAAvEphO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,cAAhBA,EAAOpe,IAAoB,IAAEwM,MAC1FpO,EAAO+H,GAAGs5N,kBAA4F,MAAxErhO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,eAAhBA,EAAOpe,IAAqB,IAAEwM,MAAczP,EAAAE,KAAA,EACrF+tH,EAAsB4B,4BAA4B,MAAK,OAAxEvsH,EAAQtD,EAAAI,KACZiB,EAAO+H,GAAGu5N,oBAAuG,MAAjFr/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,2BAAhBA,EAAOpe,IAAiC,IAAEwM,OAAiBpO,EAAO+H,GAAGq5N,iBAClIphO,EAAO+H,GAAGw5N,qBAAyG,MAAlFt/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,4BAAhBA,EAAOpe,IAAkC,IAAEwM,OAAiBpO,EAAO+H,GAAGs5N,kBAAkB,wBAAA1iO,EAAAiB,OAAA,GAAAnB,EAAA,MACzJoB,MAAA,KAAAC,UAAA,CASyB,SAAA4gO,IAGzB,OAHyBA,GAAAniO,OAAAC,UAA1B,SAAA0C,IAAA,IAAA4M,EAAA1M,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EAC2BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,wDAAsD,OAAAwL,EAAAzM,EAAAtC,KAAxFqC,EAAI0M,EAAJ1M,KACRpB,EAAO+H,GAAG+sD,KAAK25I,aAAa7L,cAAgBxhM,EAAKgN,MAAM,wBAAA/M,EAAAzB,OAAA,GAAAsB,EAAA,MAC1DrB,MAAA,KAAAC,UAAA,CA3DD+/N,EAAcjqN,SAAS,EAAG,EAAG,EAAG,GAEhC5V,EAAO+H,GAAG83N,cAAgBA,EAE1B7/N,EAAO8/N,sBAAwB,WAC3B,IAAI3iN,EAEAA,EAD0C,KAA1Cnd,EAAO+H,GAAG+sD,KAAK25I,aAAaj6L,UACrB,IAAIvM,KAEJ,IAAIA,KAAKjI,EAAO+H,GAAG+sD,KAAK25I,aAAaj6L,WAGhDxU,EAAO+H,GAAG83N,cAAgB1iN,EAC1Bnd,EAAO+H,GAAG0yN,UAAYt9M,EACtBnd,EAAO+H,GAAG2yN,YAAcv9M,EACW,MAA/Bnd,EAAO+H,GAAG+sD,KAAK25I,eACfzuM,EAAO+H,GAAG+sD,KAAK25I,aAAe,CAAC,EAEvC,EAEAzuM,EAAO+/N,oBAAsB,WACzB//N,EAAO+H,GAAG63N,cAAgB,IAAI33N,KAAKjI,EAAO+H,GAAG+sD,KAAK25I,aAAa/5L,SAC/D1U,EAAO+H,GAAGi4N,UAAY,IAAI/3N,KAAKjI,EAAO+H,GAAG+sD,KAAK25I,aAAa/5L,SAC3D1U,EAAO+H,GAAGm3N,YAAc,IAAIj3N,KAAKjI,EAAO+H,GAAG+sD,KAAK25I,aAAaj6L,WAC1B,MAA/BxU,EAAO+H,GAAG+sD,KAAK25I,eACfzuM,EAAO+H,GAAG+sD,KAAK25I,aAAe,CAAC,EAEvC,EAEAzuM,EAAOgvD,UAAY,WACfhvD,EAAO+H,GAAG8+L,gCAAkC,KAE5CzwL,EAAUvU,KAAK,CACX0X,YAAa,uFACbC,WAAYgoN,GACZ7nN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,GAEf,CAsBJ,CAEA,SAASwhO,GAA2BxhO,EAAQI,EAAYF,EAASD,EAAOyT,EAAmBlT,GAEvF,IAAIuH,EAAK/H,EAAO+H,GAChB/H,EAAO0vB,aAAe,KACtB1vB,EAAOq7J,WAAa,wCACpBtzJ,EAAG8+L,gCAAkC,GAWrC7mM,EAAO2mM,mBAAqB,SAAU5+L,GAGlC,GAFA3H,EAAWwmM,uBAAyB,KAEO,KAAvC7+L,EAAG8+L,iCAAgF,MAAtC9+L,EAAG8+L,gCAAyC,CAEzF,IAGIp0L,EAAMuO,EAHNO,EAAMxZ,EAAG++L,4BAA4B1lM,OAIzC,IAAK4f,EAHQO,EAAItc,OAGC,EAAG+b,GAAK,EAAGA,IAEzBvO,EAAO8O,EAAIP,GACXjZ,EAAG++L,4BAA4B5sL,OAAOzH,EAG9C,MACQ1K,EAAGmiM,WACHniM,EAAG++L,4BAA4B7jL,MAK3C,EAEAlb,EAAGi/L,yBAA2BxmM,EAAc4uC,mBA/BjC,CACH,CAAExuB,MAAO,YAAa7U,MAAO,aAAc6a,YAAY,GACvD,CAAEhG,MAAO,WAAY7U,MAAO,YAAa6a,YAAY,GACrD,CAAEhG,MAAO,QAAS7U,MAAO,QAAS6a,YAAY,IA4BuC,KAC7F7e,EAAGi/L,yBAAyBn9I,UAAW,EACvC9hD,EAAGi/L,yBAAyBl/J,UAAW,EAEvC//B,EAAG++L,4BAA8B,IAAI93L,MAAM5N,KAAKmlB,WAAW,CACvD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,SAAUvT,GACZzP,EAAM,CACFmC,OAAQ,MACRC,IAAK,GAAFE,OAAKD,OAAM,2CACdgP,OAAQ,CAAEmwN,UAAW15N,EAAG8+L,mCACzB/jM,MAAK,SAAUb,GACdA,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,YAClDsO,EAAQ+W,QAAQxkB,EAASb,KAC7B,IAAG,SAAuBa,GACtByN,EAAQuiC,QACRzxC,EAAc2d,iBAAiBlc,EAASb,KAC5C,GACJ,KAIR2G,EAAG25N,cAAgB,WACf35N,EAAG45N,2BAA6B,IACpC,EAEA55N,EAAGg/L,8BAAgC,SAAUj7I,GACzC,IAAI7sC,EAAO6sC,EAAWx8C,OACtBtP,EAAO0vB,aAAezQ,EAAKqpB,SAASrpB,EAAKspB,SAC7C,EAEAvoC,EAAO0/H,WAAa,WACW,MAAvB1/H,EAAO0vB,eACyB,MAA5B3nB,EAAG+sD,KAAK8sK,mBACR75N,EAAG+sD,KAAK8sK,iBAAmB,CAAC,GAGhC3hO,EAAM,CACFmC,OAAQ,MACRC,IAAKC,OAAS,oCAAsCtC,EAAO0vB,aAAa1S,KAEzEla,MAAK,SAAUb,GAEd8F,EAAG+sD,KAAK25I,aAAexsM,EAASb,KAChC2G,EAAG8mM,4BAA8B5sM,EAASb,KAAKi1C,MAkBvDtuC,EAAG8mM,4BAA4B7rM,SAAQ,SAAUk8B,GAC7Cn3B,EAAGk8M,6BAA6BjhN,SAAQ,SAAU8pD,EAAeqrG,GACzDrrG,EAAc9vC,KAAOkiB,EAAKliB,IAC1BjV,EAAGk8M,6BAA6Bh9L,OAAOkxI,EAAG,EAElD,GACJ,IAtBQpwJ,EAAG+4N,0BACP,IAAG,SAAuB7+N,GACtBzB,EAAc2d,iBAAiBlc,EAASb,KAC5C,KAGJ2G,EAAG8+L,gCAAkC,KAErCnzL,EAAkBuC,OACtB,EAEAjW,EAAOuK,OAAS,WACZmJ,EAAkBuC,OACtB,CAWJ,CCnP6B,SAAA7X,GAAU4B,GAKnC,SAAS6hO,IACL7hO,EAAO+H,GAAGomN,oCAAsC,KAC5CnuN,EAAO+H,GAAGktM,gBACNj1M,EAAO+H,GAAGysM,qCAAqCvvM,OAAS,GAAKjF,EAAO+H,GAAG4sM,0BAA0B1vM,OAAS,KAC1GjF,EAAO+H,GAAGomN,qCAAsC,GAGpDnuN,EAAO+H,GAAGysM,qCAAqCvvM,OAAS,IACxDjF,EAAO+H,GAAGomN,qCAAsC,EAExD,CAZAnuN,EAAO+H,GAAG85N,uCAAyCA,EAcnD7hO,EAAO8hO,wBAA0B,SAAUrtB,GACvCz0M,EAAO+H,GAAGw9M,sCAAsCviN,SAAQ,SAAUC,EAAK+d,GAC/D/d,EAAI+Z,KAAOy3L,EAAez3L,KAC1Bhd,EAAO+H,GAAGw9M,sCAAsCt+L,OAAOjG,EAAG,GAC1DhhB,EAAO+H,GAAGysM,qCAAqCl1M,KAAK2D,GAE5D,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5BuI,GACJ,EAEA7hO,EAAO+hO,6BAA+B,SAAUttB,GAC5Cz0M,EAAO+H,GAAGysM,qCAAqCxxM,SAAQ,SAAUC,EAAK+d,GAC9D/d,EAAI+Z,KAAOy3L,EAAez3L,KAC1Bhd,EAAO+H,GAAGysM,qCAAqCvtL,OAAOjG,EAAG,GACrDyzL,EAAe5J,cACf7qM,EAAO+H,GAAGw9M,sCAAsCjmN,KAAK2D,GAGjE,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5BuI,GACJ,EAEA7hO,EAAOqvD,yBAA2B,SAAUZ,GACxCzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,CACJ,CC5C6B,SAAArwD,GAAU4B,GAInCA,EAAOq5N,cAAgB,SAAUn6L,GAC7Bl/B,EAAO+H,GAAGy9M,2BAA2BxiN,SAAQ,SAAUC,EAAK+d,GACpD/d,EAAIrB,OAASs9B,EAAKt9B,OAClB5B,EAAO+H,GAAGy9M,2BAA2Bv+L,OAAOjG,EAAG,GAC/ChhB,EAAO+H,GAAG4sM,0BAA0Br1M,KAAK2D,GAEjD,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5Bt5N,EAAO+H,GAAG85N,wCACd,EAEA7hO,EAAOu5N,mBAAqB,SAAUr6L,GAClCl/B,EAAO+H,GAAG4sM,0BAA0B3xM,SAAQ,SAAUC,EAAK+d,GACnD/d,EAAIrB,OAASs9B,EAAKt9B,OAClB5B,EAAO+H,GAAG4sM,0BAA0B1tL,OAAOjG,EAAG,GAC1Cke,EAAK2rK,cACL7qM,EAAO+H,GAAGy9M,2BAA2BlmN,KAAK2D,GAGtD,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5Bt5N,EAAO+H,GAAG85N,wCACd,CACJ,CC3B6B,SAAAzjO,GAAU4B,EAAQ2tN,EAAgCpnB,EAA0Bx9L,EAAmB6jH,EAAuB3sH,GAE/ID,EAAO+H,GAAGi6N,0BAA4BrU,EAA+BD,6BAGrE1tN,EAAO+H,GAAGk6N,mBAAqB,KAC/BjiO,EAAO+H,GAAGm6N,iBAAmB,KAC7BliO,EAAO+H,GAAGo6N,YAAc,IAAIl6N,KACvBjI,EAAO+H,GAAG+sD,KAAKs/I,aAChBp0M,EAAO+H,GAAG+sD,KAAKs/I,WAAa,CAAC,GAEjCp0M,EAAO+H,GAAG23H,WA+DV,SAAoBzgI,GAChBe,EAAO+H,GAAG+sD,KAAKs/I,WAAan1M,EACN,UAAlBA,EAAK4jM,UAGZ,WAEyB69B,EAAA7gO,MAAC,KAADC,UAAA,CAJlB6gO,EAER,EAnEA3gO,EAAO+H,GAAG+sD,KAAKs/I,WAAWp/J,YAAc,KAoDrC,WAEuC4rL,EAAA/gO,MAAC,KAADC,UAAA,CArD1C+gO,GACA,IAAIsB,EAAc,IAAIl6N,KA8BU,SAAAm6N,IAc/B,OAd+BA,GAAA7jO,OAAAC,UAAhC,SAAAC,EAAiCq8H,GAAQ,OAAAt8H,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEf0nM,EAAyB5B,QAAQ7pE,GAAS,QAC3C,IADRn8H,EAAAI,KACDqC,MACJpB,EAAOm7N,WAAWkH,WAAWzrJ,aAAa,cAAc,GACxD52E,EAAO+H,GAAGmzN,YAAa,IAGvBl7N,EAAOm7N,WAAWkH,WAAWzrJ,aAAa,cAAc,GACxD52E,EAAO+H,GAAGmzN,YAAa,GAC1Bv8N,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAEDoK,EAAiB,MAAMpK,EAAA6C,IAAM,yBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEpCoB,MAAA,KAAAC,UAAA,CAQyC,SAAA8gO,IAMzC,OANyCA,GAAAriO,OAAAC,UAA1C,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAE8G,OAD1GmB,EAAO+H,GAAGq5N,iBAA0F,MAAvEphO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,cAAhBA,EAAOpe,IAAoB,IAAEwM,MAC1FpO,EAAO+H,GAAGs5N,kBAA4F,MAAxErhO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,eAAhBA,EAAOpe,IAAqB,IAAEwM,MAAc/M,EAAAxC,KAAA,EACrF+tH,EAAsB4B,4BAA4B,MAAK,OAAxEvsH,EAAQZ,EAAAtC,KACZiB,EAAO+H,GAAGu5N,oBAAuG,MAAjFr/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,2BAAhBA,EAAOpe,IAAiC,IAAEwM,OAAiBpO,EAAO+H,GAAGq5N,iBAClIphO,EAAO+H,GAAGw5N,qBAAyG,MAAlFt/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,4BAAhBA,EAAOpe,IAAkC,IAAEwM,OAAiBpO,EAAO+H,GAAGs5N,kBAAkB,wBAAAhgO,EAAAzB,OAAA,GAAAsB,EAAA,MACzJrB,MAAA,KAAAC,UAAA,CASyB,SAAA4gO,IAGzB,OAHyBA,GAAAniO,OAAAC,UAA1B,SAAAwD,IAAA,IAAA8L,EAAA1M,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EAC2BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,wDAAsD,OAAAwL,EAAA5L,EAAAnD,KAAxFqC,EAAI0M,EAAJ1M,KACRpB,EAAO+H,GAAG+sD,KAAKs/I,WAAWxR,cAAgBxhM,EAAKgN,MAAM,wBAAAlM,EAAAtC,OAAA,GAAAoC,EAAA,MACxDnC,MAAA,KAAAC,UAAA,CArEDqiO,EAAYvsN,SAAS,EAAG,EAAG,EAAG,GAE9B5V,EAAO+H,GAAGo6N,YAAcA,EAExBniO,EAAOsiO,oBAAsB,WACzB,IAAInlN,EAEAA,EADuC,IAAvCnd,EAAO+H,GAAG+sD,KAAKs/I,WAAW5/L,UACnB,IAAIvM,KAEJ,IAAIA,KAAKjI,EAAO+H,GAAG+sD,KAAKs/I,WAAW5/L,WAG9CxU,EAAO+H,GAAGo6N,YAAchlN,EACxBnd,EAAO+H,GAAG0tJ,QAAUt4I,EACpBnd,EAAO+H,GAAG2yN,YAAcv9M,EACS,MAA7Bnd,EAAO+H,GAAG+sD,KAAKs/I,aACfp0M,EAAO+H,GAAG+sD,KAAKs/I,WAAa,CAAC,EAErC,EAEAp0M,EAAOuiO,kBAAoB,WACvBviO,EAAO+H,GAAGo6N,YAAc,IAAIl6N,KAAKjI,EAAO+H,GAAG+sD,KAAKs/I,WAAW1/L,SAC3D1U,EAAO+H,GAAG0tJ,QAAU,IAAIxtJ,KAAKjI,EAAO+H,GAAG+sD,KAAKs/I,WAAW1/L,SACvD1U,EAAO+H,GAAG2yN,YAAc,IAAIzyN,KAAKjI,EAAO+H,GAAG+sD,KAAKs/I,WAAW5/L,WAC1B,MAA7BxU,EAAO+H,GAAG+sD,KAAKs/I,aACfp0M,EAAO+H,GAAG+sD,KAAKs/I,WAAa,CAAC,EAErC,EAkBAp0M,EAAOqY,OAAO,2BAA2B,WACjCrY,EAAO+H,GAAG+sD,KAAKs/I,WAAWxyM,MAAiC,QAAzB5B,EAAO+H,GAAGmiM,YAnBlD,SAE8B78L,GAAA+0N,EAAAviO,MAAC,KAADC,UAAA,CAkBxBm7N,CAAkBj7N,EAAO+H,GAAG+sD,KAAKs/I,WAAWxyM,KAEpD,GAqBJ,CCrF6B,SAAAxD,GAAU4B,EAAQS,GAS3C,SAAAk9N,IAFC,OAEDA,GAAAp/N,OAAAC,UALA,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACyB4B,EAAyB67C,mCAAmC,OAAQ,0BAAyB,OAA9Gr6C,EAAQtD,EAAAI,KACZiB,EAAOg8N,SAAW/5N,EAASb,KAAKgN,MAAM,wBAAAzP,EAAAiB,OAAA,GAAAnB,EAAA,MACzCoB,MAAA,KAAAC,UAAA,EALwB,WAEY69N,EAAA99N,MAAC,KAADC,UAAA,CAFrC89N,GASA59N,EAAOq5N,cAAgB,SAAUn6L,GAC7Bl/B,EAAO+H,GAAG29M,gCAAgC1iN,SAAQ,SAAUC,EAAK+d,GACzD/d,EAAIgkF,SAAW/nD,EAAK+nD,SACpBjnF,EAAO+H,GAAG29M,gCAAgCz+L,OAAOjG,EAAG,GACpDhhB,EAAO+H,GAAG0hN,6BAA6BnqN,KAAK,CAAEmtD,KAAMxpD,IACpDjD,EAAO+H,GAAGwtM,+BAA+Bj2M,KAAK4/B,GAEtD,IACAl/B,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOu5N,mBAAqB,SAAUr6L,GAElCl/B,EAAO+H,GAAGwtM,+BAA+BvyM,SAAQ,SAAUC,EAAK+d,GACxD/d,EAAIgkF,SAAW/nD,EAAK+nD,SACpBjnF,EAAO+H,GAAGwtM,+BAA+BtuL,OAAOjG,EAAG,GAC/Cke,EAAK2rK,cACL7qM,EAAO+H,GAAG29M,gCAAgCpmN,KAAK4/B,GAG3D,IACAl/B,EAAO+H,GAAG0hN,6BAA6BzmN,SAAQ,SAAUC,EAAKk1J,GACtDl1J,EAAIgkF,SAAW/nD,EAAK+nD,QACpBjnF,EAAO+H,GAAG0hN,6BAA6BxiM,OAAOkxI,EAAG,EAEzD,IAEAn4J,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOqvD,yBAA2B,SAAUZ,GACxCzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,CAEJ,CC7C6B,SAAArwD,GAAU4B,EAAQ4sH,EAAuB3sH,GAClE,IAAIuiO,EAAkB,IAAIv6N,KA2CgB,SAAA24N,IAMzC,OANyCA,GAAAriO,OAAAC,UAA1C,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE8G,OAD1GmB,EAAO+H,GAAGq5N,iBAA0F,MAAvEphO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,cAAhBA,EAAOpe,IAAoB,IAAEwM,MAC1FpO,EAAO+H,GAAGs5N,kBAA4F,MAAxErhO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,eAAhBA,EAAOpe,IAAqB,IAAEwM,MAAczP,EAAAE,KAAA,EACrF+tH,EAAsB4B,4BAA4B,QAAO,OAA1EvsH,EAAQtD,EAAAI,KACZiB,EAAO+H,GAAGu5N,oBAAuG,MAAjFr/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,2BAAhBA,EAAOpe,IAAiC,IAAEwM,OAAiBpO,EAAO+H,GAAGq5N,iBAClIphO,EAAO+H,GAAGw5N,qBAAyG,MAAlFt/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,4BAAhBA,EAAOpe,IAAkC,IAAEwM,OAAiBpO,EAAO+H,GAAGs5N,kBAAkB,wBAAA1iO,EAAAiB,OAAA,GAAAnB,EAAA,MACzJoB,MAAA,KAAAC,UAAA,CASyB,SAAA4gO,IAGzB,OAHyBA,GAAAniO,OAAAC,UAA1B,SAAA0C,IAAA,IAAA4M,EAAA1M,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EAC2BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,0DAAwD,OAAAwL,EAAAzM,EAAAtC,KAA1FqC,EAAI0M,EAAJ1M,KACRpB,EAAO+H,GAAG+sD,KAAKsgJ,gBAAgBxS,cAAgBxhM,EAAKgN,MAAM,wBAAA/M,EAAAzB,OAAA,GAAAsB,EAAA,MAC7DrB,MAAA,KAAAC,UAAA,CA5DD0iO,EAAgB5sN,SAAS,EAAG,EAAG,EAAG,GAElC5V,EAAO+H,GAAG23H,WAgDV,SAAoBzgI,GAChBe,EAAO+H,GAAG+sD,KAAKsgJ,gBAAkBn2M,EACX,UAAlBA,EAAK4jM,UAGZ,WAEyB69B,EAAA7gO,MAAC,KAADC,UAAA,CAJlB6gO,EAER,EAfE,WAEwCC,EAAA/gO,MAAC,KAADC,UAAA,CAtC1C+gO,GAEK7gO,EAAO+H,GAAG+sD,KAAKsgJ,kBAChBp1M,EAAO+H,GAAG+sD,KAAKsgJ,gBAAkB,CAAC,GAEtCp1M,EAAO+H,GAAG+sD,KAAKsgJ,gBAAgBpgK,YAAc,OAE7Ch1C,EAAO+H,GAAGy6N,gBAAkBA,EACvBxiO,EAAO+H,GAAG+sD,KAAKsgJ,kBAChBp1M,EAAO+H,GAAG+sD,KAAKsgJ,gBAAkB,CAAC,GAItCp1M,EAAOyiO,wBAA0B,WAC7B,IAAItlN,EAEAA,EAD6C,KAA7Cnd,EAAO+H,GAAG+sD,KAAKsgJ,gBAAgB5gM,UACxB,IAAIvM,KAEJ,IAAIA,KAAKjI,EAAO+H,GAAG+sD,KAAKsgJ,gBAAgB5gM,WAGnDxU,EAAO+H,GAAGy6N,gBAAkBrlN,EAC5Bnd,EAAO+H,GAAG26N,YAAcvlN,EACxBnd,EAAO+H,GAAG2yN,YAAcv9M,EACc,MAAlCnd,EAAO+H,GAAG+sD,KAAKsgJ,kBACfp1M,EAAO+H,GAAG+sD,KAAKsgJ,gBAAkB,CAAC,EAE1C,EAEAp1M,EAAO2iO,sBAAwB,WAC3B3iO,EAAO+H,GAAGy6N,gBAAkB,IAAIv6N,KAAKjI,EAAO+H,GAAG+sD,KAAKsgJ,gBAAgB1gM,SACpE1U,EAAO+H,GAAG26N,YAAc,IAAIz6N,KAAKjI,EAAO+H,GAAG+sD,KAAKsgJ,gBAAgB1gM,SAChE1U,EAAO+H,GAAG2yN,YAAc,IAAIzyN,KAAKjI,EAAO+H,GAAG+sD,KAAKsgJ,gBAAgB5gM,WAC1B,MAAlCxU,EAAO+H,GAAG+sD,KAAKsgJ,kBACfp1M,EAAO+H,GAAG+sD,KAAKsgJ,gBAAkB,CAAC,EAE1C,CAqBJ,CC/D6B,SAAAh3M,GAAU4B,GA2BnC,SAAS4iO,EAA+Bv/L,GAC/BrjC,EAAO+H,GAAG86N,8BACX7iO,EAAO+H,GAAG86N,4BAA8B,IAE5C7iO,EAAO+H,GAAG86N,4BAA4Bx/L,GAAe,KACjDrjC,EAAO+H,GAAG4oM,6BAA6BttK,GAAap+B,OAAS,IAC7DjF,EAAO+H,GAAG86N,4BAA4Bx/L,IAAe,EAE7D,CAhCArjC,EAAO4iO,+BAAiCA,EAExC5iO,EAAO8iO,oBAAsB,SAAUC,EAAY1/L,GAC/CrjC,EAAO+H,GAAGonN,8BAA8B9rL,GAAargC,SAAQ,SAAUC,EAAK+d,GACpE/d,EAAI+Z,KAAO+lN,EAAW/lN,KACtBhd,EAAO+H,GAAGonN,8BAA8B9rL,GAAapc,OAAOjG,EAAG,GAC/DhhB,EAAO+H,GAAG4oM,6BAA6BttK,GAAa/jC,KAAK2D,GAEjE,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5BsJ,EAA+Bv/L,EACnC,EAEArjC,EAAOgjO,yBAA2B,SAAUD,EAAY1/L,GACpDrjC,EAAO+H,GAAG4oM,6BAA6BttK,GAAargC,SAAQ,SAAUC,EAAK+d,GACnE/d,EAAI+Z,KAAO+lN,EAAW/lN,KACtBhd,EAAO+H,GAAG4oM,6BAA6BttK,GAAapc,OAAOjG,EAAG,GAC9DhhB,EAAO+H,GAAGonN,8BAA8B9rL,GAAa/jC,KAAK2D,GAElE,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5BsJ,EAA+Bv/L,EACnC,CAWJ,CCpC6B,SAAAjlC,GAAU4B,EAAQS,GAIN,SAAAk9N,IAGpC,OAHoCA,GAAAp/N,OAAAC,UAArC,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACyB4B,EAAyB67C,mCAAmC,MAAO,0BAAyB,OAA7Gr6C,EAAQtD,EAAAI,KACZiB,EAAOg8N,SAAW/5N,EAASb,KAAKgN,MAAM,wBAAAzP,EAAAiB,OAAA,GAAAnB,EAAA,MACzCoB,MAAA,KAAAC,UAAA,EALwB,WAEY69N,EAAA99N,MAAC,KAADC,UAAA,CAFrC89N,GAOA59N,EAAOijO,oBAAsB,SAAU/jM,EAAMmE,GACzCrjC,EAAO+H,GAAGk9M,8BAA8B5hL,GAAargC,SAAQ,SAAUC,EAAK+d,GACpE/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAGk9M,8BAA8B5hL,GAAapc,OAAOjG,EAAG,GAC/DhhB,EAAO+H,GAAG0oM,6BAA6BptK,GAAa/jC,KAAK2D,GAEjE,IACAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOkjO,yBAA2B,SAAUhkM,EAAMmE,GAC9CrjC,EAAO+H,GAAG0oM,6BAA6BptK,GAAargC,SAAQ,SAAUC,EAAK+d,GACnE/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAG0oM,6BAA6BptK,GAAapc,OAAOjG,EAAG,GAC1Dke,EAAK2rK,cACL7qM,EAAO+H,GAAGk9M,8BAA8B5hL,GAAa/jC,KAAK2D,GAE1Di8B,EAAKowL,oBAELtvN,EAAO+H,GAAGonN,8BAA8B9rL,GAAe,KACvDrjC,EAAO+H,GAAG4oM,6BAA6BttK,GAAe,MAGlE,IACArjC,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOqvD,yBAA2B,SAAUZ,GACxCzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,CACJ,CCvC6B,SAAArwD,GAAU4B,EAAQyuN,EAA6B0U,EAA6Bv2G,GACrG5sH,EAAO+H,GAAG23H,WAuDV,SAAoBzgI,EAAM03B,GACtB32B,EAAO+H,GAAG+sD,KAAK+6I,QAAQl5K,GAAW13B,CACtC,EAtDIe,EAAO+H,GAAGq7N,sBAAwB3U,EAA4BkB,kBAK7D3vN,EAAO+H,GAAG+sD,KAAK+6I,UAChB7vM,EAAO+H,GAAG+sD,KAAK+6I,QAAU,CAAC,GAI9B7vM,EAAO+H,GAAGs7N,sBAAwB,KAClCrjO,EAAO+H,GAAGu7N,oBAAsB,KAChCtjO,EAAO+H,GAAGw7N,eAAiB,IAAIt7N,KAC/B,IAAIu7N,EAAiB,IAAIv7N,KA+BiB,SAAA24N,IAMzC,OANyCA,GAAAriO,OAAAC,UAA1C,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE8G,OAD1GmB,EAAO+H,GAAGq5N,iBAA0F,MAAvEphO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,cAAhBA,EAAOpe,IAAoB,IAAEwM,MAC1FpO,EAAO+H,GAAGs5N,kBAA4F,MAAxErhO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,eAAhBA,EAAOpe,IAAqB,IAAEwM,MAAczP,EAAAE,KAAA,EACrF+tH,EAAsB4B,4BAA4B,OAAM,OAAzEvsH,EAAQtD,EAAAI,KACZiB,EAAO+H,GAAGu5N,oBAAuG,MAAjFr/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,2BAAhBA,EAAOpe,IAAiC,IAAEwM,OAAiBpO,EAAO+H,GAAGq5N,kBAA6C,QAAzBphO,EAAO+H,GAAGmiM,WAChKlqM,EAAO+H,GAAGw5N,qBAAyG,MAAlFt/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,4BAAhBA,EAAOpe,IAAkC,IAAEwM,OAAiBpO,EAAO+H,GAAGs5N,mBAA8C,QAAzBrhO,EAAO+H,GAAGmiM,WAAqB,wBAAAvrM,EAAAiB,OAAA,GAAAnB,EAAA,MAC3LoB,MAAA,KAAAC,UAAA,CApCD0jO,EAAe5tN,SAAS,EAAG,EAAG,EAAG,GAEjC5V,EAAO+H,GAAGy7N,eAAiBA,EA0BzB,WAEwC5C,EAAA/gO,MAAC,KAADC,UAAA,CA3B1C+gO,GAEA7gO,EAAOyjO,uBAAyB,WAC5B,IAAItmN,EAEAA,EADqC,KAArCnd,EAAO+H,GAAG+sD,KAAK+6I,QAAQr7L,UAChB,IAAIvM,KAEJ,IAAIA,KAAKjI,EAAO+H,GAAG+sD,KAAK+6I,QAAQr7L,WAG3CxU,EAAO+H,GAAGy7N,eAAiBrmN,EAC3Bnd,EAAO+H,GAAG0yN,UAAYt9M,EACtBnd,EAAO+H,GAAG2yN,YAAcv9M,EACM,MAA1Bnd,EAAO+H,GAAG+sD,KAAK+6I,UACf7vM,EAAO+H,GAAG+sD,KAAK+6I,QAAU,CAAC,EAElC,EAEA7vM,EAAO0jO,qBAAuB,WAC1B1jO,EAAO+H,GAAGw7N,eAAiB,IAAIt7N,KAAKjI,EAAO+H,GAAG+sD,KAAK+6I,QAAQn7L,SAC3D1U,EAAO+H,GAAG6yN,UAAY,IAAI3yN,KAAKjI,EAAO+H,GAAG+sD,KAAK+6I,QAAQn7L,SACtD1U,EAAO+H,GAAG8yN,YAAc,IAAI5yN,KAAKjI,EAAO+H,GAAG+sD,KAAK+6I,QAAQr7L,WAC1B,MAA1BxU,EAAO+H,GAAG+sD,KAAK+6I,UACf7vM,EAAO+H,GAAG+sD,KAAK+6I,QAAU,CAAC,EAElC,CAaJ,CC3D6B,SAAAzxM,GAAU4B,GAEnCA,EAAO83L,+BAAgC,EAEP,oBAA5B93L,EAAO+H,GAAGmoM,gBACVlwM,EAAO23L,sBAAwBhmL,OAAOlS,KAAKC,MAAMP,aAAaC,QAAQ,wBAAwB+4L,4BAC9Fn4L,EAAOy3L,WAAa,IAAIxvL,KACxBjI,EAAOy3L,WAAWC,QAAQ13L,EAAOy3L,WAAWnrJ,UAA4C,GAA/BtsC,EAAO23L,sBAA6B,GAAK,MAGtG33L,EAAO2jO,oBAAsB,SAAUr7L,GACnCA,EAAS9zB,UAAY,KACrB8zB,EAAS5zB,QAAU,KAEnB1U,EAAO+H,GAAG67N,eAAiB,GAC3B5jO,EAAO+H,GAAG87N,aAAe,GAEzB7jO,EAAO8jO,0BAA0B,KAAM,KAAMx7L,EACjD,EAEAtoC,EAAO+H,GAAG67N,eAAiB,GAC3B5jO,EAAO+H,GAAGg8N,eACV/jO,EAAO+H,GAAG87N,aAAe,GACzB7jO,EAAO+H,GAAGi8N,aACVhkO,EAAO+H,GAAGmqI,QAAU,IAAIjqI,KACxBjI,EAAO+H,GAAG0tJ,QAAU,IAAIxtJ,KAAK,IAAM,EAAG,EAAG,EAAG,EAAG,GAC/CjI,EAAO+H,GAAG2yN,YAAczyN,OAExBjI,EAAO+H,GAAG6yN,UAAY,IAAI3yN,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjDjI,EAAO+H,GAAG0yN,UAAY,IAAIxyN,KAE1BjI,EAAOs3L,gBAAkB,SAAUniJ,GAC/BA,EAAO2zK,QAAU3zK,EAAO3gC,UACQ,oBAA5BxU,EAAO+H,GAAGmoM,gBACVlwM,EAAOy3L,WAAa,IAAIxvL,KAAKktC,EAAO3gC,WACpCxU,EAAOy3L,WAAWC,QAAQ13L,EAAOy3L,WAAWnrJ,UAA4C,GAA/BtsC,EAAO23L,sBAA6B,GAAK,MAEtG33L,EAAO43L,qBAAuD,IAAhC53L,EAAO43L,qBAA6B,EAAI,CAC1E,EAEA53L,EAAO63L,cAAgB,SAAU1iJ,GAC7B,IAAIh4B,EAEAnd,EAAOod,OAAO+3B,EAAOzgC,SACrByI,EAAO,IAAIlV,KAAKktC,EAAOzgC,UAEvByI,EAAO,IAAIlV,KACXktC,EAAOzgC,QAAU,MAGrB1U,EAAO+H,GAAG2yN,YAAcv9M,EAEQ,oBAA5Bnd,EAAO+H,GAAGmoM,gBACN/6J,EAAOzgC,QAAU1U,EAAOy3L,WACxBtiJ,EAAO2iJ,+BAAgC,EAEvC3iJ,EAAO2iJ,+BAAgC,GAG/C93L,EAAO43L,qBAAuD,IAAhC53L,EAAO43L,qBAA6B,EAAI,CAC1E,EAEA53L,EAAOikO,wBAA0B,SAAUvb,EAAe/8K,GACtD+8K,EAAc1lN,SAAQ,SAAAmyC,GAAM,OAAIA,EAAO3gC,UAAYm3B,CAAS,GAChE,EAEA3rC,EAAOkkO,sBAAwB,SAAUxb,EAAe78K,GACpB,oBAA5B7rC,EAAO+H,GAAGmoM,gBACNrkK,EAAU7rC,EAAOy3L,WACjBz3L,EAAO83L,+BAAgC,EAEvC93L,EAAO83L,+BAAgC,GAG/C4wB,EAAc1lN,SAAQ,SAAAmyC,GAAM,OAAIA,EAAOzgC,QAAUm3B,CAAO,GAC5D,EAEA7rC,EAAOod,OAAS,SAAUyxD,GACtB,OAAOA,aAAa5mE,IACxB,EAEAjI,EAAOmkO,SAAW,SAAU/9N,GACxBA,EAAMoJ,iBAEFxP,EAAO+H,GAAGi8N,aAAehkO,EAAO+H,GAAGg8N,iBACnC/jO,EAAOokO,kBAAoB,yCAEnC,EAEApkO,EAAOqkO,iBAAmB,SAAUlvL,GAChC,IAAIxJ,EA2CJ,OAzCIwJ,GAAmC,QAAzBn1C,EAAO+H,GAAGmiM,aACK,OAArB/0J,EAAOjL,YACPyB,EAAY3rC,EAAO+H,GAAG+sD,KAAK25I,aAAaj6L,WAEnB,OAArB2gC,EAAOjL,YACPyB,EAAY3rC,EAAO+H,GAAG+sD,KAAKs/I,WAAW5/L,WAEjB,SAArB2gC,EAAOjL,YACPyB,EAAY3rC,EAAO+H,GAAG+sD,KAAKsgJ,gBAAgB5gM,WAEtB,QAArB2gC,EAAOjL,YACPyB,EAAY3rC,EAAO+H,GAAG+sD,KAAKu0I,QAAQ70L,WAEd,OAArB2gC,EAAOjL,YACPyB,EAAY3rC,EAAO+H,GAAG+sD,KAAKy2I,WAAW/2L,WAEjB,OAArB2gC,EAAOjL,YACPyB,EAAY3rC,EAAO+H,GAAG+sD,KAAKqkJ,OAAO3kM,WAEX,QAAvB2gC,EAAOH,aACkBh1C,EAAO+H,GAAG2sC,sBAAsBhxC,QAAO,SAAAixC,GAAW,MAAgC,QAA5BA,EAAYK,WAAqB,IAC/FhyC,SAAQ,SAAAokN,GAAG,OAAIz7K,EAAY3rC,EAAO+H,GAAG+sD,KAAK+6I,QAAQuX,EAAIvyK,aAAargC,SAAS,IAExE,OAArB2gC,EAAOjL,YACPyB,EAAY3rC,EAAO+H,GAAG+sD,KAAKmlJ,eAAezlM,YAI7Cm3B,IACDA,EAAY,IAAI1jC,MAGhBktC,IACI,IAAIltC,KAAKktC,EAAO3gC,WAAa,IAAIvM,KAAK0jC,GACtCwJ,EAAO2zK,QAAU3zK,EAAO3gC,UAGxB2gC,EAAO2zK,QAAUn9K,GAIlBA,CACX,EAEA3rC,EAAOskO,eAAiB,SAAUnvL,GAK9B,IAAItJ,EAqCJ,OAxCI7rC,EAAO83L,gCACP93L,EAAO83L,+BAAgC,GAIX,oBAA5B93L,EAAO+H,GAAGmoM,eAAwC/6J,EAAOzgC,UACzDm3B,EAAU7rC,EAAOy3L,WACjBtiJ,EAAOzgC,QAAUm3B,GAGQ,QAAzB7rC,EAAO+H,GAAGmiM,aACe,OAArB/0J,EAAOjL,YACP2B,EAAU7rC,EAAO+H,GAAG+sD,KAAK25I,aAAa/5L,SAEjB,OAArBygC,EAAOjL,YACP2B,EAAU7rC,EAAO+H,GAAG+sD,KAAKs/I,WAAW1/L,SAEf,SAArBygC,EAAOjL,YACP2B,EAAU7rC,EAAO+H,GAAG+sD,KAAKsgJ,gBAAgB1gM,SAEpB,QAArBygC,EAAOjL,YACP2B,EAAU7rC,EAAO+H,GAAG+sD,KAAKu0I,QAAQ30L,SAEZ,OAArBygC,EAAOjL,YACP2B,EAAU7rC,EAAO+H,GAAG+sD,KAAKy2I,WAAW72L,SAEb,QAAvBygC,EAAOH,aACPh1C,EAAO+H,GAAG2sC,sBAAsB1xC,SAAQ,SAAAokN,GAAG,OAAIv7K,EAAU7rC,EAAO+H,GAAG+sD,KAAK+6I,QAAQuX,EAAIvyK,aAAangC,OAAO,IAEnF,OAArBygC,EAAOjL,YACP2B,EAAU7rC,EAAO+H,GAAG+sD,KAAKmlJ,eAAevlM,UAI3Cm3B,IACDA,EAAU,IAAI5jC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,IAGzCktC,EAAOovL,QAAU14L,EAEVA,CACX,EAEA7rC,EAAOwkO,qBAAuB,SAAU9b,GAIpC,IAAI78K,EAHA7rC,EAAO83L,gCACP93L,EAAO83L,+BAAgC,GAIX,oBAA5B93L,EAAO+H,GAAGmoM,gBAAwClwM,EAAOykO,gBAAkBzkO,EAAO+H,GAAG28N,gBACrF74L,EAAU7rC,EAAOy3L,WACjBz3L,EAAOykO,eAAiB54L,EACxB68K,EAAc1lN,SAAQ,SAAAmyC,GAAM,OAAIA,EAAOzgC,QAAUm3B,CAAO,IAEhE,EAEA7rC,EAAO2kO,uBAAyB,SAAUjc,GACtCA,EAAc1lN,SAAQ,SAAAmyC,GAAM,OAAIA,EAAO3gC,UAAY,IAAI,IACvDk0M,EAAc1lN,SAAQ,SAAAmyC,GAAM,OAAIA,EAAOzgC,QAAU,IAAI,IACrD1U,EAAO4kO,iBAAmB,KAC1B5kO,EAAOykO,eAAiB,IAC5B,CACJ,CCtM6B,SAAArmO,GAAU4B,EAAQ0T,EAAmBxT,EAASC,EAAUK,EAAeP,EAAOgD,EAAKgc,EAAMgjE,GA+BlH,SAAS4yG,IAEL,OADA70L,EAAO4jF,iBAAkB,EAClB3jF,EAAM4K,IAAIvI,OAAS,oBAAoBQ,MAAK,SAAUb,GACzDjC,EAAO6jF,eAAiB5hF,EAASb,KACjCpB,EAAO4jF,iBAAkB,CAC7B,GACJ,CAEA,SAASkxG,IACL90L,EAAOgjF,iBAAmB,IAAIc,MAC9B9jF,EAAO+jF,iBAAmB,IAAID,KAElC,CAEA,SAASyB,IACLtD,EAAkBsD,cAAcziF,MAAK,SAAUb,GAC3CA,EAASb,KAAOlB,EAAQ,SAARA,CAAkB+B,EAASb,KAAM,CAAEokF,sBAAsB,IACzEvjF,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClDpB,EAAOylF,SAAWxjF,EAASb,IAC/B,GACJ,CA/CApB,EAAOmiF,mBAAqBniF,EAAOkiF,eAAeE,aAClDpiF,EAAOqiF,eAAiBriF,EAAOkiF,eAAeI,SAC9CtiF,EAAOuiF,wBAA0BviF,EAAOkiF,eAAeM,gBA+FnDviF,EAAM4K,IAAIvI,OAAS,iBAAmBtC,EAAOkiF,eAAe15C,QAAQ1lC,MAAK,SAAUb,GAC/EjC,EAAOskF,YAAcriF,EAASb,IAClC,IA7EAnB,EAAM4K,IAAIvI,OAAS,kDAAkDQ,MAAK,SAAUb,GAChFjC,EAAO2jF,oBAAsB1hF,EAASb,IAC1C,IA+EAnB,EAAM4K,IAAIvI,OAAS,uBAAuBQ,MAAK,SAAUb,GACrDA,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClDpB,EAAOslF,YAAcrjF,EAASb,IAClC,IAIApB,EAAOojF,cAAgB,CACnBuB,0BAA2B,GAC3BtB,WAAY,IAzBhBrjF,EAAOqkF,4BAA8B,GAErCplE,EAAKjc,SAAQ,SAAAyP,GACLA,EAAK+1B,SAAWvlC,EAAIulC,QAAU/1B,EAAKwtD,cAAgBh9D,EAAIg9D,aACvDjgE,EAAOqkF,4BAA4B/kF,KAAKmT,EAEhD,IAjF8B,SAA1BxP,EAAI8xL,kBAsERF,IAAoB/xL,MAAK,SAAAu0C,GAAC,OAAIy9I,GAAe,IAAEhyL,MAAK,SAAAu0C,GAAC,OAAIkuC,GAAa,IAAEziF,MAAK,SAAAu0C,GA/B7Er3C,EAAO6kO,gBAAgBzgN,MAAK,SAAA0vF,GAEpB7wG,EAAIulC,SAAWsrE,EAAWtrE,QAAUvlC,EAAI6lC,kBAAoBgrE,EAAWzxD,kBAEnEyxD,EAAW9vB,UAAY8vB,EAAW9vB,SAAS/+E,OAAS,IACpDjF,EAAOgjF,iBAAmB,IAAIc,MAC9BgwB,EAAW9vB,SAAShhF,SAAQ,SAAAixF,GACxBj0F,EAAO6jF,eAAe7gF,SAAQ,SAAA8hO,GACtBA,EAAOplM,aAAeu0D,GACtBj0F,EAAOgjF,iBAAiB1jF,KAAKwlO,EAErC,GACJ,IACA9kO,EAAO4jF,iBAAkB,GAGzBkwB,EAAWpL,cAA4C,OAA5BoL,EAAWpL,eACtC1oG,EAAOkiF,eAAeE,aAAe0xB,EAAWpL,cAEpD1oG,EAAOkiF,eAAeI,SAAWwxB,EAAW7nB,SAC5CjsF,EAAOkiF,eAAeM,gBAAkBsxB,EAAWtxB,gBAG3D,GAQgH,IAJhHqyG,IAAoB/xL,MAAK,SAAAu0C,GAAC,OAAIy9I,GAAe,IAAEhyL,MAAK,SAAAu0C,GAAC,OAAIkuC,GAAa,IAsC1EvlF,EAAOo1L,sBAAwB,SAAUhvL,GAGrC,IAAIivL,EAAiB,CACjB,oBAAuBr1L,EAAOkiF,eAAe+yG,oBAC7C,gBAAmBj1L,EAAOkiF,eAAep5C,gBACzC,OAAU9oC,EAAOkiF,eAAe15C,OAChC,aAAgBxoC,EAAOkiF,eAAeE,aACtC,gBAAmBpiF,EAAOkiF,eAAeM,gBACzC,SAAYxiF,EAAOkiF,eAAeI,SAClC,SAAYtiF,EAAOgjF,iBAAiB7hD,KAAI,SAAA0tC,GAAC,OAAIA,EAAEnvC,UAAU,KAGzD1/B,EAAOkiF,eAAeE,aACtBizG,EAAerxG,SAAW,KACnBhkF,EAAOgjF,mBACdqyG,EAAe3sF,aAAe,MAGlC1oG,EAAOkiF,eAAe5xD,iBAAmB,IAAIzmB,EAE7C7J,EAAO6kO,gBAAgB7hO,SAAQ,SAAA8wG,GAEG,SAA1B7wG,EAAI8xL,mBAAgCjhF,EAAWtrE,SAAW6sJ,EAAe7sJ,QAAUsrE,EAAWzxD,kBAAoBgzI,EAAehzI,iBACjIriD,EAAO6kO,gBAAgB3qN,OAAO45F,EAEtC,IAEA70F,EAAKjc,SAAQ,SAAAyP,GAELA,EAAK+1B,SAAW6sJ,EAAe7sJ,QAAU/1B,EAAKq2B,kBAAoBusJ,EAAehzI,kBACjF5vC,EAAKsiL,kBAAoB,OAEjC,IAGA/0L,EAAO6kO,gBAAgBvlO,KAAK+1L,GAG5Bl1L,GAAS,WACLH,EAAOke,WAAY,EACnB1d,EAAc8J,qBAAqBtK,EAAOkiF,eAAe5xD,kBAAkBxtB,MAAK,SAAUoQ,GACtFlT,EAAOkiF,eAAe5xD,iBAAiB1nB,cAAe,EACtD5I,EAAOkjF,gCACPxvE,EAAkBuC,QAClBjW,EAAO0jB,QAAQqhN,wBAAwB9hN,MAC3C,GACJ,GAAG,IACP,EAKAjjB,EAAOkjF,8BAAgC,WACN,OAAzBljF,EAAOojF,eAAuE,OAA7CpjF,EAAOojF,cAAc+B,qBAClDnlF,EAAOojF,cAAc+B,qBAAuBnlF,EAAOojF,cAAc+B,oBAAoBlgF,OAAS,GAKlGjF,EAAOojF,cAAc+B,oBAAoBniF,SAAQ,SAAAkqD,GAE7C,IAAIsoI,EAA2B,CAC3B,oBAAuBx1L,EAAOkiF,eAAe+yG,oBAC7C,gBAAmB/nI,EAAQpkB,gBAC3B,OAAU9oC,EAAOkiF,eAAe15C,OAChC,aAAgBxoC,EAAOkiF,eAAeE,aACtC,gBAAmBpiF,EAAOkiF,eAAeM,gBACzC,SAAYxiF,EAAOkiF,eAAeI,SAClC,SAAYtiF,EAAOgjF,iBAAiB7hD,KAAI,SAAA0tC,GAAC,OAAIA,EAAEnvC,UAAU,KAGzD1/B,EAAOkiF,eAAeE,aACtBozG,EAAyBxxG,SAAW,KAC7BhkF,EAAOgjF,mBACdwyG,EAAyB9sF,aAAe,MAG5CzpF,EAAKjc,SAAQ,SAAAyP,GACTzS,EAAO6kO,gBAAgB7hO,SAAQ,SAAA8wG,GAEI,SAA3BrhG,EAAKsiL,mBAAgCjhF,EAAWtrE,SAAWgtJ,EAAyBhtJ,QAAUsrE,EAAWzxD,kBAAoBmzI,EAAyBnzI,iBACtJriD,EAAO6kO,gBAAgB3qN,OAAO45F,EAEtC,IAEIrhG,EAAK+1B,SAAWgtJ,EAAyBhtJ,QAAU/1B,EAAKq2B,kBAAoB0sJ,EAAyBnzI,kBACrG5vC,EAAKsiL,kBAAoB,OAEjC,IAEA/0L,EAAO6kO,gBAAgBvlO,KAAKk2L,EAChC,GAER,EAEAx1L,EAAOuK,OAAS,WACZmJ,EAAkBuC,OACtB,CAEJ,C1B9N+B7X,GAAAgxB,QAAA,2B,8tBaA2DhxB,GAAAgxB,QAAA,sD,qIGAAhxB,GAAAgxB,QAAA,0F,geUAnBhxB,GAAAgxB,QAAA,6G,eCG1C,SAAAhxB,GAAU4B,EAAQQ,EAAeJ,EAAYgW,GAGtE,IAAIrO,EAAK/H,EAAO+H,GAEhBA,EAAGqtL,sBAkJH,SAA+B9sJ,GAC3BtoC,EAAOkiF,eAAiBxgF,QAAQmE,KAAKyiC,GAfzC,SAAoCA,EAAU4xJ,GAC1C9jL,EAAUvU,KAAK,CACX0X,YAAa,oGACbC,WAAYwrN,GACZrrN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACL3W,IAAK,WAAF,OAAQqlC,CAAQ,EACnBrpB,KAAM,WAAF,OAAQi7K,CAAQ,IAGhC,CAIIG,CAA2B/xJ,EAAUtoC,EAAOilO,oBAChD,EAnJAjlO,EAAOklO,aAAc,EACrBllO,EAAOmlO,qBAAsB,EAC7BnlO,EAAOolO,4BAA6B,EAGpCplO,EAAOiE,IAAI,iCAAiC,SAAUmC,EAAOC,GAC7C,MAARA,GAAgC,kBAAhBA,EAAK8iN,SACrBnpN,EAAOklO,aAAc,GAEzBllO,EAAOmlO,qBAAsB,EAC7BnlO,EAAOolO,4BAA6B,CACxC,IAEAplO,EAAOqlO,cAAgB,WAEnB,IAAIC,GAAQ,EAmBZ,OAjBuC,MAAnCtlO,EAAO+H,GAAG2sC,uBAEV10C,EAAO+H,GAAG2sC,sBAAsB1xC,SAAQ,SAAUokN,GAC1CA,EAAIppL,UAQW,MAPD59B,EAAWqO,yBAAyB3D,MAAK,SAAU6rB,GAC7D,MAAiB,cAAbywL,EAAIxlN,KACG+0B,EAAQ/0B,OAASwlN,EAAIvyK,YAErBle,EAAQ/0B,OAASwlN,EAAIxlN,IAEpC,MAEI0jO,GAAQ,EAGpB,IAEGA,CACX,EAEAtlO,EAAOulO,aAAe,SAAUC,GAE5BxlO,EAAOklO,aAAc,EACrBllO,EAAOmlO,qBAAsB,EAC7BnlO,EAAOolO,4BAA6B,EAEtB,mBAAVI,IACAxlO,EAAOmlO,qBAAsB,GAEnB,0BAAVK,IACAxlO,EAAOolO,4BAA6B,GAE1B,WAAVI,IACAxlO,EAAOklO,aAAc,EAE7B,EAEA,IAAIO,EAAyB,CACzB,CAAE7kN,MAAO,aAAc5Q,MAAO,IAAKf,SAAU,sKAC7C,CAAE2R,MAAO,oBAAqB7U,MAAO,qBAAsBkD,SAAU,sFAAuFe,MAAO,IAAK4W,WAAYyf,IACpL,CAAEzlB,MAAO,cAAe7U,MAAO,UAAWiE,MAAO,IAAK4W,WAAYyf,IAClE,CAAEzlB,MAAO,SAAU7U,MAAO,UAAWiE,MAAO,IAAK4W,WAAYyf,IAC7D,CAAEzlB,MAAO,WAAY7U,MAAO,YAAaiE,MAAO,IAAK4W,WAAYyf,IACjE,CAAEzlB,MAAO,gBAAiB7U,MAAO,iBAAkBiE,MAAO,IAAK4W,WAAYyf,IAC3E,CAAEzlB,MAAO,YAAa7U,MAAO,aAAciE,MAAO,IAAK4W,WAAYyf,IACnE,CAAEzlB,MAAO,eAAgB7U,MAAO,YAAaiE,MAAO,IAAK4W,WAAYyf,IACrE,CAAEzlB,MAAO,SAAU7U,MAAO,SAAUiE,MAAO,IAAK4W,WAAYyf,IAC5D,CAAEzlB,MAAO,kBAAmB7U,MAAO,mBAAoBiE,MAAO,IAAK4W,WAAYyf,IAC/E,CAAEzlB,MAAO,aAAc7U,MAAO,aAAciE,MAAO,IAAK4W,WAAYyf,IACpE,CAAEzlB,MAAO,qBAAsB7U,MAAO,sBAAuBiE,MAAO,IAAK4W,WAAYyf,IACrF,CAAEzlB,MAAO,mBAAoB7U,MAAO,oBAAqBiE,MAAO,IAAK4W,WAAYyf,IACjF,CAAEzlB,MAAO,kBAAmB7U,MAAO,mBAAoBiE,MAAO,IAAK4W,WAAYyf,IAC/E,CAAEzlB,MAAO,YAAa7U,MAAO,YAAaiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,QAAQ,GACpG,CAAEE,MAAO,iBAAkB7U,MAAO,mBAAoBiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,QAAQ,GAChH,CAAEE,MAAO,uBAAwB7U,MAAO,yBAA0BiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,QAAQ,GAC5H,CAAEE,MAAO,mBAAoB7U,MAAO,qBAAsBiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,QAAQ,GACpH,CAAEE,MAAO,eAAgB7U,MAAO,iBAAkBiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,QAAQ,IAG5Gu4K,EAA+B,CAC/B,CAAEr4K,MAAO,cAAe7U,MAAO,UAAWiE,MAAO,IAAK4W,WAAYyf,IAClE,CAAEzlB,MAAO,cAAe7U,MAAO,UAAWiE,MAAO,IAAK4W,WAAYyf,IAClE,CAAEzlB,MAAO,wBAAyB7U,MAAO,kBAAmBiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,OAAQ1gB,EAAO64L,gCAC7H,CAAEj4K,MAAO,yBAA0B7U,MAAO,uBAAwBiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,OAAQ1gB,EAAO64L,gCACnI,CAAEj4K,MAAO,mBAAoB5Q,MAAO,IAAK4lL,oBAAqB,aAAc3mL,SAAU,6LAAwMyR,OAAQ1gB,EAAO64L,gCAC7S,CAAEj4K,MAAO,kBAAmB7U,MAAO,eAAgBiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,OAAQ1gB,EAAO64L,gCACpH,CAAEj4K,MAAO,iBAAkB7U,MAAO,cAAeiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,OAAQ1gB,EAAO64L,gCAClH,CAAEj4K,MAAO,2BAA4B7U,MAAO,QAASiE,MAAO,IAAK4W,WAAYyf,GAA0BuvJ,oBAAqB,cAC5H,CAAEh1K,MAAO,kBAAmB5Q,MAAO,IAAKf,SAAU,2LAGtDjP,EAAO+kO,wBAA0B,IAAI/1N,MAAM5N,KAAKmlB,WAAW,CACvD+iC,SAAUliB,GACVhmC,KAAMpB,EAAOilO,oBACb1hN,KAAM,CAAE3C,MAAO,aAAc61B,IAAK,OAClC4S,OAAQ,CACJoM,MAAO,CACH/B,OAAQ,CACJlrB,OAAQ,CAAE9gC,KAAM,eAMhC1H,EAAO0lO,qBAAuBllO,EAAc4uC,mBAAmBq2L,EAAwB,KACvFzlO,EAAO0lO,qBAAqB77K,UAAW,EAClC7pD,EAAO64L,iCACR74L,EAAO0lO,qBAAqB5vC,eAAiB9mL,MAAMC,SAAS0mB,GAAE,kBAAkB2d,SAEpFtzC,EAAO0lO,qBAAqB3vC,YAAa,EAEzC/1L,EAAO2lO,8BAAgC,IAAI32N,MAAM5N,KAAKmlB,WAAW,CAC7D+iC,SAAUliB,GACVhmC,KAAMpB,EAAO+8L,0BACb/yJ,MAAO,CAAC,CAAEppB,MAAO,2BAA4B61B,IAAK,OAAS,CAAE71B,MAAO,mBAAoB61B,IAAK,UAGjGz2C,EAAO4lO,2BAA6BplO,EAAc4uC,mBAAmB6pJ,EAA8B,KACnGj5L,EAAO4lO,2BAA2B/7K,UAAW,EAE7C9hD,EAAGwyL,cAAgB,WAEfnkL,EAAUvU,KAAK,CACX0X,YAAa,gDACbC,WAAYqsN,GACZlsN,SAAU,SACVyG,MAAOpgB,EACP4Z,QAAS,CACL87K,kBAAmB,WAAF,OAAQ11L,EAAO64L,8BAA8B,IAG1E,CAqBJ,CAEA,SAASgtC,GAA2B7lO,EAAQ0T,EAAmBlT,EAAek1L,GAE1E,IAAI3tL,EAAK/H,EAAO+H,GAEZ4tL,EAAe,CACf,CAAE/0K,MAAO,cAAe7U,MAAO,UAAWiE,MAAO,IAAK4W,WAAYyf,IAClE,CAAEzlB,MAAO,SAAU7U,MAAO,UAAWiE,MAAO,IAAK4W,WAAYyf,IAC7D,CAAEzlB,MAAO,WAAY7U,MAAO,YAAaiE,MAAO,IAAK4W,WAAYyf,GAA0BuvJ,oBAAqB,eAChH,CAAEh1K,MAAO,gBAAiB7U,MAAO,iBAAkBiE,MAAO,IAAK4W,WAAYyf,IAC3E,CAAEzlB,MAAO,YAAa7U,MAAO,aAAciE,MAAO,IAAK4W,WAAYyf,IACnE,CAAEzlB,MAAO,SAAU7U,MAAO,SAAUiE,MAAO,IAAK4W,WAAYyf,IAC5D,CAAEzlB,MAAO,kBAAmB7U,MAAO,mBAAoBiE,MAAO,IAAK4W,WAAYyf,IAC/E,CAAEzlB,MAAO,eAAgB7U,MAAO,YAAaiE,MAAO,IAAK4W,WAAYyf,IACrE,CAAEzlB,MAAO,aAAc7U,MAAO,aAAciE,MAAO,IAAK4W,WAAYyf,IACpE,CAAEzlB,MAAO,mBAAoB7U,MAAO,oBAAqBiE,MAAO,IAAK4W,WAAYyf,IACjF,CAAEzlB,MAAO,kBAAmB7U,MAAO,mBAAoBiE,MAAO,IAAK4W,WAAYyf,IAC/E,CAAEzlB,MAAO,aAAc5Q,MAAO,IAAKf,SAAU,sKAC7C,CAAE2R,MAAO,YAAa7U,MAAO,YAAaiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,QAAQ,GACpG,CAAEE,MAAO,iBAAkB7U,MAAO,mBAAoBiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,QAAQ,GAChH,CAAEE,MAAO,uBAAwB7U,MAAO,yBAA0BiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,QAAQ,GAC5H,CAAEE,MAAO,mBAAoB7U,MAAO,qBAAsBiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,QAAQ,GACpH,CAAEE,MAAO,eAAgB7U,MAAO,iBAAkBiE,MAAO,IAAK4W,WAAYyf,GAA0B3lB,QAAQ,IAGhH3Y,EAAG8tL,aAAer1L,EAAc4uC,mBAAmBumJ,EAAc,MAC5DD,IACD3tL,EAAG8tL,aAAaC,eAAiB9mL,MAAMC,SAAS0mB,GAAE,kBAAkB2d,SAExEvrC,EAAG8tL,aAAajuJ,YAAa,EAC7B7/B,EAAG8tL,aAAaE,YAAa,EAC7BhuL,EAAG8tL,aAAajvK,WAAa,CACzB0oB,KAAM,MACNrK,UAAW,CACPrgC,OAAQ,CACJ0hC,SAAU,WACVC,eAAgB,mBAChBC,GAAI,WACJC,IAAK,kBAKjB1+B,EAAGwtL,gBAAkB,IAAIvmL,MAAM5N,KAAKmlB,WAAW,CAC3C+iC,SAAUliB,GACVhmC,KAAMpB,EAAOilO,oBACb57K,OAAQ,CACJoM,MAAO,CACH/B,OAAQ,CACJlrB,OAAQ,CAAE9gC,KAAM,aAI5BogC,UAAU,IAGd//B,EAAGwC,OAAS,WACRmJ,EAAkBuC,OACtB,CAEJ,CCzN6B,SAAA7X,GAAU4B,EAAQI,EAAYF,EAASD,EAAOO,GAEvE,IAAIuH,EAAK/H,EAAO+H,GAChB/H,EAAO+H,GAAG+9N,YAAc,uBAaxB9lO,EAAO2mM,mBAAqB,SAAU5+L,GAGlC,GAFA3H,EAAWwmM,uBAAyB,KAEA,KAAhC7+L,EAAGg+N,0BAAoCh+N,EAAGg+N,yBAatCh+N,EAAGmiM,WACHniM,EAAG++L,4BAA4B7jL,WAdiC,CAEpE,IAGIxQ,EAAMuO,EAHNO,EAAMxZ,EAAG++L,4BAA4B1lM,OAIzC,IAAK4f,EAHQO,EAAItc,OAGC,EAAG+b,GAAK,EAAGA,IAEzBvO,EAAO8O,EAAIP,GACXjZ,EAAG++L,4BAA4B5sL,OAAOzH,EAG9C,CAOJ,EAEA1K,EAAGi/L,yBAA2BxmM,EAAc4uC,mBAjCjC,CACH,CAAExuB,MAAO,OAAQ7U,MAAO,OAAQ6a,WAAYyf,IAC5C,CAAEzlB,MAAO,sBAAuB7U,MAAO,UAAW6a,WAAYyf,IAC9D,CAAEzlB,MAAO,QAAS7U,MAAO,QAAS6a,WAAYyf,IAC9C,CAAEzlB,MAAO,iBAAkB7U,MAAO,kBAAmB6a,WAAYyf,IACjE,CAAEzlB,MAAO,WAAY7U,MAAO,WAAY6a,WAAYyf,KA4BiC,KAC7Ft+B,EAAGi/L,yBAAyBn9I,UAAW,EAEvC9hD,EAAG++L,4BAA8B,IAAI93L,MAAM5N,KAAKmlB,WAAW,CACvD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,SAAUvT,GACZzP,EAAM,CACFmC,OAAQ,MACRC,IAAKC,OAAS,4BACdgP,OAAQ,CACJ+zL,aAAct9L,EAAGg+N,4BAGtBjjO,MAAK,SAAUb,GAEdA,EAASb,KAAK4B,SAAQ,SAAUC,EAAK+d,GACO,OAApC/e,EAASb,KAAK4f,GAAGglN,iBACjB/jO,EAASb,KAAK4f,GAAGglN,eAAiB/jO,EAASb,KAAK4f,GAAGglN,eAAej/M,WAE1E,IAEA9kB,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClDsO,EAAQ+W,QAAQxkB,EAASb,KACzB,IAAG,SAAuBa,GACtByN,EAAQuiC,QACRzxC,EAAc2d,iBAAiBlc,EAASb,KAChD,GACJ,KAIR2G,EAAG25N,cAAgB,WACf35N,EAAG45N,2BAA6B,KAChC3hO,EAAO+H,GAAG+9N,YAAc,kCAC5B,EAEA/9N,EAAGg/L,8BAAgC,SAAUj7I,GAAY,IAAAm6K,EAAAC,EAGjDC,EACAC,EACA12M,EAJAzQ,EAAO6sC,EAAWx8C,OAClB4+L,EAAgC,cAAlBnmM,EAAGmiM,WAerB,GAVA9pM,EAAWwmM,uBAAyB3nL,EAAKqpB,SAASrpB,EAAKspB,UACvDnoC,EAAWwmM,uBAAuBy/B,kBAAmB,EAErDrmO,EAAO+H,GAAG+9N,YAAc,uBAGxBK,IAAyB,QAAbF,EAFZv2M,EAAezQ,EAAKqpB,SAASrpB,EAAKspB,iBAET,IAAA09L,GAAZA,EAAcK,yBAA4Bp4B,GAEvDk4B,EAAgD,WAArB,QAAZF,EAAAx2M,SAAY,IAAAw2M,OAAA,EAAZA,EAAcF,iBAA8B93B,EAEvDi4B,GAAaC,EAAc,CAC3B,GAAIr+N,EAAG+sD,KAAKmlJ,eAAgB,CAExB,IAAMssB,EAAgBx+N,EAAG2sC,sBAAsB5pC,MAAK,SAAAs8M,GAAG,MAAwB,OAApBA,EAAIpyK,WAAoB,IACnFuxL,EAAcvoM,UAAW,EACzBj2B,EAAGy+N,kBAAkBD,EACzB,CACAx+N,EAAG45N,4BAA6B,EAChC3hO,EAAO+H,GAAG+sD,KAAO,CAAC,EAClB90D,EAAO+H,GAAG6wN,kBAAoB,IAClC,MAAYuN,GAAcC,EAItBr+N,EAAG45N,2BAA6B,KAIxC,SAAmBzzB,GACf,IAAIh3J,EAGAA,EADAg3J,EACU,oDAEA,8DAGdtoM,IAAK,QAASsxC,EAAS,UAC3B,CAjBQuvL,CAAUv4B,EAKlB,CA4BJ,CC3I6B,SAAA9vM,GAAUsV,EAAmBgzN,GAEtD,IAAM3+N,EAAKwH,KAEXxH,EAAG4+N,gBASH,WACIjzN,EAAkBuC,MAAMlO,EAAG++D,aAC/B,EAVA/+D,EAAGmE,QAYH,WACIwH,EAAkBxH,SAEtB,EAVInE,EAAG2+N,mBAAqBA,CAWhC,CCpB6B,SAAAtoO,GAAUgC,EAAYG,EAAW6V,EAAWqiL,EAAkC1vL,EAAmB9I,GAE1H,IAAM8H,EAAKwH,KAee,SAAAq3N,IAUzB,OAVyBA,GAAAroO,OAAAC,UAA1B,SAAAC,IAAA,IAAAooO,EAAAn+L,EAAA,OAAAlqC,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAC0E,OAAlEgoO,EAAWpnO,KAAKC,MAAMP,aAAaC,QAAQ,wBAAuBT,EAAAE,KAAA,EACjDoB,EAAM4K,IAAIvI,OAAS,oCAAmC,OAAvEomC,EAAQ/pC,EAAAI,KAEZgJ,EAAG++N,QAAUD,EAAS/7N,MAAK,SAAA2kE,GAAC,OAAmB,QAAfA,EAAEvsE,QAAkB,IACpD6E,EAAGg/N,WAAaF,EAAS/7N,MAAK,SAAA2kE,GAAC,OAAmB,QAAfA,EAAEvsE,QAAkB,IACvD6E,EAAGi/N,cAAgBH,EAAS/7N,MAAK,SAAA2kE,GAAC,OAAmB,QAAfA,EAAEvsE,QAAkB,IAC1D6E,EAAGk/N,gBAAkBJ,EAAS/7N,MAAK,SAAA2kE,GAAC,OAAmB,QAAfA,EAAEvsE,QAAkB,IAC5D6E,EAAGm/N,oBAAsBL,EAAS/7N,MAAK,SAAA2kE,GAAC,OAAmB,QAAfA,EAAEvsE,QAAkB,KAAKwlC,EAAStnC,KAAKgjB,MAAK,SAAA2xC,GAAC,MAAsB,QAAlBA,EAAE/gB,WAAqB,IAAE,wBAAAr2C,EAAAiB,OAAA,GAAAnB,EAAA,MAEzHoB,MAAA,KAAAC,UAAA,CAEwC,SAAAqnO,IA4CxC,OA5CwCA,GAAA5oO,OAAAC,UAAzC,SAAA0C,EAA0CgpM,EAAYvT,GAAW,IAAAywC,EAAAlwL,EAAA,OAAA14C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEf45L,EAAiC2xB,wBAAuB,OAO/F,GAPHhqN,EAAWwmM,uBAAsBvlM,EAAAtC,KAC7BqoO,EAAmBhnO,EAAWwmM,uBAAuB3hM,OAAS,EAAI7E,EAAWwmM,uBAAyB,KAE1GxmM,EAAWwmM,uBAAuB5jM,SAAQ,SAAA/D,GAClCA,EAAK+mO,iBACL/mO,EAAKonO,kBAAmB,EAEhC,MAEIjmO,EAAWwmM,uBAAuB3hM,OAAS,GAAC,CAAA5D,EAAAxC,KAAA,gBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,GAElCwoO,EAA2BD,GAAiB,QAAA/lO,EAAAxC,KAAA,uBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAG,GAAAH,EAAA,SAAAA,EAAAG,GAAA,QAAAH,EAAAxC,KAAA,iBAKtDuB,EAAWwmM,uBAAyBxmM,EAAWwmM,uBAAuB,GAAG,QAAAvlM,EAAAwlD,GAGrE8vI,EAAWt1L,EAAAxC,KACV,gBADUwC,EAAAwlD,GACG,GAGb,oBAHaxlD,EAAAwlD,GAGI,oBAFuF,OAAzGtmD,EAAUyD,KAAK,4CAA8CkmM,GAAYzlM,OAAO,CAAE6iO,YAAa,SAAUjmO,EAAA2M,OAAA,oBAGI,OAA7GzN,EAAUyD,KAAK,4CAA8CkmM,GAAYzlM,OAAO,CAAE8iO,gBAAiB,SAAUlmO,EAAA2M,OAAA,oBAAA3M,EAAAxC,KAAA,iBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAqmD,GAAArmD,EAAA,SAIhG,MAAjBA,EAAAqmD,GAAM97C,QAEFsrC,EAAO,wGAAA30C,OAEqEo0L,EAAW,0PAK3F/wL,IAAK,CAAEmG,MAAO,QAASunC,KAAM4D,EAASxvC,KAAM,aAE5CqB,EAAiB,MAAM1H,EAAAqmD,IAC1B,yBAAArmD,EAAAzB,OAAA,GAAAsB,EAAA,2BAERrB,MAAA,KAAAC,UAAA,UAEcunO,EAA0Bl+N,GAAA,OAAAq+N,EAAA3nO,MAAC,KAADC,UAAA,UAAA0nO,IAcxC,OAdwCA,GAAAjpO,OAAAC,UAAzC,SAAAwD,EAA0C0N,GAAO,IAAA+3N,EAAA,OAAAjpO,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAS3C,OARE4oO,EAAyBrxN,EAAUvU,KAAK,CACxC0X,YAAa,gEACbC,WAAYkuN,GACZhuN,aAAc,SACdC,SAAU,SACVC,QAAS,CACL8sN,mBAAoB,WAAF,OAAQh3N,CAAO,KAEvCxN,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAG4C4oO,EAAuBv0N,OAAM,OAAvE9S,EAAWwmM,uBAAsB1kM,EAAAnD,KAAAmD,EAAArD,KAAG,GAAH,mBAAAqD,EAAAtD,KAAG,EAAHsD,EAAAV,GAAAU,EAAA,SAAAA,EAAAV,GAAA,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,kBAExCwlO,EAAA3nO,MAAA,KAAAC,UAAA,EA1EA,WAEyB8mO,EAAA/mO,MAAC,KAADC,UAAA,CAVtB6nO,GAGJ5/N,EAAG6/N,iBAGH,SAA0B19B,GACtB3pM,EAAUyD,KAAK,4CAA8CkmM,EACjE,EAJAniM,EAAG8/N,2BAgBF,SAEwCx6N,EAAAnE,GAAA,OAAAi+N,EAAAtnO,MAAC,KAADC,UAAA,CA8D7C,CC5F6B,SAAA1B,GAAU4B,EAAQ0T,EAAmBo0N,EAAoBtnO,GAElF,IAAIma,EAAU3a,EAAO2a,QAAU,CAAC,EAEhCA,EAAQi8C,kBAAgBr4D,OAAAC,UAAG,SAAAC,IAAA,IAAAspO,EAAA,OAAAvpO,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OASkB,OARzC8b,EAAQsW,OAAS,IAAIpnB,GACjBk+N,EAAqB,CAAC,GAEP7xK,SAAWv7C,EAAQ+7C,eACtCqxK,EAAmBl6L,eAAiB,SAEpCi6L,EAAmBxoO,KAAKyoO,GAExB/nO,EAAO0jB,QAAQq/G,oBAAqB,EAAKpkI,EAAAE,KAAA,EACnC2B,EAAc8J,qBAAqBqQ,EAAQsW,QAAO,OACxDvd,EAAkBuC,QAAQ,wBAAAtX,EAAAiB,OAAA,GAAAnB,EAAA,KAG9BuB,EAAOuK,OAAS,WAAcmJ,EAAkBuC,OAAS,CAC7D,CCnB6B,SAAA7X,GAAU4B,EAAQ0T,EAAmBlT,EAAeP,EAAO6nO,GAEpF,IAAIntN,EAAU3a,EAAO2a,QAAU,CAAC,EAG5By7C,EAAgB,CAChB,CAAEx1C,MAAO,SAAU7U,MAAO,SAAUkD,SAHnB,qEAG6C2X,YAAY,GAC1E,CAAEhG,MAAO,KAAM7U,MAAO,KAAM6a,WAAYugB,IACxC,CAAEvmB,MAAO,UAAW7U,MAAO,UAAW6a,WAAYyf,IAClD,CAAEzlB,MAAO,cAAe7U,MAAO,cAAekD,SAAU,6BAA8B2X,WAAYyf,IAClG,CAAEzlB,MAAO,cAAe7U,MAAO,eAAgBkD,SAAU,2CAA4C2X,WAAYme,IACjH,CACIh5B,MAAO,IAAKiE,MAAO,GAAIf,SAAU,oUAKzCjP,EAAOglD,YAAW,WACdrqC,EAAQ0I,YAAc7iB,EAAc4uC,mBAAmBgnB,EAAe,KACtEz7C,EAAQ0I,YAAYukB,YAAa,EACjCjtB,EAAQ0I,YAAYykB,UAAW,EAC/BntB,EAAQ0I,YAAYuD,WAAa,CAC7B0oB,KAAM,MACNrK,UAAW,CACPrgC,OAAQ,CACJ0hC,SAAU,aAI1B,IAEA3rB,EAAQqtN,kBAAoB,SAAU1/L,GAElC,IAAI2/L,EAAsB,CAAC,EAE3BA,EAAoB/xK,SAAW5tB,EAAStrB,GACxCirN,EAAoBp6L,eAAiB,UAErCi6L,EAAmBxoO,KAAK2oO,GAExB3/L,EAAS86F,UAAW,EACpBzoH,EAAQutN,cAAe,EACvBloO,EAAO0jB,QAAQo/G,qBAAsB,EAErCpvH,EAAkBuC,OACtB,EAEA0E,EAAQu3B,eAAiB,IAAIljC,MAAM5N,KAAKmlB,WAAW,CAC/CwgB,iBAAiB,EACjBsiB,OAAQ,CACJoM,MAAO,CACH/B,OAAQ,CACJgC,YAAa,CAAEhuD,KAAM,WAIjC8e,UAAW,CACPvD,KAAM,SAAUvT,GACZ,IAEIw2C,EAAW,CACX,SAHkB1lD,EAAcowC,uBAAuBlhC,GAG3BgQ,SAIhCzf,EAAMge,KAAK3b,OAAS,mCAAoC4jD,GAAUpjD,MAAK,SAAUb,GAC7E0Y,EAAQg7C,iBAAmB1zD,EAASb,KAAKw0D,MACzClmD,EAAQ+W,QAAQxkB,EAASb,KAAKy0D,QAClC,IAAG,SAAU5zD,GACTyN,EAAQuiC,OACZ,GACJ,KAIRjyC,EAAOuK,OAAS,WAAcmJ,EAAkBuC,OAAS,CAC7D,CC5E6B,SAAA7X,GAAU4B,EAAQ0T,EAAmBlT,EAAeP,EAAO6nO,GAEpF,IAAIntN,EAAU3a,EAAO2a,QAAU,CAAC,EAG5By7C,EAAgB,CAChB,CAAEx1C,MAAO,SAAU7U,MAAO,SAAUkD,SAHnB,qEAG6C2X,YAAY,GAC1E,CAAEhG,MAAO,KAAM7U,MAAO,KAAM6a,WAAYugB,IACxC,CAAEvmB,MAAO,UAAW7U,MAAO,UAAW6a,WAAYyf,IAClD,CAAEzlB,MAAO,cAAe7U,MAAO,cAAekD,SAAU,6BAA8B2X,WAAYyf,IAClG,CAAEzlB,MAAO,cAAe7U,MAAO,eAAgBkD,SAAU,2CAA4C2X,WAAYme,IACjH,CACIh5B,MAAO,IAAKiE,MAAO,GAAIf,SAAU,6TAKzCjP,EAAOglD,YAAW,WACdrqC,EAAQ0I,YAAc7iB,EAAc4uC,mBAAmBgnB,EAAe,KACtEz7C,EAAQ0I,YAAYukB,YAAa,EACjCjtB,EAAQ0I,YAAYykB,UAAW,EAC/BntB,EAAQ0I,YAAYuD,WAAa,CAC7B0oB,KAAM,MACNrK,UAAW,CACPrgC,OAAQ,CACJ0hC,SAAU,aAI1B,IAEA3rB,EAAQuoH,WAAa,SAAU56F,GAE3B,IAAI66F,EAAe,CAAC,EAEpBA,EAAajtE,SAAW5tB,EAAStrB,GACjCmmH,EAAat1F,eAAiB,aAE9Bi6L,EAAmBxoO,KAAK6jI,GAExB76F,EAAS86F,UAAW,EACpBzoH,EAAQutN,cAAe,EACvBloO,EAAO0jB,QAAQm/G,wBAAyB,EAExCnvH,EAAkBuC,OACtB,EAEA0E,EAAQu3B,eAAiB,IAAIljC,MAAM5N,KAAKmlB,WAAW,CAC/CwgB,iBAAiB,EACjBsiB,OAAQ,CACJoM,MAAO,CACH/B,OAAQ,CACJgC,YAAa,CAAEhuD,KAAM,WAIjC8e,UAAW,CACPvD,KAAM,SAAUvT,GACZ,IAEIw2C,EAAW,CACX,SAHkB1lD,EAAcowC,uBAAuBlhC,GAG3BgQ,SAIhCzf,EAAMge,KAAK3b,OAAS,sCAAuC4jD,GAAUpjD,MAAK,SAAUb,GAChF0Y,EAAQg7C,iBAAmB1zD,EAASb,KAAKw0D,MACzClmD,EAAQ+W,QAAQxkB,EAASb,KAAKy0D,QAClC,IAAG,SAAU5zD,GACTyN,EAAQuiC,OACZ,GACJ,KAIRjyC,EAAOuK,OAAS,WAAcmJ,EAAkBuC,OAAS,CAE7D,CC7E6B,SAAA7X,GAAU4B,EAAQ0T,EAAmBlT,EAAeP,EAAO6nO,GAEpF,IAAIntN,EAAU3a,EAAO2a,QAAU,CAAC,EAG5By7C,EAAgB,CAChB,CAAEx1C,MAAO,SAAU7U,MAAO,SAAUkD,SAHnB,qEAG6C2X,YAAY,GAC1E,CAAEhG,MAAO,KAAM7U,MAAO,KAAM6a,WAAYugB,IACxC,CAAEvmB,MAAO,UAAW7U,MAAO,UAAW6a,WAAYyf,IAClD,CAAEzlB,MAAO,cAAe7U,MAAO,cAAekD,SAAU,6BAA8B2X,WAAYyf,IAClG,CAAEzlB,MAAO,cAAe7U,MAAO,eAAgBkD,SAAU,2CAA4C2X,WAAYme,IACjH,CACIh5B,MAAO,IAAKiE,MAAO,GAAIf,SAAU,iUAKzCjP,EAAOglD,YAAW,WACdrqC,EAAQ0I,YAAc7iB,EAAc4uC,mBAAmBgnB,EAAe,KACtEz7C,EAAQ0I,YAAYukB,YAAa,EACjCjtB,EAAQ0I,YAAYykB,UAAW,EAC/BntB,EAAQ0I,YAAYuD,WAAa,CAC7B0oB,KAAM,MACNrK,UAAW,CACPrgC,OAAQ,CACJ0hC,SAAU,aAI1B,IAEA3rB,EAAQwtN,eAAiB,SAAU7/L,GAE/B,IAAI8/L,EAAmB,CAAC,EAExBA,EAAiBlyK,SAAW5tB,EAAStrB,GACrCorN,EAAiBv6L,eAAiB,OAElCi6L,EAAmBxoO,KAAK8oO,GAExB9/L,EAAS86F,UAAW,EACpBzoH,EAAQutN,cAAe,EACvBloO,EAAO0jB,QAAQi/G,kBAAmB,EAElCjvH,EAAkBuC,OACtB,EAEA0E,EAAQu3B,eAAiB,IAAIljC,MAAM5N,KAAKmlB,WAAW,CAC/CwgB,iBAAiB,EACjBsiB,OAAQ,CACJoM,MAAO,CACH/B,OAAQ,CACJgC,YAAa,CAAEhuD,KAAM,WAIjC8e,UAAW,CACPvD,KAAM,SAAUvT,GACZ,IAEIw2C,EAAW,CACX,SAHkB1lD,EAAcowC,uBAAuBlhC,GAG3BgQ,SAIhCzf,EAAMge,KAAK3b,OAAS,gCAAiC4jD,GAAUpjD,MAAK,SAAUb,GAC1E0Y,EAAQg7C,iBAAmB1zD,EAASb,KAAKw0D,MACzClmD,EAAQ+W,QAAQxkB,EAASb,KAAKy0D,QAClC,IAAG,SAAU5zD,GACTyN,EAAQuiC,OACZ,GACJ,KAIRjyC,EAAOuK,OAAS,WAAcmJ,EAAkBuC,OAAS,CAE7D,CC7E6B,SAAA7X,GAAU4B,EAAQ0T,EAAmBlT,EAAeP,EAAO6nO,GAEpF,IAAIntN,EAAU3a,EAAO2a,QAAU,CAAC,EAG5By7C,EAAgB,CAChB,CAAEx1C,MAAO,SAAU7U,MAAO,SAAUkD,SAHnB,qEAG6C2X,YAAY,GAC1E,CAAEhG,MAAO,KAAM7U,MAAO,KAAM6a,WAAYugB,IACxC,CAAEvmB,MAAO,UAAW7U,MAAO,UAAW6a,WAAYyf,IAClD,CAAEzlB,MAAO,cAAe7U,MAAO,cAAekD,SAAU,6BAA8B2X,WAAYyf,IAClG,CAAEzlB,MAAO,cAAe7U,MAAO,eAAgBkD,SAAU,2CAA4C2X,WAAYme,IACjH,CACIh5B,MAAO,IAAKiE,MAAO,GAAIf,SAAU,yUAKzCjP,EAAOglD,YAAW,WACdrqC,EAAQ0I,YAAc7iB,EAAc4uC,mBAAmBgnB,EAAe,KACtEz7C,EAAQ0I,YAAYukB,YAAa,EACjCjtB,EAAQ0I,YAAYykB,UAAW,EAC/BntB,EAAQ0I,YAAYuD,WAAa,CAC7B0oB,KAAM,MACNrK,UAAW,CACPrgC,OAAQ,CACJ0hC,SAAU,aAI1B,IAEA3rB,EAAQ0tN,uBAAyB,SAAU//L,GAEvC,IAAIggM,EAA2B,CAAC,EAEhCA,EAAyBpyK,SAAW5tB,EAAStrB,GAC7CsrN,EAAyBz6L,eAAiB,eAE1Ci6L,EAAmBxoO,KAAKgpO,GAExBhgM,EAAS86F,UAAW,EACpBzoH,EAAQutN,cAAe,EACvBloO,EAAO0jB,QAAQk/G,0BAA2B,EAE1ClvH,EAAkBuC,OACtB,EAEA0E,EAAQu3B,eAAiB,IAAIljC,MAAM5N,KAAKmlB,WAAW,CAC/CwgB,iBAAiB,EACjBsiB,OAAQ,CACJoM,MAAO,CACH/B,OAAQ,CACJgC,YAAa,CAAEhuD,KAAM,WAIjC8e,UAAW,CACPvD,KAAM,SAAUvT,GACZ,IAEIw2C,EAAW,CACX,SAHkB1lD,EAAcowC,uBAAuBlhC,GAG3BgQ,SAIhCzf,EAAMge,KAAK3b,OAAS,wCAAyC4jD,GAAUpjD,MAAK,SAAUb,GAClF0Y,EAAQg7C,iBAAmB1zD,EAASb,KAAKw0D,MACzClmD,EAAQ+W,QAAQxkB,EAASb,KAAKy0D,QAClC,IAAG,SAAU5zD,GACTyN,EAAQuiC,OACZ,GACJ,KAIRjyC,EAAOuK,OAAS,WAAcmJ,EAAkBuC,OAAS,CAE7D,CCtE6B,SAAA7X,GAAU4B,EAAQoW,EAAWlW,EAASqoO,EAAmCC,EAAkCC,EAAmCvoB,EAAoCE,EAAoCC,EAAqCF,EAAqCF,EAA0CM,EAAwCD,EAAqCP,EAAoCS,EAAuCE,EAAoCZ,EAAsCE,EAAuCvnB,EAAkCrkK,EAA2BmX,EAAWm9L,EAAetoO,EAAYqN,EAAqBxN,EAAOue,EAAIje,EAAWC,EAAeigN,EAA6CE,EAAoBwiB,EAA6Bv2G,EAAuBnsH,GAG93B,IAAIsH,EAAK/H,EAAO+H,GAAK,CAAC,EAGtB/H,EAAO2oO,IAAMnoO,EACbR,EAAOQ,cAAgBA,EACvBR,EAAO+yC,cAAgB,CAAC,EACxB/yC,EAAO6kO,gBAAkB,GACzB98N,EAAG6gG,wBAA0B,GAC7B7gG,EAAGiiN,cAAgB,GACnBjiN,EAAGy4L,YAAa,EAChBxgM,EAAO4oO,OAAQ,EACf7gO,EAAGozM,aAAe,GAClB,IAAIj0J,EAAe3mD,EAAUyD,OAAOkD,MAAM,KAoBnB,SAAAxG,IAUtB,OAVsBA,GAAAnC,OAAAC,UAAvB,SAAAwvB,IAAA,IAAA7sB,EAAA6e,EAAA,OAAAxhB,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,cAAAovB,EAAApvB,KAAA,EACiC4B,EAAyBwf,yBAAwB,OAAA9e,EAAA8sB,EAAAlvB,KAAlEihB,EAAM7e,EAAZC,KACN2G,EAAGiY,OAASA,EACZhgB,EAAO6oO,eAAiB7oN,EAAOoE,MAAK,SAAA3R,GAAI,MAAkB,gCAAdA,EAAK7Q,MAA0D,OAAhB6Q,aAAI,EAAJA,EAAMrE,MAAa,IAC9GrG,EAAGuzM,mBAAqBt7L,EAAOoE,MAAK,SAAA3R,GAAI,MAAkB,0BAAdA,EAAK7Q,MAAoD,OAAhB6Q,aAAI,EAAJA,EAAMrE,MAAa,IACxGpO,EAAO64L,+BAAiC74K,EAAOoE,MAAK,SAAA3R,GAAI,MAAkB,sCAAdA,EAAK7Q,MAAgE,OAAhB6Q,aAAI,EAAJA,EAAMrE,MAAa,IACpIrG,EAAG+gO,yBAA2B9oN,EAAOoE,MAAK,SAAA3R,GAAI,MAAkB,gCAAdA,EAAK7Q,MAA0D,OAAhB6Q,aAAI,EAAJA,EAAMrE,MAAa,IAEpH26N,IAkJA9oO,EAAM4K,IAAIvI,OAAS,oCAAoCQ,MAAK,SAAUb,GAElEA,EAASb,KAAK4B,SAAQ,SAAAC,GAClBA,EAAI+6B,UAAW,CACnB,IACyB,oBAArBj2B,EAAGmoM,gBACHjuM,EAASb,KAAOa,EAASb,KAAKsC,QAAO,SAAA0jN,GAAG,MAAwB,QAApBA,EAAIpyK,WAAqB,KAEzE/yC,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,eAClDpB,EAAO+H,GAAG2sC,sBAAwBzyC,EAASb,KAC3CpB,EAAOujN,wBAGHnjN,EAAWy/L,eACXpH,EAAiC2pB,oBAAoBpiN,GAIzD,IAAIgpO,EAAgBR,EAAiCpT,eAAertN,EAAGmiM,WAAYniM,EAAGmoM,cAAelwM,EAAO6/L,eAc5G,GAbA7/L,EAAO+H,GAAG2sC,sBAAsB1xC,SAAQ,SAAA2xC,GACpC30C,EAAO+H,GAAG0oM,6BAA6B97J,EAAYE,aAAe,GAClE70C,EAAO+H,GAAG2oM,gCAAgC/7J,EAAYE,aAAe,GACrE70C,EAAO+H,GAAGopM,sBAAsBx8J,EAAYE,aAAe,GACtDm0L,EAAc5kN,MAAK,SAAAyvM,GAAI,OAAIA,EAAKp8I,QAAUo8I,EAAKp8I,SAAW9iC,EAAYE,WAAW,MAClF70C,EAAOuuF,MAAQg6I,EAAkCtU,kBAAkBt/K,EAAaq0L,GAExF,IACKhpO,EAAOuuF,QACRvuF,EAAOuuF,MAAQi6I,EAAiCpT,eAAertN,EAAGmiM,WAAYniM,EAAGmoM,cAAelwM,EAAO6/L,gBAIvG7/L,EAAO+H,GAAGuzM,mBAAoB,CAC9B,IAAM2tB,EAAwBjpO,EAAOuuF,MAAM3mE,WAAU,SAAAisM,GAAI,MAAmB,kBAAfA,EAAK9nN,KAAyB,IAC3F/L,EAAOuuF,MAAMtnE,OAAOgiN,EAAuB,EAC/C,CAEIlhO,EAAGmoM,eAEd,WAEgCg5B,EAAArpO,MAAC,KAADC,UAAA,CAJHqpO,EAC1B,IAvLkB,yBAAAl7M,EAAAruB,OAAA,GAAAouB,EAAA,KACrBttB,EAAAb,MAAA,KAAAC,UAAA,CAED,SAASipO,IACL,IAAIlC,EAAWpnO,KAAKC,MAAMP,aAAaC,QAAQ,wBAE/C,GAAImB,EAAU8B,MAAM+kD,SAAS,oBACrBy/K,EAAS/7N,MAAK,SAAA2kE,GAAC,OAAmB,QAAfA,EAAEvsE,QAAkB,IAAG6E,EAAGmoM,cAAgB,cAC5D3vM,EAAUyD,KAAK,aACjB,GAAIzD,EAAU8B,MAAM+kD,SAAS,wBAC5By/K,EAAS/7N,MAAK,SAAA2kE,GAAC,OAAmB,QAAfA,EAAEvsE,QAAkB,MAAG6E,EAAGmoM,cAAgB,uBAC9D,CACH,GAAI22B,EAAS/7N,MAAK,SAAA2kE,GAAC,OAAmB,QAAfA,EAAEvsE,QAAkB,IAAG,OACzC3C,EAAUyD,KAAK,OACxB,CACJ,CAAC,SAEcolO,IAAuB,OAAAC,EAAAxpO,MAAC,KAADC,UAAA,UAAAupO,IAOrC,OAPqCA,GAAA9qO,OAAAC,UAAtC,SAAAk/C,IAAA,IAAA4rL,EAAA,OAAA9qO,UAAA,SAAAm/C,GAAA,cAAAA,EAAA/+C,KAAA++C,EAAA9+C,MAAA,QACQyqO,EAAoB33N,OAAO5J,EAAGiY,OAAOlV,MAAK,SAAAukJ,GAAa,MAA2B,6BAAvBA,EAAcztJ,IAAmC,IAAEwM,UAG9GrG,EAAG26E,eAAiB,IAAIz6E,KACxBF,EAAG26E,eAAe7Y,QAAQ9hE,EAAG26E,eAAe5Y,UAAYw/J,IAC3D,wBAAA3rL,EAAA/9C,OAAA,GAAA89C,EAAA,MACJ79C,MAAA,KAAAC,UAAA,CAEyC,SAAAypO,IAIzC,OAJyCA,GAAAhrO,OAAAC,UAA1C,SAAAo/C,IAAA,IAAA37C,EAAA,OAAAzD,UAAA,SAAAq/C,GAAA,cAAAA,EAAAj/C,KAAAi/C,EAAAh/C,MAAA,cAAAg/C,EAAAh/C,KAAA,EAC2BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,iCAAAC,OAAgCvC,EAAO6/L,cAAc7iL,GAAE,aAAAza,OAAYvC,EAAO6/L,cAAcv4I,UAAU,OAAtIrlD,EAAQ47C,EAAA9+C,KACdgJ,EAAG6gG,wBAA0B3mG,EAASb,KAAK+iF,YAC3CnkF,EAAO+H,GAAG26E,eAAiBzgF,EAASb,KAAKshF,eAAiB,IAAIz6E,KAAKhG,EAASb,KAAKshF,gBAAkB,KAAK,wBAAA7kC,EAAAj+C,OAAA,GAAAg+C,EAAA,MAC3G/9C,MAAA,KAAAC,UAAA,CAKD,SAEe0pO,IAA0B,OAAAC,EAAA5pO,MAAC,KAADC,UAAA,UAAA2pO,IAKxC,OALwCA,GAAAlrO,OAAAC,UAAzC,SAAAoiD,IAAA,IAAA3+C,EAAAynO,EAAA,OAAAlrO,UAAA,SAAAqiD,GAAA,cAAAA,EAAAjiD,KAAAiiD,EAAAhiD,MAAA,cAAAgiD,EAAAhiD,KAAA,EACyB+tH,EAAsB4B,4BAA4B,OAAM,OAAzEvsH,EAAQ4+C,EAAA9hD,KACN2qO,EAA0BznO,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,wBAAhBA,EAAOpe,IAA8B,IAElGmG,EAAG4hO,oBAAwD,MAAlCD,EAAwBt7N,MAA6B,wBAAAyyC,EAAAjhD,OAAA,GAAAghD,EAAA,MACjF/gD,MAAA,KAAAC,UAAA,CAoJD,SAAAopO,IAFC,OAEDA,GAAA3qO,OAAAC,UAJA,SAAA21F,IAAA,OAAA31F,UAAA,SAAA41F,GAAA,cAAAA,EAAAx1F,KAAAw1F,EAAAv1F,MAAA,cAAAu1F,EAAAv1F,KAAA,EACUmB,EAAO6tM,aAAa,KAAM,uBAAsB,wBAAAz5G,EAAAx0F,OAAA,GAAAu0F,EAAA,MACzDt0F,MAAA,KAAAC,UAAA,CAxNDiI,EAAGmiM,WAAahjJ,EAAa,GAE7BlnD,EAAO6oO,gBAAiB,EACxB7oO,EAAO64L,gCAAiC,EAIxCprL,EAAoB8F,cAAczQ,MAAK,SAAUqO,GAC7CnR,EAAO8e,SAAW3N,EAElB,IAAIqC,EAAiBhT,EAAc4Q,qCAAqCpR,EAAO8e,UAC/E9e,EAAOmrD,SAAW33C,EAClBxT,EAAOorD,gBAAkB53C,EAAe63C,SACxCrrD,EAAOwH,WAAagM,EAAe5R,IAEvC,IAEW,WAEYlB,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,GA2CAlE,EAAOw0C,mBAAqB,SAACC,GAAa,OAAKz0C,EAAO2oO,IAAIn0L,mBAAmBC,EAAe1sC,EAAG2sC,sBAAsB,EAErH10C,EAAO40C,eAAiB,SAACnL,GAAS,OAAKzpC,EAAO2oO,IAAI/zL,eAAenL,EAAW1hC,EAAG2sC,sBAAsB,EAUrG10C,EAAO4pO,gBAAkB,WACrB5pO,EAAO6pO,gBAAkB,GACzB7pO,EAAO+H,GAAG+hO,kBAAoB,GAE9B/hO,EAAGqzM,YAAc,EACjBrzM,EAAGszM,mBAAqB,EAGxBr7M,EAAO+H,GAAGopM,sBAAwB,GAClCnxM,EAAO+H,GAAGyhN,uBAAyB,GACnCxpN,EAAO+H,GAAGqoN,kBAAoB,GAG9BpwN,EAAO+H,GAAG0oM,6BAA+B,GACzCzwM,EAAO+H,GAAGk9M,8BAAgC,GAC1CjlN,EAAO+H,GAAG4oM,6BAA+B,GACzC3wM,EAAO+H,GAAGonN,8BAAgC,GAE1CnvN,EAAO+H,GAAG2oM,gCAAkC,GAC5C1wM,EAAO+H,GAAGq9M,iCAAmC,GAG7Cr9M,EAAG6pM,uBAAyB,GAC5B7pM,EAAGw8M,wBAA0B,GAC7Bx8M,EAAG+pM,wBAA0B,GAC7B/pM,EAAG28M,yBAA2B,GAC9B38M,EAAGiqM,0BAA4B,GAC/BjqM,EAAG88M,2BAA6B,GAGhC98M,EAAG0hM,uBAAyB,GAC5B1hM,EAAGq0N,uBAAyB,GAC5Br0N,EAAG2hM,wBAA0B,GAC7B3hM,EAAGwiM,mBAAqB,GACxBxiM,EAAGs0N,mBAAqB,GACxBt0N,EAAG6hM,6BAA+B,GAClC7hM,EAAG4hM,4BAA8B,GAGjC5hM,EAAGyjM,0BAA4B,GAC/BzjM,EAAG0xN,0BAA4B,GAC/B1xN,EAAG0jM,2BAA6B,GAChC1jM,EAAGokM,sBAAwB,GAC3BpkM,EAAGgiO,sBAAwB,GAC3BhiO,EAAG+jM,uBAAyB,GAC5B/jM,EAAG4jM,gCAAkC,GACrC5jM,EAAG2jM,+BAAiC,GAGpC3jM,EAAG8mM,4BAA8B,GACjC9mM,EAAGk8M,6BAA+B,GAClCl8M,EAAGqmM,kCAAoC,GACvCrmM,EAAGs8M,mCAAqC,GACxCt8M,EAAG6kN,0BAA4B,GAG/B7kN,EAAGw9M,sCAAwC,GAC3Cx9M,EAAGysM,qCAAuC,GAC1CzsM,EAAGy9M,2BAA6B,GAChCz9M,EAAG4sM,0BAA4B,GAG/B5sM,EAAG29M,gCAAkC,GACrC39M,EAAGwtM,+BAAiC,GACpCxtM,EAAG0hN,6BAA+B,GAGlC1hN,EAAGi+M,uBAAyB,GAC5Bj+M,EAAGuxM,sBAAwB,GAG3BvxM,EAAGiiO,uBAAyB,GAC5BjiO,EAAGkiO,wBAA0B,GAC7BliO,EAAG4hN,iCAAmC,GACtC5hN,EAAGsvM,gCAAkC,GACrCtvM,EAAGwvM,4BAA8B,GACjCxvM,EAAG6hN,6BAA+B,GAGlC7hN,EAAGw2M,sBAAwB,GAC3Bx2M,EAAGy2M,uBAAyB,GAC5Bz2M,EAAGkuM,oBAAsB,GACzBluM,EAAGquM,0BAA4B,GAC/BruM,EAAG02M,2BAA6B,GAGhC12M,EAAGqwM,yBAA2B,GAC9BrwM,EAAG40M,0BAA4B,GAC/B50M,EAAGswM,yBAA2B,GAC9BtwM,EAAG80M,0BAA4B,GAG/B90M,EAAGo+M,wCAA0C,GAC7Cp+M,EAAGwyM,uCAAyC,GAE5Cv6M,EAAO+H,GAAG+sD,KAAO,CAAC,CACtB,EAEA90D,EAAO4pO,kBAiDP7hO,EAAGy+N,kBAAiB,eAAA1zN,GAAAvU,OAAAC,UAAG,SAAAC,EAAgBk2C,GAAW,OAAAn2C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,WAC1C81C,EAAY3W,SAAU,CAAFr/B,EAAAE,KAAA,SA0CnB,GAzCG81C,EAAY33B,KAAOkwL,IACnB+S,EAAyC+H,aAAahoN,EAAQ,KAAM,KAAM,MAG1E20C,EAAY33B,KAAOmwL,KACnBgT,EAAoC8H,QAAQjoN,EAAQ20C,EAAa,MAEjEwuL,EAA4B+G,oBAAoBv1L,EAAYjL,WAAW5mC,MAAK,SAAUb,GAClFjC,EAAO+H,GAAGoiO,oBAAsB,CAAC,EACjCnqO,EAAO+H,GAAGoiO,oBAAoBx1L,EAAYE,aAAe5yC,EAASb,IACtE,KAGAuzC,EAAY33B,IAAM+vL,KAClBsT,EAAoC8H,QAAQnoN,EAAQ,MAEpDmjO,EAA4B+G,oBAAoBv1L,EAAYjL,WAAW5mC,MAAK,SAAUb,GAClFjC,EAAO+H,GAAGqiO,oBAAsB,CAAC,EACjCpqO,EAAO+H,GAAGqiO,oBAAsBnoO,EAASb,IAC7C,KAKAuzC,EAAY33B,IAAMywL,KAClBiT,EAAmC6H,OAAOvoN,EAAQ,MAElDmjO,EAA4B+G,oBAAoBv1L,EAAYjL,WAAW5mC,MAAK,SAAUb,GAClFjC,EAAO+H,GAAGsiO,mBAAqB,CAAC,EAChCrqO,EAAO+H,GAAGsiO,mBAAqBpoO,EAASb,IAC5C,IAAE,OAAO,SAAUa,GACfjC,EAAO+H,GAAGsiO,mBAAqB,CAAC,CACpC,KAGA11L,EAAY33B,KAAOgwL,IACnBoT,EAAmC9T,QAAQtsM,EAAQ,MAGnD20C,EAAY33B,KAAOiwL,IACnBmT,EAAmC3T,WAAWzsM,EAAQ,MAGtD20C,EAAY33B,KAAOowL,GAAqB,CAAAzuM,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,GAClC0hN,EAAuC6H,WAAWpoN,EAAQ,MAAK,QAGrE20C,EAAY33B,KAAOqwL,IACnBoT,EAA4C4H,gBAAgBroN,EAAQ,MAGpE20C,EAAY33B,KAAOswL,IACnByS,EAAmC7B,OAAOl+M,EAAQ,MAGlD20C,EAAY33B,KAAOuwL,IACnB+S,EAAoCgI,QAAQtoN,EAAQ,MAGpD20C,EAAY33B,KAAOwwL,IACnBgT,EAAsC/E,UAAUz7M,EAAQ,MAGxD20C,EAAY33B,KAAO0wL,IACnBwS,EAAmCgI,OAAOloN,EAAQ20C,EAAa,MAG/DA,EAAY33B,KAAO2wL,IACnBgT,EAAmB6H,eAAexoN,GACrC,QAGLA,EAAOujN,wBAEPvjN,EAAOwjN,qBAAqB7uK,GAAa,yBAAAh2C,EAAAiB,OAAA,GAAAnB,EAAA,KAC5C,gBAAA4O,GAAA,OAAAyF,EAAAjT,MAAA,KAAAC,UAAA,EA7EmB,GA+EpBE,EAAOwjN,qBAAoB,eAAAzwM,GAAAxU,OAAAC,UAAG,SAAA0C,EAAgByzC,GAAW,IAAAwjL,EAAAmS,EAAAC,EAAA,OAAA/rO,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAAAwC,EAAAG,GAC7CmzC,EAAYK,YAAW3zC,EAAAxC,KACtB,OADsBwC,EAAAG,GAClB,EASJ,QATIH,EAAAG,GASC,EAOL,OAPKH,EAAAG,GAOD,EAGJ,QAHIH,EAAAG,GAGC,GAGL,QAHKH,EAAAG,GAGA,GAUL,OAVKH,EAAAG,GAUD,GAGJ,OAHIH,EAAAG,GAGA,GAGJ,QAHIH,EAAAG,GAGC,GAGL,UAHKH,EAAAG,GAGE,GAGP,OAHOH,EAAAG,GAGH,GAGJ,OAHIH,EAAAG,GAGA,mBAxC6F,OAN7FuG,EAAGktM,gBACEq1B,EAAiBtqO,EAAOuuF,MAAM3mE,WAAU,SAAAisM,GAAI,MAAmB,qBAAfA,EAAK9nN,KAA4B,MACjE,GAClB/L,EAAOuuF,MAAMtnE,OAAOqjN,EAAgB,GAG5C/B,EAAkC3T,wBAAwB7sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,mBAOjG,MAJ+B,QAA5B2mC,EAAYE,YACZ0zL,EAAkC/T,qBAAqBzsN,EAAG2sC,sBAAuB10C,EAAOuuF,OAExFg6I,EAAkCpT,wBAAwBptN,EAAG2sC,sBAAuB10C,EAAOuuF,MAAO55C,GACrGtzC,EAAA2M,OAAA,mBAGmG,OAApGu6N,EAAkChU,0BAA0BxsN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGL,OAA/Fu6N,EAAkC9T,qBAAqB1sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,2BAAA3M,EAAAxC,KAAA,GAGzF2qO,IAA4B,QAO6D,OAN1FzhO,EAAG4hO,sBACEY,EAAsBvqO,EAAOuuF,MAAM3mE,WAAU,SAAAisM,GAAI,MAAmB,0DAAfA,EAAK9nN,KAAiE,MACtG,GACvB/L,EAAOuuF,MAAMtnE,OAAOsjN,EAAqB,GAGjDhC,EAAkC7T,qBAAqB3sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGG,OAAlGu6N,EAAkC5T,wBAAwB5sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGJ,OAA9Fu6N,EAAkCzT,oBAAoB/sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGC,OAA/Fu6N,EAAkCxT,qBAAqBhtN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGE,OAAjGu6N,EAAkCvT,uBAAuBjtN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGH,OAA9Fu6N,EAAkCtT,oBAAoBltN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAS7F,OANY,QAAbmqN,EAAIn4N,EAAO+H,UAAE,IAAAowN,GAAM,QAANA,EAATA,EAAWrjK,YAAI,IAAAqjK,GAAfA,EAAiBle,eAAeuwB,UAChCjC,EAAkCrT,4BAA4BntN,EAAG2sC,sBAAuB10C,EAAOuuF,OAC/F55C,EAAY81L,cAAe,IAE3B91L,EAAY3W,UAAW,EACvB2W,EAAY81L,cAAe,GAC9BppO,EAAA2M,OAAA,oBAI8G,OAA/Gu6N,EAAkCpT,wBAAwBptN,EAAG2sC,sBAAuB10C,EAAOuuF,MAAO55C,GAAatzC,EAAA2M,OAAA,qCAAA3M,EAAAzB,OAAA,GAAAsB,EAAA,KAG1H,gBAAAgI,GAAA,OAAA6J,EAAAlT,MAAA,KAAAC,UAAA,EA/D0B,GAiE3BE,EAAOujN,sBAAwB,WAC3Bx7M,EAAG6wN,kBAAoB6P,EAAkCllB,sBAAsBx7M,EAAG2sC,sBACtF,EAIA10C,EAAOi4N,aAAe,SAAUlsN,GAC5B,OAAO08N,EAAkCxQ,aAAalsN,EAAO28N,EAAcgC,SAAU1qO,EACzF,EAEAA,EAAOy4N,sBAAwB,SAAUhhJ,GACrC,OAAOgxJ,EAAkChQ,sBAAsBhhJ,EAAQixJ,EAAcgC,SAAU1qO,EAAOuuF,MAC1G,EAEAvuF,EAAO64N,oBAAsB,WACzB,IAAIhF,EAAO4U,EAAkC5P,oBAAoB74N,EAAOuuF,MAAOm6I,EAAcgC,UAC7F1qO,EAAO2qO,cAAc9W,EAAK9nN,MAC9B,EAEA/L,EAAO84N,wBAA0B,WAC7B,IAAIjF,EAAO4U,EAAkC3P,wBAAwB94N,EAAOuuF,MAAOm6I,EAAcgC,UACjG1qO,EAAO2qO,cAAc9W,EAAK9nN,MAC9B,EAEA/L,EAAO4qO,uBAAyB,WAC5B,OAAOnC,EAAkC1P,qBAAqB2P,EAAcgC,SAChF,EAEA1qO,EAAO2qO,cAAgB,SAAUE,GAC7B,IAAI3S,EAAiBwQ,EAAcgC,SAC/B/R,EAAoBT,EAAeS,oBAEnC9E,EADeqE,EAAeG,kBACVM,EAAoB,IACvB,IAAjB9E,EAAK2E,SACLx4N,EAAO6tM,aAAagmB,EAAK9nN,MAAO8+N,GAEpC3S,EAAe4S,KAAKD,EACxB,EAGA7qO,EAAO6tM,aAAY,eAAA5gM,GAAA1O,OAAAC,UAAG,SAAAwD,EAAgBonN,EAAUD,GAAM,IAAA9uK,EAAA,OAAA77C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAElDmB,EAAOua,WAAW,gCAAiC,CAAE6uM,SAAUA,EAAUD,OAAQA,IAElE,wBAAXA,IAEAnpN,EAAO+qO,2BAA6B,+GAEhC3qO,EAAWwmM,yBAA2BxmM,EAAWwmM,uBAAuBy/B,mBACxErmO,EAAO4pO,kBAEP5pO,EAAOgrO,mBAAoB,EAC3BhrO,EAAO+H,GAAG+9N,YAAc,mCAEpBzrL,EAAW,GACfo+I,EAAiC8tB,sBAAsBvmN,EAAQI,EAAWwmM,uBAAwB5mM,EAAO+H,GAAG2sC,uBAAuB5xC,MAAK,WAEpIiF,EAAG2sC,sBAAsB1xC,SAAQ,SAAU2xC,GACvC,GAAIA,EAAY3W,SAAU,CACtB,GAAI2W,EAAY33B,KAAOkwL,GAAyB,CAC5C,IACI2S,EAAe,KAEf7/M,EAAO+H,GAAG+sD,KAAK25I,eACNzuM,EAAO+H,GAAG+sD,KAAK25I,aACxBoR,EAAe7/M,EAAO+H,GAAG+sD,KAAK25I,aAAaU,WAAWnyL,IAE1Dq9B,EAAS/6C,KAAK2gN,EAAyC+H,aAAahoN,EAAQ6/M,EAAc,MAC9F,CAEIlrK,EAAY33B,KAAOmwL,IACnB9yJ,EAAS/6C,KAAK6gN,EAAoC8H,QAAQjoN,EAAQ20C,EAAa,OAG/EA,EAAY33B,KAAO0wL,IACnBrzJ,EAAS/6C,KAAK4gN,EAAmCgI,OAAOloN,EAAQ20C,EAAa,OAG7EA,EAAY33B,KAAO+vL,IACnB1yJ,EAAS/6C,KAAK+gN,EAAoC8H,QAAQnoN,EAAQ,OAGlE20C,EAAY33B,KAAOgwL,IACnB3yJ,EAAS/6C,KAAK8gN,EAAmC9T,QAAQtsM,EAAQ,OAGjE20C,EAAY33B,KAAOiwL,IACnB5yJ,EAAS/6C,KAAK8gN,EAAmC3T,WAAWzsM,EAAQ,OAGpE20C,EAAY33B,KAAOowL,IACnB/yJ,EAAS/6C,KAAKihN,EAAuC6H,WAAWpoN,IAGhE20C,EAAY33B,KAAOqwL,IACnBhzJ,EAAS/6C,KAAKmhN,EAA4C4H,gBAAgBroN,IAG1E20C,EAAY33B,KAAOswL,IACnBjzJ,EAAS/6C,KAAKygN,EAAmC7B,OAAOl+M,IAGxD20C,EAAY33B,KAAOuwL,IACnBlzJ,EAAS/6C,KAAKghN,EAAoCgI,QAAQtoN,IAG1D20C,EAAY33B,KAAOwwL,IACnBnzJ,EAAS/6C,KAAKkhN,EAAsC/E,UAAUz7M,IAG9D20C,EAAY33B,KAAOywL,IACnBpzJ,EAAS/6C,KAAKohN,EAAmC6H,OAAOvoN,IAGxD20C,EAAY33B,KAAO2wL,IACnBtzJ,EAAS/6C,KAAKqhN,EAAmB6H,eAAexoN,IAGpDA,EAAOwjN,qBAAqB7uK,EAChC,CACJ,IAEAn2B,EAAG+7B,IAAIF,GAAUv3C,MAAK,WAElB9C,EAAOujN,wBACPnjN,EAAWwmM,uBAAuBy/B,kBAAmB,EACrDrmO,EAAOgrO,mBAAoB,EAC3BhrO,EAAO+H,GAAG+9N,YAAc,uBACP,0BAAb1c,GAAmF,IAA3CppN,EAAO+H,GAAG2sC,sBAAsBzvC,QACxEjF,EAAO64N,qBAEf,IAAG,SAAuB52N,GACtBjC,EAAOgrO,mBAAoB,EAC3BhrO,EAAO+H,GAAG+9N,YAAc,uBACxBtlO,EAAc2d,iBAAiBlc,EACnC,GACJ,IAAG,SAAuBA,GACtBjC,EAAOgrO,mBAAoB,EAC3BhrO,EAAO+H,GAAG+9N,YAAc,uBACxBtlO,EAAc2d,iBAAiBlc,EACnC,MAKR8F,EAAG87M,aAAe/D,EAAqCjS,aAAa9lM,GAAI,GAEpEohN,EAAO/hK,SAAS,2BAChBr/C,EAAG2sC,sBAAsB1xC,SAAQ,SAAU2xC,IACnCA,EAAY3W,UAAwC,QAA5B2W,EAAYK,aAA2BjtC,EAAG4oM,6BAA6Bh8J,EAAYE,cAAoF,IAApE9sC,EAAG4oM,6BAA6Bh8J,EAAYE,aAAa5vC,QACpLk7M,EAAoCwO,mBAAmB3uN,EAAQ20C,EAEvE,IAGW,2BAAXw0K,GAAkD,YAAXA,IAEvCnpN,EAAOyjN,aAAc,EACrBzjN,EAAOirO,sBAAwB,IAAIhjO,KACmD,MAAlFF,EAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,gCAAhBA,EAAOpe,IAAsC,IAAEwM,OACxEg7N,IAGJtpB,EAAqCvE,eAAexzM,EAAG87M,cAAc/gN,MAAK,SAAUb,GAChF8F,EAAGgnM,gBAAkB9sM,EAASb,KAE9Bq3L,EAAiCywB,gBAAgBC,EAAQC,EAAUrhN,EAAI/H,EAAQ+H,EAAGgnM,iBAAiBp8J,MAAK,WACpG3yC,EAAOyjN,aAAc,CACzB,IAGI17M,EAAG0hM,wBAA0B1hM,EAAG0hM,uBAAuBxkM,OAAS,GAAK8C,EAAGyjM,2BAA6BzjM,EAAGyjM,0BAA0BvmM,OAAS,EAC3IjF,EAAO4oO,OAAQ,EAEf5oO,EAAO4oO,OAAQ,CAEvB,KAIW,kBAAXzf,GAEAphN,EAAGmjO,2BAA2BnjO,EAAG87M,cACpC,wBAAA3hN,EAAAtC,OAAA,GAAAoC,EAAA,KAEJ,gBAAAmH,EAAAmK,GAAA,OAAArG,EAAApN,MAAA,KAAAC,UAAA,EAjJkB,GAmJnBE,EAAO+pN,sBAAwB,SAAUtwL,GACrC1xB,EAAGiiN,cAAgBvxB,EAAiCgwB,kBAAkBhvL,EAAS1xB,EAAGiiN,eAG9EjiN,EAAG0hM,uBAAuBxkM,OAAS,GAAK8C,EAAG0jM,2BAA2BxmM,OAAS,EAC/EjF,EAAO4oO,OAAQ,EAEf5oO,EAAO4oO,OAAQ,CAEvB,EACA7gO,EAAG8kF,YAAc,KAEjB9kF,EAAGojO,yBAA2B,WAC1BpjO,EAAG8kF,YAAc,KAGjB7sF,EAAOg9L,gBAAkB,GACzBh9L,EAAOi9L,WAAa,GACpBj9L,EAAOk9L,eAAiB,GACxBl9L,EAAOm9L,QAAU,GAEjBn9L,EAAOorO,qBAAuB,GAC9BprO,EAAOqrO,gBAAkB,GACzBrrO,EAAOsrO,oBAAsB,GAC7BtrO,EAAOurO,aAAe,GAEtBvrO,EAAOwrO,sBAAwB,GAC/BxrO,EAAOyrO,iBAAmB,GAC1BzrO,EAAO0rO,qBAAuB,GAC9B1rO,EAAO2rO,cAAgB,GAEvB3rO,EAAOu9L,qBAAuB,GAC9Bv9L,EAAO09L,gBAAkB,GACzB19L,EAAO29L,oBAAsB,GAC7B39L,EAAO49L,aAAe,GAEtB59L,EAAO69L,sBAAwB,GAC/B79L,EAAO+9L,iBAAmB,GAC1B/9L,EAAOg+L,qBAAuB,GAC9Bh+L,EAAOi+L,cAAgB,GAGvBj+L,EAAOilO,oBAAsB,GAC7BjlO,EAAO+8L,0BAA4B,EACvC,EAGAh1L,EAAGmjO,2BAA6B,SAAUzxM,GACtCz5B,EAAO4rO,4BAA6B,EAEpC7jO,EAAGojO,2BAEHlrO,EAAM,CACFmC,OAAQ,OACRC,IAAKC,OAAS,+CACdlB,KAAMq4B,IACP32B,MAAK,SAAUb,GAEd8F,EAAG8kF,YAAc5qF,EAASb,KAG1BpB,EAAOklO,aAAc,EACrBllO,EAAOmlO,qBAAsB,EAC7BnlO,EAAOolO,4BAA6B,EAGpCplO,EAAOg9L,gBAAkBvE,EAAiC2E,YAAYr1L,EAAG8kF,YAAYwwG,iBAAiBC,kBAAmB,YACzHt9L,EAAOi9L,WAAaxE,EAAiC2E,YAAYr1L,EAAG8kF,YAAYwwG,iBAAiBC,kBAAmB,SACpHt9L,EAAOk9L,eAAiBzE,EAAiC2E,YAAYr1L,EAAG8kF,YAAYwwG,iBAAiBC,kBAAmB,WACxHt9L,EAAOm9L,QAAUn9L,EAAOg9L,gBAAkBh9L,EAAOi9L,WAEjDj9L,EAAOu9L,qBAAuB9E,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBC,uBAAwB,YAC1Iz9L,EAAO09L,gBAAkBjF,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBC,uBAAwB,SACrIz9L,EAAO29L,oBAAsBlF,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBC,uBAAwB,WACzIz9L,EAAO49L,aAAe59L,EAAOu9L,qBAAuBv9L,EAAO09L,gBAE3D19L,EAAO69L,sBAAwBpF,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBM,wBAAyB,YAC5I99L,EAAO+9L,iBAAmBtF,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBM,wBAAyB,SACvI99L,EAAOg+L,qBAAuBvF,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBM,wBAAyB,WAC3I99L,EAAOi+L,cAAgBj+L,EAAO69L,sBAAwB79L,EAAO+9L,iBAI7D/9L,EAAOilO,oBAAsBhjO,EAASb,KAAK07L,UAIvC98L,EAAOilO,oBAAoBjiO,SAAQ,SAAAyP,GAC/B,GAAIzS,EAAO6kO,gBAAgB5/N,OAAS,EAAG,CACnC,IAAIoN,EAAQrS,EAAO6kO,gBAAgBzgN,MAAK,SAAA0vF,GACpC,OAAOA,EAAWtrE,SAAW/1B,EAAK+1B,QAAUsrE,EAAWzxD,kBAAoB5vC,EAAKq2B,eACpF,IACA,GAAIz2B,EACAI,EAAKsiL,kBAAoB,WAExB,KAAK1iL,GAAmC,QAA1BI,EAAKo5N,kBAA8Bp5N,EAAKo5N,iBACvD,OAGAp5N,EAAKsiL,kBAAoB,SAC7B,CACJ,KAAO,IAA8B,QAA1BtiL,EAAKo5N,kBAA+Bp5N,EAAKo5N,iBAIhD,OAHAp5N,EAAKsiL,kBAAoB,SAI7B,CACJ,IAGJ/0L,EAAO+8L,0BAA4B96L,EAASb,KAAKonG,kBAEjD,IAAIsjI,EAAY7pO,EAASb,KAAK07L,UAAUp5L,QAAO,SAAAkL,GAAC,MAAqB,UAAjBA,EAAEm9N,UAAsB,IACxEC,EAAuB/pO,EAASb,KAAK07L,UAAUp5L,QAAO,SAAAkL,GAAC,MAAqB,aAAjBA,EAAEm9N,YAA8C,UAAjBn9N,EAAEm9N,UAAsB,IAElHC,EAAqB/mO,OAAS,EAC9B8C,EAAGqzM,YAAcz2K,KAAK4qC,IAAI1vE,MAAM8kC,KAAMqnM,EAAqB7qM,KAAI,SAAUsuC,GAAK,OAAOA,EAAE2rI,WAAa,KAEpGrzM,EAAGqzM,YAAc,EAGjB0wB,EAAU7mO,OAAS,EACnB8C,EAAGszM,mBAAqB12K,KAAK4qC,IAAI1vE,MAAM8kC,KAAMmnM,EAAU3qM,KAAI,SAAUsuC,GAAK,OAAOA,EAAE2rI,WAAa,KAEhGrzM,EAAGszM,mBAAqB,EAG5BtzM,EAAGuxN,iBAAkB,EACrBt5N,EAAO4rO,4BAA6B,CACxC,IAAG,SAAuB3pO,GACtBjC,EAAO4rO,4BAA6B,CACxC,GACJ,EAEI5rO,EAAO6/L,eAxnBV,WAEyC0pC,EAAA1pO,MAAC,KAADC,UAAA,CAunBtCmsO,GAGJjsO,EAAOsjF,WAAU,eAAAj+D,GAAA9mB,OAAAC,UAAG,SAAAoE,EAAgB6G,GAAI,IAAAoX,EAAA,OAAAriB,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OACR,OAA5BkJ,EAAGg9E,mBAAoB,EAAKliF,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGlBu1B,EAA0B4wD,iBAAiBv7E,EAAKi2B,YAAW,OAE3D7e,EAAQ9Y,EAAG6gG,wBAAwBhhF,WAAU,SAAAq9D,GAAa,OAAIA,EAAcvlD,aAAej2B,EAAKi2B,UAAU,IAChH33B,EAAG6gG,wBAAwB3hF,OAAOpG,EAAO,GACzC7gB,EAAO+kF,mBAAoB,EAAMliF,EAAAhE,KAAA,gBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAEjC7C,EAAO+kF,mBAAoB,EAAM,yBAAAliF,EAAAjD,OAAA,GAAAgD,EAAA,kBAExC,gBAAA+4C,GAAA,OAAAt2B,EAAAxlB,MAAA,KAAAC,UAAA,EAZgB,GAcjBE,EAAOwjF,aAAY,eAAAh+D,GAAAjnB,OAAAC,UAAG,SAAA6K,EAAgBI,GAAI,IAAAxH,EAAA,OAAAzD,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OACV,OAA5BkJ,EAAGg9E,mBAAoB,EAAKr7E,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAGDu1B,EAA0B8wC,mBAAmBz7D,EAAKi2B,YAAW,OAA9Ez9B,EAAQyH,EAAA3K,KACdwsC,EAAUC,OAAOvpC,EAASb,KAAMqI,EAAK07D,UACrCnlE,EAAO+kF,mBAAoB,EAAMr7E,EAAA7K,KAAA,gBAAA6K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEjC1J,EAAO+kF,mBAAoB,EAAM,yBAAAr7E,EAAA9J,OAAA,GAAAyJ,EAAA,kBAExC,gBAAAyzC,GAAA,OAAAt3B,EAAA3lB,MAAA,KAAAC,UAAA,EAVkB,GAYnBE,EAAO+1B,YAAW,eAAA1P,GAAA9nB,OAAAC,UAAG,SAAAkM,EAAgBpB,EAAOksB,GAAS,IAAAW,EAAA,OAAA33B,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OAQd,OAP/Bs3B,EAAK,IAAIxsB,SAEbL,EAAMtG,SAAQ,SAAUyG,EAAMuX,GAC1BmV,EAAGrsB,OAAOR,EAAM0X,GAAGvX,KAAKM,KAAMT,EAAM0X,GAAGvX,KAC3C,IAEA0sB,EAAGrsB,OAAO,WAAY,aACtBqsB,EAAGrsB,OAAO,aAAc0rB,GAAW7qB,EAAA9L,KAAA,EAE7Bu1B,EAA0BgC,eAAeD,GAAG,wBAAAxrB,EAAA/K,OAAA,GAAA8K,EAAA,KACrD,gBAAAqyC,EAAAK,GAAA,OAAA/2B,EAAAxmB,MAAA,KAAAC,UAAA,EAXiB,GAebE,EAAO0sH,gBAAe1sH,EAAO0sH,cAAgB,IAElD1sH,EAAOksO,6BAA+B,WAElC91N,EAAUvU,KAAK,CACX0X,YAAa,mGACbC,WAAY2yN,GACZxyN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAOosO,qCAAuC,WAE1Ch2N,EAAUvU,KAAK,CACX0X,YAAa,2GACbC,WAAY6yN,GACZ1yN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAOssO,mCAAqC,WAExCl2N,EAAUvU,KAAK,CACX0X,YAAa,oHACbC,WAAY+yN,GACZ5yN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAOwsO,gCAAkC,WAErCp2N,EAAUvU,KAAK,CACX0X,YAAa,sGACbC,WAAYizN,GACZ9yN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAO0sO,+BAAiC,WAEpCt2N,EAAUvU,KAAK,CACX0X,YAAa,qGACbC,WAAYmzN,GACZhzN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAO0iI,0BAA4B,SAAU1T,GACzChvH,EAAO0sH,cAAgB1sH,EAAO0sH,cAAchpH,QAAO,SAAAorH,GAAM,OAAIA,EAAOjhF,iBAAmBmhF,CAAc,IAE9E,SAAnBA,EAA2BhvH,EAAO2iI,kBAAmB,EAC7B,eAAnB3T,EAAiChvH,EAAO6iI,wBAAyB,EAC9C,YAAnB7T,EAA8BhvH,EAAO8iI,qBAAsB,EACxC,WAAnB9T,IAA6BhvH,EAAO+iI,oBAAqB,EACtE,EAGA/iI,EAAO4sO,eAAiB,WAAY,IAAAC,EAGJ,QAAxBA,EAAA9kO,EAAG0mD,6BAAqB,IAAAo+K,GAAxBA,EAA0B5nO,QAAU8C,EAAG+gO,2BAClC/gO,EAAGozM,aAAa/zJ,SAAS,gCAC1Br/C,EAAGozM,cAAgB,8BAEvBpzM,EAAG0mD,sBAAsBzrD,SAAQ,SAAAiM,GACxBlH,EAAGozM,aAAa/zJ,SAASn4C,EAASrN,QACnCmG,EAAGozM,cAAgBlsM,EAASrN,KAAO,IAE3C,KAGJ5B,EAAO+yC,cAAgB,IAAIlpC,EAC3B,IAAIg6M,EAAe/D,EAAqCjS,aAAa9lM,GAAI,GAErE+kO,EAAmBprO,QAAQmE,KAAKg+M,GAEpCprB,EAAiCowB,kBAAkBikB,EAAkB/kO,EAAGiiN,eAExEhK,EAAsCwT,oBAAoBsZ,GAC1DA,EAAiBjI,gBAAkB7kO,EAAO6kO,gBAC1CiI,EAAiBj3K,QAAU71D,EAAO0sH,cAClCogH,EAAiBpqJ,eAAiB1iF,EAAO+H,GAAG26E,eAAiB,IAAIz6E,KAAKjI,EAAO+H,GAAG26E,gBAAgBsuE,cAAgB,KAG5GhxJ,EAAO6/L,cACP7/L,EAAO+sO,sBAAsBD,GAE7B9sO,EAAOymO,UAAUqG,EAEzB,EAEA9sO,EAAOymO,UAAS,eAAAuG,GAAAzuO,OAAAC,UAAG,SAAA8uB,EAAgBmM,GAAO,IAAAwzM,EAAA,OAAAzuO,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,OACK,GAA3CmB,EAAO+yC,cAAgB,IAAIlpC,GACN,QAAjBojO,EAAAxzM,EAAQ+gL,iBAAS,IAAAyyB,GAAM,QAANA,EAAjBA,EAAmBn4K,YAAI,IAAAm4K,OAAA,EAAvBA,EAAyB33L,SAAUt1C,EAAO+H,GAAGipN,wBAAuB,CAAAzjM,EAAA1uB,KAAA,gBAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAE1D+G,IAAKpF,EAAc4pC,iBAAiB,UA71BzB,4PA61B4D,KAAM,WAAU,OAC7FpqC,EAAOktO,cAAczzM,GAASlM,EAAA1uB,KAAA,gBAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAE9BvtB,EAAO+yC,cAAcnqC,cAAe,EAAM,QAAA2kB,EAAA1uB,KAAA,iBAG9CmB,EAAOktO,cAAczzM,GAAS,yBAAAlM,EAAA3tB,OAAA,GAAA0tB,EAAA,kBAErC,gBAAA4xB,GAAA,OAAA8tL,EAAAntO,MAAA,KAAAC,UAAA,EAZe,GAchBE,EAAOktO,cAAa,eAAAC,GAAA5uO,OAAAC,UAAG,SAAAkvB,EAAgB+L,GAAO,IAAAlE,EAAAn0B,EAAAo0B,EAAA,OAAAh3B,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAEjBoB,EAAMge,KAAK3b,OAAS,+BAAgCm3B,GAAQ,OAAAlE,EAAA5H,EAAA5uB,KAA3EqC,EAAIm0B,EAAJn0B,KAENpB,EAAO+yC,cAAcnqC,cAAe,EAEhCb,EAAG8tB,YAAYC,KAAKxsB,MAAMrE,OAAS,IAC7BuwB,EAAYp0B,EAClBpB,EAAO+1B,YAAYhuB,EAAG8tB,YAAYC,KAAKxsB,MAAOksB,IAElDh1B,EAAc6pC,wBAAwB,UAAW,iDACjD9pC,EAAUyD,KAAK,4CAA4CS,OAAO,CAAC,GAAGkpB,EAAA9uB,KAAA,iBAAA8uB,EAAA/uB,KAAA,GAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAEtE3tB,EAAO+yC,cAAcnqC,cAAe,EACpCpI,EAAc2d,iBAAiBwP,EAAAnsB,GAAMJ,MAAM,yBAAAusB,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAElD,gBAAA2xB,GAAA,OAAA8tL,EAAAttO,MAAA,KAAAC,UAAA,EAhBmB,GAmBpBE,EAAO+sO,sBAAwB,SAAUtzM,GACrCz5B,EAAO+yC,cAAgB,IAAIlpC,EAG3B5J,EAAM+J,IAAI1H,OAAS,gCAAkCtC,EAAO6/L,cAAc7iL,GAAK,YAAchd,EAAO6/L,cAAcv4I,QAAS7tB,GAAS32B,MAAK,SAAUb,GAAU,IAAAmrO,GAEvI,QAAdA,EAAArlO,EAAG8tB,mBAAW,IAAAu3M,GAAM,QAANA,EAAdA,EAAgBt3M,YAAI,IAAAs3M,GAAO,QAAPA,EAApBA,EAAsB9jO,aAAK,IAAA8jO,OAAA,EAA3BA,EAA6BnoO,QAAS,GACtCjF,EAAO+1B,YAAYhuB,EAAG8tB,YAAYC,KAAKxsB,MAAOtJ,EAAO6/L,cAAc7iL,IAGvExc,EAAc6pC,wBAAwB,UAAW,kCACjD9pC,EAAUyD,KAAK,4CAA4CS,OAAO,CAAC,EACvE,IAAG,SAAuBxC,GACtBjC,EAAO+yC,cAAcnqC,cAAe,EACpCpI,EAAc2d,iBAAiBlc,EAASb,KAC5C,GACJ,CAEJ,CCh5B6B,SAAAhD,GAAU4B,EAAQoW,EAAW0pM,EAAsClzF,EAAuB27G,EAAmCC,EAAkCC,EAAmC1oB,EAAoCQ,EAAwCP,EAAuCvnB,EAAkC2nB,EAAoCD,EAAqCF,EAA0CK,EAAqCE,EAAuCN,EAAoCG,EAAqCK,EAAoCC,EAAoB+nB,EAAetoO,EAAYqN,EAAqBxN,EAAOC,EAASK,EAAWC,EAAeigN,EAA6C0iB,EAA6B/uM,EAA2BmX,EAAW9qC,GAE13B,IAAIsH,EAAK/H,EAAO+H,GAAK,CAAC,EAqBC,SAAArH,IAuBtB,OAvBsBA,GAAAnC,OAAAC,UAAvB,SAAAkvB,IAAA,IAAAvsB,EAAA6e,EAAAqtN,EAAAC,EAAAC,EAAA3+K,EAAA,OAAApwD,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA9uB,KAAA,EACiC4B,EAAyBwf,yBAAwB,OAawD,GAbxD9e,EAAAwsB,EAAA5uB,KAAlEihB,EAAM7e,EAAZC,KACFisO,EAAyBrtN,EAAOoE,MAAK,SAAA3R,GAAI,MAAkB,oDAAdA,EAAK7Q,MAA8E,OAAhB6Q,aAAI,EAAJA,EAAMrE,MAAa,IAACk/N,EACrGttN,EAAOlV,MAAK,SAAA2H,GAAI,MAAkB,6CAAdA,EAAK7Q,IAAmD,IAAlG2rO,EAAiBD,EAAxBl/N,MAGNrG,EAAGiY,OAASA,EACZjY,EAAGylO,2BAA4B,EAC/BzlO,EAAG0lO,6BAA8B,EAGjC1lO,EAAGuzM,mBAAqBt7L,EAAOoE,MAAK,SAAA3R,GAAI,MAAkB,0BAAdA,EAAK7Q,MAAoD,OAAhB6Q,aAAI,EAAJA,EAAMrE,MAAa,IACxGpO,EAAO6oO,eAA4F,MAA3E7oN,EAAOlV,MAAK,SAAA2H,GAAI,MAAkB,gCAAdA,EAAK7Q,IAAsC,IAAEwM,MACzFrG,EAAG+gO,yBAA2B9oN,EAAOoE,MAAK,SAAA3R,GAAI,MAAkB,gCAAdA,EAAK7Q,MAAyD,MAAf6Q,EAAKrE,KAAa,IACnHpO,EAAO64L,+BAAiC74K,EAAOoE,MAAK,SAAA3R,GAAI,MAAkB,sCAAdA,EAAK7Q,MAAgE,OAAhB6Q,aAAI,EAAJA,EAAMrE,MAAa,KAEhIi/N,EAAwB,CAAF1/M,EAAA9uB,KAAA,gBAAA8uB,EAAA9uB,KAAA,GACAoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,gCAA8B,QAAvEssD,EAAajhC,EAAA5uB,KACbiB,EAAOmqM,oBAAsBv7I,EAAcxtD,KAAK0J,MAAK,SAAAmE,GAAQ,OAAIA,EAAS+N,KAAOuwN,CAAiB,IAAE,QAQzF9tO,KAAKC,MAAMP,aAAaC,QAAQ,wBAClC0L,MAAK,SAAA2kE,GAAC,OAAmB,QAAfA,EAAEvsE,QAAkB,KACtC3C,EAAUyD,KAAK,QAmJpB/D,EAAM4K,IAAIvI,OAAS,oCAAoCQ,MAAK,SAAUb,GAElEA,EAASb,KAAK4B,SAAQ,SAAUC,EAAK+d,GACjC/d,EAAI+6B,UAAW,CACnB,IACA/7B,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,eAClDpB,EAAO+H,GAAG2sC,sBAAwBzyC,EAASb,KAC3CpB,EAAOujN,wBAGHnjN,EAAWy/L,eACXpH,EAAiC2pB,oBAAoBpiN,GAIzD,IAAIgpO,EAAgBR,EAAiCpT,eAAertN,EAAGmiM,WAAYniM,EAAGmoM,cAAe9vM,EAAWy/L,eAchH,GAbA7/L,EAAO+H,GAAG2sC,sBAAsB1xC,SAAQ,SAAA2xC,GACpC30C,EAAO+H,GAAG0oM,6BAA6B97J,EAAYE,aAAe,GAClE70C,EAAO+H,GAAG2oM,gCAAgC/7J,EAAYE,aAAe,GACrE70C,EAAO+H,GAAGopM,sBAAsBx8J,EAAYE,aAAe,GACtDm0L,EAAc5kN,MAAK,SAAAyvM,GAAI,OAAIA,EAAKp8I,QAAUo8I,EAAKp8I,SAAW9iC,EAAYE,WAAW,MAClF70C,EAAOuuF,MAAQg6I,EAAkCtU,kBAAkBt/K,EAAaq0L,GAExF,IACKhpO,EAAOuuF,QACRvuF,EAAOuuF,MAAQi6I,EAAiCpT,eAAertN,EAAGmiM,WAAYniM,EAAGmoM,cAAe9vM,EAAWy/L,gBAI3G7/L,EAAO+H,GAAGuzM,mBAAoB,CAC9B,IAAM2tB,EAAwBjpO,EAAOuuF,MAAM3mE,WAAU,SAAAisM,GAAI,MAAmB,kBAAfA,EAAK9nN,KAAyB,IAC3F/L,EAAOuuF,MAAMtnE,OAAOgiN,EAAuB,EAC/C,CACJ,IA1LkB,yBAAAt7M,EAAA/tB,OAAA,GAAA8tB,EAAA,MACrB7tB,MAAA,KAAAC,UAAA,CAMA,SAEcspO,IAAuB,OAAAC,EAAAxpO,MAAC,KAADC,UAAA,UAAAupO,IAOrC,OAPqCA,GAAA9qO,OAAAC,UAAtC,SAAAwvB,IAAA,IAAAs7M,EAAA,OAAA9qO,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,QACQyqO,EAAoB33N,OAAO5J,EAAGiY,OAAOlV,MAAK,SAAAukJ,GAAa,MAA2B,6BAAvBA,EAAcztJ,IAAmC,IAAEwM,UAG9GrG,EAAG26E,eAAiB,IAAIz6E,KACxBF,EAAG26E,eAAe7Y,QAAQ9hE,EAAG26E,eAAe5Y,UAAYw/J,IAC3D,wBAAAr7M,EAAAruB,OAAA,GAAAouB,EAAA,MACJnuB,MAAA,KAAAC,UAAA,CAEyC,SAAAypO,IAIzC,OAJyCA,GAAAhrO,OAAAC,UAA1C,SAAAk/C,IAAA,IAAAz7C,EAAA,OAAAzD,UAAA,SAAAm/C,GAAA,cAAAA,EAAA/+C,KAAA++C,EAAA9+C,MAAA,cAAA8+C,EAAA9+C,KAAA,EAC2BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,iCAAAC,OAAgCvC,EAAO6/L,cAAc7iL,GAAE,aAAAza,OAAYvC,EAAO6/L,cAAcv4I,UAAU,OAAtIrlD,EAAQ07C,EAAA5+C,KACdgJ,EAAG6gG,wBAA0B3mG,EAASb,KAAK+iF,YAC3CnkF,EAAO+H,GAAG26E,eAAiBzgF,EAASb,KAAKshF,eAAiB,IAAIz6E,KAAKhG,EAASb,KAAKshF,gBAAkB,KAAK,wBAAA/kC,EAAA/9C,OAAA,GAAA89C,EAAA,MAC3G79C,MAAA,KAAAC,UAAA,CASD,SAEe0pO,IAA0B,OAAAC,EAAA5pO,MAAC,KAADC,UAAA,UAAA2pO,IAKxC,OALwCA,GAAAlrO,OAAAC,UAAzC,SAAAo/C,IAAA,IAAA37C,EAAAynO,EAAA,OAAAlrO,UAAA,SAAAq/C,GAAA,cAAAA,EAAAj/C,KAAAi/C,EAAAh/C,MAAA,cAAAg/C,EAAAh/C,KAAA,EACyB+tH,EAAsB4B,4BAA4B,OAAM,OAAzEvsH,EAAQ47C,EAAA9+C,KACN2qO,EAA0BznO,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,wBAAhBA,EAAOpe,IAA8B,IAElGmG,EAAG4hO,oBAAwD,MAAlCD,EAAwBt7N,MAA6B,wBAAAyvC,EAAAj+C,OAAA,GAAAg+C,EAAA,MACjF/9C,MAAA,KAAAC,UAAA,CAhFDE,EAAO2oO,IAAMnoO,EACbR,EAAOQ,cAAgBA,EACvBR,EAAO6kO,gBAAkB,GACzB98N,EAAG6gG,wBAA0B,GAC7B5oG,EAAO6oO,gBAAiB,EACxB7oO,EAAO64L,gCAAiC,EAGxCprL,EAAoB8F,cAAczQ,MAAK,SAAUqO,GAC7CnR,EAAO8e,SAAW3N,EAElB,IAAIqC,EAAiBhT,EAAc4Q,qCAAqCpR,EAAO8e,UAC/E9e,EAAOmrD,SAAW33C,EAClBxT,EAAOorD,gBAAkB53C,EAAe63C,SACxCrrD,EAAOwH,WAAagM,EAAe5R,IAEvC,IAEW,WAEYlB,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,GAgDAlE,EAAOw0C,mBAAqB,SAAUC,GAClC,OAAOz0C,EAAO2oO,IAAIn0L,mBAAmBC,EAAe1sC,EAAG2sC,sBAC3D,EAEA10C,EAAO40C,eAAiB,SAAUnL,GAC9B,OAAOzpC,EAAO2oO,IAAI/zL,eAAenL,EAAW1hC,EAAG2sC,sBACnD,EAUA10C,EAAOyjN,aAAc,EAErB17M,EAAG2lO,aAAe,KAClB3lO,EAAGgnM,gBAAkB,KAErBhnM,EAAGqzM,YAAc,EACjBrzM,EAAGszM,mBAAqB,EAExBr7M,EAAO4oO,OAAQ,EACf7gO,EAAG2sC,sBAAwB,GAC3B3sC,EAAGiiN,cAAgB,GAGnBhqN,EAAO+H,GAAGopM,sBAAwB,GAClCnxM,EAAO+H,GAAGyhN,uBAAyB,GACnCxpN,EAAO+H,GAAGqoN,kBAAoB,GAI9BpwN,EAAO+H,GAAG0oM,6BAA+B,GACzCzwM,EAAO+H,GAAGk9M,8BAAgC,GAE1CjlN,EAAO+H,GAAG2oM,gCAAkC,GAC5C1wM,EAAO+H,GAAGq9M,iCAAmC,GAG7Cr9M,EAAG6pM,uBAAyB,GAC5B7pM,EAAGw8M,wBAA0B,GAC7Bx8M,EAAG+pM,wBAA0B,GAC7B/pM,EAAG28M,yBAA2B,GAC9B38M,EAAGiqM,0BAA4B,GAC/BjqM,EAAG88M,2BAA6B,GAGhC98M,EAAG0hM,uBAAyB,GAC5B1hM,EAAGq0N,uBAAyB,GAC5Br0N,EAAG2hM,wBAA0B,GAC7B3hM,EAAGwiM,mBAAqB,GACxBxiM,EAAGs0N,mBAAqB,GACxBt0N,EAAG6hM,6BAA+B,GAClC7hM,EAAG4hM,4BAA8B,GAGjC5hM,EAAGyjM,0BAA4B,GAC/BzjM,EAAG0xN,0BAA4B,GAC/B1xN,EAAG0jM,2BAA6B,GAChC1jM,EAAGokM,sBAAwB,GAC3BpkM,EAAGgiO,sBAAwB,GAC3BhiO,EAAG+jM,uBAAyB,GAC5B/jM,EAAG4jM,gCAAkC,GACrC5jM,EAAG2jM,+BAAiC,GAGpC3jM,EAAG8mM,4BAA8B,GACjC9mM,EAAGk8M,6BAA+B,GAClCl8M,EAAGqmM,kCAAoC,GACvCrmM,EAAGs8M,mCAAqC,GACxCt8M,EAAG6kN,0BAA4B,GAC/B7kN,EAAG4lO,iCAAkC,EAGrC5lO,EAAGw9M,sCAAwC,GAC3Cx9M,EAAGysM,qCAAuC,GAC1CzsM,EAAGy9M,2BAA6B,GAChCz9M,EAAG4sM,0BAA4B,GAG/B5sM,EAAG29M,gCAAkC,GACrC39M,EAAGwtM,+BAAiC,GACpCxtM,EAAG0hN,6BAA+B,GAGlC1hN,EAAGi+M,uBAAyB,GAC5Bj+M,EAAGuxM,sBAAwB,GAG3BvxM,EAAGiiO,uBAAyB,GAC5BjiO,EAAGkiO,wBAA0B,GAC7BliO,EAAG4hN,iCAAmC,GACtC5hN,EAAGsvM,gCAAkC,GACrCtvM,EAAGwvM,4BAA8B,GACjCxvM,EAAG6hN,6BAA+B,GAGlC7hN,EAAGw2M,sBAAwB,GAC3Bx2M,EAAGy2M,uBAAyB,GAE5Bz2M,EAAGkuM,oBAAsB,GAEzBluM,EAAGquM,0BAA4B,GAC/BruM,EAAG02M,2BAA6B,GAGhC12M,EAAGqwM,yBAA2B,GAC9BrwM,EAAG40M,0BAA4B,GAC/B50M,EAAGswM,yBAA2B,GAC9BtwM,EAAG80M,0BAA4B,GAG/B90M,EAAGo+M,wCAA0C,GAC7Cp+M,EAAGwyM,uCAAyC,GAE5CxyM,EAAGozM,aAAe,GAGlBn7M,EAAO+H,GAAG+sD,KAAO,CAAC,EAElB90D,EAAO+yC,cAAgB,CAAC,EAExB,IAAImU,EAAe3mD,EAAUyD,OAAOkD,MAAM,KAC1Ca,EAAGmiM,WAAahjJ,EAAa,GAuC7BlnD,EAAO+qO,2BAA6B,iDAEpChjO,EAAGygM,iBAAmB,SAAUD,GAC5BvoM,EAAO+H,GAAGwgM,WAAaA,CAC3B,EAEAxgM,EAAG6lO,qBAAuB,SAAUj5L,GAChC,IAAMk5L,EAAUrtO,EAAcgjC,aAAamR,EAAY/yC,MACvD,QAAImG,EAAGwgM,aACCxgM,EAAGwgM,WAAWslC,KACdl5L,EAAY3W,UAAW,GAEpBj2B,EAAGwgM,WAAWslC,GAG7B,EAEA9lO,EAAG+lO,gBAAkB,WACZ/lO,EAAG0lO,6BACJ1lO,EAAGygM,iBAAiB,KAE5B,EAGAzgM,EAAGy+N,kBAAiB,eAAA1zN,GAAAvU,OAAAC,UAAG,SAAAC,EAAgBk2C,GAAW,OAAAn2C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACpB,GAA1BkJ,EAAGuxN,gBAAkB,MACjB3kL,EAAY3W,SAAU,CAAFr/B,EAAAE,KAAA,SA+CnB,GA9CG81C,EAAY33B,IAAMkwL,KAClB+S,EAAyC+H,aAAahoN,EAAQ,KAAM,KAAM,MAC1EA,EAAO+tO,+BAA+BjrO,MAAK,SAAUkrO,GACjD,OAAOjmO,EAAG4lO,gCAAkCK,CAChD,KAGAr5L,EAAY33B,IAAMmwL,KAClBgT,EAAoC8H,QAAQjoN,EAAQ20C,EAAa,MAEjEwuL,EAA4B+G,oBAAoBv1L,EAAYjL,WAAW5mC,MAAK,SAAUb,GAClFjC,EAAO+H,GAAGoiO,oBAAsB,CAAC,EACjCnqO,EAAO+H,GAAGoiO,oBAAoBx1L,EAAYE,aAAe5yC,EAASb,IACtE,IAAE,OAAO,SAAUa,GACfjC,EAAO+H,GAAGoiO,oBAAsB,CAAC,CACrC,KAGAx1L,EAAY33B,IAAM+vL,KAClBsT,EAAoC8H,QAAQnoN,EAAQ,MAEpDmjO,EAA4B+G,oBAAoBv1L,EAAYjL,WAAW5mC,MAAK,SAAUb,GAClFjC,EAAO+H,GAAGqiO,oBAAsB,CAAC,EACjCpqO,EAAO+H,GAAGqiO,oBAAsBnoO,EAASb,IAC7C,IAAE,OAAO,SAAUa,GACfjC,EAAO+H,GAAGqiO,oBAAsB,CAAC,CACrC,KAGAz1L,EAAY33B,IAAMywL,KAClBiT,EAAmC6H,OAAOvoN,EAAQ,MAElDmjO,EAA4B+G,oBAAoBv1L,EAAYjL,WAAW5mC,MAAK,SAAUb,GAClFjC,EAAO+H,GAAGsiO,mBAAqB,CAAC,EAChCrqO,EAAO+H,GAAGsiO,mBAAqBpoO,EAASb,IAC5C,IAAE,OAAO,SAAUa,GACfjC,EAAO+H,GAAGsiO,mBAAqB,CAAC,CACpC,KAGA11L,EAAY33B,IAAMgwL,IAClBoT,EAAmC9T,QAAQtsM,EAAQ,MAGnD20C,EAAY33B,IAAMiwL,IAClBmT,EAAmC3T,WAAWzsM,EAAQ,MAGtD20C,EAAY33B,IAAMowL,GAAqB,CAAAzuM,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,GACjC0hN,EAAuC6H,WAAWpoN,EAAQ,MAAK,QAGrE20C,EAAY33B,IAAMqwL,IAClBoT,EAA4C4H,gBAAgBroN,EAAQ,MAGpE20C,EAAY33B,IAAMswL,IAClByS,EAAmC7B,OAAOl+M,EAAQ,MAGlD20C,EAAY33B,IAAMuwL,IAClB+S,EAAoCgI,QAAQtoN,EAAQ,MAGpD20C,EAAY33B,KAAOwwL,IACnBgT,EAAsC/E,UAAUz7M,EAAQ,MAGxD20C,EAAY33B,KAAO0wL,IACnBwS,EAAmCgI,OAAOloN,EAAQ20C,EAAa,MAG/DA,EAAY33B,KAAO2wL,IACnBgT,EAAmB6H,eAAexoN,EAAQ20C,EAAa,MAC1D,QAGL30C,EAAOujN,wBAEPvjN,EAAOwjN,qBAAqB7uK,GAAa,yBAAAh2C,EAAAiB,OAAA,GAAAnB,EAAA,KAC5C,gBAAA4O,GAAA,OAAAyF,EAAAjT,MAAA,KAAAC,UAAA,EAnFmB,GAqFpBE,EAAOwjN,qBAAoB,eAAAzwM,GAAAxU,OAAAC,UAAG,SAAA0C,EAAgByzC,GAAW,IAAA21L,EAAAC,EAAA,OAAA/rO,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAAAwC,EAAAG,GAC7CmzC,EAAYK,YAAW3zC,EAAAxC,KACtB,OADsBwC,EAAAG,GAClB,EASJ,QATIH,EAAAG,GASC,EAOL,OAPKH,EAAAG,GAOD,EAGJ,QAHIH,EAAAG,GAGC,GAGL,QAHKH,EAAAG,GAGA,GAUL,OAVKH,EAAAG,GAUD,GAGJ,OAHIH,EAAAG,GAGA,GAGJ,QAHIH,EAAAG,GAGC,GAGL,UAHKH,EAAAG,GAGE,GAGP,OAHOH,EAAAG,GAGH,GAGJ,OAHIH,EAAAG,GAGA,mBAxC6F,OAN7FuG,EAAGktM,gBACEq1B,EAAiBtqO,EAAOuuF,MAAM3mE,WAAU,SAAAisM,GAAI,MAAmB,qBAAfA,EAAK9nN,KAA4B,MACjE,GAClB/L,EAAOuuF,MAAMtnE,OAAOqjN,EAAgB,GAG5C/B,EAAkC3T,wBAAwB7sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,mBAOjG,MAJ+B,QAA5B2mC,EAAYE,YACZ0zL,EAAkC/T,qBAAqBzsN,EAAG2sC,sBAAuB10C,EAAOuuF,OAExFg6I,EAAkCpT,wBAAwBptN,EAAG2sC,sBAAuB10C,EAAOuuF,MAAO55C,GACrGtzC,EAAA2M,OAAA,mBAGmG,OAApGu6N,EAAkChU,0BAA0BxsN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGL,OAA/Fu6N,EAAkC9T,qBAAqB1sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,2BAAA3M,EAAAxC,KAAA,GAGzF2qO,IAA4B,QAO6D,OAN1FzhO,EAAG4hO,sBACEY,EAAsBvqO,EAAOuuF,MAAM3mE,WAAU,SAAAisM,GAAI,MAAmB,0DAAfA,EAAK9nN,KAAiE,MACtG,GACvB/L,EAAOuuF,MAAMtnE,OAAOsjN,EAAqB,GAGjDhC,EAAkC7T,qBAAqB3sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGG,OAAlGu6N,EAAkC5T,wBAAwB5sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGJ,OAA9Fu6N,EAAkCzT,oBAAoB/sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGC,OAA/Fu6N,EAAkCxT,qBAAqBhtN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGE,OAAjGu6N,EAAkCvT,uBAAuBjtN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGH,OAA9Fu6N,EAAkCtT,oBAAoBltN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGQ,OAAtGu6N,EAAkCrT,4BAA4BntN,EAAG2sC,sBAAuB10C,EAAOuuF,OAAOltF,EAAA2M,OAAA,oBAGS,OAA/Gu6N,EAAkCpT,wBAAwBptN,EAAG2sC,sBAAuB10C,EAAOuuF,MAAO55C,GAAatzC,EAAA2M,OAAA,qCAAA3M,EAAAzB,OAAA,GAAAsB,EAAA,KAG1H,gBAAAgI,GAAA,OAAA6J,EAAAlT,MAAA,KAAAC,UAAA,EAxD0B,GA0D3BE,EAAOujN,sBAAwB,WAC3Bx7M,EAAG6wN,kBAAoB6P,EAAkCllB,sBAAsBx7M,EAAG2sC,sBACtF,EAEA10C,EAAO+tO,6BAA+B,WAClC,OAAO9tO,EAAM4K,IAAIvI,OAAS,uDAAuDQ,MAAK,SAAUb,GAC5F,OAAyB,IAAlBA,EAASb,IACpB,GACJ,EAGApB,EAAOi4N,aAAe,SAAUlsN,GAC5B,OAAO08N,EAAkCxQ,aAAalsN,EAAO28N,EAAcgC,SAAU1qO,EACzF,EAEAA,EAAOy4N,sBAAwB,SAAUhhJ,GACrC,OAAOgxJ,EAAkChQ,sBAAsBhhJ,EAAQixJ,EAAcgC,SAAU1qO,EAAOuuF,MAC1G,EAEAvuF,EAAO64N,oBAAsB,WACzB,IAAIhF,EAAO4U,EAAkC5P,oBAAoB74N,EAAOuuF,MAAOm6I,EAAcgC,UAC7F1qO,EAAO2qO,cAAc9W,EAAK9nN,MAC9B,EAEA/L,EAAO84N,wBAA0B,WAC7B,IAAIjF,EAAO4U,EAAkC3P,wBAAwB94N,EAAOuuF,MAAOm6I,EAAcgC,UACjG1qO,EAAO2qO,cAAc9W,EAAK9nN,MAC9B,EAEA/L,EAAO4qO,uBAAyB,WAC5B,OAAOnC,EAAkC1P,qBAAqB2P,EAAcgC,SAChF,EAEA1qO,EAAO2qO,cAAgB,SAAUE,GAC7B,IAAI3S,EAAiBwQ,EAAcgC,SAC/B/R,EAAoBT,EAAeS,oBAEnC9E,EADeqE,EAAeG,kBACVM,EAAoB,GACxB,GAAhB9E,EAAK2E,SACLx4N,EAAO6tM,aAAagmB,EAAK9nN,MAAO8+N,GAEpC3S,EAAe4S,KAAKD,EACxB,EAGA7qO,EAAO6tM,aAAY,eAAA5gM,GAAA1O,OAAAC,UAAG,SAAAwD,EAAgBonN,EAAUD,GAAM,OAAA3qN,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAElDkJ,EAAG87M,aAAe/D,EAAqCjS,aAAa9lM,GAAI,GACxE/H,EAAOua,WAAW,gCAAiC,CAAE6uM,SAAUA,EAAUD,OAAQA,IAEjE,0BAAZC,GACwB,MAApBrhN,EAAGiiN,eACHjiN,EAAGiiN,cAAchnN,SAAQ,SAAUmyC,GAET,MAAlBA,EAAOiN,SACiB,MAApBjN,EAAO8X,WACPllD,EAAG0hM,uBAAuBzmM,SAAQ,SAAUk8B,GAExC,GAAsB,MAAlBA,EAAK+tB,UAAmB,CACxB,IAAIC,EAAUhuB,EAAK+tB,UAAUniD,MAAK,SAAUoiD,GACxC,OAAOA,EAAQM,WAAarY,EAAOiN,QAAQoL,SAC/C,IACAN,EAAQ14C,UAAY2gC,EAAO3gC,UAC3B04C,EAAQx4C,QAAUygC,EAAOzgC,OAC7B,CACJ,IAIiB,SAArBygC,EAAOjL,WAAwBniC,EAAGwtM,+BAA+BtwM,OAAS,GAC1E8C,EAAGwtM,+BAA+BvyM,SAAQ,SAAAo7C,GAClCA,EAAE6oC,SAAW9xC,EAAO8xC,SACpB7oC,EAAE5pC,UAAY2gC,EAAO3gC,UACrB4pC,EAAE1pC,QAAUygC,EAAOzgC,QAE3B,GAGR,IAIM,0BAAVy0M,GAAgD,WAAVA,IAExB,WAAVA,IAEAnpN,EAAOyjN,aAAc,EACrBzjN,EAAO43L,qBAAsD,GAA/B53L,EAAO43L,qBAA4B,EAAI,EAErE53L,EAAOirO,sBAAwB,IAAIhjO,KACmD,MAAlFF,EAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,gCAAhBA,EAAOpe,IAAsC,IAAEwM,OACxEg7N,KAIRtpB,EAAqCvE,eAAexzM,EAAG87M,cAAc/gN,MAAK,SAAUb,GAChF8F,EAAGgnM,gBAAkB9sM,EAASb,KAE9Bq3L,EAAiCywB,gBAAgBC,EAAQC,EAAUrhN,EAAI/H,EAAQ+H,EAAGgnM,iBAAiBp8J,MAAK,WACpG3yC,EAAOyjN,aAAc,CACzB,IAGiC,MAA7B17M,EAAG0hM,wBAAkC1hM,EAAG0hM,uBAAuBxkM,OAAS,GAAqC,MAAhC8C,EAAGyjM,2BAAqCzjM,EAAGyjM,0BAA0BvmM,OAAS,EAC3JjF,EAAO4oO,OAAQ,EAEf5oO,EAAO4oO,OAAQ,CAGvB,KAKU,iBAAVzf,GACAphN,EAAGmjO,2BAA2BnjO,EAAG87M,cACpC,wBAAA3hN,EAAAtC,OAAA,GAAAoC,EAAA,KAEJ,gBAAAmH,EAAAmK,GAAA,OAAArG,EAAApN,MAAA,KAAAC,UAAA,EAzEkB,GA2EnBE,EAAOiuO,qBAAsB,EAIxBjuO,EAAO0sH,gBAAe1sH,EAAO0sH,cAAgB,IAElD1sH,EAAOksO,6BAA+B,WAElC91N,EAAUvU,KAAK,CACX0X,YAAa,mGACbC,WAAY2yN,GACZxyN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAOosO,qCAAuC,WAE1Ch2N,EAAUvU,KAAK,CACX0X,YAAa,2GACbC,WAAY6yN,GACZ1yN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAOssO,mCAAqC,WAExCl2N,EAAUvU,KAAK,CACX0X,YAAa,oHACbC,WAAY+yN,GACZ5yN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAOwsO,gCAAkC,WAErCp2N,EAAUvU,KAAK,CACX0X,YAAa,sGACbC,WAAYizN,GACZ9yN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAO0sO,+BAAiC,WAEpCt2N,EAAUvU,KAAK,CACX0X,YAAa,qGACbC,WAAYmzN,GACZhzN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAO0iI,0BAA4B,SAAU1T,GACzChvH,EAAO0sH,cAAgB1sH,EAAO0sH,cAAchpH,QAAO,SAAAorH,GAAM,OAAIA,EAAOjhF,iBAAmBmhF,CAAc,IAE9E,SAAnBA,EAA2BhvH,EAAO2iI,kBAAmB,EAC7B,eAAnB3T,EAAiChvH,EAAO6iI,wBAAyB,EAC9C,YAAnB7T,EAA8BhvH,EAAO8iI,qBAAsB,EACxC,WAAnB9T,IAA6BhvH,EAAO+iI,oBAAqB,EACtE,EAII/iI,EAAO6/L,eAniBV,WAEyC0pC,EAAA1pO,MAAC,KAADC,UAAA,CAkiBtCmsO,GAGJjsO,EAAOsjF,WAAU,eAAAj+D,GAAA9mB,OAAAC,UAAG,SAAAoE,EAAgB6G,GAAI,IAAAoX,EAAA,OAAAriB,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OACR,OAA5BkJ,EAAGg9E,mBAAoB,EAAKliF,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGlBu1B,EAA0B4wD,iBAAiBv7E,EAAKi2B,YAAW,OAE3D7e,EAAQ9Y,EAAG6gG,wBAAwBhhF,WAAU,SAAAq9D,GAAa,OAAIA,EAAcvlD,aAAej2B,EAAKi2B,UAAU,IAChH33B,EAAG6gG,wBAAwB3hF,OAAOpG,EAAO,GACzC7gB,EAAO+kF,mBAAoB,EAAMliF,EAAAhE,KAAA,gBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAEjC7C,EAAO+kF,mBAAoB,EAAM,yBAAAliF,EAAAjD,OAAA,GAAAgD,EAAA,kBAExC,gBAAA+4C,GAAA,OAAAt2B,EAAAxlB,MAAA,KAAAC,UAAA,EAZgB,GAcjBE,EAAOwjF,aAAY,eAAAh+D,GAAAjnB,OAAAC,UAAG,SAAA6K,EAAgBI,GAAI,IAAAxH,EAAA,OAAAzD,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OACV,OAA5BkJ,EAAGg9E,mBAAoB,EAAKr7E,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAGDu1B,EAA0B8wC,mBAAmBz7D,EAAKi2B,YAAW,OAA9Ez9B,EAAQyH,EAAA3K,KACdwsC,EAAUC,OAAOvpC,EAASb,KAAMqI,EAAK07D,UACrCnlE,EAAO+kF,mBAAoB,EAAMr7E,EAAA7K,KAAA,gBAAA6K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEjC1J,EAAO+kF,mBAAoB,EAAM,yBAAAr7E,EAAA9J,OAAA,GAAAyJ,EAAA,kBAExC,gBAAAyzC,GAAA,OAAAt3B,EAAA3lB,MAAA,KAAAC,UAAA,EAVkB,GAYnBE,EAAO+1B,YAAW,eAAA1P,GAAA9nB,OAAAC,UAAG,SAAAkM,EAAgBpB,EAAOksB,GAAS,IAAAW,EAAA,OAAA33B,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OAQd,OAP/Bs3B,EAAK,IAAIxsB,SAEbL,EAAMtG,SAAQ,SAAUyG,EAAMuX,GAC1BmV,EAAGrsB,OAAOR,EAAM0X,GAAGvX,KAAKM,KAAMT,EAAM0X,GAAGvX,KAC3C,IAEA0sB,EAAGrsB,OAAO,WAAY,aACtBqsB,EAAGrsB,OAAO,aAAc0rB,GAAW7qB,EAAA9L,KAAA,EAE7Bu1B,EAA0BgC,eAAeD,GAAG,wBAAAxrB,EAAA/K,OAAA,GAAA8K,EAAA,KACrD,gBAAAqyC,EAAAK,GAAA,OAAA/2B,EAAAxmB,MAAA,KAAAC,UAAA,EAXiB,GAclBE,EAAOkuO,iBAAmB,SAAUz0M,GAEhCz5B,EAAO+yC,cAAgB,IAAIlpC,EAE3B5J,EAAMge,KAAK3b,OAAS,+BAAgCm3B,GAAS32B,KAAI,eAAAkqO,GAAAzuO,OAAAC,UAAC,SAAA8uB,EAAgBrrB,GAAQ,IAAAuzB,EAAA,OAAAh3B,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,OAClFkJ,EAAG8tB,YAAYC,KAAKxsB,MAAMrE,OAAS,IAC7BuwB,EAAYvzB,EAASb,KAC3BpB,EAAO+1B,YAAYhuB,EAAG8tB,YAAYC,KAAKxsB,MAAOksB,IAElDh1B,EAAc6pC,wBAAwB,UAAW,iDACjD9pC,EAAUyD,KAAK,4CAA4CS,OAAO,CAAC,GAAG,wBAAA8oB,EAAA3tB,OAAA,GAAA0tB,EAAA,KAEzE,gBAAA4xB,GAAA,OAAA8tL,EAAAntO,MAAA,KAAAC,UAAA,EARgE,IAS7D,SAAuBmC,GACnBjC,EAAO+yC,cAAcnqC,cAAe,EACpCpI,EAAc2d,iBAAiBlc,EAASb,KAC5C,GACR,EAGApB,EAAO+sO,sBAAwB,SAAUtzM,GACrCz5B,EAAO+yC,cAAgB,IAAIlpC,EAE3B5J,EAAM+J,IAAI1H,OAAS,gCAAkCtC,EAAO6/L,cAAc7iL,GAAK,YAAchd,EAAO6/L,cAAcv4I,QAAS7tB,GAAS32B,MAAK,SAAUb,GAE3I8F,EAAG8tB,YAAYC,KAAKxsB,MAAMrE,OAAS,GACnCjF,EAAO+1B,YAAYhuB,EAAG8tB,YAAYC,KAAKxsB,MAAOtJ,EAAO6/L,cAAc7iL,IAGvExc,EAAc6pC,wBAAwB,UAAW,kCACjD9pC,EAAUyD,KAAK,4CAA4CS,OAAO,CAAC,EACvE,IAAG,SAAuBxC,GACtBjC,EAAO+yC,cAAcnqC,cAAe,EACpCpI,EAAc2d,iBAAiBlc,EAASb,KAC5C,GACJ,EAEApB,EAAO4sO,eAAiB,WAAY,IAAAC,EAAAsB,EAAAC,EAGJ,QAAxBvB,EAAA9kO,EAAG0mD,6BAAqB,IAAAo+K,GAAxBA,EAA0B5nO,QAAU8C,EAAG+gO,2BAClC/gO,EAAGozM,aAAa/zJ,SAAS,gCAC1Br/C,EAAGozM,cAAgB,8BAEvBpzM,EAAG0mD,sBAAsBzrD,SAAQ,SAAAiM,GACxBlH,EAAGozM,aAAa/zJ,SAASn4C,EAASrN,QACnCmG,EAAGozM,cAAgBlsM,EAASrN,KAAO,IAE3C,KAGJ5B,EAAO+yC,cAAgB,IAAIlpC,EAC3B,IAAIg6M,EAAe/D,EAAqCjS,aAAa9lM,GAAI,GAErE+kO,EAAmBprO,QAAQmE,KAAKg+M,GACpCipB,EAAiBjI,gBAAkB7kO,EAAO6kO,gBAC1CiI,EAAiBj3K,QAAU71D,EAAO0sH,cAClCogH,EAAiBpqJ,eAAiB1iF,EAAO+H,GAAG26E,eAAiB,IAAIz6E,KAAKjI,EAAO+H,GAAG26E,gBAAgBsuE,cAAgB,KAChH87E,EAAiB/jM,aAAuC,QAA3BolM,EAAuB,QAAvBC,EAAGpuO,EAAO+H,GAAGwgM,kBAAU,IAAA6lC,OAAA,EAApBA,EAAsBt8N,UAAE,IAAAq8N,IAAI,KAE5D11C,EAAiCowB,kBAAkBikB,EAAkB/kO,EAAGiiN,eAExEhK,EAAsCwT,oBAAoBsZ,GAGtD9sO,EAAO6/L,cACP7/L,EAAO+sO,sBAAsBD,GAE7B9sO,EAAOkuO,iBAAiBpB,EAEhC,EAEA9sO,EAAO+pN,sBAAwB,SAAUtwL,GACrC1xB,EAAGiiN,cAAgBvxB,EAAiCgwB,kBAAkBhvL,EAAS1xB,EAAGiiN,eAElFhqN,EAAOquO,4BAA8B,IAAIr/N,MAAM5N,KAAKmlB,WAAW,CAC3DnlB,KAAM2G,EAAGiiN,gBAITjiN,EAAG0hM,uBAAuBxkM,OAAS,GAAK8C,EAAGyjM,0BAA0BvmM,OAAS,EAC9EjF,EAAO4oO,OAAQ,EAEf5oO,EAAO4oO,OAAQ,CAEvB,EAEA7gO,EAAGojO,yBAA2B,WAC1BpjO,EAAG8kF,YAAc,KAGjB7sF,EAAOg9L,gBAAkB,GACzBh9L,EAAOi9L,WAAa,GACpBj9L,EAAOk9L,eAAiB,GACxBl9L,EAAOm9L,QAAU,GAEjBn9L,EAAOorO,qBAAuB,GAC9BprO,EAAOqrO,gBAAkB,GACzBrrO,EAAOsrO,oBAAsB,GAC7BtrO,EAAOurO,aAAe,GAEtBvrO,EAAOwrO,sBAAwB,GAC/BxrO,EAAOyrO,iBAAmB,GAC1BzrO,EAAO0rO,qBAAuB,GAC9B1rO,EAAO2rO,cAAgB,GAEvB3rO,EAAOu9L,qBAAuB,GAC9Bv9L,EAAO09L,gBAAkB,GACzB19L,EAAO29L,oBAAsB,GAC7B39L,EAAO49L,aAAe,GAEtB59L,EAAO69L,sBAAwB,GAC/B79L,EAAO+9L,iBAAmB,GAC1B/9L,EAAOg+L,qBAAuB,GAC9Bh+L,EAAOi+L,cAAgB,GAGvBj+L,EAAOilO,oBAAsB,GAC7BjlO,EAAO+8L,0BAA4B,EACvC,EAGAh1L,EAAGmjO,2BAA6B,SAAUzxM,GAAS,IAAA60M,EAAAC,EAC/CvuO,EAAO4rO,4BAA6B,EACpCnyM,EAAQuG,aAAuC,QAA3BsuM,EAAuB,QAAvBC,EAAGvuO,EAAO+H,GAAGwgM,kBAAU,IAAAgmC,OAAA,EAApBA,EAAsBz8N,UAAE,IAAAw8N,IAAI,KACnDvmO,EAAGojO,2BAEHnrO,EAAOwuO,0BAA4B,IAAIx/N,MAAM5N,KAAKmlB,WAAW,CACzD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,SAAUvT,GACZzP,EAAM,CACFmC,OAAQ,OACRC,IAAKC,OAAS,+CACdlB,KAAMq4B,IACP32B,MAAK,SAAUb,GAEd8F,EAAG8kF,YAAc5qF,EAASb,KAG1BpB,EAAOg9L,gBAAkBvE,EAAiC2E,YAAYr1L,EAAG8kF,YAAYwwG,iBAAiBC,kBAAmB,YACzHt9L,EAAOi9L,WAAaxE,EAAiC2E,YAAYr1L,EAAG8kF,YAAYwwG,iBAAiBC,kBAAmB,SACpHt9L,EAAOk9L,eAAiBzE,EAAiC2E,YAAYr1L,EAAG8kF,YAAYwwG,iBAAiBC,kBAAmB,WACxHt9L,EAAOm9L,QAAUn9L,EAAOg9L,gBAAkBh9L,EAAOi9L,WAEjDj9L,EAAOu9L,qBAAuB9E,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBC,uBAAwB,YAC1Iz9L,EAAO09L,gBAAkBjF,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBC,uBAAwB,SACrIz9L,EAAO29L,oBAAsBlF,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBC,uBAAwB,WACzIz9L,EAAO49L,aAAe59L,EAAOu9L,qBAAuBv9L,EAAO09L,gBAE3D19L,EAAO69L,sBAAwBpF,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBM,wBAAyB,YAC5I99L,EAAO+9L,iBAAmBtF,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBM,wBAAyB,SACvI99L,EAAOg+L,qBAAuBvF,EAAiC2E,YAAYr1L,EAAG8kF,YAAY2wG,wBAAwBM,wBAAyB,WAC3I99L,EAAOi+L,cAAgBj+L,EAAO69L,sBAAwB79L,EAAO+9L,iBAI7D/9L,EAAOilO,oBAAsBhjO,EAASb,KAAK07L,UAIvC98L,EAAOilO,oBAAoBjiO,SAAQ,SAAAyP,GAC/B,GAAIzS,EAAO6kO,gBAAgB5/N,OAAS,EAAG,CACnC,IAAIoN,EAAQrS,EAAO6kO,gBAAgBzgN,MAAK,SAAA0vF,GACpC,OAAOA,EAAWtrE,SAAW/1B,EAAK+1B,QAAUsrE,EAAWzxD,kBAAoB5vC,EAAKq2B,eACpF,IACA,GAAIz2B,EACAI,EAAKsiL,kBAAoB,WAExB,KAAK1iL,GAAmC,QAA1BI,EAAKo5N,kBAA8Bp5N,EAAKo5N,iBACvD,OAGAp5N,EAAKsiL,kBAAoB,SAC7B,CACJ,KAAO,IAA8B,QAA1BtiL,EAAKo5N,kBAA+Bp5N,EAAKo5N,iBAIhD,OAHAp5N,EAAKsiL,kBAAoB,SAI7B,CACJ,IAGJ/0L,EAAO+8L,0BAA4B96L,EAASb,KAAKonG,kBAGjD,IAAIsjI,EAAY7pO,EAASb,KAAK07L,UAAUp5L,QAAO,SAAAkL,GAAC,MAAoB,SAAhBA,EAAEm9N,UAAqB,IACvEC,EAAuB/pO,EAASb,KAAK07L,UAAUp5L,QAAO,SAAAkL,GAAC,MAAoB,YAAhBA,EAAEm9N,YAA4C,SAAhBn9N,EAAEm9N,UAAqB,IAEhHC,EAAqB/mO,OAAS,EAC9B8C,EAAGqzM,YAAcz2K,KAAK4qC,IAAI1vE,MAAM8kC,KAAMqnM,EAAqB7qM,KAAI,SAAUsuC,GAAK,OAAOA,EAAE2rI,WAAa,KAEpGrzM,EAAGqzM,YAAc,EAGjB0wB,EAAU7mO,OAAS,EACnB8C,EAAGszM,mBAAqB12K,KAAK4qC,IAAI1vE,MAAM8kC,KAAMmnM,EAAU3qM,KAAI,SAAUsuC,GAAK,OAAOA,EAAE2rI,WAAa,KAEhGrzM,EAAGszM,mBAAqB,EAG5BtzM,EAAGuxN,iBAAkB,EACrBt5N,EAAO4rO,4BAA6B,CACxC,IAAG,SAAuB3pO,GACtB8F,EAAGuxN,iBAAkB,EACrBt5N,EAAO4rO,4BAA6B,EACpCl8N,EAAQuiC,OACZ,GACJ,GAEJ1uB,KAAM,CAAE3C,MAAO,aAAc61B,IAAK,SAGtCz2C,EAAOwuO,0BAA0BvrN,MACrC,CAEJ,C,0kBCt2B6B,SAAA7kB,GAAU4B,EAAQoW,EAAWmyN,EAAmCC,EAAkCC,EAAmChwC,EAAkCqnB,EAAsC4oB,EAAetoO,EAAYqN,EAAqBxN,EAAOue,EAAIje,EAAWC,EAAe4zB,EAA2BmX,EAAWkgB,GAGjW,IAAI1jD,EAAK/H,EAAO+H,GAAK,CAAC,EACtB/H,EAAO2oO,IAAMnoO,EACbR,EAAOQ,cAAgBA,EACvBR,EAAO+yC,cAAgB,CAAC,EACxB,IAAImU,EAAe3mD,EAAUyD,OAAOkD,MAAM,KAoCzC,SAEckiO,IAAuB,OAAAC,EAAAxpO,MAAC,KAADC,UAAA,UAAAupO,IAOrC,OAPqCA,GAAA9qO,OAAAC,UAAtC,SAAAkM,IAAA,IAAA4+N,EAAA,OAAA9qO,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,QACQyqO,EAAoB33N,OAAO5J,EAAGiY,OAAOlV,MAAK,SAAAukJ,GAAa,MAA2B,6BAAvBA,EAAcztJ,IAAmC,IAAEwM,UAG9GrG,EAAG26E,eAAiB,IAAIz6E,KACxBF,EAAG26E,eAAe7Y,QAAQ9hE,EAAG26E,eAAe5Y,UAAYw/J,IAC3D,wBAAA3+N,EAAA/K,OAAA,GAAA8K,EAAA,MACJ7K,MAAA,KAAAC,UAAA,CAEyC,SAAAypO,IAIzC,OAJyCA,GAAAhrO,OAAAC,UAA1C,SAAA8uB,IAAA,IAAArrB,EAAA,OAAAzD,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA1uB,KAAA,EAC2BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,iCAAAC,OAAgCvC,EAAO6/L,cAAc7iL,GAAE,aAAAza,OAAYvC,EAAO6/L,cAAcv4I,UAAU,OAAtIrlD,EAAQsrB,EAAAxuB,KACdgJ,EAAG6gG,wBAA0B3mG,EAASb,KAAK+iF,YAC3CnkF,EAAO+H,GAAG26E,eAAiBzgF,EAASb,KAAKshF,eAAiB,IAAIz6E,KAAKhG,EAASb,KAAKshF,gBAAkB,KAAK,wBAAAn1D,EAAA3tB,OAAA,GAAA0tB,EAAA,MAC3GztB,MAAA,KAAAC,UAAA,CAlDDiI,EAAGmiM,WAAahjJ,EAAa,GAC7Bn/C,EAAG2sC,sBAAwB,GAC3B3sC,EAAG6gG,wBAA0B,GAI7B5oG,EAAO+H,GAAG6yN,UAAY,IAAI3yN,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjDjI,EAAO+H,GAAG0yN,UAAY,IAAIxyN,KAE1BjI,EAAO6oO,gBAAiB,EACxBroO,EAAc+xC,sBAAsB,+BAA+BzvC,MAAK,SAAU1B,GAC9EpB,EAAO6oO,eAA0B,MAATznO,CAC5B,IAGAqM,EAAoB8F,cAAczQ,MAAK,SAAUqO,GAC7CnR,EAAO8e,SAAW3N,EAElB,IAAIqC,EAAiBhT,EAAc4Q,qCAAqCpR,EAAO8e,UAC/E9e,EAAOmrD,SAAW33C,EAClBxT,EAAOorD,gBAAkB53C,EAAe63C,SACxCrrD,EAAOwH,WAAagM,EAAe5R,IAEvC,IASmBnC,KAAKC,MAAMP,aAAaC,QAAQ,wBAClC0L,MAAK,SAAA2kE,GAAC,OAAmB,QAAfA,EAAEvsE,QAAkB,KACtC3C,EAAUyD,KAAK,QAkBxBhE,EAAOw0C,mBAAqB,SAAUC,GAClC,OAAOz0C,EAAO2oO,IAAIn0L,mBAAmBC,EAAe1sC,EAAG2sC,sBAC3D,EAEA10C,EAAO40C,eAAiB,SAAUnL,GAC9B,OAAOzpC,EAAO2oO,IAAI/zL,eAAenL,EAAW1hC,EAAG2sC,sBACnD,EAIA10C,EAAO4pO,gBAAkB,WACrB5pO,EAAO6pO,gBAAkB,GACzB7pO,EAAO+H,GAAG+hO,kBAAoB,GAE9B/hO,EAAGqzM,YAAc,EACjBrzM,EAAGszM,mBAAqB,EAMxBr7M,EAAO+H,GAAGopM,sBAAwB,GAClCnxM,EAAO+H,GAAGyhN,uBAAyB,GACnCxpN,EAAO+H,GAAGqoN,kBAAoB,GAG9BroN,EAAG0oM,6BAA+B,GAClC1oM,EAAGk9M,8BAAgC,GACnCl9M,EAAG2oM,gCAAkC,GACrC3oM,EAAGq9M,iCAAmC,GAGtCr9M,EAAG6pM,uBAAyB,GAC5B7pM,EAAGw8M,wBAA0B,GAC7Bx8M,EAAG+pM,wBAA0B,GAC7B/pM,EAAG28M,yBAA2B,GAC9B38M,EAAGiqM,0BAA4B,GAC/BjqM,EAAG88M,2BAA6B,GAGhC98M,EAAG0hM,uBAAyB,GAC5B1hM,EAAGq0N,uBAAyB,GAC5Br0N,EAAG2hM,wBAA0B,GAC7B3hM,EAAGwiM,mBAAqB,GACxBxiM,EAAGs0N,mBAAqB,GAGxBt0N,EAAGyjM,0BAA4B,GAC/BzjM,EAAG0xN,0BAA4B,GAC/B1xN,EAAG0jM,2BAA6B,GAChC1jM,EAAGokM,sBAAwB,GAC3BpkM,EAAGgiO,sBAAwB,GAC3BhiO,EAAG+jM,uBAAyB,GAG5B/jM,EAAG8mM,4BAA8B,GACjC9mM,EAAGk8M,6BAA+B,GAClCl8M,EAAGqmM,kCAAoC,GACvCrmM,EAAGs8M,mCAAqC,GACxCt8M,EAAG6kN,0BAA4B,GAG/B7kN,EAAGw9M,sCAAwC,GAC3Cx9M,EAAGysM,qCAAuC,GAG1CzsM,EAAG29M,gCAAkC,GACrC39M,EAAGwtM,+BAAiC,GACpCxtM,EAAG0hN,6BAA+B,GAGlC1hN,EAAGi+M,uBAAyB,GAC5Bj+M,EAAGuxM,sBAAwB,GAG3BvxM,EAAGiiO,uBAAyB,GAC5BjiO,EAAGkiO,wBAA0B,GAC7BliO,EAAG4hN,iCAAmC,GACtC5hN,EAAGsvM,gCAAkC,GACrCtvM,EAAGwvM,4BAA8B,GACjCxvM,EAAG6hN,6BAA+B,GAGlC7hN,EAAGw2M,sBAAwB,GAC3Bx2M,EAAGy2M,uBAAyB,GAC5Bz2M,EAAGkuM,oBAAsB,GACzBluM,EAAGquM,0BAA4B,GAC/BruM,EAAG02M,2BAA6B,GAGhC12M,EAAGqwM,yBAA2B,GAC9BrwM,EAAG40M,0BAA4B,GAC/B50M,EAAGswM,yBAA2B,GAC9BtwM,EAAG80M,0BAA4B,GAG/B90M,EAAGo+M,wCAA0C,GAC7Cp+M,EAAGwyM,uCAAyC,GAE5Cv6M,EAAO+H,GAAG+sD,KAAO,EACrB,EAEA90D,EAAO4pO,kBAIP7hO,EAAGy+N,kBAAoB,SAAU7xL,GAE7B,IAAKA,EAAY3W,UAAYh+B,EAAO+H,GAAGs6D,YAAa,CAChD,IAAIxhD,EAAQ7gB,EAAO+H,GAAGs6D,YAAYz6C,WAAU,SAAAmiG,GAAM,OAAIA,EAAO7/E,YAAcyK,EAAYjL,SAAS,IAC5F7oB,GAAS,GACT7gB,EAAO+H,GAAGs6D,YAAYp7C,OAAOpG,EAAO,EAE5C,CAEA7gB,EAAOujN,wBACPvjN,EAAOwjN,qBAAqB7uK,EAChC,EAEA30C,EAAOwjN,qBAAuB,SAAU7uK,GACpC,OAAQA,EAAYK,aAChB,IAAK,KACDuzL,EAAkC3T,wBAAwB7sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAC3F,MACJ,IAAK,MACDg6I,EAAkC/T,qBAAqBzsN,EAAG2sC,sBAAuB10C,EAAOuuF,OACxF,MACJ,IAAK,MACDg6I,EAAkC9T,qBAAqB1sN,EAAG2sC,sBAAuB10C,EAAOuuF,OACxF,MACJ,IAAK,KACDg6I,EAAkChU,0BAA0BxsN,EAAG2sC,sBAAuB10C,EAAOuuF,OAC7F,MACJ,IAAK,MACDg6I,EAAkC7T,qBAAqB3sN,EAAG2sC,sBAAuB10C,EAAOuuF,OACxF,MACJ,IAAK,KACDg6I,EAAkC5T,wBAAwB5sN,EAAG2sC,sBAAuB10C,EAAOuuF,OAC3F,MACJ,IAAK,KACDg6I,EAAkCzT,oBAAoB/sN,EAAG2sC,sBAAuB10C,EAAOuuF,OACvF,MACJ,IAAK,MACDg6I,EAAkCxT,qBAAqBhtN,EAAG2sC,sBAAuB10C,EAAOuuF,OACxF,MACJ,IAAK,QACDg6I,EAAkCvT,uBAAuBjtN,EAAG2sC,sBAAuB10C,EAAOuuF,OAC1F,MACJ,IAAK,KACDg6I,EAAkCtT,oBAAoBltN,EAAG2sC,sBAAuB10C,EAAOuuF,OACvF,MACJ,IAAK,KACDg6I,EAAkCrT,4BAA4BntN,EAAG2sC,sBAAuB10C,EAAOuuF,OAC/F,MACJ,QACIg6I,EAAkCpT,wBAAwBptN,EAAG2sC,sBAAuB10C,EAAOuuF,MAAO55C,GAG9G,EAEA30C,EAAOujN,sBAAwB,WAC3Bx7M,EAAG6wN,kBAAoB6P,EAAkCllB,sBAAsBx7M,EAAG2sC,sBAAuB3sC,EAAGmiM,WAChH,EAEAlqM,EAAO+H,GAAG0mO,oCAAsC,SAAU95L,EAAathC,GAC/DshC,EAAY33B,IAAM0wL,KAClB1tM,EAAO+H,GAAG+sD,KAAKg8I,OAAOn8J,EAAYE,aAAargC,UAAY,IAAIvM,KAAKoL,IAEpEshC,EAAY33B,IAAMmwL,KAClBntM,EAAO+H,GAAG+sD,KAAK+6I,QAAQl7J,EAAYE,aAAargC,UAAY,IAAIvM,KAAKoL,IAErEshC,EAAY33B,IAAMkwL,KAClBltM,EAAO+H,GAAG+sD,KAAK25I,aAAaj6L,UAAY,IAAIvM,KAAKoL,IAEjDshC,EAAY33B,IAAM+vL,KAClB/sM,EAAO+H,GAAG+sD,KAAKy8I,QAAQ/8L,UAAY,IAAIvM,KAAKoL,IAE5CshC,EAAY33B,IAAMgwL,KAClBhtM,EAAO+H,GAAG+sD,KAAKu0I,QAAQ70L,UAAY,IAAIvM,KAAKoL,IAE5CshC,EAAY33B,IAAMiwL,KAClBjtM,EAAO+H,GAAG+sD,KAAKy2I,WAAW/2L,UAAY,IAAIvM,KAAKoL,IAE/CshC,EAAY33B,IAAMowL,KAClBptM,EAAO+H,GAAG+sD,KAAKs/I,WAAW5/L,UAAY,IAAIvM,KAAKoL,IAE/CshC,EAAY33B,IAAMqwL,KAClBrtM,EAAO+H,GAAG+sD,KAAKsgJ,gBAAgB5gM,UAAY,IAAIvM,KAAKoL,IAEpDshC,EAAY33B,IAAMswL,KAClBttM,EAAO+H,GAAG+sD,KAAK8gJ,OAAOphM,UAAY,IAAIvM,KAAKoL,IAE3CshC,EAAY33B,IAAMuwL,KAClBvtM,EAAO+H,GAAG+sD,KAAKkiJ,QAAQxiM,UAAY,IAAIvM,KAAKoL,IAE5CshC,EAAY33B,IAAMwwL,KAClBxtM,EAAO+H,GAAG+sD,KAAKmjJ,UAAUzjM,UAAY,IAAIvM,KAAKoL,IAE9CshC,EAAY33B,IAAMywL,KAClBztM,EAAO+H,GAAG+sD,KAAKqkJ,OAAO3kM,UAAY,IAAIvM,KAAKoL,IAE3CshC,EAAY33B,KAAO2wL,KACnB3tM,EAAO+H,GAAG+sD,KAAKmlJ,eAAezlM,UAAY,IAAIvM,KAAKoL,GAE3D,EAKArT,EAAOuuF,MAAQi6I,EAAiCpT,eAAertN,EAAGmiM,WAAYniM,EAAGmoM,cAAe9vM,EAAWy/L,eAE3G7/L,EAAOi4N,aAAe,SAAUlsN,GAC5B,OAAO08N,EAAkCxQ,aAAalsN,EAAO28N,EAAcgC,SAAU1qO,EACzF,EAEAA,EAAOy4N,sBAAwB,SAAUhhJ,GACrC,OAAOgxJ,EAAkChQ,sBAAsBhhJ,EAAQixJ,EAAcgC,SAAU1qO,EAAOuuF,MAC1G,EAEAvuF,EAAO64N,oBAAsB,WACzB,IAAIhF,EAAO4U,EAAkC5P,oBAAoB74N,EAAOuuF,MAAOm6I,EAAcgC,UAC7F1qO,EAAO2qO,cAAc9W,EAAK9nN,MAC9B,EAEA/L,EAAO84N,wBAA0B,WAC7B,IAAIjF,EAAO4U,EAAkC3P,wBAAwB94N,EAAOuuF,MAAOm6I,EAAcgC,UACjG1qO,EAAO2qO,cAAc9W,EAAK9nN,MAC9B,EAEA/L,EAAO4qO,uBAAyB,WAC5B,OAAOnC,EAAkC1P,qBAAqB2P,EAAcgC,SAChF,EAEA1qO,EAAO2qO,cAAgB,SAAUE,GAC7B,IAAI3S,EAAiBwQ,EAAcgC,SAC/B/R,EAAoBT,EAAeS,oBAEnC9E,EADeqE,EAAeG,kBACVM,EAAoB,GACxB,GAAhB9E,EAAK2E,SACLx4N,EAAO6tM,aAAagmB,EAAK9nN,MAAO8+N,GAEpC7qO,EAAO0uO,SAAW,KAClBxW,EAAe4S,KAAKD,EACxB,EAKI7qO,EAAO6/L,eAhQV,WAEyC0pC,EAAA1pO,MAAC,KAADC,UAAA,CA+PtCmsO,GAGJjsO,EAAOsjF,WAAU,eAAAxwE,GAAAvU,OAAAC,UAAG,SAAAC,EAAgBgL,GAAI,IAAAoX,EAAA,OAAAriB,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACR,OAA5BkJ,EAAGg9E,mBAAoB,EAAKpmF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGlBu1B,EAA0B4wD,iBAAiBv7E,EAAKi2B,YAAW,OAE3D7e,EAAQ9Y,EAAG6gG,wBAAwBhhF,WAAU,SAAAq9D,GAAa,OAAIA,EAAcvlD,aAAej2B,EAAKi2B,UAAU,IAChH33B,EAAG6gG,wBAAwB3hF,OAAOpG,EAAO,GACzC7gB,EAAO+kF,mBAAoB,EAAMpmF,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAEjCqB,EAAO+kF,mBAAoB,EAAM,yBAAApmF,EAAAiB,OAAA,GAAAnB,EAAA,kBAExC,gBAAA4O,GAAA,OAAAyF,EAAAjT,MAAA,KAAAC,UAAA,EAZgB,GAcjBE,EAAOwjF,aAAY,eAAAzwE,GAAAxU,OAAAC,UAAG,SAAA0C,EAAgBuI,GAAI,IAAAxH,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACV,OAA5BkJ,EAAGg9E,mBAAoB,EAAK1jF,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAGDu1B,EAA0B8wC,mBAAmBz7D,EAAKi2B,YAAW,OAA9Ez9B,EAAQZ,EAAAtC,KACdwsC,EAAUC,OAAOvpC,EAASb,KAAMqI,EAAK07D,UACrCnlE,EAAO+kF,mBAAoB,EAAM1jF,EAAAxC,KAAA,gBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAEjCrB,EAAO+kF,mBAAoB,EAAM,yBAAA1jF,EAAAzB,OAAA,GAAAsB,EAAA,kBAExC,gBAAAgI,GAAA,OAAA6J,EAAAlT,MAAA,KAAAC,UAAA,EAVkB,GAYnBE,EAAO+1B,YAAW,eAAA9oB,GAAA1O,OAAAC,UAAG,SAAAwD,EAAgBsH,EAAOksB,GAAS,IAAAW,EAAA,OAAA33B,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAQd,OAP/Bs3B,EAAK,IAAIxsB,SAEbL,EAAMtG,SAAQ,SAAUyG,EAAMuX,GAC1BmV,EAAGrsB,OAAOR,EAAM0X,GAAGvX,KAAKM,KAAMT,EAAM0X,GAAGvX,KAC3C,IAEA0sB,EAAGrsB,OAAO,WAAY,aACtBqsB,EAAGrsB,OAAO,aAAc0rB,GAAWtzB,EAAArD,KAAA,EAE7Bu1B,EAA0BgC,eAAeD,GAAG,wBAAAj0B,EAAAtC,OAAA,GAAAoC,EAAA,KACrD,gBAAAmH,EAAAmK,GAAA,OAAArG,EAAApN,MAAA,KAAAC,UAAA,EAXiB,GAebE,EAAO0sH,gBAAe1sH,EAAO0sH,cAAgB,IAElD1sH,EAAOksO,6BAA+B,WAElC91N,EAAUvU,KAAK,CACX0X,YAAa,mGACbC,WAAY2yN,GACZxyN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAOosO,qCAAuC,WAE1Ch2N,EAAUvU,KAAK,CACX0X,YAAa,2GACbC,WAAY6yN,GACZ1yN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAOssO,mCAAqC,WAExCl2N,EAAUvU,KAAK,CACX0X,YAAa,oHACbC,WAAY+yN,GACZ5yN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAOwsO,gCAAkC,WAErCp2N,EAAUvU,KAAK,CACX0X,YAAa,sGACbC,WAAYizN,GACZ9yN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAO0sO,+BAAiC,WAEpCt2N,EAAUvU,KAAK,CACX0X,YAAa,qGACbC,WAAYmzN,GACZhzN,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,EACP4Z,QAAS,CACLkuN,mBAAoB,WAAF,OAAQ9nO,EAAO0sH,aAAa,IAG1D,EAEA1sH,EAAO0iI,0BAA4B,SAAU1T,GACzChvH,EAAO0sH,cAAgB1sH,EAAO0sH,cAAchpH,QAAO,SAAAorH,GAAM,OAAIA,EAAOjhF,iBAAmBmhF,CAAc,IAE9E,SAAnBA,EAA2BhvH,EAAO2iI,kBAAmB,EAC7B,eAAnB3T,EAAiChvH,EAAO6iI,wBAAyB,EAC9C,YAAnB7T,EAA8BhvH,EAAO8iI,qBAAsB,EACxC,WAAnB9T,IAA6BhvH,EAAO+iI,oBAAqB,EACtE,EAGA/iI,EAAO6tM,aAAY,eAAAxoL,GAAA9mB,OAAAC,UAAG,SAAAoE,EAAgBwmN,EAAUD,GAAM,IAAA9uK,EAAAs0L,EAAAhmB,EAAAimB,EAAAC,EAAA16E,EAAA,OAAA31J,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAyD6B,GAvD/EmB,EAAOua,WAAW,gCAAiC,CAAE6uM,SAAUA,EAAUD,OAAQA,IAEnE,uBAAVA,GAA+C,yBAAZC,IACnCppN,EAAO+qO,2BAA6B,6KAGK,MAArC3qO,EAAWwmM,yBAAyF,IAAvDxmM,EAAWwmM,uBAAuBy/B,mBAC/ErmO,EAAO4pO,kBAEP5pO,EAAOgrO,mBAAoB,EAC3BhrO,EAAO+H,GAAG+9N,YAAc,mCAEpBzrL,EAAW,GACfo+I,EAAiC8tB,sBAAsBvmN,EAAQI,EAAWwmM,uBAAwB5mM,EAAO+H,GAAG2sC,uBAAuB5xC,MAAK,WAEpIiF,EAAG2sC,sBAAsB1xC,SAAQ,SAAU2xC,GACnCA,EAAY3W,WAER2W,EAAY33B,IAAMkwL,IAIiB,MAA/BltM,EAAO+H,GAAG+sD,KAAK25I,eACNzuM,EAAO+H,GAAG+sD,KAAK25I,aACTzuM,EAAO+H,GAAG+sD,KAAK25I,aAAaU,WAAWnyL,IAK9D23B,EAAY3W,UAAY2W,EAAY3W,SAE5C,IAEAxf,EAAG+7B,IAAIF,GAAUv3C,MAAK,WAElB9C,EAAOujN,wBACPvjN,EAAO+H,GAAG2sC,sBAAsB1xC,SAAQ,SAAA2xC,GAAW,OAAI30C,EAAOwjN,qBAAqB7uK,EAAY,IAC/Fv0C,EAAWwmM,uBAAuBy/B,kBAAmB,EACrDrmO,EAAOgrO,mBAAoB,EAC3BhrO,EAAO+H,GAAG+9N,YAAc,sBAC5B,IAAG,SAAuB7jO,GACtBjC,EAAOgrO,mBAAoB,EAC3BhrO,EAAO+H,GAAG+9N,YAAc,uBACxBtlO,EAAc2d,iBAAiBlc,EACnC,GACJ,IAAG,SAAuBA,GACtBjC,EAAOgrO,mBAAoB,EAC3BhrO,EAAO+H,GAAG+9N,YAAc,uBACxBtlO,EAAc2d,iBAAiBlc,EACnC,MAMR8F,EAAG87M,aAAe/D,EAAqCjS,aAAa9lM,GAAI,GAE1D,WAAVohN,EAAmB,CAAAtmN,EAAAhE,KAAA,SAGuB,OAKjC8vO,EAAT,SAAuBh4M,GASZ,IAAAm4M,EARHhrJ,MAAMyuH,QAAQ57K,GACd3iB,OAAOguD,KAAKrrC,GAAS3zB,SAAQ,SAAAw5B,GAAO,IAAAuyM,EAC1B9lB,EAAgBtyL,EAAQ6F,GAC4D,QAA1FuyM,EAAI/uO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAAs8M,GAAG,OAAIA,EAAI19K,YAAcu/K,EAAc/+K,SAAS,WAAC,IAAA6kM,GAAtFA,EAAwF/wM,WACxFirL,EAAc1kD,OAAS,SACvBokD,EAAWrpN,KAAK2pN,GAExB,IAEoF,QAApF6lB,EAAI9uO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAAs8M,GAAG,OAAIA,EAAI19K,YAAc/S,EAAQuT,SAAS,WAAC,IAAA4kM,GAAhFA,EAAkF9wM,WAClFrH,EAAQ4tI,OAAS,SACjBokD,EAAWrpN,KAAKq3B,GAG5B,EArBA32B,EAAOyjN,aAAc,EACrBzjN,EAAOirO,sBAAwB,IAAIhjO,KAAOpF,EAAAhE,KAAA,EAChC2B,EAAc+xC,sBAAsB,+BAA8B,UAAA1vC,EAAArB,GAAAqB,EAAA9D,KAAK,MAAL8D,EAAArB,GAAQ,CAAAqB,EAAAhE,KAAA,SAChFuqO,IAA0B,QAgEiC,OA5C3DzgB,EAAa,GACkB,MAA/B3oN,EAAO+H,GAAG+sD,KAAK25I,cACfkgC,EAAc3uO,EAAO+H,GAAG+sD,KAAK25I,cAEH,MAA1BzuM,EAAO+H,GAAG+sD,KAAKy8I,SACfo9B,EAAc3uO,EAAO+H,GAAG+sD,KAAKy8I,SAEH,MAA1BvxM,EAAO+H,GAAG+sD,KAAKu0I,SACfslC,EAAc3uO,EAAO+H,GAAG+sD,KAAKu0I,SAEA,MAA7BrpM,EAAO+H,GAAG+sD,KAAKy2I,YACfojC,EAAc3uO,EAAO+H,GAAG+sD,KAAKy2I,YAEJ,MAAzBvrM,EAAO+H,GAAG+sD,KAAKg8I,QACf69B,EAAc3uO,EAAO+H,GAAG+sD,KAAKg8I,QAEH,MAA1B9wM,EAAO+H,GAAG+sD,KAAK+6I,SACf8+B,EAAc3uO,EAAO+H,GAAG+sD,KAAK+6I,SAEA,MAA7B7vM,EAAO+H,GAAG+sD,KAAKs/I,YACfu6B,EAAc3uO,EAAO+H,GAAG+sD,KAAKs/I,YAEK,MAAlCp0M,EAAO+H,GAAG+sD,KAAKsgJ,iBACfu5B,EAAc3uO,EAAO+H,GAAG+sD,KAAKsgJ,iBAEJ,MAAzBp1M,EAAO+H,GAAG+sD,KAAK8gJ,QACf+4B,EAAc3uO,EAAO+H,GAAG+sD,KAAK8gJ,QAEH,MAA1B51M,EAAO+H,GAAG+sD,KAAKkiJ,SACf23B,EAAc3uO,EAAO+H,GAAG+sD,KAAKkiJ,SAED,MAA5Bh3M,EAAO+H,GAAG+sD,KAAKmjJ,WACf02B,EAAc3uO,EAAO+H,GAAG+sD,KAAKmjJ,WAEJ,MAAzBj4M,EAAO+H,GAAG+sD,KAAKqkJ,QACfw1B,EAAc3uO,EAAO+H,GAAG+sD,KAAKqkJ,QAGI,MAAjCn5M,EAAO+H,GAAG+sD,KAAKmlJ,gBACf00B,EAAc3uO,EAAO+H,GAAG+sD,KAAKmlJ,gBAGjClyM,EAAGs6D,YAAcsmJ,EAEbimB,EAAqB7mO,EAAGs6D,YAAYlhC,KAAI,SAAA6tM,GAAE,OAAIA,EAAG9kM,SAAS,IAACrnC,EAAAhE,KAAA,GAE/B4sD,EAAqBxN,uBAAuBj+C,EAAO+H,GAAG+sD,KAAKvf,WAAWv4B,IAAMhd,EAAO+H,GAAG+sD,KAAKvf,WAAW9xC,IAAG,QAAAorO,EAAAhsO,EAAA9D,KACzIo1J,GADYA,EAAS06E,EAAfztO,MACgBsC,QAAO,SAAAurO,GAAE,OAAIL,EAAmBlrO,QAAO,SAAAqyD,GAAC,OAAIA,GAAKk5K,EAAGvlM,SAAS,IAAEzkC,MAAM,IAC3FjF,EAAO+H,GAAGmnO,cAAgB/6E,EAAUhhI,QAAO,SAACmtK,EAAmBC,GAC3D,IAAMrhK,EAAO,CACTinD,QAASnmF,EAAO40C,eAAe2rJ,EAAY72J,WAC3C8rI,WAAY+qB,EAAYz8J,OACxBq8J,OAAQI,EAAY3+L,MAExB,GAAI2+L,EAAYtzI,UAAUhoD,OAAQ,CAC9BjF,EAAO+H,GAAGy4L,YAAa,EACvB,IAAIrmI,EAAgB,GAIpB,OAHAomI,EAAYtzI,UAAUjqD,SAAQ,SAAAkqD,GAC1BiN,EAAc76D,KAAI86D,MAAC,CAAC,EAAIl7B,GAAI,IAAEkjB,QAAS8K,EAAQtrD,OACnD,IACO0+L,EAAkB/9L,OAAO43D,EACpC,CAGI,OADAmmI,EAAkBhhM,KAAK4/B,GAChBohK,CAEf,GAAG,IAEHtgM,EAAOyjN,aAAc,EAAM,yBAAA5gN,EAAAjD,OAAA,GAAAgD,EAAA,KAGlC,gBAAA+4C,EAAAmB,GAAA,OAAAz3B,EAAAxlB,MAAA,KAAAC,UAAA,EA3JkB,GA6JnBG,EAAM4K,IAAIvI,OAAS,oCAAoCQ,MAAK,SAAUb,GAElEA,EAASb,KAAK4B,SAAQ,SAAUC,EAAK+d,GACjC/d,EAAI+6B,UAAW,CACnB,IAEAh+B,EAAO+H,GAAG2sC,sBAAwBzyC,EAASb,KAE3CpB,EAAOujN,wBAGHnjN,EAAWy/L,eACX7/L,EAAOmvO,oBAAoBnvO,EAEnC,IAGAA,EAAOmvO,oBAAsB,WACrB/uO,EAAWy/L,gBACX7/L,EAAO6/L,cAAgBz/L,EAAWy/L,cAElC93L,EAAG83L,cAAgB7/L,EAAO6/L,qBAEnBz/L,EAAWy/L,cAClB7/L,EAAO2/L,uBAAwB,EAG/B1/L,EAAM4K,IAAIvI,OAAS,qCAAuCtC,EAAO6/L,cAAc7iL,GAAK,YAAchd,EAAO6/L,cAAcv4I,SAASxkD,MAAK,SAAUb,GAE3I,IAAIm2L,EAAcn2L,EAASb,KAE3BpB,EAAO0sH,cAAgBzqH,EAASb,KAAKy0D,QAErC71D,EAAO2iI,iBAAmB3iI,EAAO0sH,cAActoG,MAAK,SAAA0qG,GAAM,MAA8B,SAA1BA,EAAOjhF,cAAyB,IAC9F7tC,EAAO8iI,oBAAsB9iI,EAAO0sH,cAActoG,MAAK,SAAA0qG,GAAM,MAA8B,YAA1BA,EAAOjhF,cAA4B,IACpG7tC,EAAO+iI,mBAAqB/iI,EAAO0sH,cAActoG,MAAK,SAAA0qG,GAAM,MAA8B,WAA1BA,EAAOjhF,cAA2B,IAElG5tC,EAAM4K,IAAIvI,OAAS,oCAAoCQ,MAAK,SAAUb,GAElE,IAAIwkN,EAAexkN,EAASb,KAE5BqlN,EAAazjN,SAAQ,SAAUC,EAAK+d,GAChC/d,EAAI+6B,UAAW,CACnB,IAGA,IAAIoxM,EAAQ3oB,EAAa37M,MAAK,SAAUs8M,GACpC,OAAOA,EAAIpqM,IAAMkwL,EACrB,IACKmiC,EAAmBj3C,EAAYiqB,aAAcnV,KAAqC,MAATkiC,IAC1EA,EAAMljN,SAAU,GAIpB,IAAIojN,EAAS7oB,EAAa37M,MAAK,SAAUs8M,GACrC,OAAOA,EAAIpqM,IAAMmwL,EACrB,IACKkiC,EAAmBj3C,EAAYiqB,aAAclV,KAAiC,MAAVmiC,IACrEA,EAAOpjN,SAAU,GAIrB,IAAIqjN,EAAS9oB,EAAa37M,MAAK,SAAUs8M,GACrC,OAAOA,EAAIpqM,IAAM+vL,EACrB,IACKsiC,EAAmBj3C,EAAYiqB,aAActV,KAAiC,MAAVwiC,IACrEA,EAAOrjN,SAAU,GAIrB,IAAIsjN,EAAQ/oB,EAAa37M,MAAK,SAAUs8M,GACpC,OAAOA,EAAIpqM,IAAMiwL,EACrB,IACKoiC,EAAmBj3C,EAAYiqB,aAAcpV,KAA+B,MAATuiC,IACpEA,EAAMtjN,SAAU,GAIpB,IAAIujN,EAAYhpB,EAAa37M,MAAK,SAAUs8M,GACxC,OAAOA,EAAIpqM,IAAMowL,EACrB,IACKiiC,EAAmBj3C,EAAYiqB,aAAcjV,KAAuC,MAAbqiC,IACxEA,EAAUvjN,SAAU,GAIxB,IAAIwjN,EAAiBjpB,EAAa37M,MAAK,SAAUs8M,GAC7C,OAAOA,EAAIpqM,IAAMqwL,EACrB,IACKgiC,EAAmBj3C,EAAYiqB,aAAchV,KAAiD,MAAlBqiC,IAC7EA,EAAexjN,SAAU,GAI7B,IAAIyjN,EAAQlpB,EAAa37M,MAAK,SAAUs8M,GACpC,OAAOA,EAAIpqM,IAAMswL,EACrB,IACK+hC,EAAmBj3C,EAAYiqB,aAAc/U,KAA+B,MAATqiC,IACpEA,EAAMzjN,SAAU,GAIpB,IAAI0jN,EAASnpB,EAAa37M,MAAK,SAAUs8M,GACrC,OAAOA,EAAIpqM,IAAMuwL,EACrB,IACK8hC,EAAmBj3C,EAAYiqB,aAAc9U,KAAiC,MAAVqiC,IACrEA,EAAO1jN,SAAU,GAIrB,IAAI2jN,EAAWppB,EAAa37M,MAAK,SAAUs8M,GACvC,OAAOA,EAAIpqM,IAAMwwL,EACrB,IACK6hC,EAAmBj3C,EAAYiqB,aAAc7U,KAAqC,MAAZqiC,IACvEA,EAAS3jN,SAAU,GAIvB,IAAI4jN,EAAQrpB,EAAa37M,MAAK,SAAUs8M,GACpC,OAAOA,EAAIpqM,IAAMywL,EACrB,IAEK4hC,EAAmBj3C,EAAYiqB,aAAc5U,KAA+B,MAATqiC,IACpEA,EAAM5jN,SAAU,GAGpB,IAAIq6M,EAAgB9f,EAAa37M,MAAK,SAAAs8M,GAAG,OAAIA,EAAIpqM,IAAM2wL,EAAyB,IAE3E0hC,EAAmBj3C,EAAYiqB,aAAc1U,KAA+C,MAAjB44B,IAC5EA,EAAcr6M,SAAU,GAG5BlsB,EAAO+H,GAAG2sC,sBAAwB+xK,EAKlCzmN,EAAO+H,GAAG+sD,KAAO,CAAC,EAElB90D,EAAO+H,GAAG+sD,KAAKvf,WAAa6iJ,EAAY6H,YAGpCmvC,EAAQpvO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAUs8M,GACvD,OAAOA,EAAIpqM,IAAMkwL,EACrB,IACgC,MAA5B9U,EAAYqW,eACZzuM,EAAO+H,GAAG+sD,KAAK25I,aAAerW,EAAYqW,aAC1C2gC,EAAMpxM,UAAW,EACjBoxM,EAAM56N,UAAY,IAAIvM,KAAKmwL,EAAYqW,aAAaj6L,YAIxD,IAAIu7N,EAAS/vO,EAAO+H,GAAG2sC,sBAAsBhxC,QAAO,SAAU0jN,GAC1D,OAAOA,EAAIpqM,IAAM0wL,EACrB,IAC0B,MAAtBtV,EAAYuqB,QACZ3iN,EAAO+H,GAAG+sD,KAAKg8I,OAAO9tM,SAAQ,SAAC/D,EAAM+hB,GACjC/hB,EAAOm5L,EAAYuqB,OAAO3hM,GAC1B+uN,EAAOjlO,MAAK,SAAAs8M,GAAG,OAAIA,EAAIl9K,YAAcjrC,EAAKyqC,SAAS,IAAE1L,UAAW,GAAMxpB,UAAY,IAAIvM,KAAKmwL,EAAYuqB,OAAO3hM,GAAGxM,WACrH,IAIJ,IAAIw7N,EAAUhwO,EAAO+H,GAAG2sC,sBAAsBhxC,QAAO,SAAA0jN,GAAG,OAAIA,EAAIpqM,IAAMmwL,EAAkB,IAE7D,MAAvB/U,EAAYwqB,UACZ5iN,EAAO+H,GAAG+sD,KAAK+6I,QAAU7vM,EAAO+H,GAAG+sD,KAAK+6I,SAAW,CAAC,EAEpDmgC,EAAQhtO,SAAQ,SAAAssO,GACZ,IAAIxqH,EAAcszE,EAAYwqB,QAAQ93M,MAAK,SAAAmlO,GAAO,OAAIA,EAAQ/lM,YAAcolM,EAAO5lM,SAAS,IAExFo7E,GACAwqH,EAAOtxM,UAAW,EAClBsxM,EAAOpjN,SAAU,GAEjBojN,EAAOpjN,SAAU,EAGrBojN,EAAOplM,UAAYolM,EAAO5lM,UAC1B1pC,EAAO+H,GAAG+sD,KAAK+6I,QAAQy/B,EAAOz6L,aAAe7gC,OAAOq2L,MAAMilC,EAAQxqH,EACtE,KAIAyqH,EAASvvO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAUs8M,GACxD,OAAOA,EAAIpqM,IAAM+vL,EACrB,IAC2B,MAAvB3U,EAAYmZ,UACZvxM,EAAO+H,GAAG+sD,KAAKy8I,QAAUnZ,EAAYmZ,QACrCg+B,EAAOvxM,UAAW,EAClBuxM,EAAO/6N,UAAY,IAAIvM,KAAKmwL,EAAYmZ,QAAQ/8L,YAIpD,IAAI07N,EAASlwO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAUs8M,GACxD,OAAOA,EAAIpqM,IAAMgwL,EACrB,IAC2B,MAAvB5U,EAAYqqB,UACZziN,EAAO+H,GAAG+sD,KAAKu0I,QAAUjR,EAAYqqB,QACrCytB,EAAOlyM,UAAW,EAClBkyM,EAAO17N,UAAY,IAAIvM,KAAKmwL,EAAYqqB,QAAQjuM,YAIpD,IAAI27N,EAAYnwO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAUs8M,GAC3D,OAAOA,EAAIpqM,IAAMiwL,EACrB,IAC0B,MAAtB7U,EAAYsqB,SACZ1iN,EAAO+H,GAAG+sD,KAAKy2I,WAAanT,EAAYsqB,OAExCytB,EAAUnyM,UAAW,EACrBmyM,EAAU37N,UAAY,IAAIvM,KAAKmwL,EAAYsqB,OAAOluM,YAIlDi7N,EAAYzvO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAUs8M,GAC3D,OAAOA,EAAIpqM,IAAMowL,EACrB,IAC2B,MAAvBhV,EAAYyqB,UACZ7iN,EAAO+H,GAAG+sD,KAAKs/I,WAAahc,EAAYyqB,QACxC4sB,EAAUzxM,UAAW,EACrByxM,EAAUj7N,UAAY,IAAIvM,KAAKmwL,EAAYyqB,QAAQruM,YAInDk7N,EAAiB1vO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAUs8M,GAChE,OAAOA,EAAIpqM,IAAMqwL,EACrB,IAC4B,MAAxBjV,EAAY4qB,WACZhjN,EAAO+H,GAAG+sD,KAAKsgJ,gBAAkBhd,EAAY4qB,SAC7CysB,EAAUzxM,UAAW,EACrB0xM,EAAel7N,UAAY,IAAIvM,KAAKmwL,EAAY4qB,SAASxuM,YAIzDm7N,EAAQ3vO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAUs8M,GACvD,OAAOA,EAAIpqM,IAAMswL,EACrB,IAC0B,MAAtBlV,EAAYwd,SACZ51M,EAAO+H,GAAG+sD,KAAK8gJ,OAASxd,EAAYwd,OAEpC+5B,EAAM3xM,UAAW,EACjB2xM,EAAMn7N,UAAY,IAAIvM,KAAKmwL,EAAYwd,OAAOphM,YAI9Co7N,EAAS5vO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAUs8M,GACxD,OAAOA,EAAIpqM,IAAMuwL,EACrB,IAC2B,MAAvBnV,EAAY8qB,UACZljN,EAAO+H,GAAG+sD,KAAKkiJ,QAAU5e,EAAY8qB,QACrC0sB,EAAO5xM,UAAW,EAClB4xM,EAAOp7N,UAAY,IAAIvM,KAAKmwL,EAAY8qB,QAAQ1uM,YAIhDq7N,EAAW7vO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAUs8M,GAC1D,OAAOA,EAAIpqM,IAAMwwL,EACrB,IAC6B,MAAzBpV,EAAY6f,YACZj4M,EAAO+H,GAAG+sD,KAAKmjJ,UAAY7f,EAAY6f,UACvC43B,EAAS7xM,UAAW,EACpB6xM,EAASr7N,UAAY,IAAIvM,KAAKmwL,EAAY6f,UAAUzjM,YAIpDs7N,EAAQ9vO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAUs8M,GACvD,OAAOA,EAAIpqM,IAAMywL,EACrB,IACiC,MAA7BrV,EAAY+qB,gBACZnjN,EAAO+H,GAAG+sD,KAAKqkJ,OAAS/gB,EAAY+qB,cACpC2sB,EAAM9xM,UAAW,EACjB8xM,EAAMt7N,UAAY,IAAIvM,KAAKmwL,EAAY+qB,cAAc3uM,YAGrD+xN,EAAgBvmO,EAAO+H,GAAG2sC,sBAAsB5pC,MAAK,SAAAs8M,GAAG,OAAIA,EAAIpqM,IAAM2wL,EAAyB,IAElE,MAA7BvV,EAAYgrB,gBACZpjN,EAAO+H,GAAG+sD,KAAKmlJ,eAAiB7hB,EAAYgrB,cAC5CmjB,EAAcvoM,UAAW,EACzBuoM,EAAc/xN,UAAY,IAAIvM,KAAKmwL,EAAYgrB,cAAc5uM,YAGjExU,EAAOujN,wBACPvjN,EAAO2/L,uBAAwB,EAC/B3/L,EAAO8gN,8BAA+B,EACtC/4M,EAAG6wN,mBAAoB,CAC3B,GAEJ,IAAG,SAAU32N,GACTjC,EAAO2/L,uBAAwB,EAC/Bn/L,EAAc2d,iBAAiBlc,EAASb,KAC5C,IAER,EAEApB,EAAOkuO,iBAAmB,SAAUz0M,GAChCz5B,EAAO+yC,cAAgB,IAAIlpC,EAE3B5J,EAAMge,KAAK3b,OAAS,+BAAgCm3B,GAAS32B,KAAI,eAAA0iB,GAAAjnB,OAAAC,UAAC,SAAA6K,EAAgBpH,GAAQ,IAAAuzB,EAAA,OAAAh3B,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAElFkJ,EAAG8tB,YAAYC,KAAKxsB,MAAMrE,OAAS,IAC7BuwB,EAAYvzB,EAASb,KAC3BpB,EAAO+1B,YAAYhuB,EAAG8tB,YAAYC,KAAKxsB,MAAOksB,IAElDh1B,EAAc6pC,wBAAwB,UAAW,iDACjD9pC,EAAUyD,KAAK,4CAA4CS,OAAO,CAAC,GAAG,wBAAAiF,EAAA9J,OAAA,GAAAyJ,EAAA,KACzE,gBAAA0zC,GAAA,OAAAv3B,EAAA3lB,MAAA,KAAAC,UAAA,EARgE,IAS7D,SAAuBmC,GACnBjC,EAAO+yC,cAAcnqC,cAAe,EACpCpI,EAAc2d,iBAAiBlc,EAASb,KAC5C,GACR,EAEApB,EAAO+sO,sBAAwB,SAAUtzM,GACrCz5B,EAAO+yC,cAAgB,IAAIlpC,EAE3B5J,EAAM+J,IAAI1H,OAAS,gCAAkCtC,EAAO6/L,cAAc7iL,GAAK,YAAchd,EAAO6/L,cAAcv4I,QAAS7tB,GAAS32B,MAAK,SAAUb,GAE3I8F,EAAG8tB,YAAYC,KAAKxsB,MAAMrE,OAAS,GACnCjF,EAAO+1B,YAAYhuB,EAAG8tB,YAAYC,KAAKxsB,MAAOtJ,EAAO6/L,cAAc7iL,IAGvExc,EAAc6pC,wBAAwB,UAAW,kCACjD9pC,EAAUyD,KAAK,4CAA4CS,OAAO,CAAC,EACvE,IAAG,SAAuBxC,GACtBjC,EAAO+yC,cAAcnqC,cAAe,EACpCpI,EAAc2d,iBAAiBlc,EAASb,KAC5C,GACJ,EAEApB,EAAO4sO,eAAiB,WAEpB5sO,EAAO+yC,cAAgB,IAAIlpC,EAC3B9B,EAAG87M,aAAe/D,EAAqCjS,aAAa9lM,GAAI,GACxEA,EAAG87M,aAAahuJ,QAAU71D,EAAO0sH,cACjC3kH,EAAG87M,aAAanhI,eAAiB1iF,EAAO+H,GAAG26E,eAAiB,IAAIz6E,KAAKjI,EAAO+H,GAAG26E,gBAAgBsuE,cAAgB,KAG3GhxJ,EAAO6/L,cACP7/L,EAAO+sO,sBAAsBhlO,EAAG87M,cAEhC7jN,EAAOkuO,iBAAiBnmO,EAAG87M,aAEnC,EAEA,IAAIwrB,EAAqB,SAAU5oB,EAAchtH,GAC7C,IAAI22I,GAAS,EASb,OAJW,MAHD3pB,EAAa37M,MAAK,SAAUs8M,GAClC,OAAOA,EAAIh5M,QAAUqrF,GAAS2tH,EAAIipB,SAAW52I,CACjD,MAEI22I,GAAS,GAGNA,CACX,CACJ,C,+NC57B6B,SAAAhyO,GAAU8B,EAASwT,EAAmB6xL,EAAc+qC,EAAW9vO,EAAegmM,GAEvG,IA2CYr9I,EA3CNphD,EAAKwH,KAEXxH,EAAGgE,MAAQ,gBACXhE,EAAG2+L,mBAAoB,EACvB3+L,EAAGwoO,eAAiB,KAEpBxoO,EAAGyoO,oBAaH,WACI,GAAiC,KAA7BzoO,EAAG0oO,uBAA6D,OAA7B1oO,EAAG0oO,sBAAgC,CAEtE,IAGIh+N,EAAMuO,EAHNO,EAAMxZ,EAAG2oO,wBAAwBtvO,OAIrC,IAAK4f,EAHQO,EAAItc,OAGC,EAAG+b,GAAK,EAAGA,IAEzBvO,EAAO8O,EAAIP,GACXjZ,EAAG2oO,wBAAwBx2N,OAAOzH,EAG1C,MACI1K,EAAG2oO,wBAAwBztN,MAEnC,EA5BAlb,EAAG4oO,wBAsDH,SAAiC7kL,GAC7B,IAAI7sC,EAAO6sC,EAAWx8C,OACtBvH,EAAGwoO,eAAiBtxN,EAAKqpB,SAASrpB,EAAKspB,SAC3C,EAxDAxgC,EAAG6oO,aA0DH,WACQ7oO,EAAGwoO,iBACHxoO,EAAGwzN,a,wWAAYnhK,CAAA,GAAQryD,EAAGwoO,iBAE9BxoO,EAAG0oO,sBAAwB,KAC3B/8N,EAAkBuC,MAAMlO,EAAGwzN,aAC/B,EA/DAxzN,EAAG8oO,aAiEH,WACQ9oO,EAAG2oO,wBAAwB/yK,MAAM14D,OAAS,GAC1C8C,EAAG2oO,wBAAwBztN,MAEnC,EApEAlb,EAAGwC,OAsEH,WAAoBmJ,EAAkBuC,OAAS,EApE/ClO,EAAG+oO,qBAAuB,CACtB,CAAElwN,MAAO,aAAc7U,MAAO,OAAQ6a,YAAY,GAClD,CAAEhG,MAAO,kBAAmB7U,MAAO,QAAS6a,YAAY,GACxD,CAAEhG,MAAO,cAAe7U,MAAO,eAAgB6a,YAAY,GAC3D,CAAEhG,MAAO,qBAAsB7U,MAAO,QAAS6a,YAAY,IAqB/D7e,EAAGgpO,qBAAuBvwO,EAAc4uC,mBAAmBrnC,EAAG+oO,qBAAsB,KACpF/oO,EAAGgpO,qBAAqBlnL,UAAW,EAEnC9hD,EAAG2oO,wBAA0B,IAAI1hO,MAAM5N,KAAKmlB,WAAW,CACnD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAOiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UAAAF,EAAAC,KAAA,GAGR0xO,EAAW,CAAF3xO,EAAAE,KAAA,eAAAF,EAAAE,KAAA,EACQ2nM,EAA0BrB,wBAAwBp9L,EAAG0oO,sBAAuBlrC,GAAa,OAA1GtjM,EAAQtD,EAAAI,KAAAJ,EAAAE,KAAG,GAAH,oBAAAF,EAAAE,KAAG,EAEM2nM,EAA0BvB,qBAAqBl9L,EAAG0oO,uBAAsB,OAAzFxuO,EAAQtD,EAAAI,KAAA,QAGZkD,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,cAClDsO,EAAQ+W,QAAQxkB,EAASb,MAAMzC,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAE/B+Q,EAAQuiC,QAAQ,yBAAAtzC,EAAAiB,OAAA,GAAAnB,EAAA,mBAEvB,SAdG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KAuChB,CCpF6B,SAAA1B,GAAUgY,GAEnC,IAAMrO,EAAKwH,KAIW,SAAAk4L,IAqBrB,OArBqBA,GAAAlpM,OAAAC,UAAtB,SAAAC,IAAA,IAAAwxD,EAAAsrK,EAAA,OAAA/8N,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAaM,OAXEoxD,EAAQ75C,EAAUvU,KAAK,CACvB0X,YAAa,mEACbC,WAAYw3N,GACZt3N,aAAc,SACdC,SAAU,SACVgM,KAAM,KACN/L,QAAS,CACL2rL,aAAc,WAAF,OAAQx9L,EAAGkpO,cAAc,EACrCX,UAAW,WAAF,OAAQvoO,EAAGuoO,SAAS,KAGnC3xO,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAG2BoxD,EAAM/8C,OAAM,OAAjCqoN,EAAY58N,EAAAI,KAChBgJ,EAAGmpO,mBAAmB,CAAE3V,iBAAgB58N,EAAAE,KAAA,uBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAAAA,EAAAqP,OAAA,mCAAArP,EAAAiB,OAAA,GAAAnB,EAAA,kBAI/CgpM,EAAA5nM,MAAA,KAAAC,UAAA,CAvBDiI,EAAGk/L,QAAkB,WAEC,OAAAQ,EAAA5nM,MAAC,KAADC,UAAA,CAuB1B,C,8Eb9B+G1B,GAAAgxB,QAAA,oD,QCAhFhxB,GAAAgxB,QAAA,0DCDkChxB,GAAAgxB,QAAA,2CCCkBhxB,GAAAgxB,QAAA,sGCDThxB,GAAAgxB,QAAA,oECAoFhxB,GAAAgxB,QAAA,4ECAGhxB,GAAAgxB,QAAA,4ECAHhxB,GAAAgxB,QAAA,4ECAAhxB,GAAAgxB,QAAA,4ECO/HhxB,GAAAgxB,QAAA,w5BCA0GhxB,GAAAgxB,QAAA,m5BCDAhxB,GAAAgxB,QAAA,uWCNlDhxB,GAAAgxB,QAAA,uGCAlBhxB,GAAAgxB,QAAA,cCoBrE,SAX4B,CACxBm5B,SAAU,CACN2oL,mBAAoB,IACpBD,eAAgB,IAChBX,UAAW,KAEf92N,WAAY23N,GACZz3N,aAAc,QACdH,YAAa,mECjBY,SAAAnb,GAAU4B,GAenC,SAASoxO,EAAwB/tM,GACxBrjC,EAAO+H,GAAGooN,uBACXnwN,EAAO+H,GAAGooN,qBAAuB,IAErCnwN,EAAO+H,GAAGooN,qBAAqB9sL,GAAe,KAC1CrjC,EAAO+H,GAAGopM,sBAAsB9tK,GAAap+B,OAAS,IACtDjF,EAAO+H,GAAGooN,qBAAqB9sL,IAAe,EAEtD,CArBKrjC,EAAO+H,GAAGspO,sBAAqBrxO,EAAO+H,GAAGspO,oBAAsB,IAUpErxO,EAAOo5N,cAAe,EACtBp5N,EAAOoxO,wBAA0BA,EAYjCpxO,EAAOq5N,cAAgB,SAAUn6L,EAAMmE,GACnCrjC,EAAO+H,GAAGyhN,uBAAuBnmL,GAAargC,SAAQ,SAAUC,EAAK+d,GAC7D/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAGyhN,uBAAuBnmL,GAAapc,OAAOjG,EAAG,GACxDhhB,EAAO+H,GAAGopM,sBAAsB9tK,GAAa/jC,KAAK2D,GAE1D,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5B8X,EAAwB/tM,EAC5B,EAEArjC,EAAOu5N,mBAAqB,SAAUr6L,EAAMmE,GACxCrjC,EAAO+H,GAAGopM,sBAAsB9tK,GAAargC,SAAQ,SAAUC,EAAK+d,GAC5D/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAGopM,sBAAsB9tK,GAAapc,OAAOjG,EAAG,GACnDke,EAAK2rK,cACL7qM,EAAO+H,GAAGyhN,uBAAuBnmL,GAAa/jC,KAAK2D,GAG/D,IACAjD,EAAO+H,GAAGuxN,gBAAkB,KAC5B8X,EAAwB/tM,EAC5B,EAEArjC,EAAO45N,4BAA8B,SAAUv2L,EAAai4B,EAAcvgC,EAAM1nB,GAC5EioD,EAAavgC,GAAQ1nB,EACjBioD,EAAavgC,GAAM91B,SAAWjF,EAAO+H,GAAGqoN,kBAAkB/sL,GAAap+B,SACvEq2D,EAAavgC,GAAQ,KAE7B,EAEA/6B,EAAOqvD,yBAA2B,SAAUZ,GACxCzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,CACJ,CC3D6B,SAAArwD,GAAU4B,GAEvC,C,4CCq+BA,SAv+BqB,CACjB,CACI,KAAQ,KACR,KAAQ,eAEZ,CACI,KAAQ,KACR,KAAQ,iBAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,kBAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,uBAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,mCAEZ,CACI,KAAQ,KACR,KAAQ,oCAEZ,CACI,KAAQ,KACR,KAAQ,0BAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,iBAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,kCAEZ,CACI,KAAQ,KACR,KAAQ,qBAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,gBAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,kBAEZ,CACI,KAAQ,KACR,KAAQ,4BAEZ,CACI,KAAQ,KACR,KAAQ,QAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,oBAEZ,CACI,KAAQ,KACR,KAAQ,2BAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,yCAEZ,CACI,KAAQ,KACR,KAAQ,gBAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,iBAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,QAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,kBAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,sBAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,eAEZ,CACI,KAAQ,KACR,KAAQ,qBAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,+BAEZ,CACI,KAAQ,KACR,KAAQ,iBAEZ,CACI,KAAQ,KACR,KAAQ,QAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,iBAEZ,CACI,KAAQ,KACR,KAAQ,oBAEZ,CACI,KAAQ,KACR,KAAQ,+BAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,QAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,iBAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,qCAEZ,CACI,KAAQ,KACR,KAAQ,iCAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,6BAEZ,CACI,KAAQ,KACR,KAAQ,QAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,eAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,0CAEZ,CACI,KAAQ,KACR,KAAQ,sBAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,oCAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,iBAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,8CAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,QAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,oBAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,mCAEZ,CACI,KAAQ,KACR,KAAQ,wBAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,eAEZ,CACI,KAAQ,KACR,KAAQ,iBAEZ,CACI,KAAQ,KACR,KAAQ,eAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,QAEZ,CACI,KAAQ,KACR,KAAQ,kBAEZ,CACI,KAAQ,KACR,KAAQ,4BAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,QAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,uBAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,oBAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,QAEZ,CACI,KAAQ,KACR,KAAQ,eAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,eAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,sBAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,oBAEZ,CACI,KAAQ,KACR,KAAQ,gDAEZ,CACI,KAAQ,KACR,KAAQ,yBAEZ,CACI,KAAQ,KACR,KAAQ,eAEZ,CACI,KAAQ,KACR,KAAQ,8BAEZ,CACI,KAAQ,KACR,KAAQ,6BAEZ,CACI,KAAQ,KACR,KAAQ,oCAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,yBAEZ,CACI,KAAQ,KACR,KAAQ,gBAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,gBAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,6BAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,mBAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,gBAEZ,CACI,KAAQ,KACR,KAAQ,gDAEZ,CACI,KAAQ,KACR,KAAQ,eAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,0BAEZ,CACI,KAAQ,KACR,KAAQ,aAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,eAEZ,CACI,KAAQ,KACR,KAAQ,wBAEZ,CACI,KAAQ,KACR,KAAQ,6BAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,gCAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,eAEZ,CACI,KAAQ,KACR,KAAQ,QAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,uBAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,gBAEZ,CACI,KAAQ,KACR,KAAQ,4BAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,wBAEZ,CACI,KAAQ,KACR,KAAQ,kBAEZ,CACI,KAAQ,KACR,KAAQ,iBAEZ,CACI,KAAQ,KACR,KAAQ,wCAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,cAEZ,CACI,KAAQ,KACR,KAAQ,WAEZ,CACI,KAAQ,KACR,KAAQ,qCAEZ,CACI,KAAQ,KACR,KAAQ,YAEZ,CACI,KAAQ,KACR,KAAQ,2BAEZ,CACI,KAAQ,KACR,KAAQ,wBAEZ,CACI,KAAQ,KACR,KAAQ,qBAEZ,CACI,KAAQ,KACR,KAAQ,kBAEZ,CACI,KAAQ,KACR,KAAQ,SAEZ,CACI,KAAQ,KACR,KAAQ,UAEZ,CACI,KAAQ,KACR,KAAQ,aCj+Ba,SAAA5B,GAAU8B,EAASD,EAAOyT,EAAmBlT,EAAe8wO,GAErF,IAwBgBnoL,EAxBZphD,EAAKwH,KAETxH,EAAGwpO,eAgDH,WACI,GAAoC,KAAhCxpO,EAAGypO,0BAAoCzpO,EAAGypO,yBAU1CzpO,EAAG0pO,4BAA4BxuN,WAVqC,CACpE,IAGIxQ,EAAMuO,EAHNO,EAAMxZ,EAAG0pO,4BAA4BrwO,OAIzC,IAAK4f,EAHQO,EAAItc,OAGC,EAAG+b,GAAK,EAAGA,IACzBvO,EAAO8O,EAAIP,GACXjZ,EAAG0pO,4BAA4Bv3N,OAAOzH,EAE9C,CAGJ,EA5DA1K,EAAG25N,cA8DH,WACI35N,EAAG45N,2BAA6B,IACpC,EA/DA55N,EAAGg/L,8BAiEH,SAAuCj7I,GACnC,IAAI7sC,EAAO6sC,EAAWx8C,OAEtBvH,EAAG2pO,gBAAkBzyN,EAAKqpB,SAASrpB,EAAKspB,SAC5C,EApEAxgC,EAAG23H,WAsEH,WACIhsH,EAAkBuC,MAAMlO,EAAG2pO,gBAC/B,EAvEA3pO,EAAGmE,QAyEH,WACIwH,EAAkBxH,SACtB,EAlEInE,EAAG4pO,yBAA2BnxO,EAAc4uC,mBAJZ,CAC5B,CAAExuB,MAAO,cAAe7U,MAAO,OAAQ6a,YAAY,GACnD,CAAEhG,MAAO,oBAAqB7U,MAAO,sBAAuB6a,YAAY,IAEY,KACxF7e,EAAG4pO,yBAAyB9nL,UAAW,EACvC9hD,EAAG4pO,yBAAyB7pM,SAAW,CACnC8pM,eAAe,GAGnB7pO,EAAG0pO,4BAA8B,IAAIziO,MAAM5N,KAAKmlB,WAAW,CACvD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAzN,EAAA4vO,EAAA,OAAArzO,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEUoB,EAAM,CACvBmC,OAAQ,MACRC,IAAKC,OAAS,uCACdgP,OAAQ,CACJmM,SAAU1V,EAAGypO,4BAGnB,OAPEvvO,EAAQtD,EAAAI,MASN8yO,EAAmB5vO,EAASb,KAAKwmB,WAAU,SAAA3oB,GAAI,OAAIA,EAAK+d,KAAOs0N,CAAa,MAC1D,GACpBrvO,EAASb,KAAK6lB,OAAO4qN,EAAkB,GAE3C5vO,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClDsO,EAAQ+W,QAAQxkB,EAASb,MAAMzC,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAE/B+Q,EAAQuiC,QACRzxC,EAAc2d,iBAAiBxf,EAAA6C,GAAMJ,MAAM,yBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,mBAElD,SArBG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KA0DpB,CCnF6B,SAAA1B,GAAU4B,EAAQC,EAAOmW,EAAW5V,EAAe+lM,GAE5EvmM,EAAO8xO,uBA4EN,WAEoC,OAAAC,EAAAlyO,MAAC,KAADC,UAAA,EA3ErCE,EAAO+H,GAAGiqO,qBAAuB,KACjChyO,EAAO+H,GAAGkqO,mBAAqB,KAC/BjyO,EAAO+H,GAAGmqO,cAAgB,IAAIjqO,KAC9B,IAAIkqO,EAAgB,IAAIlqO,KA+CQ,SAAAm6N,IAc/B,OAd+BA,GAAA7jO,OAAAC,UAAhC,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,UACiC,QAAzBmB,EAAO+H,GAAGmiM,aAAwBlqM,EAAO+H,GAAG+sD,KAAKy8I,QAAQxqG,OAAM,CAAApoG,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEtC0nM,EAAyB3B,SAAS5kM,EAAO+H,GAAG+sD,KAAKy8I,QAAQ5O,mBAAkB,OAApFhkM,EAAAI,KACCqC,KAAKuhM,oBAAsB3iM,EAAO+H,GAAG+sD,KAAKy8I,QAAQ5O,kBAAoB,IAAM3iM,EAAO+H,GAAG+sD,KAAKy8I,QAAQxqG,SAC5G/mG,EAAO+H,GAAGqqO,eAAgB,EAC1BpyO,EAAOm7N,WAAWkX,YAAYz7J,aAAa,eAAe,IAC7Dj4E,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAEoB,MAAjBA,EAAA6C,GAAMoK,SACN5L,EAAO+H,GAAGqqO,eAAgB,GAC7B,yBAAAzzO,EAAAiB,OAAA,GAAAnB,EAAA,mBAGZoB,MAAA,KAAAC,UAAA,CAEwB,SAAAwyO,IAOxB,OAPwBA,GAAA/zO,OAAAC,UAAzB,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAE6BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,oCAAkC,OAAtEL,EAAQZ,EAAAtC,KACZiB,EAAO+H,GAAGwqO,iBAAmBtwO,EAASb,KAAKC,EAAAxC,KAAA,gBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAE3Cb,EAAc2d,iBAAiB9c,EAAAG,GAAMJ,MAAM,yBAAAC,EAAAzB,OAAA,GAAAsB,EAAA,mBAElDrB,MAAA,KAAAC,UAAA,CAEoC,SAAAiyO,IAepC,OAfoCA,GAAAxzO,OAAAC,UAArC,SAAAwD,IAAA,IAAAwwO,EAAAd,EAAA,OAAAlzO,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OASM,OARE2zO,EAAqBp8N,EAAUvU,KAAK,CACpC0X,YAAa,0FACbC,WAAYi5N,GACZ/4N,aAAc,QACdC,SAAU,SACVC,QAAS,CACL03N,cAAe,WAAF,OAAQtxO,EAAO+H,GAAG+sD,KAAKy8I,QAAQv0L,EAAE,KAEpD9a,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAG8B2zO,EAAmBt/N,OAAM,OAAjDw+N,EAAexvO,EAAAnD,KACnBiB,EAAO+H,GAAG+sD,KAAKy8I,QAAQoB,QAAU++B,EAAgBxvO,EAAArD,KAAA,uBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,mBAExDnC,MAAA,KAAAC,UAAA,CAtFDqyO,EAAcv8N,SAAS,EAAG,EAAG,EAAG,GAEhC5V,EAAO+H,GAAGoqO,cAAgBA,EAErBnyO,EAAO+H,GAAG+sD,KAAKy8I,UAChBvxM,EAAO+H,GAAG+sD,KAAKy8I,QAAU,CAAC,QAEgBnnM,IAA1CpK,EAAO+H,GAAG+sD,KAAKy8I,QAAQe,iBACvBtyM,EAAO+H,GAAG+sD,KAAKy8I,QAAQe,gBAAiB,GAE5CtyM,EAAO+H,GAAG+sD,KAAKy8I,QAAQv8J,YAAc,MACrCh1C,EAAO+H,GAAG+sD,KAAKy8I,QAAQzxH,SAAU,EACjC9/E,EAAO+H,GAAG2qO,mBAAqBC,GAE/B3yO,EAAO+H,GAAGkzN,kBA8BT,WAE+B,OAAAmH,EAAAviO,MAAC,KAADC,UAAA,EA9BhCE,EAAO4yO,sBAAwB,WAC3B,IAAIz1N,EAEAA,EADoC,IAApCnd,EAAO+H,GAAG+sD,KAAKy8I,QAAQ/8L,UAChB,IAAIvM,KAEJ,IAAIA,KAAKjI,EAAO+H,GAAG+sD,KAAKy8I,QAAQ/8L,WAG3CxU,EAAO+H,GAAGoqO,cAAgBh1N,EAC1Bnd,EAAO+H,GAAG2yN,YAAcv9M,EACM,MAA1Bnd,EAAO+H,GAAG+sD,KAAKy8I,UACfvxM,EAAO+H,GAAG+sD,KAAKy8I,QAAU,CAAC,EAElC,EAEAvxM,EAAO6yO,oBAAsB,WACzB7yO,EAAO+H,GAAGmqO,cAAgB,IAAIjqO,KAAKjI,EAAO+H,GAAG+sD,KAAKy8I,QAAQ78L,SAC5B,MAA1B1U,EAAO+H,GAAG+sD,KAAKy8I,UACfvxM,EAAO+H,GAAG+sD,KAAKy8I,QAAU,CAAC,EAElC,EAKiC,QAAzBvxM,EAAO+H,GAAGmiM,YAmBjB,WAEwBooC,EAAAzyO,MAAC,KAADC,UAAA,CApBjBgzO,EA6CZ,CCnG6B,SAAA10O,GAAU4B,GAInCA,EAAOq5N,cAAgB,SAAUn6L,GAC7Bl/B,EAAO+H,GAAGw8M,wBAAwBvhN,SAAQ,SAAUC,EAAK+d,GACjD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAGw8M,wBAAwBt9L,OAAOjG,EAAG,GAC5ChhB,EAAO+H,GAAG6pM,uBAAuBtyM,KAAK4/B,GAE9C,IACAl/B,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOu5N,mBAAqB,SAAUr6L,GAClCl/B,EAAO+H,GAAG6pM,uBAAuB5uM,SAAQ,SAAUC,EAAK+d,GAChD/d,EAAI+Z,KAAOkiB,EAAKliB,KAChBhd,EAAO+H,GAAG6pM,uBAAuB3qL,OAAOjG,EAAG,GAC3ChhB,EAAO+H,GAAGw8M,wBAAwBjlN,KAAK2D,GAE/C,IAEAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOs7D,aAAe,IAE1B,CC3B6B,SAAAl9D,GAAU4B,GAInCA,EAAO+yO,eAAiB,SAAU/oM,GAC9BhqC,EAAO+H,GAAG28M,yBAAyB1hN,SAAQ,SAAUC,EAAK+d,GAClD/d,EAAI+Z,KAAOgtB,EAAMhtB,KACjBhd,EAAO+H,GAAG28M,yBAAyBz9L,OAAOjG,EAAG,GAC7ChhB,EAAO+H,GAAG+pM,wBAAwBxyM,KAAK0qC,GAE/C,IACAhqC,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOgzO,oBAAsB,SAAUhpM,GACnChqC,EAAO+H,GAAG+pM,wBAAwB9uM,SAAQ,SAAUC,EAAK+d,GACjD/d,EAAI+Z,KAAOgtB,EAAMhtB,KACjBhd,EAAO+H,GAAG+pM,wBAAwB7qL,OAAOjG,EAAG,GAC5ChhB,EAAO+H,GAAG28M,yBAAyBplN,KAAK2D,GAEhD,IAEAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOqvD,yBAA2B,SAAUZ,GACxCzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,CACJ,CC5B6B,SAAArwD,GAAU4B,GAInCA,EAAOizO,iBAAmB,SAAUhhC,GAChCjyM,EAAO+H,GAAG88M,2BAA2B7hN,SAAQ,SAAUC,EAAK+d,GACpD/d,EAAIqmN,QAAUrX,EAAQqX,QACtBtpN,EAAO+H,GAAG88M,2BAA2B59L,OAAOjG,EAAG,GAC/ChhB,EAAO+H,GAAGiqM,0BAA0B1yM,KAAK2yM,GAEjD,IACAjyM,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOkzO,sBAAwB,SAAUjhC,GACrCjyM,EAAO+H,GAAGiqM,0BAA0BhvM,SAAQ,SAAUC,EAAK+d,GACnD/d,EAAIqmN,QAAUrX,EAAQqX,QACtBtpN,EAAO+H,GAAGiqM,0BAA0B/qL,OAAOjG,EAAG,GAC9ChhB,EAAO+H,GAAG88M,2BAA2BvlN,KAAK2D,GAElD,IAEAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,CAEJ,CCvB6B,SAAAl7N,GAAU4B,EAAQE,EAAS6yN,EAA4BnmG,EAAuB3sH,GAGvGD,EAAO+H,GAAG23H,WAiIV,SAAoBzgI,GAChBe,EAAO+H,GAAG+sD,KAAKqkJ,OAASl6M,EACF,UAAlBA,EAAK4jM,UAGZ,WAEyB69B,EAAA7gO,MAAC,KAADC,UAAA,CAJlB6gO,EAER,EArIA3gO,EAAO+H,GAAGorO,qBAAuB,KACjCnzO,EAAO+H,GAAGqrO,mBAAqB,KAC/BpzO,EAAO+H,GAAGsrO,cAAgB,IAAIprO,KAC9B,IAAIqrO,EAAgB,IAAIrrO,KAOD,SAAAvH,IAKtB,OALsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACU00O,IAAoB,cAAA50O,EAAAE,KAAA,EACpBgiO,IAA6B,OAiBnC7gO,EAAO+H,GAAGyrO,+BAAiC,CACvCxsM,gBAAgB,EAChB/3B,SAAU,mFAGVvL,OAAQ,WACRmmD,UAAU,EACV6wD,UAAW,EACX1pE,YAAa,iCACbotB,UAAW,SAAA/0C,GACP,IAAIozM,EAA2BryN,MAAbif,EAAG3lB,OAAsB2lB,EAAG3lB,OAAO2P,MAAQ,GAC7DgW,EAAG7Z,iBAEH6Z,EAAG/Z,OAAO+R,WAAW3d,OAAO,CACxBg5N,MAAO,KACP35M,QAAS,CACL,CACInC,MAAO,OACPwhB,SAAU,WACV/uB,MAAOopN,GAEX,CACI77M,MAAO,KACPwhB,SAAU,WACV/uB,MAAOopN,KAIvB,GAKJz8N,EAAO+H,GAAG0rO,gCAAkC,IAAIzkO,MAAM5N,KAAKmlB,WAAW,CAClEC,UAAW,CACPvD,KAAM,SAAAvT,GACFA,EAAQ+W,QAAQzmB,EAAO+H,GAAG2rO,kBAC9B,KAIR1zO,EAAO+H,GAAG4rO,oCAAsC,IAAI3kO,MAAM5N,KAAKmlB,WAAW,CACtEC,UAAW,CACPvD,KAAM,SAAAvT,GACFA,EAAQ+W,QAAQzmB,EAAO+H,GAAG2rO,kBAC9B,KAIR1zO,EAAO+H,GAAG6rO,oCAAsC,IAAI5kO,MAAM5N,KAAKmlB,WAAW,CACtEC,UAAW,CACPvD,KAAM,SAAAvT,GACFA,EAAQ+W,QAAQzmB,EAAO+H,GAAG2rO,kBAC9B,KAIR1zO,EAAO+H,GAAG8rO,wCAA0C,IAAI7kO,MAAM5N,KAAKmlB,WAAW,CAC1EC,UAAW,CACPvD,KAAM,SAAAvT,GACFA,EAAQ+W,QAAQzmB,EAAO+H,GAAG2rO,kBAC9B,KA5ER1zO,EAAO+H,GAAG+rO,mBAAqB/gB,EAA2BD,kBAAkB,wBAAAn0N,EAAAiB,OAAA,GAAAnB,EAAA,MAC/EoB,MAAA,KAAAC,UAAA,CAKwC,SAE1ByzO,IAAkB,OAAAQ,EAAAl0O,MAAC,KAADC,UAAA,UAAAi0O,IAIhC,OAJgCA,GAAAx1O,OAAAC,UAAjC,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyBk0N,EAA2BF,uBAAsB,QAAlE5wN,EAAQZ,EAAAtC,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClDpB,EAAO+H,GAAG2rO,kBAAoBzxO,EAASb,KAAK,wBAAAC,EAAAzB,OAAA,GAAAsB,EAAA,MAC/CrB,MAAA,KAAAC,UAAA,CA4FC,SAEa+gO,IAA2B,OAAAD,EAAA/gO,MAAC,KAADC,UAAA,UAAA8gO,IAMzC,OANyCA,GAAAriO,OAAAC,UAA1C,SAAAwD,IAAA,IAAAC,EAAA,OAAAzD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAE8G,OAD1GmB,EAAO+H,GAAGq5N,iBAA0F,MAAvEphO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,cAAhBA,EAAOpe,IAAoB,IAAEwM,MAC1FpO,EAAO+H,GAAGs5N,kBAA4F,MAAxErhO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,eAAhBA,EAAOpe,IAAqB,IAAEwM,MAAclM,EAAArD,KAAA,EACrF+tH,EAAsB4B,4BAA4B,MAAK,OAAxEvsH,EAAQC,EAAAnD,KACZiB,EAAO+H,GAAGu5N,oBAAuG,MAAjFr/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,2BAAhBA,EAAOpe,IAAiC,IAAEwM,OAAiBpO,EAAO+H,GAAGq5N,iBAClIphO,EAAO+H,GAAGw5N,qBAAyG,MAAlFt/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,4BAAhBA,EAAOpe,IAAkC,IAAEwM,OAAiBpO,EAAO+H,GAAGs5N,kBAAkB,wBAAAn/N,EAAAtC,OAAA,GAAAoC,EAAA,MACzJnC,MAAA,KAAAC,UAAA,CASyB,SAAA4gO,IAGzB,OAHyBA,GAAAniO,OAAAC,UAA1B,SAAAoE,IAAA,IAAAkL,EAAA1M,EAAA,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAhE,KAAA,EAC2BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,0DAAwD,OAAAwL,EAAAjL,EAAA9D,KAA1FqC,EAAI0M,EAAJ1M,KACRpB,EAAO+H,GAAG+sD,KAAKqkJ,OAAOvW,cAAgBxhM,EAAKgN,MAAM,wBAAAvL,EAAAjD,OAAA,GAAAgD,EAAA,MACpD/C,MAAA,KAAAC,UAAA,CAtIDwzO,EAAc19N,SAAS,EAAG,EAAG,EAAG,GAEhC5V,EAAO+H,GAAGurO,cAAgBA,EAEf,WAEY5yO,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,GASKlE,EAAO+H,GAAG+sD,KAAKqkJ,SAChBn5M,EAAO+H,GAAG+sD,KAAKqkJ,OAAS,CAAC,GAE7Bn5M,EAAO+H,GAAG+sD,KAAKqkJ,OAAOnkK,YAAc,KA2EpCh1C,EAAOg0O,sBAAwB,WAC3B,IAAI72N,EAEAA,EADoC,KAApCnd,EAAO+H,GAAG+sD,KAAKqkJ,OAAO3kM,UACf,IAAIvM,KAEJ,IAAIA,KAAKjI,EAAO+H,GAAG+sD,KAAKqkJ,OAAO3kM,WAG1CxU,EAAO+H,GAAGurO,cAAgBn2N,EAC1Bnd,EAAO+H,GAAG0yN,UAAYt9M,EACtBnd,EAAO+H,GAAG2yN,YAAcv9M,EACK,MAAzBnd,EAAO+H,GAAG+sD,KAAKqkJ,SACfn5M,EAAO+H,GAAG+sD,KAAKqkJ,OAAS,CAAC,EAEjC,EAEAn5M,EAAOi0O,oBAAsB,WACzBj0O,EAAO+H,GAAGsrO,cAAgB,IAAIprO,KAAKjI,EAAO+H,GAAG+sD,KAAKqkJ,OAAOzkM,SACzD1U,EAAO+H,GAAG6yN,UAAY,IAAI3yN,KAAKjI,EAAO+H,GAAG+sD,KAAKqkJ,OAAOzkM,SACrD1U,EAAO+H,GAAG8yN,YAAc,IAAI5yN,KAAKjI,EAAO+H,GAAG+sD,KAAKqkJ,OAAO3kM,WAC1B,MAAzBxU,EAAO+H,GAAG+sD,KAAKqkJ,SACfn5M,EAAO+H,GAAG+sD,KAAKqkJ,OAAS,CAAC,EAEjC,CAqBJ,CCjJ6B,SAAA/6M,GAAU4B,GAInCA,EAAOq5N,cAAgB,SAAUn6L,GAC7Bl/B,EAAO+H,GAAGi+M,uBAAuBhjN,SAAQ,SAAUC,EAAK+d,GAChD/d,EAAIrB,OAASs9B,EAAKt9B,OAClB5B,EAAO+H,GAAGi+M,uBAAuB/+L,OAAOjG,EAAG,GAC3ChhB,EAAO+H,GAAGuxM,sBAAsBh6M,KAAK4/B,GAE7C,GACJ,EAEAl/B,EAAOu5N,mBAAqB,SAAUr6L,GAClCl/B,EAAO+H,GAAGuxM,sBAAsBt2M,SAAQ,SAAUC,EAAK+d,GAC/C/d,EAAIrB,OAASs9B,EAAKt9B,OAClB5B,EAAO+H,GAAGuxM,sBAAsBryL,OAAOjG,EAAG,GACtCke,EAAK2rK,cACL7qM,EAAO+H,GAAGi+M,uBAAuB1mN,KAAK2D,GAGlD,GACJ,EAEAjD,EAAOs7D,aAAe,KAEtBt7D,EAAOqvD,yBAA2B,SAAUZ,GACxCzuD,EAAO+H,GAAG0mD,sBAAwBA,CACtC,CACJ,CC7B6B,SAAArwD,GAAU4B,GAInCA,EAAOk0O,mBAGP,SAA4BpwF,GACxB9jJ,EAAO+H,GAAG6hM,6BAA6B5mM,SAAQ,SAACC,EAAK+d,GAC7C/d,EAAI+Z,KAAO8mI,EAAU9mI,KACrBhd,EAAO+H,GAAG6hM,6BAA6B3iL,OAAOjG,EAAG,GACjDhhB,EAAO+H,GAAG4hM,4BAA4BrqM,KAAKwkJ,GAEnD,GACJ,EATA9jJ,EAAOm0O,wBAYP,SAAiCrwF,GAC7B9jJ,EAAO+H,GAAG4hM,4BAA4B3mM,SAAQ,SAACC,EAAK+d,GAC5C/d,EAAI+Z,KAAO8mI,EAAU9mI,KACrBhd,EAAO+H,GAAG4hM,4BAA4B1iL,OAAOjG,EAAG,GAChDhhB,EAAO+H,GAAG6hM,6BAA6BtqM,KAAK2D,GAEpD,GACJ,CAEJ,CC1B6B,SAAA7E,GAAU4B,GAInCA,EAAOk0O,mBAGP,SAA4BpwF,GACxB9jJ,EAAO+H,GAAG4jM,gCAAgC3oM,SAAQ,SAACC,EAAK+d,GAChD/d,EAAI+Z,KAAO8mI,EAAU9mI,KACrBhd,EAAO+H,GAAG4jM,gCAAgC1kL,OAAOjG,EAAG,GACpDhhB,EAAO+H,GAAG2jM,+BAA+BpsM,KAAKwkJ,GAEtD,GACJ,EATA9jJ,EAAOm0O,wBAYP,SAAiCrwF,GAC7B9jJ,EAAO+H,GAAG2jM,+BAA+B1oM,SAAQ,SAACC,EAAK+d,GAC/C/d,EAAI+Z,KAAO8mI,EAAU9mI,KACrBhd,EAAO+H,GAAG2jM,+BAA+BzkL,OAAOjG,EAAG,GACnDhhB,EAAO+H,GAAG4jM,gCAAgCrsM,KAAK2D,GAEvD,GACJ,CAEJ,CC1B6B,SAAA7E,GAAU4B,GAEnCA,EAAOo0O,uBAAyB,SAAU/vD,EAAehhJ,GACrDrjC,EAAO+H,GAAGq9M,iCAAiC/hL,GAAargC,SAAQ,SAAUC,EAAK+d,GACvE/d,EAAI+Z,KAAOqnK,EAAcrnK,KACzBhd,EAAO+H,GAAGq9M,iCAAiC/hL,GAAapc,OAAOjG,EAAG,GAClEhhB,EAAO+H,GAAG2oM,gCAAgCrtK,GAAa/jC,KAAK2D,GAEpE,IACAjD,EAAO+H,GAAGuxN,gBAAkB,IAChC,EAEAt5N,EAAOq0O,4BAA8B,SAAUhwD,EAAehhJ,GAC1DrjC,EAAO+H,GAAG2oM,gCAAgCrtK,GAAargC,SAAQ,SAAUC,EAAK+d,GACtE/d,EAAI+Z,KAAOqnK,EAAcrnK,KACzBhd,EAAO+H,GAAG2oM,gCAAgCrtK,GAAapc,OAAOjG,EAAG,GAC7DqjK,EAAcwmB,cACd7qM,EAAO+H,GAAGq9M,iCAAiC/hL,GAAa/jC,KAAK2D,GAE7DohL,EAAcirC,oBAEdtvN,EAAO+H,GAAGonN,8BAA8B9rL,GAAe,KACvDrjC,EAAO+H,GAAG4oM,6BAA6BttK,GAAe,MAGlE,IACArjC,EAAO+H,GAAGuxN,gBAAkB,IAChC,CACJ,CC1B6B,SAAAl7N,GAAU8B,EAASwT,EAAmB68M,EAAmB/vN,EAAe8wO,EAAe5pO,GAEhH,IA2BgByhD,EA3BZphD,EAAKwH,KAETxH,EAAGusO,YAAc5sO,EAAKwnE,OAAO,GAAGx8D,cAAgBhL,EAAKwc,MAAM,GAC3Dnc,EAAGwpO,eAyCH,WACgC,KAAxBxpO,EAAGwsO,kBAA4BxsO,EAAGwsO,iBAOlCxsO,EAAGmkD,oBAAoBjpC,OANZlb,EAAGmkD,oBAAoB9qD,OAE7B4B,SAAQ,SAAAyP,GACT1K,EAAGmkD,oBAAoBhyC,OAAOzH,EAClC,GAIR,EAlDA1K,EAAG25N,cAoDH,WACI35N,EAAGysO,mBAAqB,IAC5B,EArDAzsO,EAAG8jD,sBAuDH,SAA+BC,GAC3B,IAAI7sC,EAAO6sC,EAAWx8C,OAEtBvH,EAAG2nB,aAAezQ,EAAKqpB,SAASrpB,EAAKspB,SACzC,EA1DAxgC,EAAG23H,WA4DH,WACIhsH,EAAkBuC,MAAMlO,EAAG2nB,aAC/B,EA7DA3nB,EAAGmE,QA+DH,WACIwH,EAAkBxH,SACtB,EAtDInE,EAAGkkD,iBAAmBzrD,EAAc4uC,mBALtB,CACV,CAAExuB,MAAO,OAAQ7U,MAAO,OAAQ6a,YAAY,GAC5C,CAAEhG,MAAO,WAAY7U,MAAO,WAAY6a,YAAY,IAGQ,KAChE7e,EAAGkkD,iBAAiBpC,UAAW,EAC/B9hD,EAAGkkD,iBAAiBnkB,SAAW,CAC3B8pM,eAAe,GAGnB7pO,EAAGmkD,oBAAsB,IAAIl9C,MAAM5N,KAAKmlB,WAAW,CAC/C+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAA8gN,EAAApvN,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACM0xN,EAAkBz8M,SAAS/L,EAAGwsO,iBAAkB,QAAO,OAAA/jB,EAAA7xN,EAAAI,MAAtEqC,EAAIovN,EAAJpvN,MAED+/B,KAAI,SAAAliC,GACLA,EAAK2C,KAAO,GAAHW,OAAMtD,EAAKw2C,UAAS,KAAAlzC,OAAItD,EAAKy2C,SAC1C,IAGAt0C,EAAOA,EAAKsC,QAAO,SAAAzE,GAAI,OAAIA,EAAK+d,KAAOs0N,CAAa,IAEpDlwO,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,aAChCsO,EAAQ+W,QAAQrlB,GAAM,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,KACzB,SAZG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KA8CpB,CC3E6B,SAAA1B,GAAU4B,EAAQE,EAASkW,EAAWm6M,EAAmBxnN,EAAmB6jH,EAAuB3sH,GAAO,IAAAw0O,EAE7HC,EAAwB,IAAIzsO,KAwBX,SAAAvH,IAQtB,OARsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,IAAAk2O,EAAAnkB,EAAAokB,EAAA,OAAAp2O,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACkC,OAA9BgiO,IAA8BliO,EAAAE,KAAA,EACE0xN,EAAkBkB,eAAc,OAAAjB,EAAA7xN,EAAAI,KAApD61O,EAASpkB,EAAfpvN,KACNpB,EAAO+H,GAAG8sO,8BAAgC30O,EAAQ,UAARA,CAAmB00O,EAAW,QACxE50O,EAAO+H,GAAG+sO,2BAA6B50O,EAAQ,UAARA,EAAoC,QAAjBy0O,EAAAC,EAAUhxO,eAAO,IAAA+wO,OAAA,EAAjBA,EAAmBI,SAAU,GAAI,QACvF/0O,EAAO+H,GAAG+sD,KAAKmlJ,eAAerW,SAC9BoxC,IACH,wBAAAr2O,EAAAiB,OAAA,GAAAnB,EAAA,MACJoB,MAAA,KAAAC,UAAA,UAEck1O,IAAsB,OAAAC,EAAAp1O,MAAC,KAADC,UAAA,UAAAm1O,IAEpC,OAFoCA,GAAA12O,OAAAC,UAArC,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACImB,EAAO+H,GAAG+sO,2BAA6B90O,EAAO+H,GAAG8sO,8BAA8B/pO,MAAK,SAAAoqO,GAAO,OAAIA,EAAQtzO,OAAS5B,EAAO+H,GAAG+sD,KAAKmlJ,eAAerW,OAAO,IAAEmxC,OAAO,wBAAA1zO,EAAAzB,OAAA,GAAAsB,EAAA,MACjKrB,MAAA,KAAAC,UAAA,UAEcm7N,EAAiB5tN,GAAA,OAAA+0N,EAAAviO,MAAC,KAADC,UAAA,UAAAsiO,IAe/B,OAf+BA,GAAA7jO,OAAAC,UAAhC,SAAAwD,EAAiC84H,GAAQ,IAAAkuE,EAAAmsC,EAAA/zO,EAAAg0O,EAAA,OAAA52O,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEV0xN,EAAkBz8M,SAASgnH,EAAU,YAAW,OAAAq6G,EAAAjzO,EAAAnD,KAA/DqC,EAAI+zO,EAAJ/zO,KACJg0O,EAA0B,QAAjBpsC,EAAGhpM,EAAO+H,GAAG+sD,YAAI,IAAAk0I,GAAgB,QAAhBA,EAAdA,EAAgBiR,sBAAc,IAAAjR,OAAA,EAA9BA,EAAgChsL,GAE5C5b,WAAM6D,SAAU7D,aAAI,EAAJA,EAAMwC,QAAQoZ,MAAOo4N,GACrCp1O,EAAOm7N,WAAWjhB,SAAStjI,aAAa,YAAY,GACpD52E,EAAO+H,GAAGstO,sBAAuB,IAEjCr1O,EAAOm7N,WAAWjhB,SAAStjI,aAAa,YAAY,GACpD52E,EAAO+H,GAAGstO,sBAAuB,GACpCnzO,EAAArD,KAAA,gBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAED6G,EAAiB,MAAM7G,EAAAV,IAAM,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEpCnC,MAAA,KAAAC,UAAA,CAQ6B,SAAAw1O,IAwB7B,OAxB6BA,GAAA/2O,OAAAC,UAA9B,SAAAoE,EAA+B8E,GAAI,IAAA6tO,EAAAriO,EAAA,OAAA1U,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAU7B,OATE02O,EAAcn/N,EAAUvU,KAAK,CAC7B0X,YAAa,wFACbC,WAAYg8N,GACZ97N,aAAc,MACdC,SAAU,SACVC,QAAS,CACL03N,cAAe,WAAF,OAAQtxO,EAAO+H,GAAG+sD,KAAKmlJ,eAAej9L,EAAE,EACrDtV,KAAM,WAAF,OAAQA,CAAI,KAEtB7E,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGqB02O,EAAYriO,OAAM,OAAjCA,EAAMrQ,EAAA9D,KAEG,YAAT2I,GACA1H,EAAO+H,GAAG+sD,KAAKmlJ,eAAejW,UAAY9wL,EAAO8J,GACjDhd,EAAO+H,GAAG2pO,gBAAkBx+N,EAAOtR,OAEnC5B,EAAO+H,GAAG+sD,KAAKmlJ,eAAegB,mBAAqB/nM,EAAO8J,GAC1Dhd,EAAO+H,GAAG0tO,iBAAmBviO,EAAOtR,MACvCiB,EAAAhE,KAAA,uBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAGR/C,MAAA,KAAAC,UAAA,CAmCC,SAEa+gO,IAA2B,OAAAD,EAAA/gO,MAAC,KAADC,UAAA,UAAA8gO,IAMzC,OANyCA,GAAAriO,OAAAC,UAA1C,SAAA6K,IAAA,IAAApH,EAAA,OAAAzD,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAE8G,OAD1GmB,EAAO+H,GAAGq5N,iBAA0F,MAAvEphO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,cAAhBA,EAAOpe,IAAoB,IAAEwM,MAC1FpO,EAAO+H,GAAGs5N,kBAA4F,MAAxErhO,EAAO+H,GAAGiY,OAAOlV,MAAK,SAAAkV,GAAM,MAAoB,eAAhBA,EAAOpe,IAAqB,IAAEwM,MAAc1E,EAAA7K,KAAA,EACrF+tH,EAAsB4B,4BAA4B,MAAK,OAAxEvsH,EAAQyH,EAAA3K,KACZiB,EAAO+H,GAAGu5N,oBAAuG,MAAjFr/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,2BAAhBA,EAAOpe,IAAiC,IAAEwM,OAAiBpO,EAAO+H,GAAGq5N,iBAClIphO,EAAO+H,GAAGw5N,qBAAyG,MAAlFt/N,EAASb,KAAK0J,MAAK,SAAAkV,GAAM,MAAoB,4BAAhBA,EAAOpe,IAAkC,IAAEwM,OAAiBpO,EAAO+H,GAAGs5N,kBAAkB,wBAAA33N,EAAA9J,OAAA,GAAAyJ,EAAA,MACzJxJ,MAAA,KAAAC,UAAA,CASyB,SAAA4gO,IAGzB,OAHyBA,GAAAniO,OAAAC,UAA1B,SAAAkM,IAAA,IAAAoD,EAAA1M,EAAA,OAAA5C,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA9L,KAAA,EAC2BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,0DAAwD,OAAAwL,EAAAnD,EAAA5L,KAA1FqC,EAAI0M,EAAJ1M,KACRpB,EAAO+H,GAAG+sD,KAAKmlJ,eAAerX,cAAgBxhM,EAAKgN,MAAM,wBAAAzD,EAAA/K,OAAA,GAAA8K,EAAA,MAC5D7K,MAAA,KAAAC,UAAA,CA1ID40O,EAAsB9+N,SAAS,EAAG,EAAG,EAAG,GAEnC5V,EAAO+H,GAAG+sD,KAAKmlJ,iBAChBj6M,EAAO+H,GAAG+sD,KAAKmlJ,eAAiB,CAAC,GAGrCj6M,EAAO+H,GAAG+sD,KAAKmlJ,eAAejlK,YAAc,KAC5Ch1C,EAAO+H,GAAG2tO,0BAkDP,SAE2BxsO,GAAA,OAAAosO,EAAAz1O,MAAC,KAADC,UAAA,EAnD9BE,EAAO+H,GAAG4tO,4BAA8B1a,EACxCj7N,EAAOsiO,oBAsFP,WACI,IAAInlN,EAGAA,EAD4C,KAA5Cnd,EAAO+H,GAAG+sD,KAAKmlJ,eAAezlM,UACvB,IAAIvM,KAEJ,IAAIA,KAAKjI,EAAO+H,GAAG+sD,KAAKmlJ,eAAezlM,WAGlDxU,EAAO+H,GAAG2sO,sBAAwBv3N,EAClCnd,EAAO+H,GAAG2yN,YAAcv9M,EAEa,MAAjCnd,EAAO+H,GAAG+sD,KAAKmlJ,iBACfj6M,EAAO+H,GAAG+sD,KAAKmlJ,eAAiB,CAAC,EAEzC,EApGAj6M,EAAOuiO,kBAsGP,WACIviO,EAAO+H,GAAG6tO,sBAAwB,IAAI3tO,KAAKjI,EAAO+H,GAAG+sD,KAAKmlJ,eAAevlM,SACzE1U,EAAO+H,GAAG8yN,YAAc,IAAI5yN,KAAKjI,EAAO+H,GAAG+sD,KAAKmlJ,eAAezlM,WAC1B,MAAjCxU,EAAO+H,GAAG+sD,KAAKmlJ,iBACfj6M,EAAO+H,GAAG+sD,KAAKmlJ,eAAiB,CAAC,EAEzC,EA3GAj6M,EAAO+H,GAAG2sO,sBAAwBA,EAClC10O,EAAO+H,GAAG23H,WAoHV,SAAoBzgI,GAChBe,EAAO+H,GAAG+sD,KAAKmlJ,eAAiBh7M,EACV,UAAlBA,EAAK4jM,UAGZ,WAEyB69B,EAAA7gO,MAAC,KAADC,UAAA,CAJlB6gO,EAER,EAxHA3gO,EAAO+H,GAAG+sD,KAAKmlJ,eAAe47B,WAAyC,QAA7BpB,EAAAz0O,EAAO+H,GAAG+sD,KAAKmlJ,sBAAc,IAAAw6B,OAAA,EAA7BA,EAA+BoB,YAAa,GACtF71O,EAAO+H,GAAG+tO,iCAAmCd,EAC7Ch1O,EAAO+H,GAAGguO,qBAsEV,SAAoBruO,GACH,aAATA,GACA1H,EAAO+H,GAAG+sD,KAAKmlJ,eAAegB,mBAAqB,KACnDj7M,EAAO+H,GAAG0tO,iBAAmB,KAE7Bz1O,EAAO+H,GAAG+sD,KAAKmlJ,eAAejW,UAAY,KAC1ChkM,EAAO+H,GAAG2pO,gBAAkB,GAEpC,EA7EA1xO,EAAO+H,GAAG2pO,gBAAkB,GAC5B1xO,EAAO+H,GAAG0tO,iBAAmB,GAC7Bz1O,EAAO+H,GAAGiuO,6BAA+B,kNAE9B,WAEYt1O,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,GAiCAlE,EAAOqY,OAAO,mCAAmC,WAAM,IAAA49N,EAClB,QAA7BA,EAAAj2O,EAAO+H,GAAG+sD,KAAKmlJ,sBAAc,IAAAg8B,GAA7BA,EAA+B/7B,UAAqC,QAAzBl6M,EAAO+H,GAAGmiM,YACrD+wB,EAAkBj7N,EAAO+H,GAAG+sD,KAAKmlJ,eAAeC,SAExD,GAkFJ,C,0kBC/I6B,SAAA97M,GAAU8B,EAASF,EAAQuwN,GAAmB,IAAAvnB,EAAAC,EAuBnDwrC,EA2BJ7jL,EA6CA23F,EA1DAp/F,EAmEqB,SAAA+sL,IAwBpC,OAxBoCA,GAAA33O,OAAAC,UAArC,SAAAoE,EAAsCuzO,GAAiB,IAAA7qC,EAAA8qC,EAAA5zO,EAAAiuN,EAAA,OAAAjyN,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAgBlD,OAfG2D,EAAuB,QAAjB8oM,EAAGtrM,EAAO+H,GAAG+sD,YAAI,IAAAw2I,GAAgB,QAAhBA,EAAdA,EAAgB2O,sBAAc,IAAA3O,OAAA,EAA9BA,EAAgCtuL,GACzCyzM,EAA0B,QAAjB2lB,EAAGp2O,EAAO+H,GAAG+sD,YAAI,IAAAshL,GAAgB,QAAhBA,EAAdA,EAAgBn8B,sBAAc,IAAAm8B,GAAS,QAATA,EAA9BA,EAAgC17B,eAAO,IAAA07B,OAAA,EAAvCA,EAAyCxlB,cAEzD5wN,EAAO+H,GAAGwyM,uCAAyC,GAE/C/3M,GAAUiuN,IAAczwN,EAAO+H,GAAGgpN,4BAwBjC/wN,EAAO+H,GAAGkpN,qCACXrrN,IAAK,UAHK,yOAGe,WAEzB5F,EAAO+H,GAAGkpN,oCAAqC,EAC/CjxN,EAAO+H,GAAGsuO,sCAAuC,GAzB1C7zO,GAEPxC,EAAO+H,GAAGwyM,wCAAsCzqL,OAAO9vB,EAAO+H,GAAG+oN,kCACjE9wN,EAAO+H,GAAGsuO,sCAAuC,IAEjDr2O,EAAO+H,GAAGsuO,sCAAuC,EACjDr2O,EAAO+H,GAAGkpN,oCAAqC,GAClDpuN,EAAAhE,KAAA,EAEKmB,EAAO+H,GAAGuuO,6BAA6BrzN,OAAM,OACnDjjB,EAAO+H,GAAGwuO,oBAAsBJ,EAEhCK,IAEAx2O,EAAO+H,GAAGo+M,wCAA0CswB,GAAiBhmB,EAAWzwN,EAAO+H,GAAGopN,mCAAmC,wBAAAtuN,EAAAjD,OAAA,GAAAgD,EAAA,MAChI/C,MAAA,KAAAC,UAAA,CAcD,SAAS02O,IACL,IAAIj1K,EAAUvhE,EAAO+H,GAAGoyM,mBAAmBrvM,MAAK,SAAAy2D,GAAO,IAAAm1K,EAAA,OAAiC,QAA7BA,EAAA12O,EAAO+H,GAAG+sD,KAAKmlJ,sBAAc,IAAAy8B,OAAA,EAA7BA,EAA+Bh8B,QAAQ19L,MAAOukD,EAAQvkD,EAAE,IAE/GukD,WAASvkD,IACTukD,EAAQ25I,WAAa,KACrBl7M,EAAO+H,GAAG+sD,KAAKmlJ,eAAeS,QAAOtgJ,GAAA,GAAQmH,GAC7CvhE,EAAOm7N,WAAWj1M,QAAS,EAC3BlmB,EAAOm7N,WAAWwb,UAAW,IAE7B32O,EAAOm7N,WAAWj1M,QAAS,EAC3BlmB,EAAOm7N,WAAWwb,UAAW,GAGjC32O,EAAO+H,GAAG6uO,6BAAqD,cAAtBr1K,aAAO,EAAPA,EAASshI,UAClD7iM,EAAO+H,GAAGwuO,oBAAsB,IACpC,CA5JAv2O,EAAO+H,GAAG8uO,2BAA4B,EAEjC72O,EAAO+H,GAAG+sD,KAAKmlJ,iBAChBj6M,EAAO+H,GAAG+sD,KAAKmlJ,eAAiB,CAAC,GAGrCj6M,EAAO+H,GAAG+sD,KAAKmlJ,eAAejlK,YAAc,KAC5Ch1C,EAAO+H,GAAG6uO,6BAAqF,cAAxC,QAAd5tC,EAAAhpM,EAAO+H,GAAG+sD,YAAI,IAAAk0I,GAAgB,QAAhBA,EAAdA,EAAgBiR,sBAAc,IAAAjR,GAAS,QAATA,EAA9BA,EAAgC0R,eAAO,IAAA1R,OAAA,EAAvCA,EAAyCnG,UAClF7iM,EAAO+H,GAAG+uO,2BAA2C,QAAjB7tC,EAAGjpM,EAAO+H,GAAG+sD,YAAI,IAAAm0I,GAAgB,QAAhBA,EAAdA,EAAgBgR,sBAAc,IAAAhR,OAAA,EAA9BA,EAAgC4nB,eACvE7wN,EAAO+H,GAAGgvO,iCA4FT,SAEoCzjO,GAAA,OAAA4iO,EAAAr2O,MAAC,KAADC,UAAA,EA7FrCE,EAAO+H,GAAGivO,iCAAmCR,EAC7Cx2O,EAAO+H,GAAGoyM,mBAAqB,GAC/Bn6M,EAAO+H,GAAGkvO,gBAAkB,CACxBhoO,SAAU,iCACV46C,UAAU,EACV/Y,cAAe,OACfC,eAAgB,KAChBnqC,OAAQ,KAiBR5G,EAAO+H,GAAGmvO,iCAAmC,IAAIloO,MAAM5N,KAAKmlB,WAAW,CACnEC,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAgBiR,GAAO,IAAA27L,EAAA/5L,EAAAk/M,EAAApvN,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACoE,OAAvFyS,EAAS,CAAE,iBAAkC,QAAhB+5L,EAAErrM,EAAO+H,GAAG+sD,YAAI,IAAAu2I,GAAgB,QAAhBA,EAAdA,EAAgB4O,sBAAc,IAAA5O,GAAS,QAATA,EAA9BA,EAAgCqP,eAAO,IAAArP,OAAA,EAAvCA,EAAyCulB,eAAejyN,EAAAE,KAAA,EACxE0xN,EAAkBv/C,gBAAgB1/J,GAAO,OAAAk/M,EAAA7xN,EAAAI,KAAxDqC,EAAIovN,EAAJpvN,KAENsO,EAAQ+W,QAAQvmB,EAAQ,UAARA,CAAmBkB,EAAM,SAAS,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,KACrD,SALG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,MAwDZE,EAAO+H,GAAGovO,0BAA4B,IAAInoO,MAAM5N,KAAKmlB,WAAW,CAC5DC,UAAW,CACPvD,MAAIslI,GAAAhqJ,OAAAC,UAAE,SAAAwD,EAAgB0N,GAAO,IAAA0nO,EAAAh2O,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EACJ0xN,EAAkB32K,WAAU,OAAAw9L,EAAAl1O,EAAAnD,KAA3CqC,EAAIg2O,EAAJh2O,KAENsO,EAAQ+W,QAAQvmB,EAAQ,UAARA,CAAmBkB,EAAM,SAAS,wBAAAc,EAAAtC,OAAA,GAAAoC,EAAA,KACrD,SAJGmH,GAAA,OAAAo/I,EAAA1oJ,MAAA,KAAAC,UAAA,MA/CZE,EAAO+H,GAAGuuO,6BAA+B,IAAItnO,MAAM5N,KAAKmlB,WAAW,CAC/DC,UAAW,CACPvD,MAAI2tC,GAAAryD,OAAAC,UAAE,SAAA0C,EAAgBwO,GAAO,IAAAumO,EAAAoB,EAAAlC,EAAAmC,EAAA/1K,EAAAg2K,EAAA,OAAA/4O,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACM0xN,EAAkBn0H,cAAa,OAAA+4I,EAAA9zO,EAAAtC,KAAlDu4O,EAAQnC,EAAd/zO,MAGNk2O,EAAWp3O,EAAQ,UAARA,CAAmBo3O,EAAU,UAGa,QAAzCrB,EAAIj2O,EAAO+H,GAAG+sD,KAAKmlJ,eAAeS,eAAO,IAAAu7B,GAArCA,EAAuCrlB,gBACnD0mB,EAAWA,EAAS5zO,QAAO,SAAA8zO,GAAa,OAAIA,EAAc5mB,gBAAkB5wN,EAAO+H,GAAG+sD,KAAKmlJ,eAAeS,QAAQkW,aAAa,KAI3G,IAApB0mB,EAASryO,SACTs8D,EAAU+1K,EAAS1zO,QAEnB5D,EAAO+H,GAAG+sD,KAAKmlJ,eAAeS,QAAOtgJ,GAAA,GAAQmH,GAC7CvhE,EAAO+H,GAAG6uO,6BAAqD,cAAf,QAAPW,EAAAh2K,SAAO,IAAAg2K,OAAA,EAAPA,EAAS10C,WAIlD7iM,EAAO+H,GAAG+sD,KAAKmlJ,eAAeS,UAAY16M,EAAO+H,GAAG+sD,KAAKmlJ,eAAeS,QAAQ7P,eAChF7qM,EAAOm7N,WAAWj1M,QAAS,EAC3BlmB,EAAOm7N,WAAWwb,UAAW,GAIjCW,EAAWA,EAAS5zO,QAAO,SAAA69D,GAAO,OAAIA,EAAQspI,YAAY,IAErD7qM,EAAO+H,GAAG6uO,+BACX52O,EAAO+H,GAAG+sD,KAAKmlJ,eAAeiB,WAAa,MAG/Cl7M,EAAO+H,GAAGoyM,mBAAqBm9B,EAE/B5nO,EAAQ+W,QAAQ6wN,GAEhBt3O,EAAO+H,GAAGo+M,wCAA0CswB,GAAsD,QAAtCY,EAACr3O,EAAO+H,GAAG+sD,KAAKmlJ,eAAeS,eAAO,IAAA28B,OAAA,EAArCA,EAAuCzmB,cAAe5wN,EAAO+H,GAAGopN,mCAAmC,yBAAA9vN,EAAAzB,OAAA,GAAAsB,EAAA,KAC3K,SArCGgI,GAAA,OAAA0nD,EAAA/wD,MAAA,KAAAC,UAAA,MAtBsB,QAA9B20O,EAACz0O,EAAO+H,GAAG+sD,KAAKmlJ,sBAAc,IAAAw6B,GAAS,QAATA,EAA7BA,EAA+B/5B,eAAO,IAAA+5B,GAAtCA,EAAwCz3N,KACzChd,EAAOm7N,WAAWj1M,QAAS,EAC3BlmB,EAAOm7N,WAAWwb,UAAW,EAgIzC,CAEA,SAASF,GAAiBhmB,GACtB,OAD4C3wN,UAAAmF,OAAA,QAAAmF,IAAAtK,UAAA,GAAAA,UAAA,GAAG,IAC5B4D,QAAO,SAAA4tN,GAAmB,OAAIA,EAAoBmmB,YAAchnB,IAAca,EAAoBmmB,SAAS,GAClI,CCpK6B,SAAAr5O,GAAU4B,GAGnCA,EAAO03O,cAAgB,SAAU1oJ,GAC7BhvF,EAAO+H,GAAGo+M,wCAAwCnjN,SAAQ,SAACC,EAAK+d,GACxD/d,EAAI+Z,KAAOgyE,EAAWhyE,KACtBhd,EAAO+H,GAAGo+M,wCAAwCl/L,OAAOjG,EAAG,GAC5D/d,EAAG,KAAO,EACVjD,EAAO+H,GAAGwyM,uCAAuCj7M,KAAK2D,GAE9D,IACAjD,EAAO+H,GAAGwuO,oBAAsB,IACpC,EAEAv2O,EAAO23O,iBAAmB,SAAUtmB,GAChCrxN,EAAO+H,GAAGwyM,uCAAuCv3M,SAAQ,SAACC,EAAK+d,GACvD/d,EAAI+Z,KAAOq0M,EAAmBr0M,KAC9Bhd,EAAO+H,GAAGwyM,uCAAuCtzL,OAAOjG,EAAG,GAC3D/d,EAAG,KAAO,EACVjD,EAAO+H,GAAGo+M,wCAAwC7mN,KAAK2D,GAE/D,GACJ,EAEAjD,EAAO43O,4BAA8B,SAAU5oJ,GAE3C,OAAQhvF,EAAO+H,GAAGsuO,sCAAwCrnJ,EAAU,KAAQA,EAAW87G,OAC3F,CACJ,Cb5B6F1sM,GAAAgxB,QAAA,wECCdhxB,GAAAgxB,QAAA,0E,kEIDWhxB,GAAAgxB,QAAA,kF,wFKA6BhxB,GAAAgxB,QAAA,2FCAxDhxB,GAAAgxB,QAAA,yGCAhChxB,GAAAgxB,QAAA,yC,sBEwD/B,SAAe1tB,WACH,wCAAyC,CAACm2O,GAAiDC,KAClGr1N,UAAU,mBAAoBs1N,IAC9Bt1N,UAAU,eAAgBu1N,IAC1Bv1N,UAAU,wBAAyBw1N,IACnCx1N,UAAU,oBAAqBy1N,IAC/Bz1N,UAAU,sBAAuB01N,IACjC11N,UAAU,wBAAyB21N,IACnC5+N,WAAW,+BAAgC6+N,IAC3C7+N,WAAW,qBAAsB8+N,IACjC9+N,WAAW,sBAAuB++N,IAClC/+N,WAAW,wBAAyBg/N,IACpCh/N,WAAW,oBAAqBi/N,IAChCj/N,WAAW,8BAA+Bk/N,IAC1Cl/N,WAAW,wBAAyBm/N,IACpCn/N,WAAW,kCAAmCo/N,IAC9Cp/N,WAAW,6BAA8Bq/N,IACzCr/N,WAAW,qBAAsBs/N,IACjCt/N,WAAW,0BAA2Bu/N,IACtCv/N,WAAW,+BAAgCw/N,IAC3Cx/N,WAAW,uBAAwBy/N,IACnCz/N,WAAW,uBAAwB0/N,IACnC1/N,WAAW,iCAAkC2/N,IAC7C3/N,WAAW,wBAAyB4/N,IACpC5/N,WAAW,oBAAqB6/N,IAChC7/N,WAAW,8BAA+B8/N,IAC1C9/N,WAAW,8BAA+B+/N,IAC1C//N,WAAW,0BAA2BggO,IACtChgO,WAAW,+BAAgCigO,IAC3CjgO,WAAW,4BAA6BkgO,IACxClgO,WAAW,0BAA2BmgO,IACtCngO,WAAW,oBAAqBogO,IAChCpgO,WAAW,8BAA+BqgO,IAC1CrgO,WAAW,+BAAgCsgO,IAC3CtgO,WAAW,oBAAqBugO,IAChCvgO,WAAW,8BAA+BwgO,IAC1CxgO,WAAW,yBAA0BygO,IACrCzgO,WAAW,mCAAoC0gO,IAC/C1gO,WAAW,iCAAkC2gO,IAC7C3gO,WAAW,qBAAsB4gO,IACjC5gO,WAAW,8BAA+B6gO,IAC1C7gO,WAAW,+BAAgC8gO,IAC3C9gO,WAAW,+BAAgC+gO,IAC3C/gO,WAAW,kCAAmCghO,IAC9ChhO,WAAW,qCAAsCihO,IACjDjhO,WAAW,2BAA4BkhO,IACvClhO,WAAW,yBAA0BmhO,IACrCnhO,WAAW,uCAAwCohO,IACnDphO,WAAW,6BAA8BqhO,IACzCrhO,WAAW,mCAAoCshO,IAC/CthO,WAAW,gCAAiCuhO,IAC5CvhO,WAAW,sCAAuCwhO,IAClDxhO,WAAW,8BAA+ByhO,IAC1CzhO,WAAW,oBAAqB0hO,IAC5B,KC3GoB,SAAA98O,GAAU4B,EAAQI,EAAYme,EAA4Bre,EAAS+nB,EAAsBxa,EAAqBlN,EAAWC,EAAe+2C,EAAgB4D,EAAoBggM,GACrM,IAAMpzO,EAAKwH,KAoEY,SAAA7O,IAwBtB,OAxBsBA,GAAAnC,OAAAC,UAAvB,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OASK,OARG0B,EAAUyD,OAAOojD,SAAS,aAC1Br/C,EAAGua,YAAa,EAChBva,EAAG6gC,UAAYtmC,OAAS,gDACxByF,EAAGqzO,cAAgB,CAAEx6N,MAAO,cAAe61B,IAAK,UAEhD1uC,EAAGua,YAAa,EAChBva,EAAG6gC,UAAYtmC,OAAS,uCACxByF,EAAGqzO,cAAgB,CAAEx6N,MAAO,gBAAiB61B,IAAK,SACrDp1C,EAAAxC,KAAA,EAEK6tJ,IAAa,OAEO,OAA1B2uF,IAA0Bh6O,EAAAxC,KAAA,EACpB0mF,IAAa,OAEH,OA4PhBx9E,EAAG8jC,QAAU,IAAI5jC,KACjBF,EAAG8jC,QAAUttB,EAA2B8f,wBAAwBj+B,EAAWwuB,kBAAmB,UAAW7mB,EAAG8jC,SAIxG+9B,YAAU,IAAI3hE,MAEV4hE,QAAQD,EAAQE,UAAY,IACpC/hE,EAAG4jC,UAAYi+B,EACf7hE,EAAG4jC,UAAYptB,EAA2B8f,wBAAwBj+B,EAAWwuB,kBAAmB,YAAa7mB,EAAG4jC,WArQhGtqC,EAAAxC,KAAA,GAEVu8C,IAAmB,QAEzBrzC,EAAG6b,eAAe8vC,OAASnc,EAAeC,UAAUzvC,EAAGkiE,eAAe3qD,SAClElf,EAAWwuB,mBACX+7B,IACH,yBAAAtpD,EAAAzB,OAyPL,IACQgqE,CA1PH,GAAA1oE,EAAA,MACJrB,MAAA,KAAAC,UAAA,UAEc4sJ,IAAW,OAAAI,EAAAjtJ,MAAC,KAADC,UAAA,UAAAgtJ,IAQzB,OARyBA,GAAAvuJ,OAAAC,UAA1B,SAAAwD,IAAA,IAAAmP,EAAAqC,EAAA,OAAAhV,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EAC2B4O,EAAoB8F,cAAa,OAAlDpC,EAAQjP,EAAAnD,KACVyU,EAAiBhT,EAAc4Q,qCAAqCD,GAExEpJ,EAAG+W,SAAW3N,EACdpJ,EAAGP,WAAagM,EAAe5R,KAC/BmG,EAAGsX,SAAW7L,EAAeyhC,SAC7BltC,EAAGib,kBAAoBiF,EAAqBigB,qBAAqBngC,EAAG+W,UAAU,wBAAA5c,EAAAtC,OAAA,GAAAoC,EAAA,MACjFnC,MAAA,KAAAC,UAAA,CAED,SAAS6qD,IACD5iD,EAAGg2E,WAAa39E,EAAWwuB,mBAAqB7mB,EAAGslG,kBAAoBtlG,EAAG6b,eAAe8vC,OACzF1zD,EAAOglD,YAAW,WACdj9C,EAAG6b,eAAexe,MAAQmyC,EAAeW,wBACzCnwC,EAAG6b,eAAeI,UAAYuzB,EAAee,4BAC7C2lC,IACAl2E,EAAG6b,eAAewoD,aAAc,CACpC,IACOrkE,EAAGg2E,YAAc39E,EAAWwuB,mBAAqB7mB,EAAGslG,kBAAoBtlG,EAAG6b,eAAe8vC,QAEjGpyC,GAER,CAAE,SAEaikE,IAAW,OAAAwQ,EAAAl2F,MAAC,KAADC,UAAA,UAAAi2F,IAWzB,OAXyBA,GAAAx3F,OAAAC,UAA1B,SAAAoE,IAAA,IAAA6iF,EAAA,OAAAjnF,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAhE,KAAA,EACyBs8O,EAA0B51J,cAAa,OAAxDE,EAAQ5iF,EAAA9D,KAEZ0mF,EAAWvlF,EAAQ,UAARA,CAAmBulF,EAASrkF,KAAM,cAE7C2G,EAAGuzO,0BAA4B,CAAE,WAAc,eAAgB,GAAM,2BACrE71J,EAAS5zE,QAAQ9J,EAAGuzO,2BAEpBvzO,EAAGslG,iBAAmB5nB,EACtB19E,EAAGwzO,kBAAoB,CAAC91J,EAAS7hF,SACjCmE,EAAGwzO,kBAAoBh9N,EAA2BqiB,0BAA0BxgC,EAAWwuB,kBAAmB62D,EAAU19E,EAAGwzO,mBAAmB,wBAAA14O,EAAAjD,OAAA,GAAAgD,EAAA,MAC7I/C,MAAA,KAAAC,UAAA,CAOD,SAASwhB,IAEL,GAAKvZ,EAAG4jC,WAAc5jC,EAAG8jC,cAAoCzhC,IAAzBrC,EAAGwzO,kBAAvC,CAIA,IAAI99N,EAAW,GAEf1V,EAAG49I,eAAiBnlJ,EAAckrC,wBAAwB3jC,EAAG4jC,WAC7D5jC,EAAG69I,aAAeplJ,EAAcorC,kBAAkB7jC,EAAG8jC,SAErD9jC,EAAG09E,SAAWjlF,EAAc0wC,uBAAuBnpC,EAAGwzO,kBAAkBp6M,KAAI,SAAA9O,GAAE,OAAIA,EAAGrV,EAAE,KAEvFS,EAASne,KAAK2oB,EAAqB6iB,eAAe,YAAa,YAAa/iC,EAAG49I,eAAgB59I,EAAG49I,iBAClGloI,EAASne,KAAK2oB,EAAqB6iB,eAAe,UAAW,UAAW/iC,EAAG69I,aAAc79I,EAAG69I,eAC5F79I,EAAGwzO,kBAAkBv4O,SAAQ,SAACC,EAAK+d,GAAC,OAAKvD,EAASne,KAAK2oB,EAAqB6iB,eAAe,WAAY,SAAU7nC,EAAIooF,WAAYpoF,EAAI+Z,IAAI,IAEzIjV,EAAGoX,mBAAqB1B,EAGpBrd,EAAWiE,KAAKY,OAAS,GAAK8C,EAAGP,YACjC+vC,EAAe4B,kBAAkBpxC,EAjBrC,CAmBJ,CAEA,SAASk2E,IACA79E,EAAWwuB,oBACZ7mB,EAAGkX,KAAKoC,WAAW4gB,QAAU,KAC7Bl6B,EAAGkX,KAAKoC,WAAW6gB,MAAQ,MAG3Bn6B,EAAG4jC,WAAa5jC,EAAG8jC,SACnBvqB,IACAvZ,EAAG2hE,6BAA8B,EAG5BtpE,EAAWwuB,mBACZ7mB,EAAGkX,KAAK+iB,WAAW,CACfpb,WAAY,CACR0oB,KAAM,OAEV7H,UAAU,IAIlBlpB,EAA2BqjB,qBAAqBxhC,EAAWwuB,kBAAmB7mB,EAAGkX,MAAM,IAGvFze,EAAc2d,iBAAiB,iDAEvC,CAEA,SAASk9N,IA2ES,IAAFlyL,GA1EU,IAAlBphD,EAAGua,WACHva,EAAG42E,gBAAkB,CACjB,CAAE/9D,MAAO,cAAe7U,MAAO,eAAgBkD,SAAU,6CAA8C2X,WAAYme,GAAwB/0B,MAAO,KAClJ,CAAE4Q,MAAO,YAAa7U,MAAO,YAAa6a,WAAYyf,GAA0Br2B,MAAO,KACvF,CAAE4Q,MAAO,gBAAiB7U,MAAO,iBAAkB6a,WAAYyf,GAA0Br2B,MAAO,KAChG,CAAE4Q,MAAO,eAAgB7U,MAAO,gBAAiB6a,WAAYyf,GAA0Br2B,MAAO,KAC9F,CAAE4Q,MAAO,oBAAqB7U,MAAO,sBAAuB6a,WAAYyf,GAA0Br2B,MAAO,KACzG,CAAE4Q,MAAO,WAAY7U,MAAO,YAAa6a,WAAYyf,GAA0Br2B,MAAO,KACtF,CAAE4Q,MAAO,WAAY7U,MAAO,YAAa6a,WAAYyf,GAA0Br2B,MAAO,KACtF,CAAE4Q,MAAO,gBAAiB7U,MAAO,iBAAkB6a,WAAYyf,GAA0Br2B,MAAO,KAChG,CAAE4Q,MAAO,gBAAiB7U,MAAO,kBAAmB6a,WAAYyf,GAA0Br2B,MAAO,KACjG,CAAE4Q,MAAO,kBAAmB7U,MAAO,oBAAqB6a,WAAYyf,GAA0Br2B,MAAO,KACrG,CAAE4Q,MAAO,uBAAwB7U,MAAO,0BAA2B6a,WAAYyf,GAA0Br2B,MAAO,KAChH,CAAE4Q,MAAO,yBAA0B7U,MAAO,4BAA6B6a,WAAYyf,GAA0Br2B,MAAO,KACpH,CAAE4Q,MAAO,gBAAiB7U,MAAO,kBAAmBkD,SAAU,+CAAgD2X,WAAYme,GAAwB/0B,MAAO,KACzJ,CAAE4Q,MAAO,cAAe7U,MAAO,gBAAiBkD,SAAU,6CAA8C2X,WAAYme,GAAwB/0B,MAAO,KACnJ,CAAE4Q,MAAO,oBAAqB7U,MAAO,sBAAuB6a,WAAYyf,GAA0Br2B,MAAO,KACzG,CAAE4Q,MAAO,wBAAyB7U,MAAO,2BAA4BkD,SAAU,uDAAwD2X,WAAYme,GAAwB/0B,MAAO,KAClL,CAAE4Q,MAAO,4BAA6B7U,MAAO,2BAA4B6a,WAAYyf,GAA0Br2B,MAAO,KACtH,CAAE4Q,MAAO,wBAAyB7U,MAAO,2BAA4B6a,WAAYmf,GAAqB/1B,MAAO,KAC7G,CAAE4Q,MAAO,oBAAqB7U,MAAO,sBAAuB6a,WAAYyf,GAA0Br2B,MAAO,KACzG,CAAE4Q,MAAO,sBAAuB7U,MAAO,yBAA0B6a,WAAYyf,GAA0Br2B,MAAO,KAC9G,CAAE4Q,MAAO,SAAU7U,MAAO,SAAU6a,WAAYyf,GAA0Br2B,MAAO,KACjF,CAAE4Q,MAAO,yBAA0B7U,MAAO,4BAA6B6a,WAAYyf,GAA0Br2B,MAAO,KACpH,CAAE4Q,MAAO,2BAA4B7U,MAAO,8BAA+B6a,WAAYyf,GAA0Br2B,MAAO,KACxH,CAAE4Q,MAAO,kBAAmB7U,MAAO,oBAAqBkD,SAAU,iDAAkD2X,WAAYme,GAAwB/0B,MAAO,KAC/J,CAAE4Q,MAAO,gBAAiB7U,MAAO,kBAAmBkD,SAAU,+CAAgD2X,WAAYme,GAAwB/0B,MAAO,KACzJ,CAAE4Q,MAAO,sBAAuB7U,MAAO,wBAAyB6a,WAAYyf,GAA0Br2B,MAAO,KAC7G,CAAE4Q,MAAO,0BAA2B7U,MAAO,6BAA8BkD,SAAU,yDAA0D2X,WAAYme,GAAwB/0B,MAAO,KACxL,CAAE4Q,MAAO,8BAA+B7U,MAAO,6BAA8B6a,WAAYyf,GAA0Br2B,MAAO,KAC1H,CAAE4Q,MAAO,0BAA2B7U,MAAO,6BAA8B6a,WAAYmf,GAAqB/1B,MAAO,KACjH,CAAE4Q,MAAO,gBAAiB7U,MAAO,iBAAkB6a,WAAYyf,GAA0Br2B,MAAO,KAChG,CAAE4Q,MAAO,iBAAkB7U,MAAO,kBAAmB6a,WAAYyf,GAA0Br2B,MAAO,KAClG,CAAE4Q,MAAO,iBAAkB7U,MAAO,kBAAmB6a,WAAYyf,GAA0Br2B,MAAO,KAClG,CAAE4Q,MAAO,cAAe7U,MAAO,eAAgB6a,WAAYyf,GAA0Br2B,MAAO,KAC5F,CAAE4Q,MAAO,oBAAqB7U,MAAO,qBAAsB6a,WAAYyf,GAA0Br2B,MAAO,KACxG,CAAEf,SAAU,uDAAwDlD,MAAO,GAAIiE,MAAO,MAG1FjI,EAAG42E,gBAAkB,CACjB,CAAE/9D,MAAO,gBAAiB7U,MAAO,eAAgBkD,SAAU,+CAAgD2X,WAAYme,GAAwB/0B,MAAO,KACtJ,CAAE4Q,MAAO,gBAAiB7U,MAAO,YAAa6a,WAAYyf,GAA0Br2B,MAAO,KAC3F,CAAE4Q,MAAO,gBAAiB7U,MAAO,iBAAkB6a,WAAYyf,GAA0Br2B,MAAO,KAChG,CAAE4Q,MAAO,yBAA0B7U,MAAO,gBAAiB6a,WAAYyf,GAA0Br2B,MAAO,KACxG,CAAE4Q,MAAO,oBAAqB7U,MAAO,sBAAuB6a,WAAYyf,GAA0Br2B,MAAO,KACzG,CAAE4Q,MAAO,WAAY7U,MAAO,YAAa6a,WAAYyf,GAA0Br2B,MAAO,KACtF,CAAE4Q,MAAO,SAAU7U,MAAO,SAAU6a,WAAYyf,GAA0Br2B,MAAO,KACjF,CAAEf,SAAU,uDAAwDlD,MAAO,GAAIiE,MAAO,MAI9FjI,EAAGmqC,eAAiB,IAAIljC,MAAM5N,KAAKmlB,WAAW,CAC1C+iC,SAAUliB,GACViiB,OAAQ3nD,QAAQk0B,OAAOgG,GAAoB,CACvC65B,MAAO,CACH/B,OAAQ,CACJquI,cAAe,CAAEr6L,KAAM,QACvB8zO,YAAa,CAAE9zO,KAAM,QACrByoM,cAAe,CAAEzoM,KAAM,QACvB0oM,YAAa,CAAE1oM,KAAM,QACrB+zO,gBAAiB,CAAE/zO,KAAM,QACzBg0O,cAAe,CAAEh0O,KAAM,QACvBi0O,sBAAuB,CAAEj0O,KAAM,WAC/Bk0O,wBAAyB,CAAEl0O,KAAM,WACjCm0O,sBAAuB,CAAEn0O,KAAM,QAC/Bo0O,wBAAyB,CAAEp0O,KAAM,YAI7C6hD,cAAc,EACdxiB,iBAAiB,EACjB62B,eAAe,EACfr6C,KAAMxb,EAAGqzO,cACT50N,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAqsO,EAAAC,EAAA56O,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAqBd,cApBMuB,EAAWwuB,kBACdmtN,EAAU,CACVvnO,UAAWzM,EAAG49I,eACdjxI,QAAS3M,EAAG69I,aACZq2F,SAAUl0O,EAAG09E,UAGjB19E,EAAGyX,gBAAkBhf,EAAcowC,uBAAuBlhC,GAC1DqsO,EAAoB,WAAIh0O,EAAGyX,gBAGvBzX,EAAG6b,eAAexe,QAClB22O,EAAoB,WAAEr8N,QAAUq8N,EAAoB,WAAEr8N,QAAQnd,OAAOwF,EAAG6b,eAAexe,OACvF22O,EAAoB,WAAEp8N,YAAc5X,EAAG6b,eAAeI,WAKtD5jB,EAAWiE,KAAKY,OAAS,GACzBsyC,EAAe4B,kBAAkBpxC,GACpCpJ,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGwBs8O,EAA0Be,YAAYn0O,EAAG6gC,UAAWmzM,EAAS,CAAEzqO,OAAQ,CAAE,SAAY5B,EAAQtO,KAAKkoD,SAAU,KAAQ55C,EAAQtO,KAAKgG,QAAS,OAAA40O,EAAAr9O,EAAAI,MAAzJqC,EAAI46O,EAAJ56O,MACgB05B,UAAUE,WAErBh4B,SAAQ,SAAAC,GACf,GAAIA,EAAIi9L,eAAgB,CACpB,IAAMA,EAAiBzgM,KAAKC,MAAMuD,EAAIi9L,gBAClCA,IACAj9L,EAA4B,uBAAIi9L,EAAet+L,KAEvD,CACJ,IAEA8N,EAAQ+W,QAAQrlB,GAChB2G,EAAGwoD,YAAa,EAAK5xD,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SA3S3B,MA6SUA,EAAA6C,GAAMoK,QACNpL,EAAc2d,iBAAiBxf,EAAA6C,GAAMJ,MACxC,yBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,mBAER,SA3CG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,MA0DPM,EAAWwuB,mBACZ3G,EAAqBuiB,oBAAoBziC,EAAI,KAXrD,CAgFA,SACeqzC,IAAiB,OAAAC,EAAAx7C,MAAC,KAADC,UAAA,UAAAu7C,IAQ/B,OAR+BA,GAAA98C,OAAAC,UAAhC,SAAA6K,IAAA,IAAAjI,EAAA,OAAA5C,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA7K,KAAA,EACqBs8C,EAAmBC,kBAAkBrzC,EAAGsX,UAAS,OAIa,OAJ3Eje,EAAIsI,EAAA3K,KAERgJ,EAAGkiE,eAAiB7oE,EAAKA,KAAK05B,UAAUE,WACxCjzB,EAAGkiE,eAAe3qD,QAAUpf,EAAQ,UAARA,CAAmB6H,EAAGkiE,eAAe3qD,QAAS,eAC1EvX,EAAG6b,eAAe8vC,OAASnc,EAAeC,UAAUzvC,EAAGkiE,eAAe3qD,SAAS5V,EAAAsE,OAAA,SAExEjG,EAAGkiE,gBAAc,wBAAAvgE,EAAA9J,OAAA,GAAAyJ,EAAA,MAC3BxJ,MAAA,KAAAC,UAAA,CA7YDiI,EAAG4iD,eAAiBA,EACpB5iD,EAAGk2E,+BAAiCA,EACpCl2E,EAAGo0O,uBA8HH,WACIp0O,EAAGwzO,kBAAoB/6O,EAAc6wC,mCAAmCtpC,EAAGwzO,kBAAmBxzO,EAAGuzO,2BACjGh6N,GACJ,EAhIAvZ,EAAGsiF,YAgUH,SAAqB/hD,GACjB,IAAMlnC,EAAO3B,KAAKoE,UAAUkE,EAAGmqC,eAAe9wC,QAC1CA,GACAjC,aAAaiE,QAAQ,2BAA4BhC,GAErDb,EAAUyD,KAAK,mCAAmCS,OAAO,CAAE4iD,UAAW/e,EAAS+e,UAAWC,QAAShf,EAASif,gBAChH,EArUAx/C,EAAGslE,cA4VH,WACItlE,EAAGulE,eAAeC,QAAS,CAC/B,EA7VAxlE,EAAGylE,YA+VH,WACIzlE,EAAG0lE,aAAaF,QAAS,CAC7B,EAhWAxlE,EAAGqmE,oBAkWH,WACI5tE,EAAcuxC,sBAAsBhqC,EACxC,EAnWAA,EAAGomE,gBAqXH,WACIpmE,EAAGmqC,eAAexuC,OAAO,CAAC,EAC9B,EAtXAqE,EAAG0oD,WAwXH,WACI1oD,EAAGmqC,eAAejvB,MACtB,EAzXAlb,EAAGsoD,cAoWH,SAAuBre,GACnB,IAAMjQ,EAAiBh6B,EAAGkX,KAAKC,aAE/B,GAAI8yB,GAAkBA,EAAetyB,SAAWsyB,EAAetyB,QAAQza,OAAS,EAAG,CAC/E88B,EAAe1gB,WAAW3d,OAASlD,EAAcsxC,sBAAsBuF,EAAGrF,EAAetyB,SACzF,IACI3X,EAAGkX,KAAKoC,WAAW4gB,QAAUF,EAAe1gB,WAAW3d,OACvDqE,EAAGkX,KAAKoC,WAAW4B,MACvB,CACA,MAAO2Z,GACH70B,EAAGmqC,eAAexuC,OAAO,CAAC,EAC9B,CACJ,CACJ,EAhXAqE,EAAGuZ,sBAAwBA,EAE3BvZ,EAAGulE,eAAiB,CAChBC,QAAQ,GAGZxlE,EAAG0lE,aAAe,CACdF,QAAQ,GAGZxlE,EAAGoc,aAAe,CACd,CACI2zB,SAAU,WACVzzB,UAAW,OACX4zB,YAAY,IAIpBlwC,EAAG23F,oBAAqB,EACxB33F,EAAGwzO,kBAAoB,GAGvBxzO,EAAG4lE,iBAAmB,CAClBC,aAwTJ,SAAkBxsE,GACd,IAAI+b,EAAO/b,EAAK+b,KAGhB,MAAgB,QAFL/b,EAAKkuC,MAESnyB,EAAOpV,EAAG8jC,OACvC,EA5TIgiC,WAAW,EACXC,WAAY,KACZC,YAAa,GAGjBhmE,EAAGimE,eAAiB,CAChBH,WAAW,EACXC,WAAY,KACZokE,QAAS,IAAIjqI,KACb8lE,YAAa,GAIjBhmE,EAAG4hE,gBAAkBnpE,EAAc4uC,mBAAmB,KAAM,KAC5DrnC,EAAG4hE,gBAAgB9f,UAAW,EAG9B9hD,EAAG6b,eAAiB,CAAC,EACrB7b,EAAG6b,eAAexe,MAAQ,GAC1B2C,EAAG6b,eAAeI,UAAY,GAG9BhkB,EAAOiE,IAAI,sBAAsB,WACzB8D,EAAGkX,OACHlX,EAAGg2E,WAAY,EACfpzB,IAER,IAEW,WAEYjqD,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,GAwPK9D,EAAWwuB,oBACZ7mB,EAAG4hE,gBAAgBliC,UAAW,EAE9B1/B,EAAG4hE,gBAAgB/iD,YAAa,EAoFxC,CApZ+DxoB,GAAAgxB,QAAA,0MCc/D,SANuB,CACnB5V,WAAYA,GACZE,aAAc,OACdH,YAAa,2D,y/BCVY,SAAAnb,GAAUsV,EAAmB0oO,EAA0Bl8O,EAASM,GAEzF,IAAMuH,EAAKwH,KAawB,SAAAukL,IAIlC,OAJkCA,GAAAv1L,OAAAC,UAAnC,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACyBu9O,EAAyBvoD,uBAAsB,QAAhE5xL,EAAQtD,EAAAI,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGs0O,4BAA8Bp6O,EAASb,KAAK,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,MAClDoB,MAAA,KAAAC,UAAA,CAiB6B,SAAAw8O,IAY7B,OAZ6BA,GAAA/9O,OAAAC,UAA9B,SAAA0C,IAAA,IAAAq7O,EAAA1tE,EAAAC,EAAA0tE,EAAA,OAAAh+O,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACIkJ,EAAGuoB,iBAAmB,IAAIzmB,EACpB0yO,EAAYx0O,EAAG00O,kBAAiBp7O,EAAAzC,KAAA,EAAAiwK,EAAAG,GAEXutE,GAASl7O,EAAAzC,KAAA,EAAAiwK,EAAAn/F,IAAA,WAAAo/F,EAAAD,EAAA10J,KAAAw4B,KAAE,CAAFtxC,EAAAxC,KAAA,SAAb,OAAR29O,EAAQ1tE,EAAAz7J,MAAAhS,EAAAxC,KAAA,GACTu9O,EAAyB7nD,uBAAuBioD,EAASx/N,GAAIw/N,GAAS,QAAAn7O,EAAAxC,KAAA,gBAAAwC,EAAAxC,KAAA,iBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAG,GAAAH,EAAA,SAAAwtK,EAAAjgK,EAAAvN,EAAAG,IAAA,eAAAH,EAAAzC,KAAA,GAAAiwK,EAAAz2H,IAAA/2C,EAAAkuK,OAAA,mBAAAluK,EAAAxC,KAAA,GAE1E2B,EAAc8J,qBAAqBvC,EAAGuoB,kBAAiB,QAQjE5c,EAAkBuC,QAPL5U,EAAAxC,KAAA,iBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAwlD,GAAAxlD,EAAA,SAET0G,EAAGuoB,iBAAiB1nB,cAAe,EAAM,yBAAAvH,EAAAzB,OAAA,GAAAsB,EAAA,iCAEhDrB,MAAA,KAAAC,UAAA,CA7CDiI,EAAG00O,kBAAoB,GAEvB10O,EAAG20O,gBAgBH,SAAyBF,GACrB,GAAIA,EAASG,SAAW,EAAG,CACvB,IAAMC,EAAmB,CACrB5/N,GAAIw/N,EAASx/N,GACb2/N,SAAUH,EAASG,UAEjBE,EAAgB90O,EAAG00O,kBAAkB70N,WAAU,SAAAhZ,GAAC,OAAIA,EAAEoO,KAAOw/N,EAASx/N,EAAE,IAC1E6/N,EAAgB,EAChB90O,EAAG00O,kBAAkBn9O,KAAKs9O,GAE1B70O,EAAG00O,kBAAkBI,GAAiBD,CAE9C,CACJ,EA5BA70O,EAAG+0O,gBA4BF,WAE6B,OAAAR,EAAAz8O,MAAC,KAADC,UAAA,EA7B9BiI,EAAGmE,QA+CH,WACIwH,EAAkBxH,SACtB,EA3CC,WAEkC4nL,EAAAj0L,MAAC,KAADC,UAAA,CAH/B+zL,EA8CR,CC1D6B,SAAAz1L,GAAUsV,EAAmBxT,EAASI,EAAassH,EAAuBnsH,EAA0Bs8O,EAA4BC,EAA2B/vI,EAAgBhtG,EAAOO,EAAe47O,EAA0Ba,EAAwBC,EAA0B5jL,EAAsBsuE,EAA4Bu1G,EAAWC,GAEnW,IAAMr1O,EAAKwH,KA8BY,SAAA7O,IAsBtB,OAtBsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,IAAA4+O,EAAA,OAAA7+O,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAK8C,OAJ1CkJ,EAAGu1O,kBAAmB,EACtBv1O,EAAGw1O,kBAAmB,EACtBx1O,EAAGy1O,cAAe,EAClBz1O,EAAG01O,qBAAsB,EACzB11O,EAAG21O,gCAAiC,EAAM/+O,EAAAE,KAAA,EACpC8+O,IAAc,OACI,GAAxBC,KACI71O,EAAG87G,kBAAkBz/F,MAAK,SAAAy5N,GAAI,MAAgB,QAAZA,EAAKp6O,EAAY,IAAG,CAAF9E,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,GACd4B,EAAyB67C,mCAAmC,MAAO,qCAAoC,QAAzI+gM,EAAyB1+O,EAAAI,KAC7BgJ,EAAG+1O,kCAAoCT,EAA0Bj8O,KAAKgN,MAAM,QAEhD,OAe5BrG,EAAGg2O,4BADW,SAAdZ,EACiCp1O,EAAG+1O,kCAEH,IAjBLn/O,EAAAE,KAAA,GAC1BiV,IAAU,eAAAnV,EAAAE,KAAA,GACV0/C,IAAmB,QACzB+2C,IACA0oJ,IACArkL,IAC4B,IAAxB5xD,EAAGk2O,kBAAkD,IAAxBl2O,EAAGk2O,kBAChCC,IAEJn2O,EAAGo2O,iBAAkB,EAAK,yBAAAx/O,EAAAiB,OAAA,GAAAnB,EAAA,MAC7BoB,MAAA,KAAAC,UAAA,CAkBA,SAEc89O,IAAqB,OAAAQ,EAAAv+O,MAAC,KAADC,UAAA,UAAAs+O,IA4DnC,OA5DmCA,GAAA7/O,OAAAC,UAApC,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAuB4D,GAtBxDkJ,EAAGs2O,QAAS,EACZt2O,EAAGu2O,QAAS,EACZv2O,EAAGw2O,iBAAkB,EACrBx2O,EAAGy2O,eAAgB,EACnBz2O,EAAG02O,SAAU,EACb12O,EAAG22O,WAAY,EACf32O,EAAG42O,WAAY,EACf52O,EAAG62O,mBAAoB,EACvB72O,EAAG82O,6BAA+B,CAC9B,CACIj9O,KAAM,MACNob,GAAI,GAER,CACIpb,KAAM,SACNob,GAAI,GAER,CACIpb,KAAM,YACNob,GAAI,IAGZjV,EAAG+2O,gBAAkB/2O,EAAG82O,6BAA6B,GAEnC,SAAd1B,EAAoB,CAAA97O,EAAAxC,KAAA,SACpBkJ,EAAGs2O,QAAS,EAAMh9O,EAAAG,GACV47O,EAAa5kI,OAAMn3G,EAAAxC,KAClB,IADkBwC,EAAAG,GACjB,GAGD,IAHCH,EAAAG,GAGA,GAID,IAJCH,EAAAG,GAIA,GAID,IAJCH,EAAAG,GAIA,GAID,IAJCH,EAAAG,GAIA,GAID,IAJCH,EAAAG,GAIA,GAKD,IALCH,EAAAG,GAKA,oBAvBe,OAAjBuG,EAAGs2O,QAAS,EAAKh9O,EAAA2M,OAAA,oBAGA,OAAjBjG,EAAGu2O,QAAS,EAAKj9O,EAAAxC,KAAA,GACXkgP,IAAwB,QAiBX,QAIe,eAAA19O,EAAA2M,OAAA,YArBJ,QAIC,OAD/BjG,EAAGw2O,iBAAkB,EACrBx2O,EAAGi3O,sBAAuB,EAAK39O,EAAA2M,OAAA,oBAIF,OAD7BjG,EAAGy2O,eAAgB,EACnBz2O,EAAGk3O,oBAAqB,EAAK59O,EAAA2M,OAAA,oBAIiG,OAD9HjG,EAAG22O,WAAY,EACf32O,EAAG+2O,gBAAkB/2O,EAAG82O,6BAA6B/zO,MAAK,SAAA4gD,GAAa,OAAIA,EAAc9pD,OAASw7O,EAAa8B,aAAa,IAAE79O,EAAA2M,OAAA,oBAI3F,OADnCjG,EAAG42O,WAAY,EACf52O,EAAGo3O,0BAA2B,EAAK99O,EAAAxC,KAAA,GAC7B2P,IAAa,QAIe,OADlCzG,EAAG62O,mBAAoB,EACvB72O,EAAGq3O,yBAA0B,EAAK/9O,EAAA2M,OAAA,qCAAA3M,EAAAzB,OAAA,GAAAsB,EAAA,MAMjDrB,MAAA,KAAAC,UAAA,UAEc69O,IAAY,OAAA0B,EAAAx/O,MAAC,KAADC,UAAA,UAAAu/O,IA2B1B,OA3B0BA,GAAA9gP,OAAAC,UAA3B,SAAAwD,IAAA,IAAAC,EAAAq9O,EAAA,OAAA9gP,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EACyBu9O,EAAyBvoD,uBAAsB,OAKzC,OALvB5xL,EAAQC,EAAAnD,KACRgJ,EAAGk1O,yBACHh7O,EAASb,KAAOa,EAASb,KAAKsC,QAAO,SAAA84O,GAAQ,MAAsB,eAAlBA,EAAS56O,IAAqB,KAG/E09O,GAAkB,EAAKp9O,EAAArD,KAAA,EACrB2P,IAAa,OAkBS,OAhBxBzG,EAAG87G,kBAAkBz/F,MAAK,SAAAy5N,GAAI,MAAgB,OAAZA,EAAKp6O,IAA2B,OAAZo6O,EAAKp6O,IAA2B,UAAZo6O,EAAKp6O,IAA8B,QAAZo6O,EAAKp6O,IAA4B,QAAZo6O,EAAKp6O,EAAY,MACvI67O,GAAkB,GAGjBA,IACDr9O,EAASb,KAAOa,EAASb,KAAKsC,QAAO,SAAA84O,GAAQ,MAAsB,YAAlBA,EAAS56O,IAAkB,KAGhFK,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGw3O,mBAAqBt9O,EAASb,KACf,SAAd+7O,GACAp1O,EAAGk2O,iBAAmBb,EAAa5kI,OACnCzwG,EAAGy3O,gBAAkBpC,EAAaqC,iBAElC13O,EAAGk2O,iBAAmB,EAE1Bl2O,EAAGu1O,kBAAmB,EAAMp7O,EAAA8L,OAAA,SACrBjG,EAAGw3O,oBAAkB,yBAAAr9O,EAAAtC,OAAA,GAAAoC,EAAA,MAC/BnC,MAAA,KAAAC,UAAA,UAEcgU,IAAQ,OAAAic,EAAAlwB,MAAC,KAADC,UAAA,UAAAiwB,IAqBtB,OArBsBA,GAAAxxB,OAAAC,UAAvB,SAAAoE,IAAA,IAAAgR,EAAA,OAAApV,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OACgC,OAA5BkJ,EAAG23O,oBAAsB,GAAG78O,EAAAhE,KAAA,EACRyB,EAAYwT,WAAU,OAIvC,OAJGF,EAAK/Q,EAAA9D,KACXgJ,EAAGigG,gBAAkB9nG,EAAQ,SAARA,CAAkB0T,EAAMxS,KAAM,CAAE2S,QAAQ,IAC7DhM,EAAGigG,gBAAgBhlG,SAAQ,SAAA/D,GACvB8I,EAAG23O,oBAAoBpgP,KAAK,CAAEsC,KAAM3C,EAAK2xB,cAAe5T,GAAI/d,EAAKkV,OAAQ5D,KAAM,QACnF,IAAG1N,EAAAhE,KAAA,EAEkCk+O,EAA2B4C,qBAAoB,OAU5D,OAVI98O,EAAA9D,KACLqC,KAAK4B,SAAQ,SAAAgnC,GAChCjiC,EAAG23O,oBAAoBpgP,KAAK,CAAEsC,KAAMooC,EAAMpoC,KAAMob,GAAIgtB,EAAMhtB,GAAIzM,KAAM,SACxE,IAEIxI,EAAG23O,oBAAoBz6O,OAAS,GAAmB,SAAdk4O,GAAuD,SAA/BC,EAAawC,cAC1E73O,EAAG2nB,aAAe3nB,EAAG23O,oBAAoB50O,MAAK,SAAA7L,GAAI,OAAIA,EAAK2C,OAASw7O,EAAa8B,aAAa,IACvFn3O,EAAG23O,oBAAoBz6O,OAAS,IACvC8C,EAAG2nB,aAAe3nB,EAAG23O,oBAAoB,IAE7C33O,EAAGy1O,cAAe,EAAM36O,EAAAmL,OAAA,SAEjBjG,EAAG23O,qBAAmB,yBAAA78O,EAAAjD,OAAA,GAAAgD,EAAA,MAChC/C,MAAA,KAAAC,UAAA,UAEcy+C,IAAiB,OAAAC,EAAA3+C,MAAC,KAADC,UAAA,UAAA0+C,IAW/B,OAX+BA,GAAAjgD,OAAAC,UAAhC,SAAA6K,IAAA,OAAA7K,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA7K,KAAA,EACiCm+O,EAA0Bz+L,oBAAmB,OAQ9C,OARR70C,EAAA3K,KACLqC,KAAK4B,SAAQ,SAAAgnC,GACxBjiC,EAAG83O,cAAcvgP,KAAK,CAAEsC,KAAMooC,EAAMpoC,KAAMob,GAAIgtB,EAAMhtB,GAAIzM,KAAM,SAClE,IACAxI,EAAGigG,gBAAgBhlG,SAAQ,SAAA/D,GACvB8I,EAAG83O,cAAcvgP,KAAK,CAAEsC,KAAM3C,EAAK2xB,cAAe5T,GAAI/d,EAAKkV,OAAQ5D,KAAM,QAC7E,IACAxI,EAAG83O,cAAgB3/O,EAAQ,UAARA,CAAmB6H,EAAG83O,cAAe,QACxD93O,EAAGw1O,kBAAmB,EAAM7zO,EAAAsE,OAAA,SACrBjG,EAAG83O,eAAa,wBAAAn2O,EAAA9J,OAAA,GAAAyJ,EAAA,MAC1BxJ,MAAA,KAAAC,UAAA,UAEcw1F,IAAa,OAAAC,EAAA11F,MAAC,KAADC,UAAA,UAAAy1F,IAU3B,OAV2BA,GAAAh3F,OAAAC,UAA5B,SAAAkM,IAAA,IAAAzI,EAAA,OAAAzD,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OACmC,OAA/BkJ,EAAGi3O,sBAAuB,EAAKr0O,EAAA9L,KAAA,EACVouG,EAAe3X,gBAAe,OAA/CrzF,EAAQ0I,EAAA5L,KACZgJ,EAAGi4E,eAAiB/9E,EAASb,KACzB2G,EAAGi4E,eAAe/6E,OAAS,GAAmB,SAAdk4O,GAAuD,mBAA/BC,EAAawC,cACrE73O,EAAG+3O,sBAAwB/3O,EAAGi4E,eAAel1E,MAAK,SAAA+3G,GAAS,OAAIA,EAAUjhH,OAASw7O,EAAa8B,aAAa,IACrGn3O,EAAGi4E,eAAe/6E,OAAS,IAClC8C,EAAG+3O,sBAAwB/3O,EAAGi4E,eAAe,IAEjDj4E,EAAGi3O,sBAAuB,EAAM,wBAAAr0O,EAAA/K,OAAA,GAAA8K,EAAA,MACnC7K,MAAA,KAAAC,UAAA,UAEck+O,IAAe,OAAA+B,EAAAlgP,MAAC,KAADC,UAAA,UAAAigP,IAW7B,OAX6BA,GAAAxhP,OAAAC,UAA9B,SAAA8uB,IAAA,IAAArrB,EAAA,OAAAzD,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,OACiC,OAA7BkJ,EAAGk3O,oBAAqB,EAAK1xN,EAAA1uB,KAAA,EACRoB,EAAM4K,IAAIvI,OAAS,oCAAmC,QAAvEL,EAAQsrB,EAAAxuB,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGi4O,sBAAwB/9O,EAASb,KAChC2G,EAAGi4O,sBAAsB/6O,OAAS,GAAmB,SAAdk4O,GAAuD,gBAA/BC,EAAawC,cAC5E73O,EAAGk4O,oBAAsBl4O,EAAGi4O,sBAAsBl1O,MAAK,SAAA6pC,GAAW,OAAIA,EAAY/yC,OAASw7O,EAAa8B,aAAa,IAC9Gn3O,EAAGi4O,uBAAyBj4O,EAAGi4O,sBAAsB/6O,OAAS,IACrE8C,EAAGk4O,oBAAsBl4O,EAAGi4O,sBAAsB,IAEtDj4O,EAAGk3O,oBAAqB,EAAM,wBAAA1xN,EAAA3tB,OAAA,GAAA0tB,EAAA,MACjCztB,MAAA,KAAAC,UAAA,UAEc65D,IAAmB,OAAAumL,EAAArgP,MAAC,KAADC,UAAA,UAAAogP,IAmBjC,OAnBiCA,GAAA3hP,OAAAC,UAAlC,SAAAkvB,IAAA,IAAAzrB,EAAA,OAAAzD,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,OACsC,OAAlCkJ,EAAGq3O,yBAA0B,EAAKzxN,EAAA9uB,KAAA,EACby6D,EAAqBK,sBAAqB,QAA3D13D,EAAQ0rB,EAAA5uB,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGo4O,0BAA4Bl+O,EAASb,KAII,IAAxC2G,EAAGo4O,0BAA0Bl7O,QAC7B8C,EAAGo4O,0BAA0BtuO,QAAQ,CAAE,UAAa,KAAM,GAAM,KAAM,KAAQ,yCAC9E9J,EAAGq4O,wBAA0Br4O,EAAGo4O,0BAA0B,IACnDp4O,EAAGo4O,0BAA0Bl7O,OAAS,GAAmB,SAAdk4O,GAAuD,qBAA/BC,EAAawC,cACvF73O,EAAGq4O,wBAA0Br4O,EAAGo4O,0BAA0Br1O,MAAK,SAAAu1O,GAAe,OAAIA,EAAgBrjO,KAAOogO,EAAakD,WAAW,IAEjIv4O,EAAGq4O,wBAA0Br4O,EAAGo4O,0BAA0B,GAG9Dp4O,EAAGq3O,yBAA0B,EAAM,wBAAAzxN,EAAA/tB,OAAA,GAAA8tB,EAAA,MAEtC7tB,MAAA,KAAAC,UAAA,UAEc0O,IAAW,OAAAqJ,EAAAhY,MAAC,KAADC,UAAA,UAAA+X,IAmBzB,OAnByBA,GAAAtZ,OAAAC,UAA1B,SAAAwvB,IAAA,IAAA/rB,EAAA,OAAAzD,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,OAC8B,OAA1BkJ,EAAGw4O,iBAAkB,EAAKtyN,EAAApvB,KAAA,EACLoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,8CAA4C,OAenF,OAfGL,EAAQgsB,EAAAlvB,KACZgJ,EAAG87G,kBAAoB5hH,EAASb,KAC5B2G,EAAG42O,YACH52O,EAAGgQ,mBAAqBhQ,EAAG87G,kBAAkBngH,QAAO,SAAAizB,GAAO,MAAmB,OAAfA,EAAQlzB,IAA8B,QAAfkzB,EAAQlzB,IAA+B,QAAfkzB,EAAQlzB,IAA+B,UAAfkzB,EAAQlzB,IAAiC,OAAfkzB,EAAQlzB,EAAW,KAGvLsE,EAAGgQ,mBAAqB9V,EAASb,KAC7Ba,EAASb,KAAK6D,OAAS,GAAmB,SAAdk4O,GAAwBC,EAAalzM,UACjEniC,EAAGqQ,gBAAkBrQ,EAAGgQ,mBAAmBjN,MAAK,SAAA6rB,GAAO,OAAIA,EAAQlzB,KAAO25O,EAAalzM,SAAS,IACzFjoC,EAASb,KAAK6D,OAAS,IAC9B8C,EAAGqQ,gBAAkBnW,EAASb,KAAK,IAEvC2G,EAAGw4O,iBAAkB,EACjBx4O,EAAG42O,WACH6B,IACHvyN,EAAAjgB,OAAA,SACMjG,EAAG87G,mBAAiB,yBAAA51F,EAAAruB,OAAA,GAAAouB,EAAA,MAC9BnuB,MAAA,KAAAC,UAAA,CAwFqB,SAAA2gP,IA0BrB,OA1BqBA,GAAAliP,OAAAC,UAAtB,SAAAk/C,EAAuBt8C,GAAI,IAAAs/O,EAAA,OAAAliP,UAAA,SAAAm/C,GAAA,cAAAA,EAAA/+C,KAAA++C,EAAA9+C,MAAA,OACmB,GAA1CkJ,EAAGuoB,iBAAmB,IAAIzmB,EAAgB8zC,EAAA/+C,KAAA,GAElCmJ,EAAG21O,+BAAgC,CAAF//L,EAAA9+C,KAAA,QAOhC,OANG6hP,EAAa,CACb,eAAkB,CAAC,CACf,KAAQ,oCACR,MAAS34O,EAAGg2O,8BAEhB,UAAa38O,EAAK8oC,WACrByT,EAAA9+C,KAAA,EAEK+tH,EAAsB4mB,wBAAwBpyI,EAAK8oC,UAAWw2M,GAAW,UAGjE,SAAdvD,EAAoB,CAAAx/L,EAAA9+C,KAAA,gBAAA8+C,EAAA9+C,KAAA,EACdu9O,EAAyB/nD,mBAAmB+oD,EAAapgO,GAAI5b,GAAK,OAAAu8C,EAAA9+C,KAAA,wBAAA8+C,EAAA9+C,KAAA,GAElEu9O,EAAyBjoD,gBAAgB/yL,GAAK,eAAAu8C,EAAA9+C,KAAA,GAGlD2B,EAAc8J,qBAAqBvC,EAAGuoB,kBAAiB,QA1GjE5c,EAAkBuC,QA2GL0nC,EAAA9+C,KAAA,iBAAA8+C,EAAA/+C,KAAA,GAAA++C,EAAAn8C,GAAAm8C,EAAA,SAET51C,EAAGuoB,iBAAiB1nB,cAAe,EAAM,yBAAA+0C,EAAA/9C,OAAA,GAAA89C,EAAA,oBAEhD79C,MAAA,KAAAC,UAAA,CAWoC,SAAA6gP,IAsCpC,OAtCoCA,GAAApiP,OAAAC,UAArC,SAAAo/C,IAAA,OAAAp/C,UAAA,SAAAq/C,GAAA,cAAAA,EAAAj/C,KAAAi/C,EAAAh/C,MAAA,OACIkJ,EAAGs2O,QAAS,EACZt2O,EAAGu2O,QAAS,EACZv2O,EAAGw2O,iBAAkB,EACrBx2O,EAAGy2O,eAAgB,EACnBz2O,EAAG22O,WAAY,EACf32O,EAAG42O,WAAY,EACf52O,EAAG62O,mBAAoB,EAAM/gM,EAAAr8C,GAErBuG,EAAGk2O,iBAAgBpgM,EAAAh/C,KAClB,IADkBg/C,EAAAr8C,GACjB,GAGD,IAHCq8C,EAAAr8C,GAGA,GAID,IAJCq8C,EAAAr8C,GAIA,GAGD,IAHCq8C,EAAAr8C,GAGA,GAGD,IAHCq8C,EAAAr8C,GAGA,GAGD,IAHCq8C,EAAAr8C,GAGA,GAID,IAJCq8C,EAAAr8C,GAIA,oBAnBe,OAAjBuG,EAAGs2O,QAAS,EAAKxgM,EAAA7vC,OAAA,oBAGA,OAAjBjG,EAAGu2O,QAAS,EAAKzgM,EAAAh/C,KAAA,GACXkgP,IAAwB,eAAAlhM,EAAA7vC,OAAA,oBAGJ,OAA1BjG,EAAGw2O,iBAAkB,EAAK1gM,EAAA7vC,OAAA,oBAGF,OAAxBjG,EAAGy2O,eAAgB,EAAK3gM,EAAA7vC,OAAA,oBAGJ,OAApBjG,EAAG22O,WAAY,EAAK7gM,EAAA7vC,OAAA,oBAGA,OAApBjG,EAAG42O,WAAY,EAAK9gM,EAAAh/C,KAAA,GACd2P,IAAa,eAAAqvC,EAAA7vC,OAAA,oBAGS,OAA5BjG,EAAG62O,mBAAoB,EAAK/gM,EAAA7vC,OAAA,2BAAA6vC,EAAA7vC,OAAA,oBAMpCkwO,IAAyB,yBAAArgM,EAAAj+C,OAAA,GAAAg+C,EAAA,MAC5B/9C,MAAA,KAAAC,UAAA,CASD,SAAS8gP,EAAkCC,GACP,kBAA5B94O,EAAG4P,gBAAgB/V,MAA+D,MAAnCmG,EAAGg2O,4BAClDh2O,EAAG01O,qBAAsB,EAEzB11O,EAAG01O,qBAAsB,EAGzBoD,IACA94O,EAAG+4O,cAAe,GAEtB/4O,EAAGg5O,mBAAoB,CAC3B,CAAC,SAEchC,IAAsB,OAAAiC,EAAAnhP,MAAC,KAADC,UAAA,UAAAkhP,IAepC,OAfoCA,GAAAziP,OAAAC,UAArC,SAAAoiD,IAAA,IAAAsmB,EAAA9lE,EAAA,OAAA5C,UAAA,SAAAqiD,GAAA,cAAAA,EAAAjiD,KAAAiiD,EAAAhiD,MAAA,OAC6C,OAAzCkJ,EAAGk5O,gCAAiC,EAAKpgM,EAAAhiD,KAAA,EACpB+oI,EAA2BE,qBAAoB,OAAA5gE,EAAArmB,EAAA9hD,KAA9DqC,EAAI8lE,EAAJ9lE,KACN2G,EAAGm5O,8BAAgC9/O,EAAKsC,QAAO,SAAAsmC,GAAK,MAAwB,SAApBA,EAAMq9B,SAAoB,IAEjC,IAA5Ct/D,EAAGm5O,8BAA8Bj8O,QAClC8C,EAAGm5O,8BAA8BrvO,QAAQ,CAAE,UAAa,OAAQ,KAAQ,sCAAuC,GAAM,OACrH9J,EAAG+nI,uBAAyB/nI,EAAGm5O,8BAA8B,IACtDn5O,EAAGm5O,8BAA8Bj8O,OAAS,GAAmB,SAAdk4O,GAAuD,yBAA/BC,EAAawC,cAC1F73O,EAAG+nI,uBAAyB/nI,EAAGm5O,8BAA8Bp2O,MAAK,SAAAm9H,GAAc,OAAIA,EAAejrH,GAAG+J,aAAeq2N,EAAakD,WAAW,IAE9Iv4O,EAAG+nI,uBAAyB/nI,EAAGm5O,8BAA8B,GAGjEn5O,EAAGk5O,gCAAiC,EAAM,wBAAApgM,EAAAjhD,OAAA,GAAAghD,EAAA,MAC7C/gD,MAAA,KAAAC,UAAA,UAGc0gP,IAAa,OAAAW,EAAAthP,MAAC,KAADC,UAAA,CAyC5B,SAAAqhP,IAFC,OAEDA,GAAA5iP,OAAAC,UAzCA,SAAA21F,IAAA,IAAAlyF,EAAAm/O,EAAA,OAAA5iP,UAAA,SAAA41F,GAAA,cAAAA,EAAAx1F,KAAAw1F,EAAAv1F,MAAA,OACuC,GAAnCkJ,EAAGo3O,0BAA2B,EAEE,QAA5Bp3O,EAAGqQ,gBAAgB7H,KAAc,CAAA6jF,EAAAv1F,KAAA,SAQjC,OAPIuiP,EAAqB,CACrBx/O,KAAM,gBACN6B,GAAI,KACJ8M,KAAM,MACNm5B,UAAW3hC,EAAGqQ,gBAAgB3U,IAGlC2wF,EAAAv1F,KAAA,EACiBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,sCAAoC,QAAxEL,EAAQmyF,EAAAr1F,MACCqC,KAAOa,EAASb,KAAK+/B,KAAI,SAAA+rB,GAC9B,MAAO,CACHtrD,KAAMsrD,EAAQ+S,YACdx8D,GAAIypD,EAAQM,UACZj9C,KAAM28C,EAAQgT,YACdx2B,UAAW3hC,EAAGqQ,gBAAgB3U,GAEtC,MAEKsE,EAAGm1O,0BAA2C,SAAdC,GAAqD,OAA7BC,EAAakD,cACtEr+O,EAASb,KAAK9B,KAAK8hP,GACtBhtJ,EAAAv1F,KAAA,wBAAAu1F,EAAAv1F,KAAA,GAEgByB,EAAY45C,wBAAwBnyC,EAAGqQ,gBAAgB3U,IAAG,QAA3ExB,EAAQmyF,EAAAr1F,KAAA,QAEZgJ,EAAGs5O,oBAAsBp/O,EAASb,KAClC2G,EAAGs5O,oBAAsBnhP,EAAQ,UAARA,CAAmB6H,EAAGs5O,oBAAqB,QAClD,SAAdlE,GAAkD,YAA1BC,EAAar5M,SAClCh8B,EAAG4P,gBAAkB5P,EAAGs5O,oBAAoBv2O,MAAK,SAAAoiD,GAAO,OAAIA,EAAQzpD,KAAO25O,EAAakD,WAAW,IAEtGv4O,EAAG4P,gBAAkB5P,EAAGs5O,oBAAoB,GAGhDT,GAAkC,GAElC74O,EAAGo3O,0BAA2B,EAAM,yBAAA/qJ,EAAAx0F,OAAA,GAAAu0F,EAAA,MACvCt0F,MAAA,KAAAC,UAAA,CAGD,SAASo+O,IACuB,IAAxBn2O,EAAGk2O,kBACHl2O,EAAGu5O,4BAA8Bv5O,EAAG83O,cAAcn8O,QAAO,SAAA69O,GAAQ,OAAIA,EAASvkO,KAAOjV,EAAG2nB,aAAa1S,EAAE,IAEvGjV,EAAGu5O,4BAA8Bv5O,EAAGu5O,4BAA4B59O,QAAO,SAAAogJ,GAAS,MAAqB,yCAAjBA,EAAU9mI,EAA6C,IAEvIjV,EAAGu5O,4BAA4Br8O,OAAS,KAAO8C,EAAG0tO,kBAAoB1tO,EAAG0tO,iBAAiBz4N,KAAOjV,EAAG2nB,aAAa1S,KAAqB,SAAdmgO,GAAwBC,EAChJr1O,EAAG0tO,iBAAmB1tO,EAAGu5O,4BAA4Bx2O,MAAK,SAAAy2O,GAAQ,OAAIA,EAASvkO,KAAOogO,EAAaoE,UAAU,IACtGz5O,EAAGu5O,4BAA4Br8O,OAAS,KAAO8C,EAAG0tO,kBAAoB1tO,EAAG0tO,iBAAiBz4N,KAAOjV,EAAG2nB,aAAa1S,MACxHjV,EAAG0tO,iBAAmB1tO,EAAGu5O,4BAA4B,MAKzDv5O,EAAGu5O,4BAA8Bv5O,EAAG83O,cAAcn8O,QAAO,SAAA69O,GAAQ,MAAoB,yCAAhBA,EAASvkO,EAA6C,IAEvHjV,EAAGu5O,4BAA4Br8O,OAAS,KAAO8C,EAAG0tO,kBAAoB1tO,EAAG0tO,iBAAiBz4N,KAAOjV,EAAG2nB,aAAa1S,KAAqB,SAAdmgO,GAAwBC,IAChJr1O,EAAG0tO,iBAAmB1tO,EAAGu5O,4BAA4Bx2O,MAAK,SAAAy2O,GAAQ,OAAIA,EAASvkO,KAAOogO,EAAaoE,UAAU,KAExGz5O,EAAG0tO,kBAAoB1tO,EAAG42O,YAC3B52O,EAAG0tO,iBAAmB1tO,EAAGu5O,4BAA4B,KAIrE,CAnhBAv5O,EAAGk1O,uBAAyBA,EAC5Bl1O,EAAGm1O,yBAA2BA,EAE9Bn1O,EAAGvH,cAAgBA,EACnBuH,EAAGmE,QAwQH,WACIwH,EAAkBxH,SACtB,EAzQAnE,EAAG05O,iBA6QH,WACI,IAAIv7L,EAAW,CAAC,EAEhB,OAAQn+C,EAAGk2O,kBACP,KAAK,EACD/3L,EAASo6L,YAAcv4O,EAAG2nB,aAAa1S,GACvCkpC,EAAS05L,cAAgB73O,EAAG2nB,aAAanf,KACzC21C,EAASg5L,cAAgBn3O,EAAG2nB,aAAa9tB,KACzC,MACJ,KAAK,EACDskD,EAASo6L,YAAcv4O,EAAG+nI,uBAAuB9yH,GACjDkpC,EAAS05L,cAAgB,qBACzB,MACJ,KAAK,EACD15L,EAASo6L,YAAcv4O,EAAG+3O,sBAAsB9iO,GAChDkpC,EAASg5L,cAAgBn3O,EAAG+3O,sBAAsBl+O,KAClDskD,EAAS05L,cAAgB,gBACzB,MACJ,KAAK,EACD15L,EAASo6L,YAAcv4O,EAAGk4O,oBAAoBjjO,GAC9CkpC,EAASg5L,cAAgBn3O,EAAGk4O,oBAAoBr+O,KAChDskD,EAAS05L,cAAgB,cACzB,MACJ,KAAK,EAQL,KAAK,EACD,MAPJ,KAAK,EACD15L,EAASo6L,YAAcv4O,EAAG+2O,gBAAgB9hO,GAC1CkpC,EAASg5L,cAAgBn3O,EAAG+2O,gBAAgBl9O,KAC5CskD,EAASu5L,gBAAkB13O,EAAGy3O,gBAC9Bt5L,EAAS05L,cAAgB,gBACzB,MAGJ,KAAK,EACD15L,EAASw7L,eAAgB,EAEK,OAA1B35O,EAAG4P,gBAAgBlU,KACnBsE,EAAG21O,gCAAiC,GAGpC31O,EAAG45O,gBACHz7L,EAASw7L,eAAgB,GAG7Bx7L,EAASo6L,YAAcv4O,EAAG4P,gBAAgBlU,GAC1CyiD,EAASg5L,cAAgBn3O,EAAG4P,gBAAgB/V,KAC5CskD,EAAShc,UAAYniC,EAAG4P,gBAAgB+xB,UACxCwc,EAAS05L,cAAgB,UACzB,MAMJ,QACI15L,EAASo6L,YAAcv4O,EAAGq4O,wBAAwBpjO,GAClDkpC,EAASg5L,cAAgBn3O,EAAGq4O,wBAAwBx+O,KACpDskD,EAAS05L,cAAgB,kBAIjC15L,EAASsyD,OAASzwG,EAAGk2O,iBAEO,IAAxBl2O,EAAGk2O,kBAAkD,IAAxBl2O,EAAGk2O,kBAA2Bl2O,EAAGy3O,kBAC9Dt5L,EAASs7L,WAAgD,MAAnCz5O,EAAGg2O,4BAAsC,KAAOh2O,EAAG0tO,iBAAiBz4N,GAC1FkpC,EAAS07L,aAAkD,MAAnC75O,EAAGg2O,4BAAsC,KAAOh2O,EAAG0tO,iBAAiBllO,KAC5F21C,EAAS27L,aAAkD,MAAnC95O,EAAGg2O,4BAAsC,KAAOh2O,EAAG0tO,iBAAiB7zO,MAG9E,SAAdu7O,IACAj3L,EAAS47L,eAAiB1E,EAAapgO,IAI9C,SAEqB3P,GAAAozO,EAAA5gP,MAAC,KAADC,UAAA,CAHlBiiP,CAAQ77L,EACZ,EAtVAn+C,EAAGi6O,uBA2XF,WAEoC,OAAArB,EAAA9gP,MAAC,KAADC,UAAA,EA5XrCiI,EAAG22E,sBAoaH,WACI32E,EAAGg5O,mBAAoB,EACnBh5O,EAAG42O,WACH6B,GAER,EAxaAz4O,EAAG64O,kCAAoCA,EACvC74O,EAAGk6O,wBAiXH,WACIl6O,EAAGg5O,mBAAoB,EACvB7C,GACJ,EAnXAn2O,EAAGm6O,eAqXH,WACIn6O,EAAGg5O,mBAAoB,CAC3B,EAtXAh5O,EAAGo1O,UAAYA,EACfp1O,EAAGo6O,sBAiDH,WACsB,SAAdhF,IACAp1O,EAAGg5O,mBAAoB,EAClBh5O,EAAGy3O,iBAAoBz3O,EAAG0tO,mBAC3B1tO,EAAG0tO,iBAAmB1tO,EAAGu5O,4BAA4B,IAGjE,EAtDAv5O,EAAGuoB,kBAAmB,EACtBvoB,EAAG45O,eAAgB,EACnB55O,EAAGo2O,iBAAkB,EAEjBp2O,EAAGg5O,kBADW,SAAd5D,EAKJp1O,EAAG83O,cAAgB,GACnB93O,EAAG87G,kBAAoB,GAGZ,WAEYnjH,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EA0fJ,CCrhB6B,SAAA9F,GAAUg+O,EAA0Bl8O,EAASM,EAAe4V,GAErF,IAAMrO,EAAKwH,KAOY,SAAA7O,IA6CtB,OA7CsBA,GAAAnC,OAAAC,UAAvB,SAAA0C,IAAA,IAAAE,EAAAghP,EAAA,OAAA5jP,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACqB2B,EAAc+xC,sBAAsB,0BAAyB,OAA1EnxC,EAAIC,EAAAtC,KACRgJ,EAAGs6O,uBAAyBjhP,EAEtBghP,EAA2B,CAC7B,CAAExhO,MAAO,WAAY7U,MAAO,qBAAsB6a,WAAYyf,GAA0Br2B,MAAO,KAC/F,CAAE4Q,MAAO,gBAAiB7U,MAAO,iBAAkB6a,WAAYyf,IAC/D,CAAEzlB,MAAO,cAAe7U,MAAO,UAAW6a,WAAYyf,IACtD,CAAEzlB,MAAO,gBAAiB7U,MAAO,YAAa6a,WAAYyf,GAA0Br2B,MAAO,KAC3F,CAAE4Q,MAAO,eAAgB7U,MAAO,gBAAiB6a,WAAYyf,IAC7D,CAAEzlB,MAAO,eAAgB7U,MAAO,WAAY6a,WAAYyf,IACxD,CAAEzlB,MAAO,kBAAmB7U,MAAO,oBAAqB6a,WAAYmf,GAAqB/1B,MAAO,KAChG,CAAEf,SAAU,8JAA2J,MAAS,OAAQe,MAAO,IAC/L,CAAEf,SAAU,wGAAyG,MAAS,SAAUe,MAAO,KAGnJjI,EAAGu6O,yBAA2B9hP,EAAc4uC,mBAAmBgzM,EAA0B,KACzFr6O,EAAGu6O,yBAAyB16M,YAAa,EAEzC7/B,EAAGw6O,4BAA8B,IAAIvzO,MAAM5N,KAAKmlB,WAAW,CACvD+iC,SAAUliB,GACViiB,OAAQ,CACJoM,MAAO,CACH/B,OAAQ,CACJ+rL,gBAAiB,CAAE/3O,KAAM,cAIrC8e,UAAW,CAEPvD,KAAM,WAAF,IAAAkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEUu9O,EAAyBzoD,mBAAkB,QAA5D1xL,EAAQtD,EAAAI,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClDa,EAASb,KAAK4B,SAAQ,SAAAw/O,GAClBA,EAAK5C,cAAgB1/O,EAAQ,4CAARA,CAAqDsiP,EAAK5C,cACnF,IACAlwO,EAAQ+W,QAAQxkB,EAASb,MAAMzC,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE/B+Q,EAAQuiC,QAAQ,yBAAAtzC,EAAAiB,OAAA,GAAAnB,EAAA,kBATpB,OAWH,SAXG6U,GAAA,OAAA61C,EAAAtpD,MAAA,KAAAC,UAAA,EAAE,MAaX,wBAAAuB,EAAAzB,OAAA,GAAAsB,EAAA,KAENR,EAAAb,MAAA,KAAAC,UAAA,CAM8B,SAAAypG,IAuB9B,OAvB8BA,GAAAhrG,OAAAC,UAA/B,SAAAwD,EAAgCo7O,EAAcD,GAAS,IAAAsF,EAAAC,EAAA1zL,EAAA,OAAAxwD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAejD,OAdI4jP,EAAuB16O,EAAGw6O,4BAA4B5kL,MAAMv5C,MAAK,SAAAo+N,GAAI,MAAsB,eAAlBA,EAAKz+M,QAAyB,IACvG2+M,EAAyB36O,EAAGw6O,4BAA4B5kL,MAAMv5C,MAAK,SAAAo+N,GAAI,MAA2B,kBAAvBA,EAAKtD,aAAiC,IAEnHlwL,EAAY54C,EAAUvU,KAAK,CAC3B0X,YAAa,uFACbC,WAAYmpO,GACZjpO,aAAc,UACdC,SAAU,SACVC,QAAS,CACLqjO,uBAAwB,WAAF,OAAQwF,CAAoB,EAClDvF,yBAA0B,WAAF,OAAQwF,CAAsB,EACtDvF,UAAW,WAAF,OAAQA,CAAS,EAC1BC,aAAc,WAAF,OAAQA,CAAY,KAEtCl7O,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGQmwD,EAAU97C,OAAM,OACtBnL,EAAGw6O,4BAA4Bt/N,OAAO/gB,EAAArD,KAAA,uBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,mBAI7CnC,MAAA,KAAAC,UAAA,CAEuC,SAAA8iP,IAevC,OAfuCA,GAAArkP,OAAAC,UAAxC,SAAAoE,IAAA,IAAAigP,EAAA,OAAArkP,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAOM,OANFkJ,EAAG+6O,oBAAqB,EACpBD,EAAoBzsO,EAAUvU,KAAK,CACnC0X,YAAa,iFACbC,WAAYupO,GACZrpO,aAAc,SACdC,SAAU,WACZ9W,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGQgkP,EAAkB3vO,OAAM,cAAArQ,EAAAmL,OAAA,wBAAAnL,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAKrC/C,MAAA,KAAAC,UAAA,CAEwB,SAAAkjP,IASxB,OATwBA,GAAAzkP,OAAAC,UAAzB,SAAA6K,EAA0BorL,GAAc,OAAAj2L,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAE1B+G,IAAKpF,EAAc4pC,iBAAiB,cAAe,sCAAuC,WAAU,cAAA1gC,EAAA7K,KAAA,EACpGu9O,EAAyBnoD,mBAAmBQ,GAAe,OACjE1sL,EAAGw6O,4BAA4Bt/N,OAAOvZ,EAAA7K,KAAA,uBAAA6K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAAAA,EAAAsE,OAAA,mCAAAtE,EAAA9J,OAAA,GAAAyJ,EAAA,mBAK7CxJ,MAAA,KAAAC,UAAA,CA3GDiI,EAAGvH,cAAgBA,EACnBuH,EAAG2hG,iBAmDQ,SAIoBr8F,EAAAnE,GAAA,OAAAqgG,EAAA1pG,MAAC,KAADC,UAAA,EAtD/BiI,EAAGk7O,0BA6EF,WAEuC,OAAAL,EAAA/iP,MAAC,KAADC,UAAA,EA9ExCiI,EAAGm7O,WA6FF,SAEwB/5O,GAAA,OAAA65O,EAAAnjP,MAAC,KAADC,UAAA,EA/FE,WAEJY,EAAAb,MAAC,KAADC,UAAA,CA+CvBoE,EAwDJ,CFrHoE9F,GAAAgxB,QAAA,2ECAAhxB,GAAAgxB,QAAA,iWCG4ChxB,GAAAgxB,QAAA,mECYhH,SANsB,CAClB5V,WAAY2pO,GACZzpO,aAAc,OACdH,YAAa,yDCZY,SAAAnb,GAAU6B,EAAO8I,GAC1C,IAAMywB,EAAU,CACZ0iN,YAIW,SAEW7uO,EAAAnE,EAAAC,GAAA,OAAAi6O,EAAAvjP,MAAC,KAADC,UAAA,EALtBylF,YAWH,WAEyB,OAAAwQ,EAAAl2F,MAAC,KAADC,UAAA,GAV1B,OAAO05B,EAEmB,SAAA4pN,IAMzB,OANyBA,GAAA7kP,OAAAC,UAA1B,SAAAC,EAA2B4D,EAAKjB,EAAM4e,GAAM,OAAAxhB,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEvBoB,EAAMge,KAAK5b,EAAKjB,EAAM4e,GAAO,cAAArhB,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE1C6+C,EAAS7+C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAEyB,SAAAi2F,IAOzB,OAPyBA,GAAAx3F,OAAAC,UAA1B,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,0CAAwC,cAAAjB,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAExEw6C,EAASx6C,EAAAG,IACTg8C,EAASn8C,EAAAG,IAAM,yBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAED,SAAS09C,EAAU5gB,GACf,MAAMA,CACV,CAEA,SAASif,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CACJ,C,yCC9B6B,SAAAx+B,GAAU8B,EAASD,EAAOM,EAAWC,GAE9D,IAAMuH,EAAKwH,KAOY,SAAA7O,IAoBtB,OApBsBA,GAAAnC,OAAAC,UAAvB,SAAA0C,IAAA,IAAAk1D,EAAA,OAAA53D,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyB2B,EAAc+xC,sBAAsB,wBAAuB,OAAhFxqC,EAAGs3I,UAASh+I,EAAAtC,KACZgJ,EAAGs7O,qBAAuBt7O,EAAGs3I,UA4B7Bt3I,EAAGmqC,eAAiB,IAAIljC,MAAM5N,KAAKmlB,WAAW,CAC1C+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,WAAF,IAAAkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAA5B,EAAA1M,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEUoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,6CAA2C,OAAAwL,EAAAnP,EAAAI,KAA7EqC,EAAI0M,EAAJ1M,MACNA,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,iBAAiB,IAE5C4B,SAAQ,SAAAC,GACT,GAAIA,EAAIi9L,eAAgB,CACpB,IAAIA,EAAiBzgM,KAAKC,MAAMuD,EAAIi9L,gBAChCA,IACAj9L,EAA4B,uBAAIi9L,EAAet+L,KAEvD,CACJ,IACA8N,EAAQ+W,QAAQrlB,GAAMzC,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAEtB+Q,EAAQuiC,QAAQ,yBAAAtzC,EAAAiB,OAAA,GAAAnB,EAAA,mBAfpB,OAiBH,SAjBG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,EAAE,IAmBVupD,OAAQ,CACJoM,MAAO,CACH/B,OAAQ,CACJquI,cAAe,CAAEr6L,KAAM,QACvBg7E,eAAgB,CAAEh7E,KAAM,QACxBuzL,WAAY,CAAEvzL,KAAM,gBAnD9B0uD,EAAgB,CAClB,CAAEx1C,MAAO,gBAAiB7U,MAAO,iBAAkB6a,WAAYyf,IAC/D,CAAEzlB,MAAO,mBAAoB7U,MAAO,gBAAiB6a,WAAYyf,IACjE,CAAEzlB,MAAO,oBAAqB7U,MAAO,sBAAuB6a,WAAYyf,IACxE,CAAEzlB,MAAO,eAAgB7U,MAAO,gBAAiB6a,WAAYyf,GAA0B3lB,QAAQ,GAC/F,CAAEE,MAAO,YAAa7U,MAAO,YAAa6a,WAAYyf,GAA0Br2B,MAAO,KACvF,CAAE4Q,MAAO,gBAAiB7U,MAAO,eAAgBkD,SAAU,4CAA6C2X,WAAYme,IACpH,CAAEnkB,MAAO,iBAAkB7U,MAAO,kBAAmBkD,SAAU,6CAA8C2X,WAAYme,IACzH,CAAEnkB,MAAO,SAAU3R,SAAU,yDAA0D2X,WAAYyf,IACnG,CAAEzlB,MAAO,SAAU3R,SAAU,oJAAqJ2X,WAAYyf,IAAuC,CAAEzlB,MAAO,aAAc7U,MAAO,uBAAwBkD,SAAU,2CAA4C2X,WAAYuf,IAC7V,CAAEl3B,SAAU,wDAA2D,MAAS,UAAWe,MAAO,MAGtGjI,EAAG4hE,gBAAkBnpE,EAAc4uC,mBAAmBgnB,EAAe,KAAK,wBAAA/0D,EAAAzB,OAAA,GAAAsB,EAAA,KAC7ER,EAAAb,MAAA,KAAAC,UAAA,CAzBDiI,EAAGvH,cAAgBA,EAEnBuH,EAAGu7O,kBA2BH,WACIv7O,EAAGs3I,UAAYt3I,EAAGs7O,qBAClB7iP,EAAcsyC,gCAAgC,uBAAwB/qC,EAAGs7O,qBAAsBt7O,EACnG,EA7BAA,EAAGsiF,YAkEH,SAAqB/hD,GACjB/nC,EAAUyD,KAAK,mCAAmCS,OAAO,CAAE4iD,UAAW/e,EAAStrB,GAAIsqC,QAAShf,EAASgf,SACzG,EApE6B,WAEN5mD,EAAAb,MAAC,KAADC,UAAA,CAsBvBoE,EA6CJ,CA9EgK9F,GAAAgxB,QAAA,gDCehK,SANiC,CAC7B5V,WAAY+pO,GACZ7pO,aAAc,QACdH,YAAa,2ECAjB,GAAe7X,WACH,sBAAuB,CAAC8hP,GAAgCC,KAC/DjqN,QAAQ,4BAA6B2hN,IACrC3hO,WAAW,yCAA0CkqO,IACrDjhO,UAAU,gBAAiBkhO,IAC3BlhO,UAAU,eAAgBmhO,IAC1BnhO,UAAU,iBAAkBohO,IAC5BphO,UAAU,uBCZc,CACzBlJ,YAAa,wEDYZkJ,UAAU,2BAA4BqhO,IAClC,KEjBoB,SAAA1lP,GAAU4B,EAAQoW,EAAWhW,EAAYF,EAASq+D,EAAsBnqC,EAA2B5zB,EAAe+qC,GAC3I,IAqGY4d,EArGNphD,EAAKwH,KAsD8B,SAAAw0O,IAexC,OAfwCA,GAAAxlP,OAAAC,UAAzC,SAAAwD,IAAA,IAAAgiP,EAAA,OAAAxlP,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAOM,OANEmlP,EAAmB5tO,EAAUvU,KAAK,CAClC0X,YAAa,oDACbC,WAAYkM,EACZ/L,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,IACTkC,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGQmlP,EAAiB9wO,OAAM,OAC7BnL,EAAGk8O,wBAAwBhhO,OAAM/gB,EAAArD,KAAA,uBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,mBAIxCnC,MAAA,KAAAC,UAAA,CAcuC,SAAAokP,IAavC,OAbuCA,GAAA3lP,OAAAC,UAAxC,SAAAoE,EAAyC0lC,GAAQ,IAAA67M,EAAA,OAAA3lP,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAhE,KAAA,EACtB0/D,EAAqB6lL,4BAA4B97M,EAAS7kC,IAAG,QAAhF0gP,EAAUthP,EAAA9D,MACCqC,KAAK6D,SAChBk/O,EAAajkP,EAAQ,UAARA,CAAmBikP,EAAW/iP,KAAM,mBAGrD2G,EAAGs8O,uBAAyB,IAAIr1O,MAAM5N,KAAKmlB,WAAW,CAClDnlB,KAAMknC,EAAS5rB,UAGnB3U,EAAGu8O,yBAA2B,IAAIt1O,MAAM5N,KAAKmlB,WAAW,CACpDnlB,KAAM+iP,IACP,wBAAAthP,EAAAjD,OAAA,GAAAgD,EAAA,MACN/C,MAAA,KAAAC,UAAA,CAgC4B,SAAAykP,IAS5B,OAT4BA,GAAAhmP,OAAAC,UAA7B,SAAA6K,EAA8ByI,GAAE,OAAAtT,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAEO,OADnCkJ,EAAGs8O,uBAAyB,KAC5Bt8O,EAAGu8O,yBAA2B,KAAK56O,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEzB0/D,EAAqBimL,eAAe1yO,GAAG,OAC7C/J,EAAGk8O,wBAAwBhhO,OAAOvZ,EAAA7K,KAAA,uBAAA6K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAAAA,EAAAsE,OAAA,mCAAAtE,EAAA9J,OAAA,GAAAyJ,EAAA,mBAIzCxJ,MAAA,KAAAC,UAAA,CAuB0B,SAAA2jF,IAmB1B,OAnB0BA,GAAAllF,OAAAC,UAA3B,SAAAkM,EAA4B26D,EAAU7M,GAAW,IAAAv2D,EAAAg9D,EAAA,OAAAzgE,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OAIf,OAA9BkJ,EAAG08O,qBAAsB,EAAK95O,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAGT0/D,EAAqBW,sBAAsBmG,EAAU7M,GAAY,OAAlFv2D,EAAQ0I,EAAA5L,KAIc,WAFtBkgE,EAAgBoG,EAASl6C,iBAGrB8zC,EAAgB,QAEpB1zB,EAAUC,OAAOvpC,EAASb,KAAM,cAAgB69D,GAChDl3D,EAAG08O,qBAAsB,EAAM95O,EAAA9L,KAAA,iBAAA8L,EAAA/L,KAAA,GAAA+L,EAAAnJ,GAAAmJ,EAAA,SAE/B5C,EAAG08O,qBAAsB,EAAM,yBAAA95O,EAAA/K,OAAA,GAAA8K,EAAA,oBAEtC7K,MAAA,KAAAC,UAAA,CAEgC,SAAAilE,IAYhC,OAZgCA,GAAAxmE,OAAAC,UAAjC,SAAA8uB,EAAkC03C,GAAU,IAAA/iE,EAAA,OAAAzD,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,OAEd,OAA1BkJ,EAAGk9D,iBAAkB,EAAK13C,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAGLu1B,EAA0B8wC,mBAAmBF,EAAWtlC,YAAW,OAApFz9B,EAAQsrB,EAAAxuB,KAERwsC,EAAUC,OAAOvpC,EAASb,KAAM4jE,EAAWG,UAC3Cp9D,EAAGk9D,iBAAkB,EAAM13C,EAAA1uB,KAAA,gBAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAE3BxlB,EAAGk9D,iBAAkB,EAAM,yBAAA13C,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAElCztB,MAAA,KAAAC,UAAA,CAEyB,SAAA85H,IAOzB,OAPyBA,GAAAr7H,OAAAC,UAA1B,SAAAkvB,EAA2B62G,GAAQ,OAAA/lI,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAErB0/D,EAAqBmmL,kBAAkBngH,EAAS9gI,IAAG,OACzDmC,IAAK,GAAI,2BAAFrD,OAA6BgiI,EAASogH,gBAAe,sEAAsE,WAAWh3N,EAAA9uB,KAAA,sBAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAAAA,EAAA3f,OAAA,kCAAA2f,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAIpJ7tB,MAAA,KAAAC,UAAA,CAxMDiI,EAAGonB,QAmBH,WAEI,IAAMy1N,EAAuB,CACzB,CAAEhkO,MAAO,kBAAmB7U,MAAO,cAAe6a,WAAYyf,IAC9D,CAAEzlB,MAAO,iBAAkB7U,MAAO,aAAc6a,WAAYyf,IAC5D,CAAEzlB,MAAO,YAAa7U,MAAO,SAAU6a,WAAYyf,IACnD,CAAEzlB,MAAO,YAAa7U,MAAO,QAASkD,SAAU,yCAA0C2X,YAAY,GACtG,CAAEhG,MAAO,oBAAqB7U,MAAO,iBAAkBkD,SAAU,iDAAkD2X,YAAY,GAC/H,CAAEhG,MAAO,UAAW7U,MAAO,MAAOkD,SAAU,uCAAwC2X,YAAY,GAChG,CAAE3X,SAAU,sDAAuD,MAAS,UAAWyR,QAAS3Y,EAAG88O,gBAA6B,aAChI,CAAE51O,SAAU,8GAA+G,MAAS,OAAQe,MAAO,GAAI0Q,QAAS3Y,EAAG88O,gBAA8B,cACjM,CAAE51O,SAAU,2GAA4G,MAAS,SAAUe,MAAO,GAAI0Q,QAAS3Y,EAAG88O,gBAAgC,iBAElMC,EAAsB,CAClB,CAAElkO,MAAO,gBAAiB7U,MAAO,kBAAmB6a,WAAYyf,IAChE,CAAEzlB,MAAO,eAAgB7U,MAAO,gBAAiB6a,WAAYyf,IAC7D,CAAEzlB,MAAO,SAAUgG,WAAYyf,IAC/B,CAAEp3B,SAAU,sIAAuI,MAAS,SAAUe,MAAO,GAAI0Q,QAAS3Y,EAAG88O,gBAAgC,iBAUrO98O,EAAGg9O,qBAAuBvkP,EAAc4uC,mBAAmBw1M,EAAsB,KACjF78O,EAAGi9O,0BAA4BxkP,EAAcmmB,0BAA0Bm+N,EAAqB,KAC5F/8O,EAAGi9O,0BAA0Bp9M,YAAa,EAC1C7/B,EAAGk9O,sBAAwBzkP,EAAcmmB,0BAXb,CACpB,CAAE/F,MAAO,gBAAiB7U,MAAO,iBAAkBkD,SAAU,6CAA8C2X,YAAY,GACvH,CACI3X,SAAU,kwBAAuvBe,MAAO,IAAK,MAAS,YAE1xB,CAAEf,SAAU,uXAAwXe,MAAO,IAAK,MAAS,gBAMvU,IAC9F,EAhDAjI,EAAGm9O,2BAgDF,WAEwC,OAAAnB,EAAAlkP,MAAC,KAADC,UAAA,EAjDzCiI,EAAGo9O,sBAkEH,SAA+BC,GAC3BhlP,EAAWya,eAAiBuqO,EAE5BhvO,EAAUvU,KAAK,CACX0X,YAAa,oDACbC,WAAYkM,EACZ/L,SAAU,SACVgM,KAAM,KACNvF,MAAOpgB,GAEf,EA3EA+H,EAAGs9O,0BA2EF,SAEuCh4O,GAAA,OAAA62O,EAAArkP,MAAC,KAADC,UAAA,EA5ExCiI,EAAGu9O,qBAuGH,SAA8BxzO,EAAIyzO,GAC9B,IAAIz+N,EAAO/e,EAAGs8O,uBAAuBjjP,OAErC0lB,EAAK9jB,QAAO,eAAA8P,GAAAvU,OAAAC,UAAC,SAAA0C,EAAM+B,GAAG,OAAAzE,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,UACdoE,EAAIQ,GAAGsjB,aAAejV,EAAGiV,WAAU,CAAA1lB,EAAAxC,KAAA,YAC/BoE,EAAIsiP,WAAWx+N,aAAew+N,EAAWx+N,WAAU,CAAA1lB,EAAAxC,KAAA,gBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEzC0/D,EAAqB+mL,qBAAqBxzO,EAAIyzO,GAAW,OAC/Dz+N,EAAK5M,OAAOjX,GAAK5B,EAAAxC,KAAA,uBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAAAA,EAAA2M,OAAA,mCAAA3M,EAAAzB,OAAA,GAAAsB,EAAA,kBAMhC,gBAAAiI,GAAA,OAAA2J,EAAAjT,MAAA,KAAAC,UAAA,EAXW,GAYhB,EArHAiI,EAAGy8O,eAuHH,SAC6BlxO,GAAA,OAAAixO,EAAA1kP,MAAC,KAADC,UAAA,EAvH7BiI,EAAGy7E,aAqJF,SAE0B7nC,EAAAmB,GAAA,OAAA2mC,EAAA5jF,MAAC,KAADC,UAAA,EAtJ3BiI,EAAGy9O,iBAiIH,SAA0BngL,EAAU/7D,GAChC,OAAOA,EAAMwB,MAAK,SAAArB,GAAI,OAAIA,EAAKg8O,aAAepgL,CAAQ,GAC1D,EAlIAt9D,EAAGq9D,iBAoIH,SAA0BnG,GACtB,OAAQA,GACJ,IAAK,OACD,MAAO,qBAEX,IAAK,MACD,MAAO,mBAEX,IAAK,MACD,MAAO,mBAEX,QACI,MAAO,uBAGnB,EAlJAl3D,EAAGm9D,mBAuKF,SAEgCnoB,GAAA,OAAAgoB,EAAAllE,MAAC,KAADC,UAAA,EAxKjCiI,EAAG4xH,YAoLF,SAEyBv8E,GAAA,OAAAw8E,EAAA/5H,MAAC,KAADC,UAAA,EArL1BiI,EAAG88O,gBAAkB,CACjBa,YAAallP,EAAc6zC,aAAa,QACxCsxM,aAAcnlP,EAAc6zC,aAAa,QACzCmwM,eAAgBhkP,EAAc6zC,aAAa,QAC3CslF,YAAan5H,EAAc6zC,aAAa,SAgF5CtsC,EAAGk8O,wBAA0B,IAAIj1O,MAAM5N,KAAKmlB,WAAW,CACnD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAgBiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACJ0/D,EAAqBqnL,qBAAoB,QAA1D3jP,EAAQtD,EAAAI,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,mBAClDsO,EAAQ+W,QAAQxkB,EAASb,MAAM,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,KAClC,SAJGyK,GAAA,OAAAigD,EAAAtpD,MAAA,KAAAC,UAAA,KAuGhB,CA/M+B1B,GAAAgxB,QAAA,6HCa/B,SANkB,CACd5V,WAAYA,GACZE,aAAc,MACdH,YAAa,iDCVY,SAAAnb,GAAU6B,EAAOO,EAAe6e,EAAUkG,EAAgB7R,EAAmBmyO,GAEtG,IAAM99O,EAAKwH,KAuCX,SAAS0G,IACLvC,EAAkBuC,OACtB,CAvCAlO,EAAGmE,QAyCH,WACIwH,EAAkBxH,SACtB,EA1CAnE,EAAGkO,MAAQA,EACXlO,EAAGod,WAIH,WAEIpd,EAAGqd,WAAa,IAAIvb,EAEpB,IAAIwU,EAAU,CACV,GAAMkH,EAAevI,GACrB,KAAQjV,EAAGP,WACX,YAAeO,EAAG+9O,kBAClB,iBAAoB,CAChB,SAAYvgO,EAAe9D,iBAAiBC,SAC5C,QAAW6D,EAAe9D,iBAAiBnC,QAC3C,SAAYiG,EAAe9D,iBAAiBlC,SAC5C,SAAYgG,EAAe9D,iBAAiBhC,SAC5C,QAAW8F,EAAe9D,iBAAiB/B,QAC3C,YAAe6F,EAAe9D,iBAAiB9B,cAIvDkmO,EAAwBE,gBAAgB1mO,EAAUhB,GAASvb,KAAI,eAAAgQ,GAAAvU,OAAAC,UAAC,SAAAC,EAAgBwD,GAAQ,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAChE,OAApBkJ,EAAGmW,WAAY,EAAKvf,EAAAE,KAAA,EACd2B,EAAc8J,qBAAqBvC,EAAGqd,YAAYtiB,MAAK,SAAUoQ,GACnE+C,GACJ,IAAE,wBAAAtX,EAAAiB,OAAA,GAAAnB,EAAA,KAEL,gBAAA4O,GAAA,OAAAyF,EAAAjT,MAAA,KAAAC,UAAA,EAN8D,IAM5D,SAAUmC,GACTzB,EAAc2d,iBAAiBlc,EAASb,MACxC2G,EAAGqd,WAAWxc,cAAe,CACjC,GAEJ,EAhCAb,EAAGP,WAAa+d,EAAe3jB,KAC/BmG,EAAG+9O,kBAAoBvgO,EAAexO,WAwC1C,CC9C6B,SAAA3Y,GAAU8B,EAAS2lP,EAAyBrlP,EAAeynB,EAAsB7R,GAE1G,IASU4vO,EATJj+O,EAAKwH,KA4EX,SAAS2kI,EAAa70H,GAClBwmO,EAAwBI,kBAAkB5mO,GACrCvc,MAAK,SAAAu0C,GACFtvC,EAAGm+O,2BAA2BjjO,OAC9Blb,EAAGo+O,2BAA6B,IACpC,IAAE,OAAO,SAAAlkP,GACLzB,EAAc2d,iBAAiBlc,EAASb,KAC5C,GACR,CAnFA2G,EAAGq+O,kBAsCH,SAA2B/mO,GACvBwmO,EAAwBQ,wBAAwBhnO,GAAUvc,MAAK,SAAUb,GACjEA,EAASb,KAAK6D,OAAS,EACvBW,IAAKpF,EAAc4pC,iBAAiB,uBAAwB,gGAAiG,WAAWtnC,MAAK,WACzKoxI,EAAa70H,EACjB,IAAG,SAAUnT,GAEb,IAEAgoI,EAAa70H,EAErB,GAEJ,EAlDAtX,EAAGomB,UAoFH,SAAmBuqC,GACf,IAAItqC,EAAcrmB,EAAGu+O,gBAAgBx7O,MAAK,SAAA6X,GAAM,OAAIA,EAAO3F,KAAO07C,CAAa,IAC/EzwC,EAAqBoG,gBAAgBD,EACzC,EAtFArmB,EAAG65E,kBAwFH,SAA2Bt5C,GAEvB,GAAIA,EAAU,CAGV,GAFAvgC,EAAGo+O,2BAA6Bp+O,EAAGu+O,gBAAgBx7O,MAAK,SAAA8D,GAAC,OAAIA,EAAEoO,KAAOsrB,EAAStrB,EAAE,IACjFjV,EAAGw+O,0BAA4Bx+O,EAAGo+O,2BAA2B1kO,iBAAiBhC,SAAS/b,QAAO,SAAA+Z,GAAQ,OAAIA,EAASygB,YAAY,IAAEj5B,OAC7H8C,EAAGo+O,2BAA2B1kO,iBAAiBhC,SAAS2E,MAAK,SAAA3G,GAAQ,OAAKA,EAASygB,YAAY,IAAG,CAClG,IAAMsoN,EAAwBz+O,EAAGo+O,2BAA2B1kO,iBAAiBhC,SAAS/b,QAAO,SAAA+Z,GAAQ,OAAKA,EAASygB,YAAY,IAAEj5B,OACjI8C,EAAG0+O,yBAA2B1+O,EAAGo+O,2BAA2B1kO,iBAAiB/B,QAAQza,OAASuhP,CAClG,MACIz+O,EAAG0+O,yBAA2B1+O,EAAGo+O,2BAA2B1kO,iBAAiB/B,QAAQza,OAEzF4gP,EAAwBQ,wBAAwB/9M,EAAStrB,IAAIla,MAAK,SAAAb,GAC9D8F,EAAG2+O,uCAAyCzkP,EAASb,IACzD,GACJ,MACI2G,EAAGo+O,2BAA6B,IAGxC,EAzGAp+O,EAAG4+O,qBA2GH,SAA8BhvM,GAE1B,IACIp3B,EAASxY,EAAGo+O,2BAA2B1kO,iBAAiBnC,QAAQxU,MAAK,SAAAyV,GAErE,OADkBA,EAAO8D,UAAU3R,gBACZilC,EAAUjlC,aACrC,IAOA,OANI6N,EACcA,EAAOkiB,YAEPviC,EAAQ,iCAARA,CAA0Cy3C,EAIhE,EAxHA5vC,EAAG6+O,uBA0HH,SAAgCnpO,GAS5B,OANIA,EAASklB,oBACKllB,EAASklB,oBAETllB,EAASygB,YAI/B,EAnIAn2B,EAAG8+O,yBAgDH,SAAkCxnO,GAC9BtX,EAAGsX,SAAWA,EACdtX,EAAGwd,eAAiBxd,EAAGu+O,gBAAgBx7O,MAAK,SAAAszC,GAAC,OAAIA,EAAEphC,KAAOqC,CAAQ,IAClDjJ,EAAUvU,KAAK,CAC3B0X,YAAa,+DACbC,WAAYstO,GACZptO,aAAc,SACdC,SAAU,SACVC,QAAS,CACLyF,SAAU,WAAF,OAAQtX,EAAGsX,QAAQ,EAC3BkG,eAAgB,WAAF,OAAQxd,EAAGwd,cAAc,KAIrCrS,OACLpQ,MAAK,SAAAu0C,GACHtvC,EAAGm+O,2BAA2BjjO,MACjC,IAAE,OAAO,SAAAo0B,GAET,GACR,EAjEU2uM,EAA0B,CAC5B,CAAEplO,MAAO,KAAM7U,MAAO,KAAM6a,WAAYyf,GAA0B3lB,QAAQ,GAC1E,CAAEE,MAAO,OAAQ7U,MAAO,OAAQ6a,WAAYyf,IAC5C,CAAEzlB,MAAO,cAAe7U,MAAO,cAAe6a,WAAYyf,IAC1D,CAAEzlB,MAAO,8BAA+B7U,MAAO,cAAe6a,WAAYyf,IAC1E,CAAEzlB,MAAO,sBAAuB7U,MAAO,UAAW6a,WAAYyf,IAC9D,CAAEp3B,SAAU,oDAAqD,MAAS,MAAOe,MAAO,IACxF,CAAEf,SAAU,kHAAmH,MAAS,OAAQe,MAAO,IACvJ,CAAEf,SAAU,+GAAgH,MAAS,SAAUe,MAAO,GAAI0Q,QAASlgB,EAAc6zC,aAAa,UAGlMtsC,EAAGg/O,wBAA0BvmP,EAAc4uC,mBAAmB42M,EAAyB,KAEvFj+O,EAAGm+O,2BAA6B,IAAIl3O,MAAM5N,KAAKmlB,WAAW,CACtD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,SAAUvT,GACZm2O,EAAwB/rM,kBAAkBh3C,MAAK,SAAUb,GACrDA,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGu+O,gBAAkBrkP,EAASb,KAC9BsO,EAAQ+W,QAAQxkB,EAASb,KAC7B,GACJ,IA2GhB,CDhJiEhD,GAAAgxB,QAAA,oGCEgBhxB,GAAAgxB,QAAA,yFCajF,SANqB,CACjB5V,WAAYA,GACZE,aAAc,OACdH,YAAa,uDCZY,SAAAnb,GAAU6B,EAAO8I,GAS1C,MARc,CACV+wC,gBASJ,WACI,OAAO75C,EAAM4K,IAAIvI,OAAS,0BACrBQ,KAAK22C,GAAa,MACZC,EACf,EAZIstM,eAcJ,SAAwB5lP,GACpB,OAAOnB,EAAMge,KAAK3b,OAAS,yBAA0BlB,GAChD0B,KAAK22C,GAAa,MACZC,EACf,EAjBI2sM,wBAoBJ,SAAiC3tL,GAC7B,OAAOz4D,EAAM4K,IAAIvI,OAAS,yCAA2Co2D,GAChE51D,KAAK22C,GAAa,MACZC,EACf,EAvBIqsM,gBAyBJ,SAAyBrtL,EAAer6C,GACpC,OAAOpe,EAAM+J,IAAI,GAADzH,OAAID,OAAM,0BAAAC,OAAyBm2D,GAAiBr6C,GAC/Dvb,KAAK22C,GAAa,MACZC,EACf,EA5BIusM,kBA+BJ,SAA2BvtL,GACvB,OAAOz4D,EAAK,OAAQqC,OAAS,yBAA2Bo2D,GACnD51D,KAAK22C,GAAa,MACZC,EACf,GAEA,SAASD,EAAax3C,GAClB,OAAOA,CACX,CAEA,SAASy3C,EAAWz3C,GAChB8G,EAAiB,MAAO9G,EAC5B,CACJ,CClD6B,SAAA7D,GAAU6B,EAAO8I,GAC1C,IAAI+yB,EAAU,CACV8pN,mBAQW,WAEkB,OAAAqB,EAAApnP,MAAC,KAADC,UAAA,EAT7BskP,4BAeH,SAEyC/2O,GAAA,OAAA65O,EAAArnP,MAAC,KAADC,UAAA,EAhBtC0kP,eAsBH,SAE4Bt7O,GAAA,OAAAq7O,EAAA1kP,MAAC,KAADC,UAAA,EAvBzBwlP,qBA6BH,SAEkCn8O,EAAAmK,GAAA,OAAA6zO,EAAAtnP,MAAC,KAADC,UAAA,EA9B/Bo/D,sBAoCH,SAEmCvjB,EAAAmB,GAAA,OAAAgwB,EAAAjtE,MAAC,KAADC,UAAA,EArChC4kP,kBA4CH,SAE+B3nM,GAAA,OAAAqqM,EAAAvnP,MAAC,KAADC,UAAA,GA3ChC,OAAOg8B,EAE0B,SAAAmrN,IAMhC,OANgCA,GAAA1oP,OAAAC,UAAjC,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,6BAA2B,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE3Dk9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAEyC,SAAAonP,IAMzC,OANyCA,GAAA3oP,OAAAC,UAA1C,SAAA0C,EAA2C4Q,GAAE,OAAAtT,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAExBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,6BAAAC,OAA4BuP,EAAE,gBAAc,cAAAzQ,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAE5Ew6C,EAASx6C,EAAAG,IAAM,wBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAE4B,SAAAykP,IAM5B,OAN4BA,GAAAhmP,OAAAC,UAA7B,SAAAwD,EAA8B8P,GAAE,OAAAtT,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEXoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,6BAAAC,OAA4BuP,IAAK,cAAA5P,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEpE25C,EAAS35C,EAAAV,IAAM,wBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAEkC,SAAAqnP,IAMlC,OANkCA,GAAA5oP,OAAAC,UAAnC,SAAAoE,EAAoCkP,EAAIyzO,GAAU,OAAA/mP,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAE7BoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,6BAAAC,OAA4BgjP,EAAU,aAAAhjP,OAAYuP,IAAK,cAAAjP,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAE1Fg5C,EAASh5C,EAAArB,IAAM,wBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAEmC,SAAAgtE,IAOnC,OAPmCA,GAAAvuE,OAAAC,UAApC,SAAA6K,EAAqCg8D,EAAU7M,GAAW,OAAAh6D,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAErCoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,wCAAAC,OAAuCi2D,EAAW,yBAAAj2D,OAAwB8iE,GAAY,CAAE3nC,aAAc,SAAS,cAAAh0B,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAE/ImyC,EAASnyC,EAAAlI,IACTg8C,EAAS9zC,EAAAlI,IAAK,yBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAErBxJ,MAAA,KAAAC,UAAA,CAE+B,SAAAsnP,IAO/B,OAP+BA,GAAA7oP,OAAAC,UAAhC,SAAAkM,EAAiCqQ,GAAU,OAAAvc,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEtBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,6BAAAC,OAA4BwY,EAAU,SAAO,cAAApQ,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAE9EkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAED,SAAS09C,EAAU5gB,GACf,MAAMA,CACV,CAEA,SAASif,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CACJ,C,kFC/DA,SAAel7B,WACH,uBAAwB,IAC/B+gB,UAAU,YAAa4kO,IACvB5kO,UAAU,eAAgB6kO,IAC1B9tN,QAAQ,0BAA2B+tN,IACnC/tN,QAAQ,uBAAwBguN,IAC5B,KCVoB,SAAAppP,GAAU61F,EAAS7zF,EAAYsT,EAAmB+zO,EAA8BjnP,GAEzG,IAAMuH,EAAKwH,KAOY,SAAA7O,IAQtB,OARsBA,GAAAnC,OAAAC,UAAvB,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACIkJ,EAAG2/O,WAAa3/O,EAAGksF,QAAQ0zJ,WAC3B5/O,EAAGsV,YAAc,CAAC,SAAU,UAAW,YAAa,UACpDtV,EAAG8T,WAAa,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YACnF9T,EAAGkU,YAAczb,EAAc8c,+BAC/BvV,EAAGg8H,OAASvjI,EAAciwC,2BAC1B1oC,EAAG6/O,4BAA8B,IAAI3/O,KACrC4/O,IAAuB,wBAAAxmP,EAAAzB,OAAA,GAAAsB,EAAA,MAC1BrB,MAAA,KAAAC,UAAA,CAID,SAASyK,IACLmJ,EAAkBuC,OACtB,CAE4B,SAAA6xO,IAoB3B,OApB2BA,GAAAvpP,OAAAC,UAA5B,SAAAwD,IAAA,OAAAxD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OACoC,OAAhCkJ,EAAGkpB,OAAS,IAAIpnB,EAAgB3H,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGtBkpP,IAAgB,YAClBhgP,EAAG2/O,WAAWziP,OAAS,GAAC,CAAA/C,EAAArD,KAAA,eAAAqD,EAAArD,KAAA,OAqChCkJ,EAAG2/O,WAAW1kP,QAAO,eAAA8P,GAAAvU,OAAAC,UAAC,SAAAC,EAAMg/G,GAAS,IAAAp/F,EAAA,OAAA7f,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAIhC,OAHGwf,EAAU,CACV,YAAeo/F,EAAUzgG,GACzB,MAAUygG,EAAUrvG,MAAeqvG,EAAUrvG,MAAjB,MAC/BzP,EAAAE,KAAA,EAEK4oP,EAA6BO,wBAAwBjgP,EAAGksF,QAAQj3E,GAAIygG,EAAUzgG,GAAIqB,GAAQ,wBAAA1f,EAAAiB,OAAA,GAAAnB,EAAA,KACnG,gBAAA4O,GAAA,OAAAyF,EAAAjT,MAAA,KAAAC,UAAA,EAPoB,IApCW,UAGE,GAA1BiI,EAAGkgP,sBAAgClgP,EAAGksF,QAAQi0J,SAAQ,CAAAhmP,EAAArD,KAAA,gBAAAqD,EAAArD,KAAA,GAChDspP,GAAyB,GAAM,QAAAjmP,EAAArD,KAAA,wBAAAqD,EAAArD,KAAA,GAE/BspP,GAAyB,GAAK,eAAAjmP,EAAArD,KAAA,GAGlC2B,EAAc8J,qBAAqBvC,EAAGkpB,QAAO,QACnD1mB,IAASrI,EAAArD,KAAA,iBAAAqD,EAAAtD,KAAA,GAAAsD,EAAAV,GAAAU,EAAA,SAET6F,EAAGkpB,OAAOroB,cAAe,EAAM,yBAAA1G,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtC8lP,EAAAjoP,MAAA,KAAAC,UAAA,UAEcioP,IAAc,OAAAK,EAAAvoP,MAAC,KAADC,UAAA,UAAAsoP,IAgB5B,OAhB4BA,GAAA7pP,OAAAC,UAA7B,SAAAoE,IAAA,IAAAyb,EAAA,OAAA7f,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OASK,OARGwf,EAAU,CACV,GAAMtW,EAAGksF,QAAQj3E,GACjB,KAAQjV,EAAGksF,QAAQryF,KACnB,YAAemG,EAAGksF,QAAQl9E,YAC1B,QAAWhP,EAAGksF,QAAQnU,QACtB,gBAAmB/3E,EAAGksF,QAAQo0J,gBAC9B,MAAStgP,EAAGksF,QAAQt7B,MACpB,UAAa5wD,EAAGksF,QAAQq0J,WAC3BzlP,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGS4oP,EAA6Bc,cAAcxgP,EAAGksF,QAAQj3E,GAAIqB,GAAQ,OAAAxb,EAAAhE,KAAA,sBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,kCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAI/E/C,MAAA,KAAAC,UAAA,CAeD,SAAS+nP,IACD9/O,EAAGksF,QAAQi0J,UAAYngP,EAAGksF,QAAQi0J,SAASM,mBAC3CzgP,EAAG0gP,kBAAoB1gP,EAAGksF,QAAQi0J,SAASzsO,UAC3C1T,EAAG6T,kBAAoB7T,EAAGksF,QAAQi0J,SAASnsO,UAC3ChU,EAAGiU,mBAAqBjU,EAAGksF,QAAQi0J,SAAShsO,WAAa,CAAE9N,MAAOrG,EAAGksF,QAAQi0J,SAAShsO,YAAe,KACrGnU,EAAG2gP,cAAgB3gP,EAAGksF,QAAQi0J,SAASxkH,MACvC37H,EAAG2oJ,UAAY,IAAIzoJ,KAAKF,EAAGksF,QAAQi0J,SAAS5rO,WAC5CvU,EAAGkgP,qBAAsB,GAEzBlgP,EAAGkgP,qBAAsB,CAEjC,CAEA,SAASE,EAAyB93F,IAEjC,SAEmCnnJ,EAAAC,EAAAmK,EAAAqoC,EAAAmB,EAAAC,GAAA4rM,EAAA9oP,MAAC,KAADC,UAAA,CAHhC8oP,CAAsBv4F,EAAMtoJ,EAAG0gP,kBAAmB1gP,EAAG6T,kBAAmB7T,EAAGiU,mBAAoBjU,EAAG2gP,cAAe3gP,EAAG2oJ,UACxH,CAEoC,SAAAi4F,IAkEnC,OAlEmCA,GAAApqP,OAAAC,UAApC,SAAA6K,EAAqCinJ,EAAcC,EAAWC,EAAWC,EAAY/jH,EAAOgkH,GAAS,IAAAI,EAAAC,EAAA83F,EAAAC,EAAAzqO,EAAA0qO,EAAA,OAAAvqP,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OACvD,GAA1CkJ,EAAGuoB,iBAAmB,IAAIzmB,GAEtBymJ,EAAc,CAAF5mJ,EAAA7K,KAAA,SAyCX,MAlCiB,WAAd0xJ,IACAO,EAAoB,GACpB+3F,EAAe,GACf93F,EAAmB,CAACP,IACJ,YAAdD,IACFO,EAAoB,CAACL,EAAWriJ,OAChC2iJ,EAAmB,GACnB83F,EAAe,IACC,cAAdt4F,IACFO,EAAoB,CAACL,EAAWriJ,OAChCy6O,EAAe,CAACn8M,GAChBqkH,EAAmB,IACH,WAAdR,IACFO,EAAoB,CAACL,EAAWriJ,OAChCy6O,EAAe,CAACn8M,GAChBqkH,EAAmB,KAGnB+3F,EAAoB,IAAI7gP,MACV2N,SAAS86I,EAAUh7I,YACrCozO,EAAkBnzO,WAAW+6I,EAAUj7I,cAEvCqzO,GADAA,EAAoB,IAAI7gP,KAAK6gP,EAAkB93F,gBACTttG,cAEhCrlC,EAAU,CACZ,UAAa41E,EAAQj3E,GACrB,SAAY,CACR,WAAc8zI,EAAkB,GAChC,UAAaC,EAAiB,GAC9B,MAAS83F,EAAa,GACtB,UAAat4F,EACb,UAAau4F,EACb,SAAY1oP,EAAW+H,sBAE9BuB,EAAA9K,KAAA,GAAA8K,EAAA7K,KAAA,GAGS4oP,EAA6BuB,gBAAgBjhP,EAAGksF,QAAQj3E,GAAIqB,GAAQ,eAAA3U,EAAA7K,KAAA,GACpEgpP,IAAsB,eAAAn+O,EAAA7K,KAAA,GACtB2B,EAAc8J,qBAAqBvC,EAAGuoB,kBAAiB,QAAA5mB,EAAA7K,KAAA,iBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAlI,GAAAkI,EAAA,UAE7D3B,EAAGuoB,iBAAiB1nB,cAAe,EAAM,WAI5C0nJ,IAAgBr8D,EAAQi0J,SAAQ,CAAAx+O,EAAA7K,KAAA,SAGhC,OAFGkqP,EAAiB,CACjB7kK,UAAWn8E,EAAGksF,QAAQj3E,IACzBtT,EAAA9K,KAAA,GAAA8K,EAAA7K,KAAA,GAGS4oP,EAA6BwB,uBAAuBh1J,EAAQj3E,GAAI+rO,GAAe,QAAAr/O,EAAA7K,KAAA,iBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAm9C,GAAAn9C,EAAA,UAErF3B,EAAGuoB,iBAAiB1nB,cAAe,EAAM,yBAAAc,EAAA9J,OAAA,GAAAyJ,EAAA,6BAGpDxJ,MAAA,KAAAC,UAAA,CA7JDiI,EAAGksF,QAAUA,EACblsF,EAAGwC,OAASA,EACZxC,EAAGmhP,cAiBF,WAE2B,OAAApB,EAAAjoP,MAAC,KAADC,UAAA,EAlB5BiI,EAAG2/O,WAAa,GAAG,WAEIhnP,EAAAb,MAAC,KAADC,UAAA,CAUvBoE,EAgJJ,CCnK6B,SAAA9F,GAAUoC,EAAekT,EAAmB+zO,GAErE,IAAM1/O,EAAKwH,KAMY,SAAA7O,IAGtB,OAHsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAC6B,OAAzBkJ,EAAGohP,iBAAmB,GAAGxqP,EAAAE,KAAA,EACnBuqP,IAAqB,wBAAAzqP,EAAAiB,OAAA,GAAAnB,EAAA,MAC9BoB,MAAA,KAAAC,UAAA,CAEU,SAEIspP,IAAmB,OAAAC,EAAAxpP,MAAC,KAADC,UAAA,UAAAupP,IAGjC,OAHiCA,GAAA9qP,OAAAC,UAAlC,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyB4oP,EAA6B6B,sBAAqB,OAAnErnP,EAAQZ,EAAAtC,KACZgJ,EAAGohP,iBAAmBlnP,EAASb,KAAK,wBAAAC,EAAAzB,OAAA,GAAAsB,EAAA,MACvCrB,MAAA,KAAAC,UAAA,CAEkC,SAAAypP,IAkBlC,OAlBkCA,GAAAhrP,OAAAC,UAAnC,SAAAwD,IAAA,OAAAxD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAWW,OAVPkJ,EAAGyhP,iBAAmB,IAAI3/O,EAAgB3H,EAAAtD,KAAA,EAGtCmJ,EAAGohP,iBAAiBnmP,SAAQ,SAAAymP,GACxB,IAAIprO,EAAU,CACV,GAAMorO,EAAgBzsO,GACtB,MAASysO,EAAgBC,aAG7BjC,EAA6BkC,sBAAsBF,EAAgBzsO,GAAIqB,EAC3E,IAAGnc,EAAArD,KAAA,EAEG2B,EAAc8J,qBAAqBvC,EAAGyhP,kBAAiB,OAC7Dj/O,IAASrI,EAAArD,KAAA,gBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAET6F,EAAGyhP,iBAAiB5gP,cAAe,EAAM,yBAAA1G,EAAAtC,OAAA,GAAAoC,EAAA,mBAEhDnC,MAAA,KAAAC,UAAA,CAED,SAASyK,IACLmJ,EAAkBuC,OACtB,CAtCAlO,EAAG6hP,qBAcF,WAEkC,OAAAL,EAAA1pP,MAAC,KAADC,UAAA,EAfnCiI,EAAGwC,OAASA,EAAO,WAGI7J,EAAAb,MAAC,KAADC,UAAA,CAKvBoE,EA+BJ,CC1C6B,SAAA9F,GAAU4B,EAAQoW,EAAW5V,EAAeinP,EAA8BvnP,GAEnG,IAAM6H,EAAKwH,KAQY,SAAA7O,IAyCtB,OAzCsBA,GAAAnC,OAAAC,UAAvB,SAAA0C,IAAA,IAAA2oP,EAAA,OAAArrP,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACQgrP,EACA,CACI,CAAE56O,SAAU,2GAA4G,MAAS,OAAQe,MAAO,IAChJ,CAAEf,SAAU,mFAAoF,MAAS,UAAWe,MAAO,IAC3H,CAAE4Q,MAAO,KAAM7U,MAAO,KAAM6a,WAAYyf,GAA0Br2B,MAAO,IACzE,CAAE4Q,MAAO,OAAQ7U,MAAO,OAAQ6a,WAAYyf,GAA0Br2B,MAAO,KAC7E,CAAE4Q,MAAO,cAAe7U,MAAO,cAAe6a,WAAYyf,IAC1D,CAAEzlB,MAAO,kBAAmB7U,MAAO,mBAAoB6a,WAAYyf,GAA0Br2B,MAAO,KACpG,CAAE4Q,MAAO,QAAS7U,MAAO,QAAS6a,WAAYyf,IAC9C,CAAEzlB,MAAO,YAAa7U,MAAO,aAAc6a,WAAYmf,GAAqB/1B,MAAO,KACnF,CAAE4Q,MAAO,UAAW7U,MAAO,UAAW6a,WAAYmf,GAAqB/1B,MAAO,KAC9E,CAAEf,SAAU,sEAAuE,MAAS,WAAYe,MAAO,KAC/G,CAAEf,SAAU,sEAAuE,MAAS,iBAAkBe,MAAO,MAG7HjI,EAAG+hP,6BAA+BtpP,EAAc4uC,mBAAmBy6M,EAA8B,KACjG9hP,EAAG+hP,6BAA6BliN,YAAa,EAE7C7/B,EAAGgiP,gCAAkC,IAAI/6O,MAAM5N,KAAKmlB,WAAW,CAC3D+iC,SAAUliB,GACViiB,OAAQ,CACJoM,MAAO,CACH/B,OAAQ,CACJ40L,UAAW,CAAE5gP,KAAM,WACnBo4E,QAAS,CAAEp4E,KAAM,cAI7B8e,UAAW,CACPvD,KAAM,WAAF,IAAAkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAgBiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEA4oP,EAA6BuC,oBAAmB,QAAjE/nP,EAAQtD,EAAAI,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClDsO,EAAQ+W,QAAQxkB,EAASb,MAAMzC,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE/B+Q,EAAQuiC,QAAQ,yBAAAtzC,EAAAiB,OAAA,GAAAnB,EAAA,kBANpB,OAQH,SARG0K,GAAA,OAAAggD,EAAAtpD,MAAA,KAAAC,UAAA,EAAE,MAUX,wBAAAuB,EAAAzB,OAAA,GAAAsB,EAAA,KACNR,EAAAb,MAAA,KAAAC,UAAA,CAIkC,SAAAmqP,IAgBlC,OAhBkCA,GAAA1rP,OAAAC,UAAnC,SAAAwD,EAAoCiyF,GAAO,IAAAjlC,EAAA,OAAAxwD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAYrC,OAVEmwD,EAAY54C,EAAUvU,KAAK,CAC3B0X,YAAa,sGACbC,WAAY0wO,GACZxwO,aAAc,QACdC,SAAU,SACVyG,MAAOpgB,EACP2lB,KAAM,KACN/L,QAAS,CACLq6E,QAAS,WAAF,OAAQA,CAAO,KAE5B/xF,EAAArD,KAAA,EAEImwD,EAAU97C,OAAM,OACtBnL,EAAGgiP,gCAAgC9mO,OAAO,wBAAA/gB,EAAAtC,OAAA,GAAAoC,EAAA,MAC7CnC,MAAA,KAAAC,UAAA,CAEuC,SAAAqqP,IAYvC,OAZuCA,GAAA5rP,OAAAC,UAAxC,SAAAoE,IAAA,IAAAosD,EAAA,OAAAxwD,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAQM,OANEmwD,EAAY54C,EAAUvU,KAAK,CAC3B0X,YAAa,gHACbC,WAAY4wO,GACZ1wO,aAAc,QACdC,SAAU,SACVyG,MAAOpgB,IACT6C,EAAAhE,KAAA,EAEImwD,EAAU97C,OAAM,OACtBnL,EAAGgiP,gCAAgC9mO,OAAO,wBAAApgB,EAAAjD,OAAA,GAAAgD,EAAA,MAC7C/C,MAAA,KAAAC,UAAA,CAEoB,SAAAuqP,IAUpB,OAVoBA,GAAA9rP,OAAAC,UAArB,SAAA6K,EAAsB4qF,GAAO,OAAAz1F,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OACD,OAAxBkJ,EAAGiW,eAAgB,EAAKtU,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAGd4oP,EAA6B6C,gBAAgBr2J,EAAQj3E,IAAG,OAC9DjV,EAAGgiP,gCAAgC9mO,OACnClb,EAAGiW,eAAgB,EAAMtU,EAAA7K,KAAA,gBAAA6K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEzB3B,EAAGiW,eAAgB,EAAM,yBAAAtU,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEhCxJ,MAAA,KAAAC,UAAA,CA7FDiI,EAAGgY,cAAe,EAElBhY,EAAGwiP,qBA+CQ,SAEwBl9O,GAAA,OAAA48O,EAAApqP,MAAC,KAADC,UAAA,EAhDnCiI,EAAGyiP,0BAgEF,WAEuC,OAAAL,EAAAtqP,MAAC,KAADC,UAAA,EAjExCiI,EAAG0iP,OA6EF,SAEoBvhP,GAAA,OAAAmhP,EAAAxqP,MAAC,KAADC,UAAA,EA/EF,WAEIY,EAAAb,MAAC,KAADC,UAAA,CA2CvBoE,EA6CJ,CFtGuE9F,GAAAgxB,QAAA,4FCAAhxB,GAAAgxB,QAAA,qECEgChxB,GAAAgxB,QAAA,gFCcvG,SAP0B,CACtB5V,WAAYkxO,GACZhxO,aAAc,OACdH,YAAa,uFCVY,SAAAnb,GAAUoC,EAAeN,EAASyqP,EAAUj3O,EAAmBk3O,GAExF,IAAM7iP,EAAKwH,KAOY,SAAA7O,IAEtB,OAFsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACU0mF,IAAa,wBAAA5mF,EAAAiB,OAAA,GAAAnB,EAAA,MACtBoB,MAAA,KAAAC,UAAA,CAEU,SAEIylF,IAAW,OAAAwQ,EAAAl2F,MAAC,KAADC,UAAA,UAAAi2F,IAKzB,OALyBA,GAAAx3F,OAAAC,UAA1B,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACuF,OAAnFkJ,EAAG8iP,eAAiB,CAAE,GAAM9iP,EAAG4iP,SAAS1+J,SAAU,KAAQlkF,EAAG4iP,SAASt/J,YAAahqF,EAAAxC,KAAA,EAC9D+rP,EAA8BrlK,cAAa,QAA5DtjF,EAAQZ,EAAAtC,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGslG,iBAAmBprG,EAASb,KAAKsC,QAAO,SAAAkI,GAAM,MAAoB,qBAAhBA,EAAOhK,MAA+C,qBAAhBgK,EAAOhK,IAA2B,IAAE,wBAAAP,EAAAzB,OAAA,GAAAsB,EAAA,MAClIrB,MAAA,KAAAC,UAAA,CAE0B,SAAAgrP,IAgB1B,OAhB0BA,GAAAvsP,OAAAC,UAA3B,SAAAwD,IAAA,IAAAqc,EAAA,OAAA7f,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAOK,OANDkJ,EAAGkpB,OAAS,IAAIpnB,EAEVwU,EAAU,CACZ,GAAMtW,EAAG4iP,SAASI,WAClB,OAAUhjP,EAAG8iP,eAAe7tO,GAC5B,aAAgBjV,EAAG4iP,SAASK,cAC/B9oP,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGS+rP,EAA8BK,eAAeljP,EAAG4iP,SAASI,WAAY1sO,GAAQ,cAAAnc,EAAArD,KAAA,EAC7E2B,EAAc8J,qBAAqBvC,EAAGkpB,QAAO,OACnD1mB,IAASrI,EAAArD,KAAA,iBAAAqD,EAAAtD,KAAA,GAAAsD,EAAAV,GAAAU,EAAA,SAET6F,EAAGkpB,OAAOroB,cAAe,EAAM,yBAAA1G,EAAAtC,OAAA,GAAAoC,EAAA,oBAEtCnC,MAAA,KAAAC,UAAA,CAED,SAASyK,IACLmJ,EAAkBuC,OACtB,CAtCAlO,EAAGmjP,aAgBF,WAE0B,OAAAJ,EAAAjrP,MAAC,KAADC,UAAA,EAjB3BiI,EAAGwC,OAASA,EACZxC,EAAG4iP,SAAWA,EAAS,WAGAjqP,EAAAb,MAAC,KAADC,UAAA,CAIvBoE,EA+BJ,CC1C6B,SAAA9F,GAAU4B,EAAQI,EAAYH,EAAOse,EAA4BnI,EAAW3I,EAAqBwa,EAAsB/nB,EAASi7C,EAAoB5D,EAAgB/2C,EAAeinP,EAA8BmD,GAE1O,IAAM7iP,EAAKwH,KA0BY,SAAA7O,IActB,OAdsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,IAAA+U,EAAA,OAAAhV,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKI,OAJIuB,EAAWwuB,oBACX7mB,EAAGojP,mBAAqB/qP,EAAWwuB,kBAAkBnN,iBAAiB/B,SAG1E/gB,EAAAE,KAAA,EACoB4O,EAAoB8F,cAAa,OAArDxL,EAAG+W,SAAQngB,EAAAI,KACPyU,EAAiBhT,EAAc4Q,qCAAqCrJ,EAAG+W,UAC3E/W,EAAGP,WAAagM,EAAe5R,KAE/BmG,EAAG4hE,gBAAkBnpE,EAAc4uC,mBAAmB,KAAM,KAC5DrnC,EAAG4hE,gBAAgB9f,UAAW,EAE9BgpC,IAAc,wBAAAl0F,EAAAiB,OAAA,GAAAnB,EAAA,MACjBoB,MAAA,KAAAC,UAAA,CAEU,SAEI6qD,IAAc,OAAAuiG,EAAArtJ,MAAC,KAADC,UAAA,UAAAotJ,IAc5B,OAd4BA,GAAA3uJ,OAAAC,UAA7B,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAEQkJ,EAAGg2E,WAAa39E,EAAWwuB,mBAAqB7mB,EAAGqjP,mBAAqBrjP,EAAGsjP,kBAAoBtjP,EAAG6b,eAAe8vC,QAEjH3rD,EAAG6b,eAAexe,MAAQmyC,EAAeW,wBAEzCnwC,EAAG6b,eAAexe,MAAQ2C,EAAG6b,eAAexe,MAAM1B,QAAO,SAAA0B,GAAK,MAAwB,aAApBA,EAAMif,WAAgD,cAApBjf,EAAMif,SAAyB,IACnItc,EAAG6b,eAAewoD,aAAc,EAEhC6R,KACOl2E,EAAGg2E,YAAc39E,EAAWwuB,mBAAqB7mB,EAAGqjP,mBAAqBrjP,EAAGsjP,kBAAoBtjP,EAAG6b,eAAe8vC,QAEzHpyC,IACH,wBAAAjgB,EAAAzB,OAAA,GAAAsB,EAAA,MACJrB,MAAA,KAAAC,UAAA,CA0BA,SAEcwrP,EAAgBj+O,GAAA,OAAAk+O,EAAA1rP,MAAC,KAADC,UAAA,UAAAyrP,IAuC9B,OAvC8BA,GAAAhtP,OAAAC,UAA/B,SAAAwD,EAAgCwpP,GAAe,OAAAhtP,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAqC0K,OApCrNkJ,EAAG0jP,YAAc,IACjBD,EAAkBtrP,EAAQ,UAARA,CAAmBsrP,EAAiB,YACtCxoP,SAAQ,SAAAud,GAEpBA,EAAOkiB,YAAeliB,EAAOkiB,YAAwEjiC,EAAcyzC,wBAAwB1zB,EAAOkiB,aAAvGjiC,EAAcyzC,wBAAwB1zB,EAAO8D,WAG/D,cAArB9D,EAAO8D,WAAkD,aAArB9D,EAAO8D,YAC3C9D,EAAO8pD,WAAY,GAGvB,IAAIqhL,EAAa,CAAE,MAASnrO,EAAO8D,UAAW,MAAU9D,EAAOkiB,YAAwEliB,EAAOkiB,YAAjEjiC,EAAcyzC,wBAAwB1zB,EAAO8D,WAAiCuC,WAAYyf,GAA0B3lB,QAASH,EAAO8pD,UAAWhpC,QAAS9gB,EAAOqI,SAEpN,aAApBrI,EAAOu3B,UAA+C,SAApBv3B,EAAOu3B,UAA2C,SAApBv3B,EAAOu3B,WACvE4zM,EAAW9kO,WAAarG,EAAO03B,WAAalT,GAAyBe,GACrE4lN,EAAWz8O,SAA+B,SAApBsR,EAAOu3B,SAAsB,oBAAsBv3B,EAAO8D,UAAY,4BAA8B,oBAAsB9D,EAAO8D,UAAY,4BAE/I,YAApB9D,EAAOu3B,WACP4zM,EAAW9kO,WAAamf,IAEJ,WAApBxlB,EAAOu3B,WACP4zM,EAAW9kO,WAAayf,IAEJ,WAApB9lB,EAAOu3B,WAEP4zM,EAAWz8O,SAAW,oBAAsBsR,EAAO8D,UAAY,aAE3C,WAApB9D,EAAOu3B,UAAyBv3B,EAAO03B,aACvCyzM,EAAW9kO,WAAasgB,IAG5Bn/B,EAAG0jP,YAAYnsP,KAAKosP,EAExB,IAGA3jP,EAAG0jP,YAAY55O,QAAQ,CAAE,MAAS,OAAQ,MAAS,OAAQ,SAAY,4GAA6G+U,YAAY,EAAOya,QAAS,IAAKn/B,EAAA8L,OAAA,SAC9MjG,EAAG0jP,aAAW,wBAAAvpP,EAAAtC,OAAA,GAAAoC,EAAA,MACxBnC,MAAA,KAAAC,UAAA,UAEc6rP,IAA4B,OAAAC,EAAA/rP,MAAC,KAADC,UAAA,UAAA8rP,IAsE1C,OAtE0CA,GAAArtP,OAAAC,UAA3C,SAAA6K,IAAA,OAAA7K,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAmEK,OAhEIuB,EAAWwuB,oBACZ7mB,EAAG4hE,gBAAgBliC,UAAW,EAE9B1/B,EAAG4hE,gBAAgB/iD,YAAa,GAGpC7e,EAAGmqC,eAAiB,IAAIljC,MAAM5N,KAAKmlB,WAAW,CAC1C+iC,SAAUliB,GACViiB,OAAQ3nD,QAAQk0B,OAAOgG,GAAoB,CACvC65B,MAAO,CACH/B,OAAQoX,EAAqB/iE,EAAGkiE,eAAe3qD,YAGvDiqC,cAAc,EACdxiB,iBAAiB,EACjB62B,eAAe,EACfp3C,UAAW,CACPvD,KAAM,WAAF,IAAAkmC,GAAA5qD,OAAAC,UAAE,SAAAoE,EAAgB8M,GAAO,IAAAtO,EAAAkQ,EAAArP,EAAA,OAAAzD,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OA8BoD,cA7BtEuB,EAAWwuB,kBACdxtB,EAAO,CAAC,EACZ2G,EAAGyX,gBAAkBhf,EAAcowC,uBAAuBlhC,GAE1D3H,EAAGyX,gBAAgBE,QAAQpgB,KAAK,CAC5B,UAAa,WACb,SAAY,SACZ,MAASyI,EAAG8jP,eAAe7uO,KAG/BjV,EAAGyX,gBAAgBE,QAAQpgB,KAAK,CAC5B,UAAa,YACb,SAAY,SACZ,MAASyI,EAAG+jP,gBAAgB9uO,KAGhC5b,EAAO2G,EAAGyX,gBAGNzX,EAAG6b,eAAexe,QAClBhE,EAAKse,QAAUte,EAAKse,QAAQnd,OAAOwF,EAAG6b,eAAexe,QAKrDhF,EAAWiE,KAAKY,OAAS,GACzBsyC,EAAe4B,kBAAkBpxC,GAGjCuJ,EAAS,CAAE,SAAY5B,EAAQtO,KAAKkoD,SAAU,KAAQ55C,EAAQtO,KAAKgG,MAAMvE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,GAGpDoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,qBAAAC,OAAoBwF,EAAGsX,SAAQ,YAAYje,EAAM,CAAEkQ,OAAQA,IAAS,QAAzGrP,EAAQY,EAAA9D,KACZqC,EAAOa,EAASb,KAAK05B,UAAUE,WAC/BtrB,EAAQ+W,QAAQxkB,EAASb,MACzB2G,EAAGwoD,YAAa,EAAK1tD,EAAAhE,KAAA,wBAAAgE,EAAAjE,KAAA,GAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBApCzB,OAyCH,SAzCGuG,GAAA,OAAAggD,EAAAtpD,MAAA,KAAAC,UAAA,EAAE,MA6CViI,EAAGsX,WAoJFjf,EAAWwuB,mBACZ3G,EAAqBuiB,oBAAoBziC,IAnJ5C2B,EAAAsE,OAAA,SAEMjG,EAAGmqC,gBAAc,wBAAAxoC,EAAA9J,OAAA,GAAAyJ,EAAA,KAC3BuiP,EAAA/rP,MAAA,KAAAC,UAAA,CAED,SAASgrE,EAAqBD,GAC1B,IAAInX,EAAS,CAAC,EAQd,OAPAmX,EAAgB7nE,SAAQ,SAAUud,GACN,SAApBA,EAAOu3B,UAA2C,SAApBv3B,EAAOu3B,UAA2C,aAApBv3B,EAAOu3B,SACnE4b,EAAOnzC,EAAO8D,WAAa,CAAE3c,KAAM,QAEnCgsD,EAAOnzC,EAAO8D,WAAa,CAAE3c,KAAM6Y,EAAOu3B,SAElD,IACO4b,CACX,CAAC,SAGcm/B,IAAW,OAAAC,EAAAjzF,MAAC,KAADC,UAAA,UAAAgzF,IAkBzB,OAlByBA,GAAAv0F,OAAAC,UAA1B,SAAAkM,IAAA,IAAAzI,EAAA,OAAAzD,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OAC8B,OAA1BkJ,EAAG67E,iBAAkB,EAAKj5E,EAAA9L,KAAA,EACL4oP,EAA6BuC,oBAAmB,OAQpE,IARG/nP,EAAQ0I,EAAA5L,MACHqC,KAAOlB,EAAQ,SAARA,CAAkB+B,EAASb,KAAM,CAAE0+E,SAAS,IAC5D79E,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGqjP,kBAAoBnpP,EAASb,KAChC2G,EAAG67E,iBAAkB,EAEjB77E,EAAGojP,qBACHpjP,EAAG+jP,gBAAkB/jP,EAAGqjP,kBAAkBtgP,MAAK,SAAAuM,GAAC,OAAIA,EAAE2F,KAAOjV,EAAGojP,mBAAmBrgP,MAAK,SAAAstC,GAAC,MAAoB,cAAhBA,EAAE/zB,SAAyB,IAAEjW,KAAK,MAG/HrG,EAAG+jP,gBAAiB,CAAFnhP,EAAA9L,KAAA,SACwB,OAA1CkJ,EAAGsX,SAAWtX,EAAG+jP,gBAAgBpqO,SAAS/W,EAAA9L,KAAA,GACpCktP,IAAwB,eAAAphP,EAAAqD,OAAA,SAG3BjG,EAAGqjP,mBAAiB,yBAAAzgP,EAAA/K,OAAA,GAAA8K,EAAA,MAC9B7K,MAAA,KAAAC,UAAA,UAEcksP,IAAU,OAAAC,EAAApsP,MAAC,KAADC,UAAA,UAAAmsP,IAcxB,OAdwBA,GAAA1tP,OAAAC,UAAzB,SAAA8uB,IAAA,IAAArrB,EAAA,OAAAzD,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,OAE8C,OAD1CkJ,EAAGmkP,gBAAiB,EACpBnkP,EAAGsX,SAAWtX,EAAG+jP,gBAAgBpqO,SAAS6L,EAAA1uB,KAAA,EAErB+rP,EAA8BuB,2BAA2BpkP,EAAG+jP,gBAAgB9uO,IAAG,OAOnG,OAPG/a,EAAQsrB,EAAAxuB,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,aAAa,GAC/D2G,EAAGsjP,iBAAmBppP,EAASb,KAC/B2G,EAAGmkP,gBAAiB,EAEhBnkP,EAAGojP,qBACHpjP,EAAG8jP,eAAiB9jP,EAAGsjP,iBAAiBvgP,MAAK,SAAAshP,GAAM,OAAIA,EAAOpvO,KAAOjV,EAAGojP,mBAAmBrgP,MAAK,SAAAstC,GAAC,MAAoB,aAAhBA,EAAE/zB,SAAwB,IAAEjW,KAAK,KACzImf,EAAAvf,OAAA,SAEMjG,EAAGsjP,kBAAgB,yBAAA99N,EAAA3tB,OAAA,GAAA0tB,EAAA,MAC7BztB,MAAA,KAAAC,UAAA,UAEcisP,IAAsB,OAAAM,EAAAxsP,MAAC,KAADC,UAAA,UAAAusP,IAoBpC,OApBoCA,GAAA9tP,OAAAC,UAArC,SAAAkvB,IAAA,OAAAlvB,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,UAAA8uB,EAAA/uB,KAAA,GAEYmJ,EAAG+jP,gBAAiB,CAAFn+N,EAAA9uB,KAAA,gBAAA8uB,EAAA9uB,KAAA,EACZmtP,IAAY,OAEM,GAAxB1qO,MAEIvZ,EAAGsjP,iBAAiBpmP,OAAS,GAAC,CAAA0oB,EAAA9uB,KAAA,SACJ,OAA1BkJ,EAAGukP,gBAAiB,EAAM3+N,EAAA9uB,KAAA,EACpBu8C,IAAmB,cAAAztB,EAAA9uB,KAAA,GACnBysP,EAAiBvjP,EAAGkiE,eAAe3qD,SAAQ,eAAAqO,EAAA9uB,KAAA,GAC3C8sP,IAA8B,eAAAh+N,EAAA9uB,KAAA,GAC9B8rD,IAAgB,QAAAh9B,EAAA9uB,KAAA,iBAEtBkJ,EAAGukP,gBAAiB,EAAK,QAAA3+N,EAAA9uB,KAAA,wBAAA8uB,EAAA/uB,KAAA,GAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAAAA,EAAA3f,OAAA,mCAAA2f,EAAA/tB,OAAA,GAAA8tB,EAAA,oBAMxC7tB,MAAA,KAAAC,UAAA,CAED,SAASwhB,SAEsBlX,IAAvBrC,EAAG+jP,sBAAuD1hP,IAAtBrC,EAAG8jP,iBAO3C9jP,EAAGoX,mBAHY,GAMX/e,EAAWiE,KAAKY,OAAS,GACzBsyC,EAAe4B,kBAAkBpxC,GAEzC,CA0BA,SAASk2E,IAEA79E,EAAWwuB,oBACZ7mB,EAAGkX,KAAKoC,WAAW4gB,QAAU,KAC7Bl6B,EAAGkX,KAAKoC,WAAW6gB,MAAQ,MAG/B5gB,IACAvZ,EAAG2hE,6BAA8B,EAG5BtpE,EAAWwuB,mBACZ7mB,EAAGkX,KAAK+iB,WAAW,CACfpb,WAAY,CACR0oB,KAAM,OAEV7H,UAAU,IAKlBlpB,EAA2BqjB,qBAAqBxhC,EAAWwuB,kBAAmB7mB,EAAGkX,MAAM,EAC3F,CAcA,SACem8B,IAAiB,OAAAC,EAAAx7C,MAAC,KAADC,UAAA,CAWhC,SAAAu7C,IADC,OACDA,GAAA98C,OAAAC,UAXA,SAAAwvB,IAAA,IAAA/rB,EAAA,OAAAzD,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,WACQkJ,EAAGsX,SAAU,CAAF4O,EAAApvB,KAAA,gBAAAovB,EAAApvB,KAAA,EACUs8C,EAAmBC,kBAAkBrzC,EAAGsX,UAAS,OAKsD,OALxHpd,EAAQgsB,EAAAlvB,KACZgJ,EAAGkiE,eAAiBhoE,EAASb,KAAK05B,UAAUE,WAC5CjzB,EAAGkiE,eAAe3qD,SApSI4qD,EAoS2BniE,EAAGkiE,eAAe3qD,SA/RvE4qD,GAHAA,GADAA,EAAkBhqE,EAAQ,UAARA,CAAmB6H,EAAGkiE,eAAe3qD,QAAS,YAC9B5b,QAAO,SAAA0mE,GAAC,OAAKA,EAAE/lD,UAAU+iC,SAAS,WAAW,KAG7C1jD,QAAO,SAAA6c,GAAM,MAAyB,aAArBA,EAAO8D,WAAiD,sBAArB9D,EAAO8D,SAAiC,KAE9GrhB,SAAQ,SAAUud,GACN,aAApBA,EAAOu3B,SACPv3B,EAAOu3B,SAAW,WACS,SAApBv3B,EAAOu3B,SACdv3B,EAAOu3B,SAAW,OACS,SAApBv3B,EAAOu3B,SACdv3B,EAAOu3B,SAAW,OACS,YAApBv3B,EAAOu3B,SACdv3B,EAAOu3B,SAAW,UACS,WAApBv3B,EAAOu3B,SACdv3B,EAAOu3B,SAAW,SACS,WAApBv3B,EAAOu3B,WACdv3B,EAAOu3B,SAAW,SAE1B,IAEOoyB,GA8QHniE,EAAGkiE,eAAe3qD,QAAUpf,EAAQ,UAARA,CAAmB6H,EAAGkiE,eAAe3qD,QAAS,eAC1EvX,EAAG6b,eAAe8vC,OAASnc,EAAeC,UAAUzvC,EAAGkiE,eAAe3qD,SACtEvX,EAAG6b,eAAe8vC,OAAO1wD,SAAQ,SAAA4d,GAAK,OAAIA,EAAMm3B,YAAc73C,EAAQ,iCAARA,CAA0C0gB,EAAMm3B,YAAY,IAAE9pB,EAAAjgB,OAAA,SACrHjG,EAAGkiE,gBAAc,yBAAAh8C,EAAAruB,OAxShC,IAA8BsqE,CAwSE,GAAAl8C,EAAA,MAE/BnuB,MAAA,KAAAC,UAAA,CAGmC,SAAAysP,IAenC,OAfmCA,GAAAhuP,OAAAC,UAApC,SAAAk/C,EAAqCitM,GAAQ,IAAA37L,EAAA,OAAAxwD,UAAA,SAAAm/C,GAAA,cAAAA,EAAA/+C,KAAA++C,EAAA9+C,MAAA,OAWvC,OATEmwD,EAAY54C,EAAUvU,KAAK,CAC3B0X,YAAa,gGACbC,WAAYgzO,GACZ9yO,aAAc,QACdC,SAAU,SACVyG,MAAOpgB,EACP4Z,QAAS,CACL+wO,SAAU,WAAF,OAAQA,CAAQ,KAE9BhtM,EAAA9+C,KAAA,EAEImwD,EAAU97C,OAAM,OACtBnL,EAAGmqC,eAAejvB,OAAO,wBAAA06B,EAAA/9C,OAAA,GAAA89C,EAAA,MAC5B79C,MAAA,KAAAC,UAAA,CAtXDE,EAAOiE,IAAI,sBAAsB,WACzB8D,EAAGkX,OACHlX,EAAGg2E,WAAY,EACfpzB,IAER,IAEA5iD,EAAGvH,cAAgBA,EAEnBuH,EAAG4iD,eAAiBA,EACpB5iD,EAAGuZ,sBAAwBA,EAC3BvZ,EAAGgkP,uBAAyBA,EAC5BhkP,EAAG0oD,WAgSH,WACI1oD,EAAGmqC,eAAejvB,MACtB,EAjSAlb,EAAG2oD,eAmSH,WACI3oD,EAAGmqC,eAAexuC,OAAO,CAAC,EAC9B,EApSAqE,EAAGsoD,cA+QH,SAAuBre,GACnB,IAAMjQ,EAAiBh6B,EAAGkX,KAAKC,aAE/B,GAAI8yB,GAAkBA,EAAetyB,SAAWsyB,EAAetyB,QAAQza,OAAS,EAAG,CAC/E88B,EAAe1gB,WAAW3d,OAASlD,EAAcsxC,sBAAsBuF,EAAGrF,EAAetyB,SACzF,IACI3X,EAAGkX,KAAKoC,WAAW4gB,QAAUF,EAAe1gB,WAAW3d,OACvDqE,EAAGkX,KAAKoC,WAAW4B,MACvB,CACA,MAAO2Z,GACH70B,EAAGmqC,eAAexuC,OAAO,CAAC,EAC9B,CACJ,CACJ,EA3RAqE,EAAGqwD,aA8TH,SAAsBtmD,GAClBmW,EAAqB4hB,0BAA0B9hC,EAAI+J,EACvD,EA/TA/J,EAAGk2E,+BAAiCA,EACpCl2E,EAAG0kP,sBAmVF,SAGmCvjP,GAAA,OAAAqjP,EAAA1sP,MAAC,KAADC,UAAA,EAnVpCiI,EAAG6b,eAAiB,CAAC,EACrB7b,EAAG6b,eAAexe,MAAQ,GAC1B,WAEuB1E,EAAAb,MAAC,KAADC,UAAA,CAgBvBoE,EA+UJ,CD/XuE9F,GAAAgxB,QAAA,2FCEoBhxB,GAAAgxB,QAAA,qPCa3F,SANgD,CAC5C5V,WAAYkzO,GACZhzO,aAAc,OACdH,YAAa,gFCZY,SAAAnb,GAAU6B,EAAO8I,GAC1C,IAAM+yB,EAAU,CACZ6wN,WAaJ,SAEyBt/O,GAAA,OAAAu/O,EAAA/sP,MAAC,KAADC,UAAA,EAdrBkqP,kBAqBH,WAE+B,OAAA6C,EAAAhtP,MAAC,KAADC,UAAA,EAtB5ByoP,cA6BH,SAE2Br/O,EAAAC,GAAA,OAAA2jP,EAAAjtP,MAAC,KAADC,UAAA,EA9BxBkoP,wBAqCH,SAEqC10O,EAAAqoC,EAAAmB,GAAA,OAAAiwM,EAAAltP,MAAC,KAADC,UAAA,EAtClCkpP,gBA6CH,SAI6BjsM,EAAAK,GAAA,OAAA4vM,EAAAntP,MAAC,KAADC,UAAA,EAhD1BmpP,uBAuDH,SAEoC/pM,EAAAG,GAAA,OAAA4tM,EAAAptP,MAAC,KAADC,UAAA,EAxDjCwqP,gBA+DH,SAI6BhrM,GAAA,OAAA4tM,EAAArtP,MAAC,KAADC,UAAA,EAlE1BwpP,oBAyEH,WAIiC,OAAA6D,EAAAttP,MAAC,KAADC,UAAA,EA5E9B6pP,sBAmFH,SAEmCpqM,EAAAG,GAAA,OAAA0tM,EAAAvtP,MAAC,KAADC,UAAA,GAlFpC,OAAOg8B,EAIkB,SAAA8wN,IAOxB,OAPwBA,GAAAruP,OAAAC,UAAzB,SAAAC,EAA0Bu1F,GAAS,OAAAx1F,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEdoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,0CAAAC,OAAyCyxF,IAAY,cAAAr1F,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAErFk9C,EAASl9C,EAAA6C,IACTg8C,EAAS7+C,EAAA6C,IAAM,QACjB,yBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBACLoB,MAAA,KAAAC,UAAA,CAE+B,SAAA+sP,IAO/B,OAP+BA,GAAAtuP,OAAAC,UAAhC,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,0CAAwC,cAAAjB,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAExEw6C,EAASx6C,EAAAG,IACTg8C,EAASn8C,EAAAG,IAAM,QACjB,yBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBACLrB,MAAA,KAAAC,UAAA,CAE2B,SAAAgtP,IAO3B,OAP2BA,GAAAvuP,OAAAC,UAA5B,SAAAwD,EAA6BgyF,EAAW31E,GAAO,OAAA7f,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAE1BoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,0CAAAC,OAAyCyxF,GAAa31E,GAAQ,cAAAnc,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAE9F25C,EAAS35C,EAAAV,IACTg8C,EAASt7C,EAAAV,IAAM,QACjB,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBACLnC,MAAA,KAAAC,UAAA,CAWD,SAAAitP,IAFC,OAEDA,GAAAxuP,OAAAC,UATA,SAAAoE,EAAuCoxF,EAAWq5J,EAAahvO,GAAO,OAAA7f,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEjDoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,0CAAAC,OAAyCyxF,EAAS,gBAAAzxF,OAAe8qP,GAAehvO,GAAQ,cAAAxb,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAExHg5C,EAASh5C,EAAArB,IACTg8C,EAAS36C,EAAArB,IAAM,QACjB,yBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBACL/C,MAAA,KAAAC,UAAA,CAI6B,SAAAktP,IAO7B,OAP6BA,GAAAzuP,OAAAC,UAA9B,SAAA6K,EAA+B2qF,EAAW31E,GAAO,OAAA7f,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAE5BoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,0CAAAC,OAAyCyxF,EAAS,aAAa31E,GAAQ,cAAA3U,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEvGmyC,EAASnyC,EAAAlI,IACTg8C,EAAS9zC,EAAAlI,IAAM,QACjB,yBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBACLxJ,MAAA,KAAAC,UAAA,CAWD,SAAAmtP,IAFC,OAEDA,GAAA1uP,OAAAC,UATA,SAAAkM,EAAsCspF,EAAW31E,GAAO,OAAA7f,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEnCoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,0CAAAC,OAAyCyxF,EAAS,qBAAqB31E,GAAQ,cAAA1T,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAE/GkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,QACjB,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBACL7K,MAAA,KAAAC,UAAA,CAaD,SAAAotP,IAFC,OAEDA,GAAA3uP,OAAAC,UATA,SAAA8uB,EAA+B0mE,GAAS,OAAAx1F,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAEnBoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,0CAAAC,OAAyCyxF,EAAS,SAAO,cAAAzmE,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAEzFsuB,EAAStuB,EAAA/rB,IACTg8C,EAASjwB,EAAA/rB,IAAM,QACjB,yBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBACLztB,MAAA,KAAAC,UAAA,CAIiC,SAAAqtP,IAOjC,OAPiCA,GAAA5uP,OAAAC,UAAlC,SAAAkvB,IAAA,OAAAlvB,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,yDAAuD,cAAAqrB,EAAA3f,OAAA,SAAA2f,EAAA5uB,MAAA,OAAA4uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAEvFkuB,EAASluB,EAAAnsB,IACTg8C,IAAY,QACd,yBAAA7vB,EAAA/tB,OAAA,GAAA8tB,EAAA,mBACL7tB,MAAA,KAAAC,UAAA,CAWD,SAAAstP,IAFC,OAEDA,GAAA7uP,OAAAC,UATA,SAAAwvB,EAAqCs/N,EAAiBjvO,GAAO,OAAA7f,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,cAAAovB,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAExCoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,yDAAAC,OAAwD+qP,GAAmBjvO,GAAQ,cAAA4P,EAAAjgB,OAAA,SAAAigB,EAAAlvB,MAAA,OAAAkvB,EAAArvB,KAAA,EAAAqvB,EAAAzsB,GAAAysB,EAAA,SAEnH4tB,EAAS5tB,EAAAzsB,IACTg8C,EAASvvB,EAAAzsB,IAAM,QACjB,yBAAAysB,EAAAruB,OAAA,GAAAouB,EAAA,mBACLnuB,MAAA,KAAAC,UAAA,CAID,SAAS09C,EAAU5gB,GACf,MAAMA,CACV,CAEA,SAASif,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CACJ,CCjH6B,SAAAx+B,GAAU6B,EAAO8I,GAC1C,IAAM+yB,EAAU,CACZqwN,2BAKW,SAE0B9+O,GAAA,OAAAkgP,EAAA1tP,MAAC,KAADC,UAAA,EANrCylF,YAaH,WAEyB,OAAAwQ,EAAAl2F,MAAC,KAADC,UAAA,EAdtBmrP,eAqBH,SAE4B/hP,EAAAC,GAAA,OAAAqkP,EAAA3tP,MAAC,KAADC,UAAA,GApB7B,OAAOg8B,EAEkC,SAAAyxN,IAOxC,OAPwCA,GAAAhvP,OAAAC,UAAzC,SAAAC,EAA0Cu1F,GAAS,OAAAx1F,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAE9BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,0CAAAC,OAAyCyxF,EAAS,aAAW,cAAAr1F,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE7Fk9C,EAASl9C,EAAA6C,IACTg8C,EAAS7+C,EAAA6C,IAAM,QACjB,yBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBACLoB,MAAA,KAAAC,UAAA,CAEyB,SAAAi2F,IAOzB,OAPyBA,GAAAx3F,OAAAC,UAA1B,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,0CAAwC,cAAAjB,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAExEw6C,EAASx6C,EAAAG,IACTg8C,EAASn8C,EAAAG,IAAM,yBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAWD,SAAA0tP,IAFC,OAEDA,GAAAjvP,OAAAC,UATA,SAAAwD,EAA8ByrP,EAAYpvO,GAAO,OAAA7f,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAE5BoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,2CAAAC,OAA0CkrP,GAAcpvO,GAAQ,cAAAnc,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEhG25C,EAAS35C,EAAAV,IACTg8C,EAASt7C,EAAAV,IAAM,QACjB,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBACLnC,MAAA,KAAAC,UAAA,CAID,SAAS09C,EAAU5gB,GACf,MAAMA,CACV,CAEA,SAASif,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CACJ,C,kFCzCA,SAAel7B,WACH,sCAAuC,IAC9C83B,QAAQ,+BAAgCk0N,IACxCl0N,QAAQ,gCAAiCm0N,IACrC,KCHT,GAAejsP,WACH,4BAA6B,CAACksP,KACrCnrO,UAAU,oBAAqBorO,IAC/BprO,UAAU,0CAA2CqrO,IACjD,K,+NCPoB,SAAA1vP,GAAUsV,EAAmBu0H,EAAgB3kC,EAAU9iG,EAAeonI,GAC/F,IAAM7/H,EAAKwH,KAesB,SAAAw+O,IAUhC,OAVgCA,GAAAxvP,OAAAC,UAAjC,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACIkJ,EAAG8lG,YAAc,QACjB9lG,EAAGwgG,YAAc,IAAI1+F,EACjB9B,EAAGkgI,eAAejrH,GAClBgxO,IACO1qJ,EACP2qJ,IAEA3rJ,IACH,wBAAA3jG,EAAAiB,OAAA,GAAAnB,EAAA,MACJoB,MAAA,KAAAC,UAAA,UAEcwiG,IAAW,OAAAD,EAAAxiG,MAAC,KAADC,UAAA,UAAAuiG,IASzB,OATyBA,GAAA9jG,OAAAC,UAA1B,SAAA0C,IAAA,IAAAE,EAAAa,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACkF,OAA1EuC,EAAO,CAAEQ,KAAMmG,EAAGkgI,eAAermI,KAAM42G,OAAQzwG,EAAGkgI,eAAe13H,KAAKyM,IAAI3b,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAErD+oI,EAA2BtlC,YAAYlhG,GAAK,OAArD,OAARa,EAAQZ,EAAAtC,KAAAsC,EAAAxC,KAAG,EACT2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,OACxDtyF,EAAMhU,EAASb,MAAMC,EAAAxC,KAAA,iBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAG,GAAAH,EAAA,SAErB0G,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAAvH,EAAAzB,OAAA,GAAAsB,EAAA,oBAE3CrB,MAAA,KAAAC,UAAA,UAEckuP,IAAS,OAAAE,EAAAruP,MAAC,KAADC,UAAA,UAAAouP,IAUvB,OAVuBA,GAAA3vP,OAAAC,UAAxB,SAAAwD,IAAA,IAAAZ,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAEmB,cADXuC,EAAO,CAAEQ,KAAMmG,EAAGkgI,eAAermI,KAAMusP,QAASpmP,EAAGkgI,eAAejrH,KAC1DA,GAAG9a,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEL+oI,EAA2BjpF,YAAYv9C,GAAK,cAAAc,EAAArD,KAAA,EAC5C2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,OACxDtyF,IAAQ/T,EAAArD,KAAA,iBAAAqD,EAAAtD,KAAA,GAAAsD,EAAAV,GAAAU,EAAA,SAER6F,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAA1G,EAAAtC,OAAA,GAAAoC,EAAA,oBAE3CnC,MAAA,KAAAC,UAAA,UAEcmuP,IAAqB,OAAAG,EAAAvuP,MAAC,KAADC,UAAA,UAAAsuP,IAYnC,OAZmCA,GAAA7vP,OAAAC,UAApC,SAAAoE,IAAA,IAAAuzB,EAAA,OAAA33B,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAG8D,OAF1DkJ,EAAG8lG,YAAc,kBACb13E,EAAK,IAAIxsB,UACVG,OAAO/B,EAAGuB,MAAMA,MAAM,GAAGS,KAAMhC,EAAGuB,MAAMA,MAAM,GAAGG,MAAM5G,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGhD+oI,EAA2BqmH,sBAAsB93N,GAAG,cAAAtzB,EAAAhE,KAAA,EACpD2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,OACxDtyF,IAAQpT,EAAAhE,KAAA,iBAAAgE,EAAAjE,KAAA,GAAAiE,EAAArB,GAAAqB,EAAA,SAERkF,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAA/F,EAAAjD,OAAA,GAAAgD,EAAA,oBAE3C/C,MAAA,KAAAC,UAAA,CACoC,SAAAuuP,IAMpC,OANoCA,GAAA9vP,OAAAC,UAArC,SAAA6K,IAAA,IAAApH,EAAA,OAAAzD,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA7K,KAAA,EACyB+oI,EAA2B0mH,yBAAwB,OAApErsP,EAAQyH,EAAA3K,KACZgJ,EAAGm+I,gBAAkBjkJ,EAASb,KACI,IAA9B2G,EAAGm+I,gBAAgBjhJ,SACnB8C,EAAGkgI,eAAe13H,KAAOxI,EAAGm+I,gBAAgB,GAAGtkJ,MAClD,wBAAA8H,EAAA9J,OAAA,GAAAyJ,EAAA,MACJxJ,MAAA,KAAAC,UAAA,CAED,SAASmW,EAAMuhH,GACX9jH,EAAkBuC,MAAMuhH,EAC5B,CAvEAzvH,EAAGu7F,SAAWA,EAEdv7F,EAAGwmP,mBASF,WAEgC,OAAAR,EAAAluP,MAAC,KAADC,UAAA,EAVjCiI,EAAGwC,OAsEH,WACImJ,EAAkBxH,SACtB,EAtEAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GAuDxB,WACoComH,EAAAxuP,MAAC,KAADC,UAAA,CAnDjCwuP,EAkER,CC7E6B,SAAAlwP,GAAUwpI,EAA4BpnI,EAAe4V,EAAWlW,EAASqrC,GAElG,IAAMxjC,EAAKwH,KAwBY,SAAA7O,IAEtB,OAFsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACIipI,IAAqB,wBAAAnpI,EAAAiB,OAAA,GAAAnB,EAAA,MACxBoB,MAAA,KAAAC,UAAA,UAEcgoI,IAAkB,OAAAE,EAAAnoI,MAAC,KAADC,UAAA,UAAAkoI,IAMhC,OANgCA,GAAAzpI,OAAAC,UAAjC,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACqC,OAAjCkJ,EAAGymP,wBAAyB,EAAKntP,EAAAxC,KAAA,EACZ+oI,EAA2BE,qBAAoB,QAAhE7lI,EAAQZ,EAAAtC,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAG0mP,gBAAkBxsP,EAASb,KAC9B2G,EAAGymP,wBAAyB,EAAM,wBAAAntP,EAAAzB,OAAA,GAAAsB,EAAA,MACrCrB,MAAA,KAAAC,UAAA,CAED,SAAS4uP,EAA6BzmH,GAClClgI,EAAG+nI,uBAAyB7H,EAC5BlgI,EAAG4mP,gCAAgC,CAAE1mH,kBACzC,CAEsC,SAAA2mH,IAsBrC,OAtBqCA,GAAArwP,OAAAC,UAAtC,SAAAwD,EAAuCimI,EAAgB3kC,GAAQ,IAAAurJ,EAAAC,EAAA,OAAAtwP,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAUzD,OATEgwP,EAAsBz4O,EAAUvU,KAAK,CACrC0X,YAAa,oFACbC,WAAYu1O,GACZr1O,aAAc,QACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQA,GAAkB,IAAI,EAC5C3kC,SAAU,WAAF,OAAQA,GAAY,IAAI,KAEtCphG,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGkCgwP,EAAoB37O,OAAM,OAAnC,GAAnB47O,EAAmB5sP,EAAAnD,KAClBukG,EAAU,CAAFphG,EAAArD,KAAA,eAAAqD,EAAArD,KAAA,EACHipI,IAAoB,OAE1BgnH,GAEAJ,EAA6B3mP,EAAG0mP,gBAAgB3jP,MAAK,SAAAk/B,GAAK,OAAIA,EAAMhtB,KAAO8xO,CAAmB,KACjG5sP,EAAArD,KAAA,wBAAAqD,EAAAtD,KAAA,GAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,oBAERnC,MAAA,KAAAC,UAAA,CAEkC,SAAAkvP,IAWlC,OAXkCA,GAAAzwP,OAAAC,UAAnC,SAAAoE,EAAoCqlI,GAAc,OAAAzpI,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEpC+G,IAAKpF,EAAc4pC,iBAAiB,yBAAD,mDAAA7nC,OAA8E0lI,EAAermI,KAAI,WAAY,OAAM,cAAAiB,EAAAhE,KAAA,EACtJ+oI,EAA2B7kC,YAAYklC,EAAejrH,IAAG,OAC/D8qH,IACI//H,EAAG+nI,uBAAuB9yH,KAAOirH,EAAejrH,IAChD0xO,EAA6B,MAChC7rP,EAAAhE,KAAA,uBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAIR/C,MAAA,KAAAC,UAAA,CAEmC,SAAAmvP,IASnC,OATmCA,GAAA1wP,OAAAC,UAApC,SAAA6K,IAAA,IAAApH,EAAA,OAAAzD,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OACiD,OAA7CkJ,EAAGq8F,oBAAsB,IAAIv6F,EAAgBH,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAElB+oI,EAA2BsnH,wBAAuB,OAA3D,OAARjtP,EAAQyH,EAAA3K,KAAA2K,EAAA7K,KAAG,EACX2B,EAAc8J,qBAAqBvC,EAAGq8F,qBAAoB,OAChE74D,EAAUC,OAAOvpC,EAASb,KAAM,wBAAwBsI,EAAA7K,KAAA,iBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAlI,GAAAkI,EAAA,SAExD3B,EAAGq8F,oBAAoBx7F,cAAe,EAAM,yBAAAc,EAAA9J,OAAA,GAAAyJ,EAAA,oBAEnDxJ,MAAA,KAAAC,UAAA,CArFDiI,EAAG2mP,6BAA+BA,EAClC3mP,EAAGonP,qBA4DF,SAEkChmP,GAAA,OAAA6lP,EAAAnvP,MAAC,KAADC,UAAA,EA7DnCiI,EAAGqnP,wBAmCF,SAEqC/hP,EAAAnE,GAAA,OAAA0lP,EAAA/uP,MAAC,KAADC,UAAA,EApCtCiI,EAAGmnP,sBAuEF,WAEmC,OAAAD,EAAApvP,MAAC,KAADC,UAAA,EAvEpCiI,EAAG2rB,YAAc,CACb,CACI1nB,KAAM,OACN2nB,MAAO,SAAAlhB,GACH1K,EAAGqnP,wBAAwB38O,EAAKw1H,gBAAgB,EACpD,GAEJ,CACIj8H,KAAM,0CACN2nB,MAAO,SAAAlhB,GACH1K,EAAGonP,qBAAqB18O,EAAKw1H,eACjC,IAIRlgI,EAAGonB,QAAmB,WAEC,OAAAzuB,EAAAb,MAAC,KAADC,UAAA,CAgE3B,CD9FoE1B,GAAAgxB,QAAA,+FCEShxB,GAAAgxB,QAAA,iFCgB7E,SAT4B,CACxBm5B,SAAU,CACNomM,gCAAiC,KAErCn1O,WAAY61O,GACZ31O,aAAc,QACdH,YAAa,qFCfY,SAAAnb,GAAU6B,EAAO8I,GAC1C,IAAMywB,EAAU,CACZsuG,mBAWW,WAEkB,OAAAE,EAAAnoI,MAAC,KAADC,UAAA,EAZ7BwuP,uBAkBH,WAEoC,OAAAD,EAAAxuP,MAAC,KAADC,UAAA,EAnBjCovP,sBAyBH,WAEmC,OAAAD,EAAApvP,MAAC,KAADC,UAAA,EA1BhCwiG,YAgCH,SAEyBj1F,GAAA,OAAAg1F,EAAAxiG,MAAC,KAADC,UAAA,EAjCtBwvP,sBAwCH,SAEmCpmP,EAAAC,EAAAmK,GAAA,OAAAi8O,EAAA1vP,MAAC,KAADC,UAAA,EAzChC0vP,uBAgDH,SAEoC7zM,EAAAmB,EAAAC,EAAAK,GAAA,OAAAqyM,EAAA5vP,MAAC,KAADC,UAAA,EAjDjC6+C,YAwDH,SAEyBO,GAAA,OAAAN,EAAA/+C,MAAC,KAADC,UAAA,EAzDtBmuP,sBAgEH,SAEmC5uM,GAAA,OAAA+uM,EAAAvuP,MAAC,KAADC,UAAA,EAjEhCijG,YA2EH,SAGyBzjD,GAAA,OAAAwjD,EAAAjjG,MAAC,KAADC,UAAA,GA3E1B,OAAO05B,EAE0B,SAAAwuG,IAMhC,OANgCA,GAAAzpI,OAAAC,UAAjC,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAgC,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAEhEk9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAEoC,SAAAuuP,IAMpC,OANoCA,GAAA9vP,OAAAC,UAArC,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,wCAAsC,cAAAjB,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAEtEw6C,EAASx6C,EAAAG,IAAM,wBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAEmC,SAAAmvP,IAMnC,OANmCA,GAAA1wP,OAAAC,UAApC,SAAAwD,IAAA,OAAAxD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,wCAAwC,CAAEo7B,aAAc,SAAS,cAAAx7B,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEjG25C,EAAS35C,EAAAV,IAAM,wBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAEyB,SAAAuiG,IAOzB,OAPyBA,GAAA9jG,OAAAC,UAA1B,SAAAoE,EAA2BxB,GAAI,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEVoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,iCAAiClB,GAAK,cAAAyB,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAEvEg5C,EAASh5C,EAAArB,IACTg8C,EAAS36C,EAAArB,IAAM,yBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAEmC,SAAAyvP,IAOnC,OAPmCA,GAAAhxP,OAAAC,UAApC,SAAA6K,EAAqC4+H,EAAgBynH,EAAYtuP,GAAI,OAAA5C,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEhDoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,kCAAAC,OAAiC0lI,EAAejrH,GAAE,UAAAza,OAAS0lI,EAAe5gE,UAAS,YAAA9kE,OAAWmtP,EAAW1yO,GAAE,aAAa5b,GAAK,cAAAsI,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAE7JmyC,EAASnyC,EAAAlI,IACTg8C,EAAS9zC,EAAAlI,IAAM,yBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAEoC,SAAA2vP,IAOpC,OAPoCA,GAAAlxP,OAAAC,UAArC,SAAAkM,EAAsCg2C,EAASh5C,EAAMs5C,EAAQ5/C,GAAI,OAAA5C,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAE5CoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,UAAAn+C,OAASmF,EAAI,WAAAnF,OAAUy+C,EAAM,cAAc5/C,GAAK,cAAAuJ,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAExHkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAEyB,SAAA8+C,IAOzB,OAPyBA,GAAArgD,OAAAC,UAA1B,SAAA8uB,EAA2BlsB,GAAI,OAAA5C,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAEVoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,kCAAAC,OAAiCnB,EAAK+sP,SAAW/sP,GAAK,cAAAmsB,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAEtFsuB,EAAStuB,EAAA/rB,IACTg8C,EAASjwB,EAAA/rB,IAAM,yBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAEtBztB,MAAA,KAAAC,UAAA,CAEmC,SAAAsuP,IAUnC,OAVmCA,GAAA7vP,OAAAC,UAApC,SAAAkvB,EAAqCtsB,GAAI,OAAA5C,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAEpBoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,wCAAwClB,EAAM,CAC1E6I,iBAAkBvI,QAAQwI,SAC1BC,QAAS,CAAE,oBAAgBC,KAC7B,cAAAujB,EAAA3f,OAAA,SAAA2f,EAAA5uB,MAAA,OAAA4uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAEFkuB,EAASluB,EAAAnsB,IACTg8C,EAAS7vB,EAAAnsB,IAAM,yBAAAmsB,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAEtB7tB,MAAA,KAAAC,UAAA,CAGyB,SAAAgjG,IAOzB,OAPyBA,GAAAvkG,OAAAC,UAA1B,SAAAwvB,EAA2B0yB,GAAO,OAAAliD,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,cAAAovB,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAEboB,EAAK,OAAQ,GAADsC,OAAID,OAAM,kCAAAC,OAAiCm+C,IAAU,cAAAzyB,EAAAjgB,OAAA,SAAAigB,EAAAlvB,MAAA,OAAAkvB,EAAArvB,KAAA,EAAAqvB,EAAAzsB,GAAAysB,EAAA,SAE9E4tB,EAAS5tB,EAAAzsB,IACTg8C,EAASvvB,EAAAzsB,IAAM,yBAAAysB,EAAAruB,OAAA,GAAAouB,EAAA,mBAEtBnuB,MAAA,KAAAC,UAAA,CAED,SAAS+7C,EAAU5J,GACflpC,EAAiB,MAAOkpC,EAC5B,CAEA,SAASuL,EAAUvL,GACf,MAAMA,CACV,CAEJ,CCzG6B,SAAA7zC,GAAU6B,EAAO8I,GAC1C,IAAMywB,EAAU,CACZm2N,eASW,SAEctiP,EAAAnE,GAAA,OAAA0mP,EAAA/vP,MAAC,KAADC,UAAA,EAVzB+vP,aAgBH,WAE0B,OAAAC,EAAAjwP,MAAC,KAADC,UAAA,EAjBvBiwP,mBAuBH,SAEgC5mP,EAAAmK,GAAA,OAAA08O,EAAAnwP,MAAC,KAADC,UAAA,EAxB7BmwP,0BA8BH,SAEuCt0M,EAAAmB,EAAAC,GAAA,OAAAmzM,EAAArwP,MAAC,KAADC,UAAA,EA/BpC4nE,mBAqCH,SAEgCtqB,EAAA8B,GAAA,OAAAixM,EAAAtwP,MAAC,KAADC,UAAA,EAtC7BswP,gBA4CH,SAE6B/wM,EAAAC,EAAAC,GAAA,OAAA8wM,EAAAxwP,MAAC,KAADC,UAAA,EA7C1BwwP,8BAoDH,SAE2C5wM,EAAAG,EAAAC,GAAA,OAAAywM,EAAA1wP,MAAC,KAADC,UAAA,GAnD5C,OAAO05B,EAEsB,SAAAo2N,IAM5B,OAN4BA,GAAArxP,OAAAC,UAA7B,SAAAC,EAA8BiiD,EAASh5C,GAAI,OAAAlJ,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEtBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,UAAAn+C,OAASmF,EAAI,YAAU,cAAA/I,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE/Fk9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAE0B,SAAAgwP,IAM1B,OAN0BA,GAAAvxP,OAAAC,UAA3B,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,4CAA0C,cAAAjB,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAE1Ew6C,EAASx6C,EAAAG,IAAM,wBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAEgC,SAAAkwP,IAMhC,OANgCA,GAAAzxP,OAAAC,UAAjC,SAAAwD,EAAkC0+C,EAASh5C,GAAI,OAAAlJ,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAE1BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,UAAAn+C,OAASmF,EAAI,qBAAmB,cAAAxF,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAExG25C,EAAS35C,EAAAV,IAAM,wBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAEuC,SAAAowP,IAMvC,OANuCA,GAAA3xP,OAAAC,UAAxC,SAAAoE,EAAyC89C,EAAS8vM,EAAa9oP,GAAI,OAAAlJ,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAE9CoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,UAAAn+C,OAASmF,EAAI,WAAAnF,OAAUiuP,EAAW,qBAAmB,cAAA3tP,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAE7Hg5C,EAASh5C,EAAArB,IAAM,wBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAEgC,SAAAqwP,IAMhC,OANgCA,GAAA5xP,OAAAC,UAAjC,SAAA6K,EAAkC4+H,EAAgBwoH,GAAS,OAAAjyP,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEtCoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiC0lI,EAAejrH,GAAE,UAAAza,OAAS0lI,EAAe5gE,UAAS,WAAA9kE,OAAUkuP,EAAUzzO,GAAE,YAAU,cAAAtT,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEnJmyC,EAASnyC,EAAAlI,IAAM,wBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAE6B,SAAAuwP,IAO7B,OAP6BA,GAAA9xP,OAAAC,UAA9B,SAAAkM,EAA+Bg2C,EAASh5C,EAAMtG,GAAI,OAAA5C,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAE7BoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,UAAAn+C,OAASmF,EAAI,UAAUtG,GAAK,cAAAuJ,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAErGkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAE2C,SAAAywP,IAO3C,OAP2CA,GAAAhyP,OAAAC,UAA5C,SAAA8uB,EAA6CozB,EAASh5C,EAAMsoB,GAAO,OAAAxxB,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAE9CoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,UAAAn+C,OAASmF,EAAI,YAAAnF,OAAWytB,IAAU,cAAAzC,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAE7GsuB,EAAStuB,EAAA/rB,IACTg8C,EAASjwB,EAAA/rB,IAAM,yBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAEtBztB,MAAA,KAAAC,UAAA,CAED,SAAS+7C,EAAU5J,GACflpC,EAAiB,MAAOkpC,EAC5B,CAEA,SAASuL,EAAUvL,GACf,MAAMA,CACV,CAEJ,C,+NC5E6B,SAAA7zC,GAAUsV,EAAmBxT,EAAS+nI,EAAgByoH,EAAgBlwP,EAAeqmE,EAAgCD,GAC9I,IAAM7+D,EAAKwH,KAWY,SAAA7O,IAMtB,OANsBA,GAAAnC,OAAAC,UAAvB,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAEwB,OADpBkJ,EAAG0hL,iBAAmB,OACtBknE,IAAoBtvP,EAAAxC,KAAA,EACd+xP,IAAW,OACjB7oP,EAAG8oP,kBAAoB,OACvBC,IAA2B,wBAAAzvP,EAAAzB,OAAA,GAAAsB,EAAA,MAC9BrB,MAAA,KAAAC,UAAA,UAEc8wP,IAAS,OAAAG,EAAAlxP,MAAC,KAADC,UAAA,UAAAixP,IAOvB,OAPuBA,GAAAxyP,OAAAC,UAAxB,SAAAwD,IAAA,IAAAC,EAAA,OAAAzD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OACsC,OAAlCkJ,EAAGipP,yBAA0B,EAAK9uP,EAAArD,KAAA,EACbgoE,EAA+BkpL,mBAAmB9nH,EAAejrH,GAAIirH,EAAe5gE,WAAU,QAA/GplE,EAAQC,EAAAnD,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClDa,EAASb,KAAOa,EAASb,KAAKsC,QAAO,SAAAutP,GAAW,OAAKP,EAAetsO,MAAK,SAAA8sO,GAAK,OAAIA,EAAMl0O,KAAOi0O,EAAYj0O,EAAE,GAAC,IAC9GjV,EAAGopP,0BAA4BlvP,EAASb,KACxC2G,EAAGipP,yBAA0B,EAAM,wBAAA9uP,EAAAtC,OAAA,GAAAoC,EAAA,MACtCnC,MAAA,KAAAC,UAAA,CAED,SAAS6wP,IAmBS,IAAFxnM,EAlBZphD,EAAGqpP,qBAAuB,CACtB1tP,OAAQ,WACRomD,WAAW,EACXtiB,QAAS,CACL0iB,WAAY,GACZC,WAAY,WACZC,YAAa,SAAU16C,GACnBA,EAAQ+W,QAAQjmB,EAAcmuC,yBAAyBj/B,EAAS3H,EAAGspP,gBAAiB,cACxF,GAEJzqP,OAAQ,KAIZmB,EAAGupP,uBAAyB,IAAItiP,MAAM5N,KAAKmlB,WAAW,CAElD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAOiR,GAAO,IAAAw3D,EAAA9lE,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACK+nE,EAA+B2qL,YAAYtpH,GAAe,OAAA/gE,EAAAvoE,EAAAI,KAC/EqC,GADMA,EAAI8lE,EAAJ9lE,MACMsC,QAAO,SAAAw7B,GAAI,OAAIA,EAAK3uB,OAASxI,EAAG0hL,gBAAgB,IAC5DroL,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,QAChC2G,EAAGypP,cAAcxvN,WAAW,CAAE+nB,YAAa,aAAFxnD,OAAerC,EAAQ,iCAARA,CAA0C6H,EAAG0hL,kBAAiB,UACtH1hL,EAAGspP,gBAAkBjwP,EACrBsO,EAAQ+W,QAAQrlB,GAAM,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,KACzB,SAPG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KAUhB,CAE4B,SAAA2xP,IAqB3B,OArB2BA,GAAAlzP,OAAAC,UAA5B,SAAAoE,IAAA,IAAA8uP,EAAA3qL,EAAA3lE,EAAAa,EAAA,OAAAzD,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAWK,OAVDkJ,EAAGwgG,YAAc,IAAI1+F,GAEjBk9D,EAAS,IAENznE,KAAKyI,EAAG4pP,eAEXvwP,EAAO,CACP+sP,QAASlmH,EAAejrH,GACxB40O,OAAQ7qL,EACRonD,MAAOpmH,EAAG6lD,eACb/qD,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGwBgoE,EAA+BupL,gBAAgBnoH,EAAejrH,GAAIirH,EAAe5gE,UAAWjmE,GAAK,OAC3F,OADvBa,EAAQY,EAAA9D,KACZ2yP,EAAazvP,EAASb,KAAKyB,EAAAhE,KAAA,GACrB2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,QAkBjDv4E,EAjBD0hO,EAkBVh+O,EAAkBuC,MAAM+Z,GAlBFntB,EAAAhE,KAAA,iBAAAgE,EAAAjE,KAAA,GAAAiE,EAAArB,GAAAqB,EAAA,SAElBkF,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAA/F,EAAAjD,OAe5C,IAAeowB,CAf6B,GAAAptB,EAAA,oBAE3C/C,MAAA,KAAAC,UAAA,CAQD,SAASgxP,IACL/oP,EAAG4pP,cAAgB,KACnB5pP,EAAG8pP,yBAA2B9pP,EAAGopP,0BAA0BztP,QAAO,SAAAwtP,GAAK,OAAIA,EAAMntN,WAAah8B,EAAG8oP,iBAAiB,GACtH,CAzFA9oP,EAAG+pP,cAuDF,WAE2B,OAAAL,EAAA5xP,MAAC,KAADC,UAAA,EAxD5BiI,EAAGgqP,wBA+EH,WACIhqP,EAAGypP,cAAcn+O,MAAM,IACvBtL,EAAG6lD,cAAgB,KACnB7lD,EAAGupP,uBAAuBruO,MAC9B,EAlFAlb,EAAG+oP,yBAA2BA,EAC9B/oP,EAAGwC,OA4FH,WACImJ,EAAkBxH,SACtB,EA5FAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GAEd,WAEYvnI,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EA2FJ,C,+NCtG6B,SAAA9F,GAAUsV,EAAmBxT,EAAS+nI,EAAgBznI,EAAeqmE,EAAgCD,GAC9H,IAAM7+D,EAAKwH,KAUY,SAAA7O,IAMtB,OANsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACU2P,IAAa,cAAA7P,EAAAE,KAAA,EACb+xP,IAAW,OAEjB7oP,EAAG8oP,kBAAoB,OACvBC,IAA2B,wBAAAnyP,EAAAiB,OAAA,GAAAnB,EAAA,MAC9BoB,MAAA,KAAAC,UAAA,UAEc0O,IAAW,OAAAqJ,EAAAhY,MAAC,KAADC,UAAA,UAAA+X,IAKzB,OALyBA,GAAAtZ,OAAAC,UAA1B,SAAA0C,IAAA,IAAAgmE,EAAA9lE,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACwC,OAApCkJ,EAAGiqP,2BAA4B,EAAK3wP,EAAAxC,KAAA,EACf+nE,EAA+B2qL,YAAYtpH,GAAe,OAAA/gE,EAAA7lE,EAAAtC,KAAzEqC,EAAI8lE,EAAJ9lE,KACN2G,EAAGgQ,mBAAqB3W,EACxB2G,EAAGiqP,2BAA4B,EAAM,wBAAA3wP,EAAAzB,OAAA,GAAAsB,EAAA,MACxCrB,MAAA,KAAAC,UAAA,UAEc8wP,IAAS,OAAAG,EAAAlxP,MAAC,KAADC,UAAA,UAAAixP,IAMvB,OANuBA,GAAAxyP,OAAAC,UAAxB,SAAAwD,IAAA,IAAAwlE,EAAApmE,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OACsC,OAAlCkJ,EAAGipP,yBAA0B,EAAK9uP,EAAArD,KAAA,EACbgoE,EAA+BkpL,mBAAmB9nH,EAAejrH,GAAIirH,EAAe5gE,WAAU,OAAAG,EAAAtlE,EAAAnD,KAA7GqC,EAAIomE,EAAJpmE,KACNA,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,QAChC2G,EAAGopP,0BAA4B/vP,EAC/B2G,EAAGipP,yBAA0B,EAAM,wBAAA9uP,EAAAtC,OAAA,GAAAoC,EAAA,MACtCnC,MAAA,KAAAC,UAAA,CAE8B,SAAAmyP,IAmB9B,OAnB8BA,GAAA1zP,OAAAC,UAA/B,SAAAoE,IAAA,IAAA8uP,EAAA7zL,EAAA9/C,EAAAm0O,EAAA9wP,EAAA,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OASK,OARDkJ,EAAGwgG,YAAc,IAAI1+F,EAEjBg0D,EAAa91D,EAAG84E,iBAAiB1/C,KAAI,SAAAxK,GAAO,OAAIA,EAAQuT,SAAS,IAEjEnsB,EAAW,CACXowO,QAASlmH,EAAejrH,GACxB40O,OAAQ,CAAC7pP,EAAG4pP,eACZ3zL,WAAYH,GACfh7D,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAG0BgoE,EAA+BupL,gBAAgBnoH,EAAejrH,GAAIirH,EAAe5gE,UAAWtpD,GAAS,OAC1G,OAD0Gm0O,EAAArvP,EAAA9D,KAApHqC,EAAI8wP,EAAJ9wP,KACRswP,EAAatwP,EAAKyB,EAAAhE,KAAA,GACZ2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,QACxDtyF,EAAMy7O,GAAY7uP,EAAAhE,KAAA,iBAAAgE,EAAAjE,KAAA,GAAAiE,EAAArB,GAAAqB,EAAA,SAElBkF,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAA/F,EAAAjD,OAAA,GAAAgD,EAAA,oBAE3C/C,MAAA,KAAAC,UAAA,CAED,SAASgxP,IACL/oP,EAAGoqP,eAAiB,KACpBpqP,EAAG8pP,yBAA2B9pP,EAAGopP,0BAA0BztP,QAAO,SAAAwtP,GAAK,OAAIA,EAAMntN,WAAah8B,EAAG8oP,iBAAiB,GACtH,CAEA,SAAS56O,EAAMy7O,GACXh+O,EAAkBuC,MAAMy7O,EAC5B,CA3DA3pP,EAAGqqP,iBA6BF,WAE8B,OAAAH,EAAApyP,MAAC,KAADC,UAAA,EA9B/BiI,EAAG+oP,yBAA2BA,EAC9B/oP,EAAGwC,OA2DH,WACImJ,EAAkBxH,SACtB,EA3DAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GAEd,WAEYvnI,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EA0DJ,C,+NClE6B,SAAA9F,GAAUsV,EAAmBxT,EAAS+nI,EAAgBznI,EAAeomE,EAAgCm5B,EAAoBl5B,GAClJ,IAAM9+D,EAAKwH,KAYY,SAAA7O,IAMtB,OANsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACUygF,IAAa,cAAA3gF,EAAAE,KAAA,EACb+xP,IAAW,OAEjB7oP,EAAG8oP,kBAAoB,OACvBC,IAA2B,wBAAAnyP,EAAAiB,OAAA,GAAAnB,EAAA,MAC9BoB,MAAA,KAAAC,UAAA,UAEcw/E,IAAW,OAAA2S,EAAApyF,MAAC,KAADC,UAAA,UAAAmyF,IAMzB,OANyBA,GAAA1zF,OAAAC,UAA1B,SAAA0C,IAAA,IAAAkuG,EAAAhuG,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyBkhG,EAAmB9F,qBAAoB,OAAAmV,EAAA/tG,EAAAtC,KAAtDqC,EAAIguG,EAAJhuG,KACN2G,EAAGm4F,SAAW9+F,EAEd2G,EAAGo2E,gBAAkBp2E,EAAGm4F,SAASp1F,MAAK,SAAAuzE,GAAO,OAAIA,EAAQh+C,SAAS,IAAED,UACpEiyN,IAA+B,wBAAAhxP,EAAAzB,OAAA,GAAAsB,EAAA,MAClCrB,MAAA,KAAAC,UAAA,CAKA,SAEcuyP,IAA4B,OAAAC,EAAAzyP,MAAC,KAADC,UAAA,UAAAwyP,IA6B1C,OA7B0CA,GAAA/zP,OAAAC,UAA3C,SAAAoE,IAAA,OAAApE,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OA0BO,OAxBHkJ,EAAGwqP,+BAAiC,CAChC7uP,OAAQ,WACRomD,WAAW,EACXtiB,QAAS,CACL0iB,WAAY,GACZC,WAAY,WACZC,YAAa,SAAU16C,GACnBA,EAAQ+W,QAAQjmB,EAAcmuC,yBAAyBj/B,EAAS3H,EAAGg3E,0BAA2B,qBAClG,GAEJn4E,OAAQ,KAGZmB,EAAGyqP,kCAAoC,IAAIxjP,MAAM5N,KAAKmlB,WAAW,CAE7D+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,WAAF,IAAAkmC,GAAA5qD,OAAAC,UAAE,SAAAwD,EAAO0N,GAAO,IAAAw3D,EAAA9lE,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EACO+nE,EAA+B6rL,wBAAwBxqH,EAAejrH,GAAIjV,EAAGo2E,iBAAgB,OAAAjX,EAAAhlE,EAAAnD,KAA5GqC,EAAI8lE,EAAJ9lE,KACR2G,EAAG2qP,wBAAwB1wN,WAAW,CAAE+nB,YAAa,oCACrDhiD,EAAGg3E,0BAA4B39E,EAC/BsO,EAAQ+W,QAAQrlB,GAAM,wBAAAc,EAAAtC,OAAA,GAAAoC,EAAA,KAJtB,OAKH,SALGqL,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,EAAE,MAOX+C,EAAAmL,OAAA,SAEIjG,EAAGyqP,mCAAiC,wBAAA3vP,EAAAjD,OAAA,GAAAgD,EAAA,KAC9C0vP,EAAAzyP,MAAA,KAAAC,UAAA,UAEc8wP,IAAS,OAAAG,EAAAlxP,MAAC,KAADC,UAAA,UAAAixP,IAMvB,OANuBA,GAAAxyP,OAAAC,UAAxB,SAAA6K,IAAA,IAAAm+D,EAAApmE,EAAA,OAAA5C,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OACsC,OAAlCkJ,EAAGipP,yBAA0B,EAAKtnP,EAAA7K,KAAA,EACbgoE,EAA+BkpL,mBAAmB9nH,EAAejrH,GAAIirH,EAAe5gE,WAAU,OAAAG,EAAA99D,EAAA3K,KAA7GqC,EAAIomE,EAAJpmE,KACNA,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,QAChC2G,EAAGopP,0BAA4B/vP,EAC/B2G,EAAGipP,yBAA0B,EAAM,wBAAAtnP,EAAA9J,OAAA,GAAAyJ,EAAA,MACtCxJ,MAAA,KAAAC,UAAA,CAEsC,SAAA6yP,IAiBtC,OAjBsCA,GAAAp0P,OAAAC,UAAvC,SAAAkM,IAAA,IAAAgnP,EAAA3zO,EAAAm0O,EAAA9wP,EAAA,OAAA5C,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OAOK,OANDkJ,EAAGwgG,YAAc,IAAI1+F,EAEjBkU,EAAW,CACXowO,QAASlmH,EAAejrH,GACxB40O,OAAQ,CAAC7pP,EAAG4pP,eACZiB,mBAAoB7qP,EAAGm2E,2BAC1BvzE,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAGwBgoE,EAA+BupL,gBAAgBnoH,EAAejrH,GAAIirH,EAAe5gE,UAAWtpD,GAAS,OACxG,OADwGm0O,EAAAvnP,EAAA5L,KAApHqC,EAAI8wP,EAAJ9wP,KACNswP,EAAatwP,EAAKuJ,EAAA9L,KAAA,GACZ2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,QACxDtyF,EAAMy7O,GAAY/mP,EAAA9L,KAAA,iBAAA8L,EAAA/L,KAAA,GAAA+L,EAAAnJ,GAAAmJ,EAAA,SAElB5C,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAA+B,EAAA/K,OAAA,GAAA8K,EAAA,oBAE3C7K,MAAA,KAAAC,UAAA,CAED,SAASgxP,IACL/oP,EAAGoqP,eAAiB,KACpBpqP,EAAG8pP,yBAA2B9pP,EAAGopP,0BAA0BztP,QAAO,SAAAwtP,GAAK,OAAIA,EAAMntN,WAAah8B,EAAG8oP,iBAAiB,GACtH,CAEA,SAAS56O,EAAMy7O,GACXh+O,EAAkBuC,MAAMy7O,EAC5B,CAhGA3pP,EAAG8qP,yBAoEF,WAEsC,OAAAF,EAAA9yP,MAAC,KAADC,UAAA,EArEvCiI,EAAG+oP,yBAA2BA,EAC9B/oP,EAAGsqP,6BAA+BA,EAClCtqP,EAAGq5F,cAuBH,WACIr5F,EAAGm2E,0BAA4B,KAC/Bn2E,EAAGyqP,kCAAkCvvO,MACzC,EAzBAlb,EAAGwC,OA8FH,WACImJ,EAAkBxH,SACtB,EA9FAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GAEd,WAEYvnI,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EA6FJ,CCxG6B,SAAA9F,GAAUsV,EAAmBzT,EAAOC,EAASwwP,EAAgBzoH,EAAgBznI,EAAeu/F,EAAoBzpF,EAAkBuwD,EAAgCD,GAC3L,IAAM7+D,EAAKwH,KASY,SAAA7O,IAUtB,OAVsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACUygF,IAAa,cAAA3gF,EAAAE,KAAA,EACb+xP,IAAW,OAEjB1+J,IAEAnqF,EAAG+qP,iBAAmB,EACtB/qP,EAAG8oP,kBAAoB,OAEvBC,IAA2B,wBAAAnyP,EAAAiB,OAAA,GAAAnB,EAAA,MAC9BoB,MAAA,KAAAC,UAAA,UAEc8wP,IAAS,OAAAG,EAAAlxP,MAAC,KAADC,UAAA,UAAAixP,IAOvB,OAPuBA,GAAAxyP,OAAAC,UAAxB,SAAA0C,IAAA,IAAAgmE,EAAA9lE,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACsC,OAAlCkJ,EAAGipP,yBAA0B,EAAK3vP,EAAAxC,KAAA,EACbgoE,EAA+BkpL,mBAAmB9nH,EAAejrH,GAAIirH,EAAe5gE,WAAU,OAAAH,EAAA7lE,EAAAtC,KAA7GqC,EAAI8lE,EAAJ9lE,KAENA,GADAA,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,SACpBsC,QAAO,SAAAutP,GAAW,OAAKP,EAAetsO,MAAK,SAAA8sO,GAAK,OAAIA,EAAMl0O,KAAOi0O,EAAYj0O,EAAE,GAAC,IAC5FjV,EAAGopP,0BAA4B/vP,EAC/B2G,EAAGipP,yBAA0B,EAAM,wBAAA3vP,EAAAzB,OAAA,GAAAsB,EAAA,MACtCrB,MAAA,KAAAC,UAAA,UAEcw/E,IAAW,OAAA2S,EAAApyF,MAAC,KAADC,UAAA,UAAAmyF,IAMzB,OANyBA,GAAA1zF,OAAAC,UAA1B,SAAAwD,IAAA,IAAAotG,EAAAhuG,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EACyBkhG,EAAmB9F,qBAAoB,OAAAmV,EAAAltG,EAAAnD,KAAtDqC,EAAIguG,EAAJhuG,KACN2G,EAAGm4F,SAAW9+F,EAEd2G,EAAGgrP,kBAAoBhrP,EAAGm4F,SAASp1F,MAAK,SAAAuzE,GAAO,OAAIA,EAAQh+C,SAAS,IAAED,UACtE4yN,IAAoB,wBAAA9wP,EAAAtC,OAAA,GAAAoC,EAAA,MACvBnC,MAAA,KAAAC,UAAA,UAEcoyF,IAAY,OAAAC,EAAAtyF,MAAC,KAADC,UAAA,UAAAqyF,IAG1B,OAH0BA,GAAA5zF,OAAAC,UAA3B,SAAAoE,IAAA,IAAAk7D,EAAA18D,EAAA,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAhE,KAAA,EACyByX,EAAiB47E,eAAc,OAAAp0B,EAAAj7D,EAAA9D,KAA9CqC,EAAI08D,EAAJ18D,KACN2G,EAAGkrP,UAAY7xP,EAAK,wBAAAyB,EAAAjD,OAAA,GAAAgD,EAAA,MACvB/C,MAAA,KAAAC,UAAA,UAEckzP,IAAiB,OAAAE,EAAArzP,MAAC,KAADC,UAAA,UAAAozP,IAkC/B,OAlC+BA,GAAA30P,OAAAC,UAAhC,SAAAkM,IAAA,OAAAlM,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OACIkJ,EAAGorP,oBAAsB,CACrBzvP,OAAQ,WACRomD,WAAW,EACXtiB,QAAS,CACL0iB,WAAY,GACZC,WAAY,WACZC,YAAa,SAAU16C,GACnBA,EAAQ+W,QAAQjmB,EAAcmuC,yBAAyBj/B,EAAS3H,EAAGi4E,eAAgB,UACvF,GAEJp5E,OAAQ,KAGZmB,EAAGqrP,4BAA8B,IAAIpkP,MAAM5N,KAAKmlB,WAAW,CACvD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,WAAF,IAAAkmC,GAAA5qD,OAAAC,UAAE,SAAA6K,EAAOqG,GAAO,IAAA83D,EAAApmE,EAAA,OAAA5C,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA7K,KAAA,EACO+nE,EAA+BysL,oBAAoBprH,EAAejrH,GAAIjV,EAAGgrP,mBAAkB,OAAAvrL,EAAA99D,EAAA3K,KAA1GqC,EAAIomE,EAAJpmE,KACR2G,EAAGurP,aAAatxN,WAAW,CAAE+nB,YAAa,uBAGtChiD,EAAG+qP,kBAA4C,IAAxB/qP,EAAG+qP,iBAC1B/qP,EAAGi4E,eAAiB5+E,EAAKsC,QAAO,SAAAy+C,GAAI,MAAsB,QAAlBA,EAAKyrD,QAAkB,IACxD7lG,EAAG+qP,kBAA4C,IAAxB/qP,EAAG+qP,iBACjC/qP,EAAGi4E,eAAiB5+E,EAAKsC,QAAO,SAAAy+C,GAAI,MAAsB,OAAlBA,EAAKyrD,QAAiB,IAE9D7lG,EAAGi4E,eAAiB5+E,EAGxBsO,EAAQ+W,QAAQ1e,EAAGi4E,gBAAgB,wBAAAt2E,EAAA9J,OAAA,GAAAyJ,EAAA,KAbnC,OAcH,SAdGgE,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,EAAE,MAgBX,wBAAA6K,EAAA/K,OAAA,GAAA8K,EAAA,KACNwoP,EAAArzP,MAAA,KAAAC,UAAA,CAQD,SAASgxP,IACL/oP,EAAG4pP,cAAgB,KACnB5pP,EAAG8pP,yBAA2B9pP,EAAGopP,0BAA0BztP,QAAO,SAAAwtP,GAAK,OAAIA,EAAMntN,WAAah8B,EAAG8oP,iBAAiB,GACtH,CAE4B,SAAA0C,IAuB3B,OAvB2BA,GAAAh1P,OAAAC,UAA5B,SAAA8uB,IAAA,IAAAokO,EAAA3qL,EAAA3lE,EAAAa,EAAA,OAAAzD,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,OAaK,OAZDkJ,EAAGwgG,YAAc,IAAI1+F,GAEjBk9D,EAAS,IAENznE,KAAKyI,EAAG4pP,eAEXvwP,EAAO,CACP+sP,QAASlmH,EAAejrH,GACxBojB,UAAWr4B,EAAGgrP,kBACdnlJ,SAAU7lG,EAAG+qP,iBACblB,OAAQ7qL,EACRysL,QAASzrP,EAAG6oG,eACfrjF,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAGwBgoE,EAA+BupL,gBAAgBnoH,EAAejrH,GAAIirH,EAAe5gE,UAAWjmE,GAAK,OAC3F,OADvBa,EAAQsrB,EAAAxuB,KACZ2yP,EAAazvP,EAASb,KAAKmsB,EAAA1uB,KAAA,GACrB2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,QAOjDv4E,EAND0hO,EAOVh+O,EAAkBuC,MAAM+Z,GAPFzC,EAAA1uB,KAAA,iBAAA0uB,EAAA3uB,KAAA,GAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAElBxlB,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAA2kB,EAAA3tB,OAI5C,IAAeowB,CAJ6B,GAAA1C,EAAA,oBAE3CztB,MAAA,KAAAC,UAAA,CA/GDiI,EAAGwC,OAqHH,WACImJ,EAAkBxH,SACtB,EAtHAnE,EAAG0rP,cAqFF,WAE2B,OAAAF,EAAA1zP,MAAC,KAADC,UAAA,EAtF5BiI,EAAG+oP,yBAA2BA,EAC9B/oP,EAAG2rP,wBA0EH,WACI3rP,EAAGurP,aAAajgP,MAAM,IACtBtL,EAAG6oG,cAAgB,KACnB7oG,EAAGqrP,4BAA4BnwO,MACnC,EA5EW,WAEYviB,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EAmHJ,C,+NC3H6B,SAAA9F,GAAUsV,EAAmBxT,EAAS+nI,EAAgByoH,EAAgBlwP,EAAeqmE,EAAgCD,GAC9I,IAAM7+D,EAAKwH,KAWY,SAAA7O,IAMtB,OANsBA,GAAAnC,OAAAC,UAAvB,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAE2B,OADvBkJ,EAAG4rP,oBAAsB,UACzBC,IAAuBvyP,EAAAxC,KAAA,EACjBg1P,IAAW,OACjB9rP,EAAG8oP,kBAAoB,OACvBC,IAA2B,wBAAAzvP,EAAAzB,OAAA,GAAAsB,EAAA,MAC9BrB,MAAA,KAAAC,UAAA,UAEc+zP,IAAS,OAAAC,EAAAj0P,MAAC,KAADC,UAAA,UAAAg0P,IAOvB,OAPuBA,GAAAv1P,OAAAC,UAAxB,SAAAwD,IAAA,IAAAwlE,EAAApmE,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OACsC,OAAlCkJ,EAAGipP,yBAA0B,EAAK9uP,EAAArD,KAAA,EACbgoE,EAA+BkpL,mBAAmB9nH,EAAejrH,GAAIirH,EAAe5gE,WAAU,OAAAG,EAAAtlE,EAAAnD,KAA7GqC,EAAIomE,EAAJpmE,KAENA,GADAA,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,SACpBsC,QAAO,SAAAutP,GAAW,OAAKP,EAAetsO,MAAK,SAAA8sO,GAAK,OAAIA,EAAMl0O,KAAOi0O,EAAYj0O,EAAE,GAAC,IAC5FjV,EAAGopP,0BAA4B/vP,EAC/B2G,EAAGipP,yBAA0B,EAAM,wBAAA9uP,EAAAtC,OAAA,GAAAoC,EAAA,MACtCnC,MAAA,KAAAC,UAAA,CAED,SAAS8zP,IAmBS,IAAFzqM,EAlBZphD,EAAGgsP,yBAA2B,CAC1BrwP,OAAQ,WACRomD,WAAW,EACXtiB,QAAS,CACL0iB,WAAY,GACZC,WAAY,WACZC,YAAa,SAAU16C,GACnBA,EAAQ+W,QAAQjmB,EAAcmuC,yBAAyBj/B,EAAS3H,EAAGs5O,oBAAqB,MAC5F,GAEJz6O,OAAQ,KAIZmB,EAAGisP,0BAA4B,IAAIhlP,MAAM5N,KAAKmlB,WAAW,CAErD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAOiR,GAAO,IAAAw3D,EAAA9lE,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACK+nE,EAA+B2qL,YAAYtpH,GAAe,OAAA/gE,EAAAvoE,EAAAI,KAC/EqC,GADMA,EAAI8lE,EAAJ9lE,MACMsC,QAAO,SAAAwpD,GAAO,OAAIA,EAAQ38C,OAASxI,EAAG4rP,mBAAmB,IACrEvyP,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,QAChC2G,EAAGksP,kBAAkBjyN,WAAW,CAAE+nB,YAAa,yBAAFxnD,OAA2BrC,EAAQ,iCAARA,CAA0C6H,EAAG4rP,qBAAoB,UACzI5rP,EAAGs5O,oBAAsBjgP,EACzBsO,EAAQ+W,QAAQrlB,GAAM,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,KACzB,SAPG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KAUhB,CAE+B,SAAAo0P,IAgB9B,OAhB8BA,GAAA31P,OAAAC,UAA/B,SAAAoE,IAAA,IAAAxB,EAAA8wP,EAAAR,EAAA,OAAAlzP,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAOyC,OAN/BuC,EAAO,CACT+sP,QAASlmH,EAAejrH,GACxB40O,OAAQ,CAAC7pP,EAAG4pP,eACZxjI,MAAOpmH,EAAGk5E,mBAGdl5E,EAAGwgG,YAAc,IAAI1+F,EAAgBhH,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGAgoE,EAA+BupL,gBAAgBnoH,EAAejrH,GAAIirH,EAAe5gE,UAAWjmE,GAAK,OAAxH,OAAwH8wP,EAAArvP,EAAA9D,KAAtH2yP,EAAUQ,EAAhB9wP,KAAIyB,EAAAhE,KAAA,EACJ2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,OAkBjDv4E,EAjBD0hO,EAkBVh+O,EAAkBuC,MAAM+Z,GAlBFntB,EAAAhE,KAAA,iBAAAgE,EAAAjE,KAAA,GAAAiE,EAAArB,GAAAqB,EAAA,SAElBkF,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAA/F,EAAAjD,OAe5C,IAAeowB,CAf6B,GAAAptB,EAAA,oBAE3C/C,MAAA,KAAAC,UAAA,CAQD,SAASgxP,IACL/oP,EAAG4pP,cAAgB,KACnB5pP,EAAG8pP,yBAA2B9pP,EAAGopP,0BAA0BztP,QAAO,SAAAwtP,GAAK,OAAIA,EAAMntN,WAAah8B,EAAG8oP,iBAAiB,GACtH,CApFA9oP,EAAGosP,iBAuDF,WAE8B,OAAAD,EAAAr0P,MAAC,KAADC,UAAA,EAxD/BiI,EAAGqsP,2BA0EH,WACIrsP,EAAGksP,kBAAkB5gP,MAAM,IAC3BtL,EAAGk5E,kBAAoB,KACvBl5E,EAAGisP,0BAA0B/wO,MACjC,EA7EAlb,EAAG+oP,yBAA2BA,EAC9B/oP,EAAGwC,OAuFH,WACImJ,EAAkBxH,SACtB,EAvFAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GAEd,WAEYvnI,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EAsFJ,CC3F6B,SAAA9F,GAAUyoE,EAAgCrmE,EAAe4V,EAAWlW,GAE7F,IAAM6H,EAAKwH,KASY,SAAA7O,IAItB,OAJsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAC4B,OAAxBkJ,EAAG4pP,cAAgB,KAAKhzP,EAAAE,KAAA,EAClB+xP,IAAW,OACjB7oP,EAAGssP,kBAAoB,KAAK,wBAAA11P,EAAAiB,OAAA,GAAAnB,EAAA,MAC/BoB,MAAA,KAAAC,UAAA,UAEc8wP,IAAS,OAAAG,EAAAlxP,MAAC,KAADC,UAAA,UAAAixP,IAOvB,OAPuBA,GAAAxyP,OAAAC,UAAxB,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAC4B,OAAxBkJ,EAAG0/D,eAAgB,EAAKpmE,EAAAxC,KAAA,EACHgoE,EAA+B8oL,eAAe5nP,EAAG+nI,uBAAuB9yH,GAAIjV,EAAG+nI,uBAAuBzoE,WAAU,OAG5G,OAHrBplE,EAAQZ,EAAAtC,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGg/D,OAAS9kE,EAASb,KACrB2G,EAAG0/D,eAAgB,EAAMpmE,EAAA2M,OAAA,SAClBjG,EAAGg/D,QAAM,wBAAA1lE,EAAAzB,OAAA,GAAAsB,EAAA,MACnBrB,MAAA,KAAAC,UAAA,UAEcw0P,EAAmBjnP,GAAA,OAAAknP,EAAA10P,MAAC,KAADC,UAAA,UAAAy0P,IAGjC,OAHiCA,GAAAh2P,OAAAC,UAAlC,SAAAwD,EAAmCkvP,GAAK,OAAA1yP,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OACpCkJ,EAAG4pP,cAAgBT,EACnBnpP,EAAGysP,sBAAsB,CAAEtD,UAAS,wBAAAhvP,EAAAtC,OAAA,GAAAoC,EAAA,MACvCnC,MAAA,KAAAC,UAAA,CAEkC,SAAA20P,IAWlC,OAXkCA,GAAAl2P,OAAAC,UAAnC,SAAAoE,EAAoCsuP,GAAK,OAAA1yP,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAE3BgoE,EAA+BypL,8BAA8BvoP,EAAG+nI,uBAAuB9yH,GAAIjV,EAAG+nI,uBAAuBzoE,UAAW6pL,EAAMl0O,IAAG,OAC3Ik0O,EAAMl0O,KAAOjV,EAAG4pP,cAAc30O,KAC9BjV,EAAG4pP,cAAgB,KACnB2C,EAAoB,OAExB1D,IAAY/tP,EAAAhE,KAAA,uBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAInB/C,MAAA,KAAAC,UAAA,CA8BqC,SAAA40P,IAmBrC,OAnBqCA,GAAAn2P,OAAAC,UAAtC,SAAA6K,IAAA,IAAAsrP,EAAA3kO,EAAA,OAAAxxB,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAUM,OATE81P,EAAav+O,EAAUvU,KAAK,CAC5B0X,YAAa,6GACbC,WAAYo7O,GACZl7O,aAAc,SACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,EAC/C4gH,eAAgB,WAAF,OAAQ3oP,EAAGg/D,MAAM,KAErCr9D,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAGsB81P,EAAWzhP,OAAM,OAA1B,OAAP8c,EAAOtmB,EAAA3K,KAAA2K,EAAA7K,KAAG,EACR+xP,IAAW,OACb5gO,GACAskO,EAAoBvsP,EAAGg/D,OAAOj8D,MAAK,SAAAszC,GAAC,OAAIA,EAAEphC,KAAOgT,CAAO,KAC3DtmB,EAAA7K,KAAA,wBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAlI,GAAAkI,EAAA,SAAAA,EAAAsE,OAAA,mCAAAtE,EAAA9J,OAAA,GAAAyJ,EAAA,oBAERxJ,MAAA,KAAAC,UAAA,CAEwC,SAAA+0P,IAkBxC,OAlBwCA,GAAAt2P,OAAAC,UAAzC,SAAAkM,IAAA,IAAAoqP,EAAA9kO,EAAA,OAAAxxB,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OASM,OAREi2P,EAAoB1+O,EAAUvU,KAAK,CACnC0X,YAAa,mHACbC,WAAYu7O,GACZr7O,aAAc,SACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,KAErDnlI,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAGsBi2P,EAAkB5hP,OAAM,OAAjC,OAAP8c,EAAOrlB,EAAA5L,KAAA4L,EAAA9L,KAAG,EACR+xP,IAAW,OACb5gO,GACAskO,EAAoBvsP,EAAGg/D,OAAOj8D,MAAK,SAAAszC,GAAC,OAAIA,EAAEphC,KAAOgT,CAAO,KAC3DrlB,EAAA9L,KAAA,wBAAA8L,EAAA/L,KAAA,GAAA+L,EAAAnJ,GAAAmJ,EAAA,SAAAA,EAAAqD,OAAA,mCAAArD,EAAA/K,OAAA,GAAA8K,EAAA,oBAER7K,MAAA,KAAAC,UAAA,CAEgD,SAAAk1P,IAkBhD,OAlBgDA,GAAAz2P,OAAAC,UAAjD,SAAA8uB,IAAA,IAAAqnO,EAAA3kO,EAAA,OAAAxxB,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,OASM,OARE81P,EAAav+O,EAAUvU,KAAK,CAC5B0X,YAAa,mIACbC,WAAYy7O,GACZv7O,aAAc,UACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,KAErDviH,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAGsB81P,EAAWzhP,OAAM,OAA1B,OAAP8c,EAAOzC,EAAAxuB,KAAAwuB,EAAA1uB,KAAG,EACR+xP,IAAW,OACb5gO,GACAskO,EAAoBvsP,EAAGg/D,OAAOj8D,MAAK,SAAAszC,GAAC,OAAIA,EAAEphC,KAAOgT,CAAO,KAC3DzC,EAAA1uB,KAAA,wBAAA0uB,EAAA3uB,KAAA,GAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAAAA,EAAAvf,OAAA,mCAAAuf,EAAA3tB,OAAA,GAAA0tB,EAAA,oBAERztB,MAAA,KAAAC,UAAA,CAGqC,SAAAo1P,IAmBrC,OAnBqCA,GAAA32P,OAAAC,UAAtC,SAAAkvB,IAAA,IAAAinO,EAAA3kO,EAAA,OAAAxxB,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,OAUM,OATE81P,EAAav+O,EAAUvU,KAAK,CAC5B0X,YAAa,6GACbC,WAAY27O,GACZz7O,aAAc,SACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,EAC/C4gH,eAAgB,WAAF,OAAQ3oP,EAAGg/D,MAAM,KAErCp5C,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAGsB81P,EAAWzhP,OAAM,OAA1B,OAAP8c,EAAOrC,EAAA5uB,KAAA4uB,EAAA9uB,KAAG,EACR+xP,IAAW,OACb5gO,GACAskO,EAAoBvsP,EAAGg/D,OAAOj8D,MAAK,SAAAszC,GAAC,OAAIA,EAAEphC,KAAOgT,CAAO,KAC3DrC,EAAA9uB,KAAA,wBAAA8uB,EAAA/uB,KAAA,GAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAAAA,EAAA3f,OAAA,mCAAA2f,EAAA/tB,OAAA,GAAA8tB,EAAA,oBAER7tB,MAAA,KAAAC,UAAA,CAE0C,SAAAs1P,IAmB1C,OAnB0CA,GAAA72P,OAAAC,UAA3C,SAAAwvB,IAAA,IAAAqnO,EAAArlO,EAAA,OAAAxxB,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,OAUM,OATEw2P,EAAoBj/O,EAAUvU,KAAK,CACnC0X,YAAa,uHACbC,WAAY87O,GACZ57O,aAAc,SACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,EAC/C4gH,eAAgB,WAAF,OAAQ3oP,EAAGg/D,MAAM,KAErC94C,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAGsBw2P,EAAkBniP,OAAM,OAAjC,OAAP8c,EAAO/B,EAAAlvB,KAAAkvB,EAAApvB,KAAG,EACR+xP,IAAW,OACb5gO,GACAskO,EAAoBvsP,EAAGg/D,OAAOj8D,MAAK,SAAAomP,GAAK,OAAIA,EAAMl0O,KAAOgT,CAAO,KACnE/B,EAAApvB,KAAA,wBAAAovB,EAAArvB,KAAA,GAAAqvB,EAAAzsB,GAAAysB,EAAA,SAAAA,EAAAjgB,OAAA,mCAAAigB,EAAAruB,OAAA,GAAAouB,EAAA,oBAERnuB,MAAA,KAAAC,UAAA,CA1KDiI,EAAGusP,oBAAsBA,EACzBvsP,EAAGwtP,wBA4CH,WACI,OAAQxtP,EAAG+nI,uBAAuBzoE,WAC9B,IAAK,QAoBb,WACsCqtL,EAAA70P,MAAC,KAADC,UAAA,CApB1B01P,GACA,MACJ,IAAK,WAqCZ,WAEwCX,EAAAh1P,MAAC,KAADC,UAAA,CAtC7B21P,GACA,MACJ,IAAK,mBAsDZ,WAEgDT,EAAAn1P,MAAC,KAADC,UAAA,CAvDrC41P,GACA,MACJ,IAAK,QAuEZ,WAGqCR,EAAAr1P,MAAC,KAADC,UAAA,CAzE1B61P,GACA,MACJ,IAAK,WA0FZ,WAE0CP,EAAAv1P,MAAC,KAADC,UAAA,CA3F/B81P,GAKZ,EA/DA7tP,EAAG8tP,qBAuBF,SAEkC3sP,GAAA,OAAAurP,EAAA50P,MAAC,KAADC,UAAA,EAxBnCiI,EAAG+tP,oBAqCH,WACI,IAAIC,EAAgBhuP,EAAGiuP,sBACvBjuP,EAAGkuP,sBAAsB,CAAEF,iBAC/B,EAtCAhuP,EAAG+iD,WAAsB,WAEF,OAAApqD,EAAAb,MAAC,KAADC,UAAA,CAqK3B,C,kFLvL0F1B,GAAAgxB,QAAA,oJCDnBhxB,GAAAgxB,QAAA,mICCmBhxB,GAAAgxB,QAAA,wJCAAhxB,GAAAgxB,QAAA,oMCAAhxB,GAAAgxB,QAAA,oJCIsBhxB,GAAAgxB,QAAA,yECgBhH,SAZwB,CACpBm5B,SAAU,CACNunF,uBAAwB,IACxBkmH,sBAAuB,IACvBC,sBAAuB,IACvBzB,sBAAuB,KAE3Bh7O,WAAY08O,GACZx8O,aAAc,QACdH,YAAa,sF,+NCdY,SAAAnb,GAAUsV,EAAmBxT,EAAS+nI,EAAgBo/C,EAAe7mL,EAAeomE,EAAgCC,GAC7I,IAAM9+D,EAAKwH,KAWY,SAAA7O,IAMtB,OANsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEwB,OADpBkJ,EAAG0hL,iBAAmB,OACtBknE,IAAoBhyP,EAAAE,KAAA,EACd+xP,IAAW,OACjB7oP,EAAG8oP,kBAAoB,OACvBC,IAA2B,wBAAAnyP,EAAAiB,OAAA,GAAAnB,EAAA,MAC9BoB,MAAA,KAAAC,UAAA,UAEc6wP,IAAiB,OAAAwF,EAAAt2P,MAAC,KAADC,UAAA,UAAAq2P,IA0B/B,OA1B+BA,GAAA53P,OAAAC,UAAhC,SAAAwD,IAAA,OAAAxD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAuBO,OArBHkJ,EAAG6hD,oBAAsB,CACrBlmD,OAAQ,WACRg3G,UAAW,EACXlzE,QAAS,CACL0iB,WAAY,IAEhBtjD,OAAQ,IACRoqC,YAAa,uBAIjBjpC,EAAGupP,uBAAyB,IAAItiP,MAAM5N,KAAKmlB,WAAW,CAElD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,WAAF,IAAAkmC,GAAA5qD,OAAAC,UAAE,SAAA0C,EAAOwO,GAAO,IAAAw3D,EAAA9lE,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACK+nE,EAA+BwvL,kBAAkBnuH,GAAe,OAAA/gE,EAAA7lE,EAAAtC,KAA/EqC,EAAI8lE,EAAJ9lE,KACN2G,EAAGspP,gBAAkBjwP,EAAKsC,QAAO,SAAA6kL,GAAU,OAAKlB,EAAcjjK,MAAK,SAAA8a,GAAI,OAAIA,EAAKQ,aAAe6oJ,EAAW7oJ,UAAU,KAAK6oJ,EAAWh4K,OAASxI,EAAG0hL,gBAAgB,IAChK/5K,EAAQ+W,QAAQ1e,EAAGspP,iBAAiB,wBAAAhwP,EAAAzB,OAAA,GAAAsB,EAAA,KAHpC,OAIH,SAJGmM,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,EAAE,MAMXoC,EAAA8L,OAAA,SAEIjG,EAAGupP,wBAAsB,wBAAApvP,EAAAtC,OAAA,GAAAoC,EAAA,KACnCm0P,EAAAt2P,MAAA,KAAAC,UAAA,UAEc8wP,IAAS,OAAAG,EAAAlxP,MAAC,KAADC,UAAA,UAAAixP,IAOvB,OAPuBA,GAAAxyP,OAAAC,UAAxB,SAAAoE,IAAA,IAAAX,EAAA,OAAAzD,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OACsC,OAAlCkJ,EAAGipP,yBAA0B,EAAKnuP,EAAAhE,KAAA,EACbgoE,EAA+BgpL,aAAa5nH,EAAejrH,IAAG,OAGhD,OAH/B/a,EAAQY,EAAA9D,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGopP,0BAA4BlvP,EAASb,KACxC2G,EAAGipP,yBAA0B,EAAMnuP,EAAAmL,OAAA,SAC5BjG,EAAGopP,2BAAyB,wBAAAtuP,EAAAjD,OAAA,GAAAgD,EAAA,MACtC/C,MAAA,KAAAC,UAAA,CAEsB,SAAA0nL,IAqBtB,OArBsBA,GAAAjpL,OAAAC,UAAvB,SAAA6K,IAAA,IAAAgtP,EAAA5tO,EAAArnB,EAAAa,EAAA,OAAAzD,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAa6E,OAZzEkJ,EAAGwgG,YAAc,IAAI1+F,GAEjB4e,EAAQ,IACNnpB,KAAKyI,EAAGuzD,cACVl6D,EAAO,CACP+sP,QAASlmH,EAAejrH,GACxB40O,OAAQ7pP,EAAGoqP,eACXhkI,MAAO1lG,GACV/e,EAAA9K,KAAA,EAIGwC,EAAK0sI,uBAAyB/lI,EAAGuzD,aAAawyE,uBAAuBpkI,EAAA7K,KAAA,EAChD+nE,EAA+B0vL,eAAel1P,EAAM6mI,EAAejrH,GAAIirH,EAAe5gE,WAAU,OAC3F,OADtBplE,EAAQyH,EAAA3K,KACZs3P,EAAYp0P,EAASb,KAAKsI,EAAA7K,KAAA,GACpB2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,QAmBjDivB,EAlBD6+H,EAmBV3iP,EAAkBuC,MAAMuhH,GAnBH9tH,EAAA7K,KAAA,iBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAlI,GAAAkI,EAAA,SAEjB3B,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAAc,EAAA9J,OAgB5C,IAAe43H,CAhB6B,GAAAnuH,EAAA,oBAE3CxJ,MAAA,KAAAC,UAAA,CASD,SAASgxP,IACL/oP,EAAGoqP,eAAiB,KACpBpqP,EAAG8pP,yBAA2B9pP,EAAGopP,0BAA0BztP,QAAO,SAAAwtP,GAAK,OAAIA,EAAMntN,WAAah8B,EAAG8oP,iBAAiB,GACtH,CAvFA9oP,EAAGogL,SAoDF,WAEsB,OAAAX,EAAA3nL,MAAC,KAADC,UAAA,EArDvBiI,EAAGgqP,wBA4EH,WACIhqP,EAAGwuP,aAAaljP,MAAM,IACtBtL,EAAGuzD,aAAe,KAClBvzD,EAAGwuP,aAAav0N,WAAW,CAAEgP,YAAa,eAAFzuC,OAAiBrC,EAAQ,iCAARA,CAA0C6H,EAAG0hL,kBAAiB,SACvH1hL,EAAGupP,uBAAuBruO,MAC9B,EAhFAlb,EAAG+oP,yBAA2BA,EAC9B/oP,EAAGwC,OA0FH,WACImJ,EAAkBxH,SACtB,EA1FAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GAEd,WAEYvnI,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EAyFJ,C,+NCnG6B,SAAA9F,GAAUsV,EAAmBxT,EAAS+nI,EAAgBuuH,EAAmBh2P,EAAeomE,EAAgCC,GACjJ,IAAM9+D,EAAKwH,KAWY,SAAA7O,IAMtB,OANsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE2B,OADvBkJ,EAAG4rP,oBAAsB,UACzBC,IAAuBj1P,EAAAE,KAAA,EACjBg1P,IAAW,OACjB9rP,EAAG8oP,kBAAoB,OACvBC,IAA2B,wBAAAnyP,EAAAiB,OAAA,GAAAnB,EAAA,MAC9BoB,MAAA,KAAAC,UAAA,UAEc8zP,IAAoB,OAAA6C,EAAA52P,MAAC,KAADC,UAAA,UAAA22P,IA0BlC,OA1BkCA,GAAAl4P,OAAAC,UAAnC,SAAAwD,IAAA,OAAAxD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAuBO,OArBHkJ,EAAG2uP,uBAAyB,CACxBhzP,OAAQ,WACRg3G,UAAW,EACXlzE,QAAS,CACL0iB,WAAY,IAEhBtjD,OAAQ,IACRoqC,YAAa,0BAIjBjpC,EAAGisP,0BAA4B,IAAIhlP,MAAM5N,KAAKmlB,WAAW,CAErD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,WAAF,IAAAkmC,GAAA5qD,OAAAC,UAAE,SAAA0C,EAAOwO,GAAO,IAAAw3D,EAAA9lE,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACK+nE,EAA+BwvL,kBAAkBnuH,GAAe,OAAA/gE,EAAA7lE,EAAAtC,KAA/EqC,EAAI8lE,EAAJ9lE,KACN2G,EAAGs5O,oBAAsBjgP,EAAKsC,QAAO,SAAAizP,GAAa,OAAKH,EAAkBpyO,MAAK,SAAA8oC,GAAO,OAAIA,EAAQM,YAAcmpM,EAAcnpM,SAAS,KAAKmpM,EAAcpmP,OAASxI,EAAG4rP,mBAAmB,IACxLjkP,EAAQ+W,QAAQ1e,EAAGs5O,qBAAqB,wBAAAhgP,EAAAzB,OAAA,GAAAsB,EAAA,KAHxC,OAIH,SAJGmM,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,EAAE,MAMXoC,EAAA8L,OAAA,SAEIjG,EAAGisP,2BAAyB,wBAAA9xP,EAAAtC,OAAA,GAAAoC,EAAA,KACtCy0P,EAAA52P,MAAA,KAAAC,UAAA,UAEc+zP,IAAS,OAAAC,EAAAj0P,MAAC,KAADC,UAAA,UAAAg0P,IAMvB,OANuBA,GAAAv1P,OAAAC,UAAxB,SAAAoE,IAAA,IAAA4kE,EAAApmE,EAAA,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OACsC,OAAlCkJ,EAAGipP,yBAA0B,EAAKnuP,EAAAhE,KAAA,EACbgoE,EAA+BgpL,aAAa5nH,EAAejrH,IAAG,OAAAwqD,EAAA3kE,EAAA9D,KAA7EqC,EAAIomE,EAAJpmE,KACNA,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,QAChC2G,EAAGopP,0BAA4B/vP,EAC/B2G,EAAGipP,yBAA0B,EAAM,wBAAAnuP,EAAAjD,OAAA,GAAAgD,EAAA,MACtC/C,MAAA,KAAAC,UAAA,CAEyB,SAAA82P,IAiBzB,OAjByBA,GAAAr4P,OAAAC,UAA1B,SAAA6K,IAAA,IAAAjI,EAAA8wP,EAAA2E,EAAA,OAAAr4P,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAOK,OANDkJ,EAAGwgG,YAAc,IAAI1+F,EACfzI,EAAO,CACT+sP,QAASlmH,EAAejrH,GACxB40O,OAAQ7pP,EAAGoqP,eACXhkI,MAAO,CAACpmH,EAAG4P,iBACXm/O,0BAA2B/uP,EAAG4P,gBAAgBm/O,2BACjDptP,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAIsC+nE,EAA+B0vL,eAAel1P,EAAM6mI,EAAejrH,GAAIirH,EAAe5gE,WAAU,OAAzH,OAAyH6qL,EAAAxoP,EAAA3K,KAAvH83P,EAAY3E,EAAlB9wP,KAAIsI,EAAA7K,KAAA,EACJ2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,OAmBjDt/D,EAlBD4tN,EAmBVnjP,EAAkBuC,MAAMgzB,GAnBAv/B,EAAA7K,KAAA,iBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAlI,GAAAkI,EAAA,SAEpB3B,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAAc,EAAA9J,OAgB5C,IAAeqpC,CAhB6B,GAAA5/B,EAAA,oBAE3CxJ,MAAA,KAAAC,UAAA,CASD,SAASgxP,IACL/oP,EAAGoqP,eAAiB,KACpBpqP,EAAG8pP,yBAA2B9pP,EAAGopP,0BAA0BztP,QAAO,SAAAwtP,GAAK,OAAIA,EAAMntN,WAAah8B,EAAG8oP,iBAAiB,GACtH,CAlFA9oP,EAAGgvP,YAmDF,WAEyB,OAAAH,EAAA/2P,MAAC,KAADC,UAAA,EApD1BiI,EAAGqsP,2BAuEH,WACIrsP,EAAGivP,gBAAgB3jP,MAAM,IACzBtL,EAAG4P,gBAAkB,KACrB5P,EAAGivP,gBAAgBh1N,WAAW,CAAEgP,YAAa,eAAFzuC,OAAiBrC,EAAQ,iCAARA,CAA0C6H,EAAG4rP,qBAAoB,SAC7H5rP,EAAGisP,0BAA0B/wO,MACjC,EA3EAlb,EAAG+oP,yBAA2BA,EAC9B/oP,EAAGwC,OAqFH,WACImJ,EAAkBxH,SACtB,EArFAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GAEd,WAEYvnI,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EAoFJ,C,+NChG6B,SAAA9F,GAAUsV,EAAmBxT,EAAS+nI,EAAgB3nI,EAAaE,EAAeomE,EAAgCC,GAC3I,IAAM9+D,EAAKwH,KAUY,SAAA7O,IAMtB,OANsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACU2P,IAAa,cAAA7P,EAAAE,KAAA,EACb+xP,IAAW,OAEjB7oP,EAAG8oP,kBAAoB,OACvBC,IAA2B,wBAAAnyP,EAAAiB,OAAA,GAAAnB,EAAA,MAC9BoB,MAAA,KAAAC,UAAA,UAEc0O,IAAW,OAAAqJ,EAAAhY,MAAC,KAADC,UAAA,UAAA+X,IAGzB,OAHyBA,GAAAtZ,OAAAC,UAA1B,SAAA0C,IAAA,IAAAgmE,EAAA9lE,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyB+nE,EAA+BwvL,kBAAkBnuH,GAAe,OAAA/gE,EAAA7lE,EAAAtC,KAA/EqC,EAAI8lE,EAAJ9lE,KACN2G,EAAG2gC,SAAWtnC,EAAK,wBAAAC,EAAAzB,OAAA,GAAAsB,EAAA,MACtBrB,MAAA,KAAAC,UAAA,UAEc8wP,IAAS,OAAAG,EAAAlxP,MAAC,KAADC,UAAA,UAAAixP,IAOvB,OAPuBA,GAAAxyP,OAAAC,UAAxB,SAAAwD,IAAA,IAAAC,EAAA,OAAAzD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OACsC,OAAlCkJ,EAAGipP,yBAA0B,EAAK9uP,EAAArD,KAAA,EACbgoE,EAA+BgpL,aAAa5nH,EAAejrH,IAAG,OAGhD,OAH/B/a,EAAQC,EAAAnD,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGopP,0BAA4BlvP,EAASb,KACxC2G,EAAGipP,yBAA0B,EAAM9uP,EAAA8L,OAAA,SAC5BjG,EAAGopP,2BAAyB,wBAAAjvP,EAAAtC,OAAA,GAAAoC,EAAA,MACtCnC,MAAA,KAAAC,UAAA,CAEyB,SAAAm3P,IAkBzB,OAlByBA,GAAA14P,OAAAC,UAA1B,SAAAoE,IAAA,IAAAs0P,EAAAr5L,EAAA9/C,EAAAypD,EAAApmE,EAAA,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAQK,OAPDkJ,EAAGwgG,YAAc,IAAI1+F,EAEjBg0D,EAAa,CAAC91D,EAAGqQ,iBACjB2F,EAAW,CACXowO,QAASlmH,EAAejrH,GACxB40O,OAAQ7pP,EAAGoqP,eACXn0L,WAAYH,GACfh7D,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAG0B+nE,EAA+B0vL,eAAev4O,EAAUkqH,EAAejrH,GAAIirH,EAAe5gE,WAAU,OACvG,OADuGG,EAAA3kE,EAAA9D,KAAnHqC,EAAIomE,EAAJpmE,KACR81P,EAAe91P,EAAKyB,EAAAhE,KAAA,GACd2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,QAYjD9+D,EAXDytN,EAYVxjP,EAAkBuC,MAAMwzB,GAZA5mC,EAAAhE,KAAA,iBAAAgE,EAAAjE,KAAA,GAAAiE,EAAArB,GAAAqB,EAAA,SAEpBkF,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAA/F,EAAAjD,OAS5C,IAAe6pC,CAT6B,GAAA7mC,EAAA,oBAE3C/C,MAAA,KAAAC,UAAA,CAED,SAASgxP,IACL/oP,EAAGoqP,eAAiB,KACpBpqP,EAAG8pP,yBAA2B9pP,EAAGopP,0BAA0BztP,QAAO,SAAAwtP,GAAK,OAAIA,EAAMntN,WAAah8B,EAAG8oP,iBAAiB,GACtH,CArDA9oP,EAAGovP,YA4BF,WAEyB,OAAAF,EAAAp3P,MAAC,KAADC,UAAA,EA7B1BiI,EAAG+oP,yBAA2BA,EAC9B/oP,EAAGwC,OAyDH,WACImJ,EAAkBxH,SACtB,EAzDAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GAEd,WAEYvnI,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EAwDJ,C,+NChE6B,SAAA9F,GAAUsV,EAAmBxT,EAAS+nI,EAAgBznI,EAAeomE,EAAgCm5B,EAAoBl5B,GAClJ,IAAM9+D,EAAKwH,KAYY,SAAA7O,IAMtB,OANsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACUygF,IAAa,cAAA3gF,EAAAE,KAAA,EACb+xP,IAAW,OAEjB7oP,EAAG8oP,kBAAoB,OACvBC,IAA2B,wBAAAnyP,EAAAiB,OAAA,GAAAnB,EAAA,MAC9BoB,MAAA,KAAAC,UAAA,UAEcw/E,IAAW,OAAA2S,EAAApyF,MAAC,KAADC,UAAA,UAAAmyF,IAMzB,OANyBA,GAAA1zF,OAAAC,UAA1B,SAAA0C,IAAA,IAAAkuG,EAAAhuG,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyBkhG,EAAmB9F,qBAAoB,OAAAmV,EAAA/tG,EAAAtC,KAAtDqC,EAAIguG,EAAJhuG,KACN2G,EAAGm4F,SAAW9+F,EAEd2G,EAAGo2E,gBAAkBp2E,EAAGm4F,SAASp1F,MAAK,SAAAuzE,GAAO,OAAIA,EAAQh+C,SAAS,IAAED,UACpEiyN,IAA+B,wBAAAhxP,EAAAzB,OAAA,GAAAsB,EAAA,MAClCrB,MAAA,KAAAC,UAAA,CAKA,SAEcuyP,IAA4B,OAAAC,EAAAzyP,MAAC,KAADC,UAAA,UAAAwyP,IAyB1C,OAzB0CA,GAAA/zP,OAAAC,UAA3C,SAAAoE,IAAA,OAAApE,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAsBO,OApBHkJ,EAAGwqP,+BAAiC,CAChC7uP,OAAQ,WACRomD,WAAW,EACXtiB,QAAS,CACL0iB,WAAY,IAEhBtjD,OAAQ,IACRoqC,YAAa,mCAGjBjpC,EAAGyqP,kCAAoC,IAAIxjP,MAAM5N,KAAKmlB,WAAW,CAE7D+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,WAAF,IAAAkmC,GAAA5qD,OAAAC,UAAE,SAAAwD,EAAO0N,GAAO,IAAAw3D,EAAA9lE,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EACO+nE,EAA+BwwL,8BAA8BnvH,EAAejrH,GAAIjV,EAAGo2E,iBAAgB,OAAAjX,EAAAhlE,EAAAnD,KAAlHqC,EAAI8lE,EAAJ9lE,KACR2G,EAAGsvP,aAAej2P,EAClBsO,EAAQ+W,QAAQ1e,EAAGsvP,cAAc,wBAAAn1P,EAAAtC,OAAA,GAAAoC,EAAA,KAHjC,OAIH,SAJGqL,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,EAAE,MAMX+C,EAAAmL,OAAA,SAEIjG,EAAGyqP,mCAAiC,wBAAA3vP,EAAAjD,OAAA,GAAAgD,EAAA,KAC9C0vP,EAAAzyP,MAAA,KAAAC,UAAA,UAEc8wP,IAAS,OAAAG,EAAAlxP,MAAC,KAADC,UAAA,UAAAixP,IAOvB,OAPuBA,GAAAxyP,OAAAC,UAAxB,SAAA6K,IAAA,IAAApH,EAAA,OAAAzD,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OACsC,OAAlCkJ,EAAGipP,yBAA0B,EAAKtnP,EAAA7K,KAAA,EACbgoE,EAA+BgpL,aAAa5nH,EAAejrH,IAAG,OAGhD,OAH/B/a,EAAQyH,EAAA3K,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGopP,0BAA4BlvP,EAASb,KACxC2G,EAAGipP,yBAA0B,EAAMtnP,EAAAsE,OAAA,SAC5BjG,EAAGopP,2BAAyB,wBAAAznP,EAAA9J,OAAA,GAAAyJ,EAAA,MACtCxJ,MAAA,KAAAC,UAAA,CAEiC,SAAAw3P,IAkBjC,OAlBiCA,GAAA/4P,OAAAC,UAAlC,SAAAkM,IAAA,IAAA6sP,EAAAn2P,EAAAa,EAAA,OAAAzD,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OAQK,OAPDkJ,EAAGwgG,YAAc,IAAI1+F,EAGjBzI,EAAO,CACP+sP,QAASlmH,EAAejrH,GACxB40O,OAAQ7pP,EAAGoqP,eACXS,mBAAoB,CAAC7qP,EAAG+mG,wBAAwBvsD,oBACnD53C,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAGwB+nE,EAA+B0vL,eAAel1P,EAAM6mI,EAAejrH,GAAIirH,EAAe5gE,WAAU,OAChF,OADjCplE,EAAQ0I,EAAA5L,KACZw4P,EAAuBt1P,EAASb,KAAKuJ,EAAA9L,KAAA,EAC/B2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,OAYjDhP,EAXDg+J,EAYV7jP,EAAkBuC,MAAMsjF,GAZQ5uF,EAAA9L,KAAA,iBAAA8L,EAAA/L,KAAA,GAAA+L,EAAAnJ,GAAAmJ,EAAA,SAE5B5C,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAA+B,EAAA/K,OAS5C,IAAe25F,CAT6B,GAAA7uF,EAAA,oBAE3C7K,MAAA,KAAAC,UAAA,CAED,SAASgxP,IACL/oP,EAAGoqP,eAAiB,KACpBpqP,EAAG8pP,yBAA2B9pP,EAAGopP,0BAA0BztP,QAAO,SAAAwtP,GAAK,OAAIA,EAAMntN,WAAah8B,EAAG8oP,iBAAiB,GACtH,CA1FA9oP,EAAGw7G,oBAiEF,WAEiC,OAAA+zI,EAAAz3P,MAAC,KAADC,UAAA,EAlElCiI,EAAG+oP,yBAA2BA,EAC9B/oP,EAAGsqP,6BAA+BA,EAClCtqP,EAAGq5F,cAuBH,WACIr5F,EAAG+mG,wBAA0B,KAC7B/mG,EAAGyqP,kCAAkCvvO,MACzC,EAzBAlb,EAAGwC,OA4FH,WACImJ,EAAkBxH,SACtB,EA5FAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GAEd,WAEYvnI,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EA2FJ,C,+NCrG6B,SAAA9F,GAAUsV,EAAmBxT,EAAS+nI,EAAgBuvH,EAAkBra,EAAWlwI,EAAgBlD,EAA2BzzF,EAAkB9V,EAAeomE,EAAgCm5B,EAAoBl5B,GAE5O,IAAM9+D,EAAKwH,KAgBY,SAAA7O,IAkBtB,OAlBsBA,GAAAnC,OAAAC,UAAvB,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACUygF,IAAa,cAAAj+E,EAAAxC,KAAA,EACb+xP,IAAW,cAAAvvP,EAAAxC,KAAA,EAEXqzF,IAAc,cAAA7wF,EAAAxC,KAAA,EACd01F,IAAmB,cAAAlzF,EAAAxC,KAAA,GACnBy2F,IAAe,QAErBvtF,EAAG8oP,kBAAoB,OACL,SAAd1T,GACAp1O,EAAG0vP,iBAAmB,gBACtB1vP,EAAG2vP,iBAAmBF,EAAiB51P,KACvC+1P,MAEA5vP,EAAG0vP,iBAAmB,OACtB1vP,EAAG+qP,iBAAmB,GAE1BhC,IAA2B,yBAAAzvP,EAAAzB,OAAA,GAAAsB,EAAA,MAC9BrB,MAAA,KAAAC,UAAA,UAEcw/E,IAAW,OAAA2S,EAAApyF,MAAC,KAADC,UAAA,UAAAmyF,IAazB,OAbyBA,GAAA1zF,OAAAC,UAA1B,SAAAwD,IAAA,IAAAotG,EAAAhuG,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EACyBkhG,EAAmB9F,qBAAoB,OAGmB,GAHnBmV,EAAAltG,EAAAnD,KAAtDqC,EAAIguG,EAAJhuG,KACN2G,EAAGm4F,SAAW9+F,EAEd2G,EAAG6vP,iBAAmB7vP,EAAGm4F,SAASp1F,MAAK,SAAAuzE,GAAO,OAAIA,EAAQh+C,SAAS,IAAED,UACnD,SAAd+8M,EAAoB,CAAAj7O,EAAArD,KAAA,SACpBkJ,EAAGgrP,kBAAoByE,EAAiBp3N,UAAUl+B,EAAArD,KAAA,iBAEP,OAA3CkJ,EAAGgrP,kBAAoBhrP,EAAG6vP,iBAAiB11P,EAAArD,KAAA,GACrCm0P,IAAmB,eAAA9wP,EAAArD,KAAA,GACnB84P,IAAuB,yBAAAz1P,EAAAtC,OAAA,GAAAoC,EAAA,MAGpCnC,MAAA,KAAAC,UAAA,UAEcoyF,IAAY,OAAAC,EAAAtyF,MAAC,KAADC,UAAA,UAAAqyF,IAe1B,OAf0BA,GAAA5zF,OAAAC,UAA3B,SAAAoE,IAAA,IAAAsrC,EAAA4vB,EAAA18D,EAAA,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAhE,KAAA,EAEyByX,EAAiB47E,eAAc,OAAAp0B,EAAAj7D,EAAA9D,KAA9CqC,EAAI08D,EAAJ18D,KACN2G,EAAGkrP,UAAY7xP,EAEG,SAAd+7O,IAEIjvM,EAD2C,QAA3CspN,EAAiBK,aAAajqJ,SACrB,EACyC,OAA3C4pJ,EAAiBK,aAAajqJ,SAC5B,EAEA,EAEb7lG,EAAG+qP,iBAAmB5kN,GACzB,wBAAArrC,EAAAjD,OAAA,GAAAgD,EAAA,MACJ/C,MAAA,KAAAC,UAAA,UAEcy0F,IAAiB,OAAAC,EAAA30F,MAAC,KAADC,UAAA,UAAA00F,IAQ/B,OAR+BA,GAAAj2F,OAAAC,UAAhC,SAAA6K,IAAA,IAAAqhG,EAAAtpG,EAAA,OAAA5C,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA7K,KAAA,EACyBkrG,EAA0BxV,oBAAmB,OAAAmW,EAAAhhG,EAAA3K,KAA5DqC,EAAIspG,EAAJtpG,KACN2G,EAAG+vP,yBAA2B12P,EAEZ,SAAd+7O,IACAp1O,EAAGgwP,iBAAmBP,EAAiBK,aAAaG,iBAAiB/yP,OAASuyP,EAAiBK,aAAaG,iBAAmB,GAC/HjwP,EAAGkwP,uBAAyBT,EAAiBK,aAAaG,iBAAiB72N,KAAI,SAAArvB,GAAE,OAAI/J,EAAG+vP,yBAAyBhtP,MAAK,SAAAotP,GAAK,OAAIA,EAAMz0P,KAAOqO,CAAE,GAAC,KAClJ,wBAAApI,EAAA9J,OAAA,GAAAyJ,EAAA,MACJxJ,MAAA,KAAAC,UAAA,UAEcw1F,IAAa,OAAAC,EAAA11F,MAAC,KAADC,UAAA,UAAAy1F,IAU3B,OAV2BA,GAAAh3F,OAAAC,UAA5B,SAAAkM,IAAA,IAAAytP,EAAA/2P,EAAA,OAAA5C,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OAC0C,OAAtCkJ,EAAGqwP,6BAA8B,EAAKztP,EAAA9L,KAAA,EACjBouG,EAAe3X,gBAAe,OAAA6iK,EAAAxtP,EAAA5L,KAA7CqC,EAAI+2P,EAAJ/2P,KACN2G,EAAGswP,qBAAuBj3P,EAC1B2G,EAAGqwP,6BAA8B,EAEf,SAAdjb,IACAp1O,EAAGuwP,aAAed,EAAiBK,aAAaU,aAAatzP,OAASuyP,EAAiBK,aAAaU,aAAe,GACnHxwP,EAAGywP,mBAAqBhB,EAAiBK,aAAaU,aAAap3N,KAAI,SAAArvB,GAAE,OAAI/J,EAAGswP,qBAAqBvtP,MAAK,SAAAwhN,GAAK,OAAIA,EAAMtvM,KAAOlL,CAAE,GAAC,KACtI,wBAAAnH,EAAA/K,OAAA,GAAA8K,EAAA,MACJ7K,MAAA,KAAAC,UAAA,UAEckzP,IAAiB,OAAAE,EAAArzP,MAAC,KAADC,UAAA,UAAAozP,IAiC/B,OAjC+BA,GAAA30P,OAAAC,UAAhC,SAAAkvB,IAAA,OAAAlvB,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,OA8BO,OA5BHkJ,EAAGorP,oBAAsB,CACrBzvP,OAAQ,WACRg3G,UAAW,EACXlzE,QAAS,CACL0iB,WAAY,IAEhBtjD,OAAQ,IACRoqC,YAAa,uBAGjBjpC,EAAG0wP,uBAAyB,IAAIzpP,MAAM5N,KAAKmlB,WAAW,CAElD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,WAAF,IAAA2tC,GAAAryD,OAAAC,UAAE,SAAA8uB,EAAO5d,GAAO,IAAA83D,EAAApmE,EAAA,OAAA5C,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA1uB,KAAA,EACO+nE,EAA+B8xL,kBAAkBzwH,EAAejrH,GAAIjV,EAAGgrP,mBAAkB,OAAAvrL,EAAAj6C,EAAAxuB,KAAxGqC,EAAIomE,EAAJpmE,KAEoB,IAAxB2G,EAAG+qP,iBACH/qP,EAAGi4E,eAAiB5+E,EAAKsC,QAAO,SAAAy+C,GAAI,MAAsB,QAAlBA,EAAKyrD,QAAkB,IAChC,IAAxB7lG,EAAG+qP,iBACV/qP,EAAGi4E,eAAiB5+E,EAAKsC,QAAO,SAAAy+C,GAAI,MAAsB,OAAlBA,EAAKyrD,QAAiB,IAE9D7lG,EAAGi4E,eAAiB5+E,EAGxBsO,EAAQ+W,QAAQ1e,EAAGi4E,gBAAgB,wBAAAzyD,EAAA3tB,OAAA,GAAA0tB,EAAA,KAXnC,OAYH,SAZGpkB,GAAA,OAAA0nD,EAAA/wD,MAAA,KAAAC,UAAA,EAAE,MAcX6tB,EAAA3f,OAAA,SAEIjG,EAAG0wP,wBAAsB,wBAAA9qO,EAAA/tB,OAAA,GAAA8tB,EAAA,KACnCwlO,EAAArzP,MAAA,KAAAC,UAAA,CAED,SAAS63P,IAoBS,IAAFxuM,EAnBZphD,EAAG4wP,wBAA0B,CACzB,CAAE/3O,MAAO,WAAY7U,MAAO,OAAQiE,MAAO,IAAK4W,WAAYyf,IAC5D,CAAEzlB,MAAO,kBAAmB7U,MAAO,mBAAoBiE,MAAO,IAAK4W,WAAYyf,KAGnFt+B,EAAG6wP,wBAA0Bp4P,EAAc4uC,mBAAmBrnC,EAAG4wP,wBAAyB,KAE1F5wP,EAAG8wP,2BAA6B,IAAI7pP,MAAM5N,KAAKmlB,WAAW,CACtD8iC,OAAQ,CACJjoD,KAAM,uBACNy6B,MAAO,cAEXytB,SAAUliB,GACVmiB,cAAc,EACdxiB,iBAAiB,EACjBwI,UAAW,CACPtgC,SAAU,qEAEduX,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAA8P,EAAA+uH,EAAAnnI,EAAAkiD,EAAA4d,EAAA9lE,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEiB2B,EAAcowC,uBAAuBlhC,GAAQ,OAsBnD,OAtBlB8P,EAAe7gB,EAAAI,KAEfgJ,EAAGgrP,mBACHvzO,EAAgBE,QAAQpgB,KAAK,CAAE+kB,UAAW,YAAage,SAAU,SAAUj0B,MAAOrG,EAAGgrP,oBAGrFhrP,EAAG+qP,kBACHtzO,EAAgBE,QAAQpgB,KAAK,CAAE+kB,UAAW,aAAcge,SAAU,SAAUj0B,MAAOrG,EAAG+qP,mBAGtF/qP,EAAGywP,oBACHzwP,EAAGuwP,aAAat1P,SAAQ,SAAA29C,GACpBnhC,EAAgBE,QAAQpgB,KAAK,CAAE+kB,UAAW,cAAege,SAAU,SAAUj0B,MAAOuyC,GACxF,IAGA54C,EAAGkwP,wBACHlwP,EAAGgwP,iBAAiB/0P,SAAQ,SAAA81P,GACxBt5O,EAAgBE,QAAQpgB,KAAK,CAAE+kB,UAAW,kBAAmBge,SAAU,SAAUj0B,MAAO0qP,GAC5F,IACHvqH,EAE0B7+H,EAAQtO,KAA3BgG,EAAImnI,EAAJnnI,KAAMkiD,EAAQilF,EAARjlF,SAAQ3qD,EAAAE,KAAA,GACD+nE,EAA+BmyL,uBAAuB9wH,EAAejrH,GAAIwC,EAAiBpY,EAAMkiD,GAAS,QAAA4d,EAAAvoE,EAAAI,KAAxHqC,EAAI8lE,EAAJ9lE,KAENsO,EAAQ+W,QAAQrlB,GAAMzC,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAEtB+Q,EAAQuiC,QAAQ,yBAAAtzC,EAAAiB,OAAA,GAAAnB,EAAA,mBAEvB,SA/BG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KAkChB,CAwBC,SAEc8wP,IAAS,OAAAG,EAAAlxP,MAAC,KAADC,UAAA,UAAAixP,IAOvB,OAPuBA,GAAAxyP,OAAAC,UAAxB,SAAAwvB,IAAA,IAAA/rB,EAAA,OAAAzD,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,OACsC,OAAlCkJ,EAAGipP,yBAA0B,EAAK/iO,EAAApvB,KAAA,EACbgoE,EAA+BgpL,aAAa5nH,EAAejrH,IAAG,OAGhD,OAH/B/a,EAAQgsB,EAAAlvB,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGopP,0BAA4BlvP,EAASb,KACxC2G,EAAGipP,yBAA0B,EAAM/iO,EAAAjgB,OAAA,SAC5BjG,EAAGopP,2BAAyB,wBAAAljO,EAAAruB,OAAA,GAAAouB,EAAA,MACtCnuB,MAAA,KAAAC,UAAA,CAEsB,SAAAk5P,IAuCtB,OAvCsBA,GAAAz6P,OAAAC,UAAvB,SAAAk/C,IAAA,IAAAt8C,EAAA8gD,EAAAjgD,EAAA,OAAAzD,UAAA,SAAAm/C,GAAA,cAAAA,EAAA/+C,KAAA++C,EAAA9+C,MAAA,OAyBK,GAxBDkJ,EAAGwgG,YAAc,IAAI1+F,EAKjBzI,EADc,SAAd+7O,EACO,CACH5xH,OAAQisI,EAAiBx6O,GACzBi8O,iBAAkBlxP,EAAG2vP,iBACrB9pJ,SAAU7lG,EAAG+qP,iBACb1yN,UAAWr4B,EAAGgrP,kBACdwF,aAAcxwP,EAAGuwP,aACjBN,iBAAkBjwP,EAAGgwP,kBAGlB,CACH5J,QAASlmH,EAAejrH,GACxBi8O,iBAAkBlxP,EAAG2vP,iBACrB9F,OAAQ7pP,EAAGoqP,eACXqB,QAAUzrP,EAAG62F,aAAoB,CAAC72F,EAAG62F,cAAT,GAC5BgP,SAAU7lG,EAAG+qP,iBACb1yN,UAAWr4B,EAAGgrP,kBACdwF,aAAcxwP,EAAGuwP,aACjBN,iBAAkBjwP,EAAGgwP,kBAE5Bp6M,EAAA/+C,KAAA,EAGqB,SAAdu+O,EAAoB,CAAAx/L,EAAA9+C,KAAA,eAAA8+C,EAAA9+C,KAAA,EACH+nE,EAA+BsyL,mBAAmBjxH,EAAejrH,GAAIw6O,EAAiBx6O,GAAI5b,GAAK,OAAhHa,EAAQ07C,EAAA5+C,KAAA4+C,EAAA9+C,KAAG,GAAH,oBAAA8+C,EAAA9+C,KAAG,GAEM+nE,EAA+B0vL,eAAel1P,EAAM6mI,EAAejrH,GAAIirH,EAAe5gE,WAAU,QAAjHplE,EAAQ07C,EAAA5+C,KAAA,QAEW,OAAvBmjD,EAASjgD,EAASb,KAAKu8C,EAAA9+C,KAAA,GACjB2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,QAYjDhP,EAXDr3C,EAYVxuC,EAAkBuC,MAAMsjF,GAZN57C,EAAA9+C,KAAA,iBAAA8+C,EAAA/+C,KAAA,GAAA++C,EAAAn8C,GAAAm8C,EAAA,SAEd51C,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAA+0C,EAAA/9C,OAS5C,IAAe25F,CAT6B,GAAA77C,EAAA,oBAE3C79C,MAAA,KAAAC,UAAA,CAED,SAASgxP,IACL/oP,EAAGoqP,eAAiB,KACpBpqP,EAAG8pP,yBAA2B9pP,EAAGopP,0BAA0BztP,QAAO,SAAAwtP,GAAK,OAAIA,EAAMntN,WAAah8B,EAAG8oP,iBAAiB,GACtH,CAhQA9oP,EAAGoxP,SAkNF,WAEsB,OAAAH,EAAAn5P,MAAC,KAADC,UAAA,EAnNvBiI,EAAG+oP,yBAA2BA,EAC9B/oP,EAAGqxP,eA2LH,WACgC,SAAxBrxP,EAAG0vP,kBACH1vP,EAAG62F,aAAe,KAClB72F,EAAGurP,aAAajgP,MAAM,IACtBtL,EAAG0wP,uBAAuBx1O,SAE1Blb,EAAGuwP,aAAevwP,EAAGywP,mBAAmBr3N,KAAI,SAAAmrL,GAAK,OAAIA,EAAMtvM,EAAE,IAC7DjV,EAAGgwP,iBAAmBhwP,EAAGkwP,uBAAuB92N,KAAI,SAAA+2N,GAAK,OAAIA,EAAMz0P,EAAE,IACjEsE,EAAG8wP,4BACH9wP,EAAG8wP,2BAA2B51O,OAG1C,EAtMAlb,EAAGsxP,eAgLH,WACItxP,EAAGoqP,eAAiB,KACpBpqP,EAAG62F,aAAe,KAClB72F,EAAG+qP,iBAAmB,EACtB/qP,EAAGgrP,kBAAoBhrP,EAAG6vP,iBAC1B7vP,EAAGywP,mBAAqB,GACxBzwP,EAAGkwP,uBAAyB,GAC5BlwP,EAAG2vP,iBAAmB,IAC1B,EAvLA3vP,EAAGwC,OAkQH,WACImJ,EAAkBxH,SACtB,EAlQAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GACzBlgI,EAAGo1O,UAAYA,EAEfp1O,EAAGkwP,uBAAyB,GAC5BlwP,EAAGywP,mBAAqB,GAEb,WAEY93P,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EA6PJ,CC3Q6B,SAAA9F,GAAUwoE,EAAgCxwD,GAEnE,IAAMrO,EAAKwH,KASY,SAAA7O,IAMtB,OANsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAC2B,OAAvBkJ,EAAG++D,aAAe,KAAKnoE,EAAAE,KAAA,EACjBmoE,IAAU,OAChBj/D,EAAG0rH,iBAAmB,KAEtB1rH,EAAGiuP,sBAAwB,OAAO,wBAAAr3P,EAAAiB,OAAA,GAAAnB,EAAA,MACrCoB,MAAA,KAAAC,UAAA,UAEcknE,IAAQ,OAAAC,EAAApnE,MAAC,KAADC,UAAA,UAAAmnE,IAMtB,OANsBA,GAAA1oE,OAAAC,UAAvB,SAAA0C,IAAA,IAAAgmE,EAAA9lE,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAC2B,OAAvBkJ,EAAGo/D,cAAe,EAAK9lE,EAAAxC,KAAA,EACA+nE,EAA+BQ,cAAcr/D,EAAG+nI,uBAAuB9yH,GAAIjV,EAAG+nI,uBAAuBzoE,WAAU,OAE9G,OAF8GH,EAAA7lE,EAAAtC,KAA9HqC,EAAI8lE,EAAJ9lE,KACR2G,EAAG0gB,MAAQrnB,EACX2G,EAAGo/D,cAAe,EAAM9lE,EAAA2M,OAAA,SACjBjG,EAAG0gB,OAAK,wBAAApnB,EAAAzB,OAAA,GAAAsB,EAAA,MAClBrB,MAAA,KAAAC,UAAA,UAEc8nE,EAAkBv6D,GAAA,OAAAs6D,EAAA9nE,MAAC,KAADC,UAAA,UAAA6nE,IAGhC,OAHgCA,GAAAppE,OAAAC,UAAjC,SAAAwD,EAAkCyQ,GAAI,OAAAjU,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAClCkJ,EAAG++D,aAAer0D,EAClB1K,EAAGuxP,qBAAqB,CAAE7mP,SAAQ,wBAAAvQ,EAAAtC,OAAA,GAAAoC,EAAA,MACrCnC,MAAA,KAAAC,UAAA,CAwBiC,SAAAy5P,IAWjC,OAXiCA,GAAAh7P,OAAAC,UAAlC,SAAAoE,EAAmC6P,GAAI,OAAAjU,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEzB+nE,EAA+B4yL,6BAA6BzxP,EAAG+nI,uBAAuB9yH,GAAIjV,EAAG+nI,uBAAuBzoE,UAAW50D,EAAKuK,IAAG,OACzIvK,EAAKuK,KAAOjV,EAAG++D,aAAa9pD,KAC5BjV,EAAG++D,aAAe,KAClBc,EAAmB,OAEvBZ,IAAWnkE,EAAAhE,KAAA,uBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAIlB/C,MAAA,KAAAC,UAAA,CAQgC,SAAA25P,IAmBhC,OAnBgCA,GAAAl7P,OAAAC,UAAjC,SAAA6K,IAAA,IAAAu/K,EAAApxD,EAAA,OAAAh5H,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAUM,OATE+pL,EAAYxyK,EAAUvU,KAAK,CAC3B0X,YAAa,kGACbC,WAAYkgP,GACZhgP,aAAc,QACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,EAC/Cu3C,cAAe,WAAF,OAAQt/K,EAAG0gB,KAAK,KAEnC/e,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAGqB+pL,EAAU11K,OAAM,OAAzB,OAANskH,EAAM9tH,EAAA3K,KAAA2K,EAAA7K,KAAG,EACPmoE,IAAU,OACZwwD,GACA5vD,EAAmB7/D,EAAGsiD,MAAMv/C,MAAK,SAAAszC,GAAC,OAAIA,EAAEphC,KAAOw6G,CAAM,KACxD9tH,EAAA7K,KAAA,wBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAlI,GAAAkI,EAAA,SAAAA,EAAAsE,OAAA,mCAAAtE,EAAA9J,OAAA,GAAAyJ,EAAA,oBAERxJ,MAAA,KAAAC,UAAA,CAEmC,SAAA65P,IAmBnC,OAnBmCA,GAAAp7P,OAAAC,UAApC,SAAAkM,IAAA,IAAAkvP,EAAA3wN,EAAA,OAAAzqC,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OAUM,OATE+6P,EAAexjP,EAAUvU,KAAK,CAC9B0X,YAAa,wGACbC,WAAYqgP,GACZngP,aAAc,QACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,EAC/C0mH,kBAAmB,WAAF,OAAQzuP,EAAG0gB,KAAK,KAEvC9d,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAGwB+6P,EAAa1mP,OAAM,OAA5B,OAAT+1B,EAASt+B,EAAA5L,KAAA4L,EAAA9L,KAAG,EACVmoE,IAAU,OACZ/9B,GACA2+B,EAAmB7/D,EAAG0gB,MAAM3d,MAAK,SAAA2H,GAAI,OAAIA,EAAKuK,KAAOisB,CAAS,KACjEt+B,EAAA9L,KAAA,wBAAA8L,EAAA/L,KAAA,GAAA+L,EAAAnJ,GAAAmJ,EAAA,SAAAA,EAAAqD,OAAA,mCAAArD,EAAA/K,OAAA,GAAA8K,EAAA,oBAER7K,MAAA,KAAAC,UAAA,CAEmC,SAAAg6P,IAmBnC,OAnBmCA,GAAAv7P,OAAAC,UAApC,SAAA8uB,IAAA,IAAAysO,EAAAtwN,EAAA,OAAAjrC,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,OAUM,OATEk7P,EAAe3jP,EAAUvU,KAAK,CAC9B0X,YAAa,wGACbC,WAAYwgP,GACZtgP,aAAc,QACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,EAC/CmqH,iBAAkB,WAAF,OAAQlyP,EAAG0gB,KAAK,KAEtC8E,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAGwBk7P,EAAa7mP,OAAM,OAA5B,OAATu2B,EAASlc,EAAAxuB,KAAAwuB,EAAA1uB,KAAG,EACVmoE,IAAU,OACZv9B,GACAm+B,EAAmB7/D,EAAG0gB,MAAM3d,MAAK,SAAAirD,GAAC,OAAIA,EAAE/4C,KAAOysB,CAAS,KAC3Dlc,EAAA1uB,KAAA,wBAAA0uB,EAAA3uB,KAAA,GAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAAAA,EAAAvf,OAAA,mCAAAuf,EAAA3tB,OAAA,GAAA0tB,EAAA,oBAERztB,MAAA,KAAAC,UAAA,CAE2C,SAAAo6P,IAmB3C,OAnB2CA,GAAA37P,OAAAC,UAA5C,SAAAkvB,IAAA,IAAAysO,EAAA5gK,EAAA,OAAA/6F,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,OAUM,OATEs7P,EAAuB/jP,EAAUvU,KAAK,CACtC0X,YAAa,wHACbC,WAAY4gP,GACZ1gP,aAAc,SACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,EAC/CuqH,0BAA2B,WAAF,OAAQtyP,EAAG0gB,KAAK,KAE/CkF,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAGmBs7P,EAAqBjnP,OAAM,OAApC,OAAJqmF,EAAI5rE,EAAA5uB,KAAA4uB,EAAA9uB,KAAG,EACLmoE,IAAU,OACZuyB,GACA3xB,EAAmB7/D,EAAG0gB,MAAM3d,MAAK,SAAA2zE,GAAE,OAAIA,EAAGzhE,KAAOu8E,CAAI,KACxD5rE,EAAA9uB,KAAA,wBAAA8uB,EAAA/uB,KAAA,GAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAAAA,EAAA3f,OAAA,mCAAA2f,EAAA/tB,OAAA,GAAA8tB,EAAA,oBAER7tB,MAAA,KAAAC,UAAA,CAEgC,SAAAw6P,IAqBhC,OArBgCA,GAAA/7P,OAAAC,UAAjC,SAAAwvB,EAAkCvb,EAAM0qO,GAAS,IAAArrI,EAAA5vD,EAAA,OAAA1jD,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,OAY3C,OAXEizG,EAAY17F,EAAUvU,KAAK,CAC3B0X,YAAa,kGACbC,WAAY+gP,GACZ7gP,aAAc,QACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,EAC/C0qH,cAAe,WAAF,OAAQzyP,EAAG0gB,KAAK,EAC7B+uO,iBAAkB,WAAF,OAAQ/kP,CAAI,EAC5B0qO,UAAW,WAAF,OAAQA,CAAS,KAEhClvN,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAGqBizG,EAAU5+F,OAAM,OAAzB,OAANgvC,EAAMj0B,EAAAlvB,KAAAkvB,EAAApvB,KAAG,EACPmoE,IAAU,OACZ9kB,GACA0lB,EAAmB7/D,EAAG0gB,MAAM3d,MAAK,SAAAq3C,GAAI,OAAIA,EAAKnlC,KAAOklC,CAAM,KAC9Dj0B,EAAApvB,KAAA,wBAAAovB,EAAArvB,KAAA,GAAAqvB,EAAAzsB,GAAAysB,EAAA,SAAAA,EAAAjgB,OAAA,mCAAAigB,EAAAruB,OAAA,GAAAouB,EAAA,oBAERnuB,MAAA,KAAAC,UAAA,CA9KDiI,EAAG6/D,mBAAqBA,EACxB7/D,EAAG0yP,mBA2BH,SAA4BhoP,EAAM0qO,GAC9B,OAAQp1O,EAAG+nI,uBAAuBzoE,WAC9B,IAAK,QAsCb,WACiCoyL,EAAA55P,MAAC,KAADC,UAAA,CAtCrB46P,GACA,MACJ,IAAK,WAuDZ,WAEmCf,EAAA95P,MAAC,KAADC,UAAA,CAxDxB66P,GACA,MACJ,IAAK,WAyEZ,WAEmCb,EAAAj6P,MAAC,KAADC,UAAA,CA1ExB86P,GACA,MACJ,IAAK,mBA2FZ,WAE2CV,EAAAr6P,MAAC,KAADC,UAAA,CA5FhC+6P,GACA,MACJ,IAAK,QA6GZ,SAEgC1xP,EAAAmK,GAAAgnP,EAAAz6P,MAAC,KAADC,UAAA,CA9GrBg7P,CAAmBroP,EAAM0qO,GAKrC,EA9CAp1O,EAAGgzP,oBA8CF,SAEiC7xP,GAAA,OAAAqwP,EAAA15P,MAAC,KAADC,UAAA,EA/ClCiI,EAAG+tP,oBA4DH,WACI,IAAIC,EAAgBhuP,EAAGiuP,sBACvBjuP,EAAGkuP,sBAAsB,CAAEF,iBAC/B,EA7DAhuP,EAAG+iD,WAAsB,WAEF,OAAApqD,EAAAb,MAAC,KAADC,UAAA,CAwK3B,CLxL0F1B,GAAAgxB,QAAA,mJCAAhxB,GAAAgxB,QAAA,uJCDnBhxB,GAAAgxB,QAAA,iJCCmBhxB,GAAAgxB,QAAA,wJCA0BhxB,GAAAgxB,QAAA,uPCGlChxB,GAAAgxB,QAAA,+CCiBlF,SAZuB,CACnBm5B,SAAU,CACNunF,uBAAwB,IACxBkmH,sBAAuB,IACvBC,sBAAuB,IACvBqD,qBAAsB,KAE1B9/O,WAAYwhP,GACZthP,aAAc,QACdH,YAAa,oFClBY,SAAAnb,GAAU6B,EAAO8I,GAC1C,IAAMywB,EAAU,CACZ4tC,cAoBW,SAEa/5D,EAAAnE,GAAA,OAAA+xP,EAAAp7P,MAAC,KAADC,UAAA,EArBxBo7P,6BA2BH,SAE0C/xP,GAAA,OAAAgyP,EAAAt7P,MAAC,KAADC,UAAA,EA5BvCs2P,kBAkCH,SAE+B9iP,GAAA,OAAA8nP,EAAAv7P,MAAC,KAADC,UAAA,EAnC5Bs3P,8BAyCH,SAE2Cz7M,EAAAmB,GAAA,OAAAu+M,EAAAx7P,MAAC,KAADC,UAAA,EA1CxCw7P,mCAgDH,SAEgDv+M,EAAAK,EAAA8B,GAAA,OAAAq8M,EAAA17P,MAAC,KAADC,UAAA,EAjD7C2yP,wBAuDH,SAEqCpzM,EAAAC,GAAA,OAAAk8M,EAAA37P,MAAC,KAADC,UAAA,EAxDlC27P,uBA8DH,SAEoCl8M,EAAAG,GAAA,OAAAg8M,EAAA77P,MAAC,KAADC,UAAA,EA/DjCyxP,YAqEH,SAEyB1xM,GAAA,OAAA87M,EAAA97P,MAAC,KAADC,UAAA,EAtEtB44P,kBA4EH,SAE+B54M,EAAAG,GAAA,OAAA27M,EAAA/7P,MAAC,KAADC,UAAA,EA7E5B+7P,yBAmFH,SAEsC37M,EAAAC,EAAAK,GAAA,OAAAs7M,EAAAj8P,MAAC,KAADC,UAAA,EApFnCuzP,oBA0FH,SAEiCz6E,EAAAE,GAAA,OAAAijF,EAAAl8P,MAAC,KAADC,UAAA,EA3F9Bi5P,uBAiGH,SAEoChgF,EAAAC,EAAAE,EAAAsF,GAAA,OAAAw9E,EAAAn8P,MAAC,KAADC,UAAA,EAlGjCo5P,mBA6GH,SAEgCv6E,EAAAG,EAAAG,GAAA,OAAAg9E,EAAAp8P,MAAC,KAADC,UAAA,EA9G7Bo8P,mBAoHH,SAEgCh9E,EAAAG,GAAA,OAAA88E,EAAAt8P,MAAC,KAADC,UAAA,EArH7Bw2P,eA2HH,SAE4B92E,EAAAC,EAAAG,GAAA,OAAAw8E,EAAAv8P,MAAC,KAADC,UAAA,EA5HzB05P,6BAmIH,SAE0C35E,EAAAC,EAAAC,GAAA,OAAAs8E,EAAAx8P,MAAC,KAADC,UAAA,EApIvCw8P,kCA2IH,SAE+Cr8E,EAAAC,EAAAC,GAAA,OAAAo8E,EAAA18P,MAAC,KAADC,UAAA,EA5I5C08P,kCAmJH,SAE+Cp8E,EAAAC,EAAAo8E,GAAA,OAAAC,EAAA78P,MAAC,KAADC,UAAA,GAlJhD,OAAO05B,EAEqB,SAAAyhO,IAM3B,OAN2BA,GAAA18P,OAAAC,UAA5B,SAAAC,EAA6BiiD,EAASh5C,GAAI,OAAAlJ,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAErBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,UAAAn+C,OAASmF,EAAI,WAAS,cAAA/I,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE9Fk9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAE0C,SAAAq7P,IAM1C,OAN0CA,GAAA58P,OAAAC,UAA3C,SAAA0C,EAA4Cw/C,GAAO,OAAAliD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAE9BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,+BAA6B,cAAAr/C,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAErGw6C,EAASx6C,EAAAG,IAAM,wBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAE+B,SAAAs7P,IAM/B,OAN+BA,GAAA78P,OAAAC,UAAhC,SAAAwD,EAAiCimI,GAAc,OAAAzpI,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAE1BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiC0lI,EAAejrH,GAAE,UAAAza,OAAS0lI,EAAe5gE,UAAS,oBAAkB,cAAAnlE,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAErI25C,EAAS35C,EAAAV,IAAM,wBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAE2C,SAAAu7P,IAM3C,OAN2CA,GAAA98P,OAAAC,UAA5C,SAAAoE,EAA6C89C,EAASqxC,GAAS,OAAAvzF,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAE1CoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,kCAAAn+C,OAAiCwvF,EAAS,oBAAkB,cAAAlvF,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAEpIg5C,EAASh5C,EAAArB,IAAM,wBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAEgD,SAAAy7P,IAMhD,OANgDA,GAAAh9P,OAAAC,UAAjD,SAAA6K,EAAkDq3C,EAAS1wB,EAAS+hE,GAAS,OAAAvzF,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAExDoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,iCAAAn+C,OAAgCytB,EAAO,aAAAztB,OAAYwvF,EAAS,oBAAkB,cAAAroF,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEtJmyC,EAASnyC,EAAAlI,IAAM,wBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAEqC,SAAA07P,IAMrC,OANqCA,GAAAj9P,OAAAC,UAAtC,SAAAkM,EAAuCg2C,EAASqxC,GAAS,OAAAvzF,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEpCoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,kCAAAn+C,OAAiCwvF,EAAS,cAAY,cAAApnF,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAE9HkxC,EAASlxC,EAAAnJ,IAAM,wBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAEoC,SAAA47P,IAMpC,OANoCA,GAAAn9P,OAAAC,UAArC,SAAA8uB,EAAsC26G,EAAgBj4G,GAAO,OAAAxxB,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAExCoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiC0lI,EAAejrH,GAAE,UAAAza,OAAS0lI,EAAe5gE,UAAS,YAAA9kE,OAAWytB,EAAO,oBAAkB,cAAAzC,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAEvJsuB,EAAStuB,EAAA/rB,IAAM,wBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAEtBztB,MAAA,KAAAC,UAAA,CAEyB,SAAA67P,IAMzB,OANyBA,GAAAp9P,OAAAC,UAA1B,SAAAkvB,EAA2Bu6G,GAAc,OAAAzpI,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAEpBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiC0lI,EAAejrH,GAAE,UAAAza,OAAS0lI,EAAe5gE,UAAS,cAAY,cAAA15C,EAAA3f,OAAA,SAAA2f,EAAA5uB,MAAA,OAAA4uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAE/HkuB,EAASluB,EAAAnsB,IAAM,wBAAAmsB,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAEtB7tB,MAAA,KAAAC,UAAA,CAE+B,SAAA87P,IAM/B,OAN+BA,GAAAr9P,OAAAC,UAAhC,SAAAwvB,EAAiC0yB,EAASqxC,GAAS,OAAAvzF,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,cAAAovB,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAE9BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,uBAAAn+C,OAAsBwvF,EAAS,oBAAkB,cAAA9jE,EAAAjgB,OAAA,SAAAigB,EAAAlvB,MAAA,OAAAkvB,EAAArvB,KAAA,EAAAqvB,EAAAzsB,GAAAysB,EAAA,SAEzH4tB,EAAS5tB,EAAAzsB,IAAM,wBAAAysB,EAAAruB,OAAA,GAAAouB,EAAA,mBAEtBnuB,MAAA,KAAAC,UAAA,CAEsC,SAAAg8P,IAMtC,OANsCA,GAAAv9P,OAAAC,UAAvC,SAAAk/C,EAAwCgD,EAAS1wB,EAAS+hE,GAAS,OAAAvzF,UAAA,SAAAm/C,GAAA,cAAAA,EAAA/+C,KAAA++C,EAAA9+C,MAAA,cAAA8+C,EAAA/+C,KAAA,EAAA++C,EAAA9+C,KAAA,EAE9CoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,sBAAAn+C,OAAqBytB,EAAO,aAAAztB,OAAYwvF,EAAS,oBAAkB,cAAAp0C,EAAA3vC,OAAA,SAAA2vC,EAAA5+C,MAAA,OAAA4+C,EAAA/+C,KAAA,EAAA++C,EAAAn8C,GAAAm8C,EAAA,SAE3I9B,EAAS8B,EAAAn8C,IAAM,wBAAAm8C,EAAA/9C,OAAA,GAAA89C,EAAA,mBAEtB79C,MAAA,KAAAC,UAAA,CAEiC,SAAAi8P,IAMjC,OANiCA,GAAAx9P,OAAAC,UAAlC,SAAAo/C,EAAmC8C,EAASqxC,GAAS,OAAAvzF,UAAA,SAAAq/C,GAAA,cAAAA,EAAAj/C,KAAAi/C,EAAAh/C,MAAA,cAAAg/C,EAAAj/C,KAAA,EAAAi/C,EAAAh/C,KAAA,EAEhCoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,uBAAAn+C,OAAsBwvF,EAAS,cAAY,cAAAl0C,EAAA7vC,OAAA,SAAA6vC,EAAA9+C,MAAA,OAAA8+C,EAAAj/C,KAAA,EAAAi/C,EAAAr8C,GAAAq8C,EAAA,SAEnHhC,EAASgC,EAAAr8C,IAAM,wBAAAq8C,EAAAj+C,OAAA,GAAAg+C,EAAA,mBAEtB/9C,MAAA,KAAAC,UAAA,CAEoC,SAAAk8P,IAWpC,OAXoCA,GAAAz9P,OAAAC,UAArC,SAAAoiD,EAAsCF,EAASt/C,EAAMgG,EAAMkiD,GAAQ,OAAA9qD,UAAA,SAAAqiD,GAAA,cAAAA,EAAAjiD,KAAAiiD,EAAAhiD,MAAA,cAAAgiD,EAAAjiD,KAAA,EAAAiiD,EAAAhiD,KAAA,EAE9CoB,EAAM,CACfmC,OAAQ,OACRC,IAAK,GAAFE,OAAKD,OAAM,kCAAAC,OAAiCm+C,EAAO,oBACtDt/C,KAAMA,EACNkQ,OAAQ,CAAE,SAAYg4C,EAAU,KAAQliD,KAC1C,cAAAy5C,EAAA7yC,OAAA,SAAA6yC,EAAA9hD,MAAA,OAAA8hD,EAAAjiD,KAAA,EAAAiiD,EAAAr/C,GAAAq/C,EAAA,SAEFhF,EAASgF,EAAAr/C,IAAM,wBAAAq/C,EAAAjhD,OAAA,GAAAghD,EAAA,mBAEtB/gD,MAAA,KAAAC,UAAA,CAEgC,SAAAm8P,IAMhC,OANgCA,GAAA19P,OAAAC,UAAjC,SAAA21F,EAAkCzzC,EAASM,EAAQ3iC,GAAO,OAAA7f,UAAA,SAAA41F,GAAA,cAAAA,EAAAx1F,KAAAw1F,EAAAv1F,MAAA,cAAAu1F,EAAAx1F,KAAA,EAAAw1F,EAAAv1F,KAAA,EAErCoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,oBAAAn+C,OAAmBy+C,GAAU3iC,GAAQ,cAAA+1E,EAAApmF,OAAA,SAAAomF,EAAAr1F,MAAA,OAAAq1F,EAAAx1F,KAAA,EAAAw1F,EAAA5yF,GAAA4yF,EAAA,SAE7Gv4C,EAASu4C,EAAA5yF,IAAM,wBAAA4yF,EAAAx0F,OAAA,GAAAu0F,EAAA,mBAEtBt0F,MAAA,KAAAC,UAAA,CAEgC,SAAAq8P,IAMhC,OANgCA,GAAA59P,OAAAC,UAAjC,SAAA61F,EAAkC4zC,EAAgBynH,GAAU,OAAAlxP,UAAA,SAAA81F,GAAA,cAAAA,EAAA11F,KAAA01F,EAAAz1F,MAAA,cAAAy1F,EAAA11F,KAAA,EAAA01F,EAAAz1F,KAAA,EAEvCoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAAC,OAAiC0lI,EAAejrH,GAAE,UAAAza,OAAS0lI,EAAe5gE,UAAS,YAAA9kE,OAAWmtP,EAAW1yO,GAAE,WAAS,cAAAs3E,EAAAtmF,OAAA,SAAAsmF,EAAAv1F,MAAA,OAAAu1F,EAAA11F,KAAA,EAAA01F,EAAA9yF,GAAA8yF,EAAA,SAEpJz4C,EAASy4C,EAAA9yF,IAAM,wBAAA8yF,EAAA10F,OAAA,GAAAy0F,EAAA,mBAEtBx0F,MAAA,KAAAC,UAAA,CAE4B,SAAAs8P,IAO5B,OAP4BA,GAAA79P,OAAAC,UAA7B,SAAAo7F,EAA8Bx4F,EAAMs/C,EAASh5C,GAAI,OAAAlJ,UAAA,SAAAq7F,GAAA,cAAAA,EAAAj7F,KAAAi7F,EAAAh7F,MAAA,cAAAg7F,EAAAj7F,KAAA,EAAAi7F,EAAAh7F,KAAA,EAE5BoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,UAAAn+C,OAASmF,EAAI,SAAStG,GAAK,cAAAy4F,EAAA7rF,OAAA,SAAA6rF,EAAA96F,MAAA,OAAA86F,EAAAj7F,KAAA,EAAAi7F,EAAAr4F,GAAAq4F,EAAA,SAEpGh+C,EAASg+C,EAAAr4F,IACTg8C,EAASq8C,EAAAr4F,IAAM,yBAAAq4F,EAAAj6F,OAAA,GAAAg6F,EAAA,mBAEtB/5F,MAAA,KAAAC,UAAA,CAE0C,SAAAu8P,IAO1C,OAP0CA,GAAA99P,OAAAC,UAA3C,SAAAs7F,EAA4Cp5C,EAASh5C,EAAMs5C,GAAM,OAAAxiD,UAAA,SAAAw7F,GAAA,cAAAA,EAAAp7F,KAAAo7F,EAAAn7F,MAAA,cAAAm7F,EAAAp7F,KAAA,EAAAo7F,EAAAn7F,KAAA,EAE5CoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,kCAAAC,OAAiCm+C,EAAO,UAAAn+C,OAASmF,EAAI,WAAAnF,OAAUy+C,IAAS,cAAAg5C,EAAAhsF,OAAA,SAAAgsF,EAAAj7F,MAAA,OAAAi7F,EAAAp7F,KAAA,EAAAo7F,EAAAx4F,GAAAw4F,EAAA,SAE3Gn+C,EAASm+C,EAAAx4F,IACTg8C,EAASw8C,EAAAx4F,IAAM,yBAAAw4F,EAAAp6F,OAAA,GAAAk6F,EAAA,mBAEtBj6F,MAAA,KAAAC,UAAA,CAE+C,SAAAy8P,IAO/C,OAP+CA,GAAAh+P,OAAAC,UAAhD,SAAAwzH,EAAiDiW,EAAgBwoH,EAAWtkK,GAAO,OAAA3tF,UAAA,SAAAyzH,GAAA,cAAAA,EAAArzH,KAAAqzH,EAAApzH,MAAA,cAAAozH,EAAArzH,KAAA,EAAAqzH,EAAApzH,KAAA,EAE9DoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,kCAAAC,OAAiC0lI,EAAejrH,GAAE,UAAAza,OAAS0lI,EAAe5gE,UAAS,WAAA9kE,OAAUkuP,EAAUzzO,GAAE,iBAAiBmvE,GAAQ,cAAA8lC,EAAAjkH,OAAA,SAAAikH,EAAAlzH,MAAA,OAAAkzH,EAAArzH,KAAA,EAAAqzH,EAAAzwH,GAAAywH,EAAA,SAElKp2E,EAASo2E,EAAAzwH,IACTg8C,EAASy0E,EAAAzwH,IAAM,yBAAAywH,EAAAryH,OAAA,GAAAoyH,EAAA,mBAEtBnyH,MAAA,KAAAC,UAAA,CAE+C,SAAA48P,IAO/C,OAP+CA,GAAAn+P,OAAAC,UAAhD,SAAA4zH,EAAiD6V,EAAgBynH,EAAYvjK,GAAO,OAAA3tF,UAAA,SAAA6zH,GAAA,cAAAA,EAAAzzH,KAAAyzH,EAAAxzH,MAAA,cAAAwzH,EAAAzzH,KAAA,EAAAyzH,EAAAxzH,KAAA,EAE/DoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,kCAAAC,OAAiC0lI,EAAejrH,GAAE,UAAAza,OAAS0lI,EAAe5gE,UAAS,YAAA9kE,OAAWmtP,EAAW1yO,GAAE,gBAAgBmvE,GAAQ,cAAAkmC,EAAArkH,OAAA,SAAAqkH,EAAAtzH,MAAA,OAAAszH,EAAAzzH,KAAA,EAAAyzH,EAAA7wH,GAAA6wH,EAAA,SAEnKx2E,EAASw2E,EAAA7wH,IACTg8C,EAAS60E,EAAA7wH,IAAM,yBAAA6wH,EAAAzyH,OAAA,GAAAwyH,EAAA,mBAEtBvyH,MAAA,KAAAC,UAAA,CAED,SAAS+7C,EAAU5J,GACflpC,EAAiB,MAAOkpC,EAC5B,CAEA,SAASuL,EAAUvL,GACf,MAAMA,CACV,CAEJ,C,+NCvL6B,SAAA7zC,GAAUsV,EAAmBu0H,EAAgBwoH,EAAWjwP,EAAeonI,EAA4B/gE,GAC5H,IAAM9+D,EAAKwH,KAmBV,SAEcqhP,IAAS,OAAAG,EAAAlxP,MAAC,KAADC,UAAA,UAAAixP,IAOvB,OAPuBA,GAAAxyP,OAAAC,UAAxB,SAAAC,IAAA,IAAAyoE,EAAA9lE,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACsC,OAAlCkJ,EAAGipP,yBAA0B,EAAKryP,EAAAE,KAAA,EACXgoE,EAA+BopL,0BAA0BhoH,EAAejrH,GAAIyzO,EAAUzzO,GAAIirH,EAAe5gE,WAAU,OAGvG,OAHuGH,EAAAvoE,EAAAI,KAAlIqC,EAAI8lE,EAAJ9lE,KACR2G,EAAGopP,0BAA4B/vP,EAC/B2G,EAAGopP,0BAA4BppP,EAAGopP,0BAA0BztP,QAAO,SAAAwtP,GAAK,OAAIA,EAAMntN,YAAuC,UAAzBh8B,EAAG8oP,kBAAgC,OAAS,iBAAiB,IAC7J9oP,EAAGipP,yBAA0B,EAAMryP,EAAAqP,OAAA,SAC5BjG,EAAGopP,2BAAyB,wBAAAxyP,EAAAiB,OAAA,GAAAnB,EAAA,MACtCoB,MAAA,KAAAC,UAAA,CAEuB,SAAA68P,IAcvB,OAduBA,GAAAp+P,OAAAC,UAAxB,SAAA0C,IAAA,IAAAE,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAKK,OAJDkJ,EAAGwgG,YAAc,IAAI1+F,EAEjBzI,EAAO,CACPwwP,OAAQ7pP,EAAGoqP,gBACd9wP,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAGS+oI,EAA2B4nH,uBAAuBvnH,EAAejrH,GAAIirH,EAAe5gE,UAAWopL,EAAUzzO,GAAI5b,GAAK,cAAAC,EAAAxC,KAAA,EAClH2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,OAQ5D70F,EAAkBuC,QAPN5U,EAAAxC,KAAA,iBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAG,GAAAH,EAAA,SAER0G,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAAvH,EAAAzB,OAAA,GAAAsB,EAAA,oBAE3CrB,MAAA,KAAAC,UAAA,CA1CDiI,EAAG60P,UA0BF,WAEuB,OAAAD,EAAA98P,MAAC,KAADC,UAAA,EA3BxBiI,EAAG+oP,yBAaH,WACI/oP,EAAGoqP,eAAiB,KACpBvB,GACJ,EAfA7oP,EAAGwC,OA8CH,WACImJ,EAAkBxH,SACtB,EA9CAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GACzBlgI,EAAG0oP,UAAYA,EAKX1oP,EAAG8oP,kBAAoB,QACvBD,GAwCR,CCtD6B,SAAAxyP,GAAUyoE,EAAgCD,EAAgCxwD,GAEnG,IAAMrO,EAAKwH,KAOY,SAAA7O,IAGtB,OAHsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACUg1P,IAAW,OACjB9rP,EAAGssP,kBAAoB,KAAK,wBAAA11P,EAAAiB,OAAA,GAAAnB,EAAA,MAC/BoB,MAAA,KAAAC,UAAA,UAEc+zP,IAAS,OAAAC,EAAAj0P,MAAC,KAADC,UAAA,UAAAg0P,IAKvB,OALuBA,GAAAv1P,OAAAC,UAAxB,SAAA0C,IAAA,IAAAgmE,EAAA9lE,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAC4B,OAAxBkJ,EAAG0/D,eAAgB,EAAKpmE,EAAAxC,KAAA,EACDgoE,EAA+Ba,mBAAmB3/D,EAAG+nI,uBAAwB/nI,EAAG80P,mBAAkB,OAAA31L,EAAA7lE,EAAAtC,KAAjHqC,EAAI8lE,EAAJ9lE,KACR2G,EAAGg/D,OAAS3lE,EACZ2G,EAAG0/D,eAAgB,EAAM,wBAAApmE,EAAAzB,OAAA,GAAAsB,EAAA,MAC5BrB,MAAA,KAAAC,UAAA,CAEqC,SAAAg9P,IAgBrC,OAhBqCA,GAAAv+P,OAAAC,UAAtC,SAAAwD,IAAA,IAAA2yP,EAAA,OAAAn2P,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAUM,OATE81P,EAAav+O,EAAUvU,KAAK,CAC5B0X,YAAa,oFACbC,WAAYujP,GACZrjP,aAAc,SACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,EAC/C2gH,UAAW,WAAF,OAAQ1oP,EAAG80P,iBAAiB,KAE3C36P,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGQ81P,EAAWzhP,OAAM,OACvB2gP,IAAY3xP,EAAArD,KAAA,uBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,mBAEnBnC,MAAA,KAAAC,UAAA,CAEsC,SAAAk9P,IAYtC,OAZsCA,GAAAz+P,OAAAC,UAAvC,SAAAoE,EAAwCsuP,GAAK,IAAA7yO,EAAA,OAAA7f,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAIxC,OAFGwf,EAAU,CACVuzO,OAAQ,CAACV,IACZruP,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGS+nE,EAA+B01L,kCAAkCv0P,EAAG+nI,uBAAwB/nI,EAAG80P,kBAAmBx+O,GAAQ,OAChIw1O,IAAYhxP,EAAAhE,KAAA,uBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAInB/C,MAAA,KAAAC,UAAA,CA/CDiI,EAAGk1P,wBAeF,WAEqC,OAAAH,EAAAj9P,MAAC,KAADC,UAAA,EAhBtCiI,EAAGm1P,yBAgCF,SAEsC7vP,GAAA,OAAA2vP,EAAAn9P,MAAC,KAADC,UAAA,EAhCvCiI,EAAG+iD,WAAsB,WAEF,OAAApqD,EAAAb,MAAC,KAADC,UAAA,CA2C3B,C,yCDtDoE1B,GAAAgxB,QAAA,iICAShxB,GAAAgxB,QAAA,gFCmB7E,SAV4B,CACxBm5B,SAAU,CACNunF,uBAAwB,IACxB+sH,kBAAmB,KAEvBrjP,WAAY2jP,GACZzjP,aAAc,SACdH,YAAa,qF,+NCbY,SAAAnb,GAAUsV,EAAmBxT,EAAS+nI,EAAgBynH,EAAYlvP,EAAeu/F,EAAoBzpF,EAAkBsxH,EAA4BhhE,GAC5K,IAAM7+D,EAAKwH,KAaY,SAAA7O,IAEtB,OAFsBA,GAAAnC,OAAAC,UAAvB,SAAAoE,IAAA,OAAApE,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAhE,KAAA,EACUu+P,IAAY,wBAAAv6P,EAAAjD,OAAA,GAAAgD,EAAA,MACrB/C,MAAA,KAAAC,UAAA,UAEcs9P,IAAU,OAAAC,EAAAx9P,MAAC,KAADC,UAAA,UAAAu9P,IA0BxB,OA1BwBA,GAAA9+P,OAAAC,UAAzB,SAAA6K,IAAA,OAAA7K,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAAA6K,EAAAlI,GACYuG,EAAGkgI,eAAe5gE,UAAS39D,EAAA7K,KAC1B,SAD0B6K,EAAAlI,GACpB,EAIN,YAJMkI,EAAAlI,GAIG,EAIT,YAJSkI,EAAAlI,GAIA,EAGT,oBAHSkI,EAAAlI,GAGQ,GAIjB,SAJiBkI,EAAAlI,GAIX,mBAba,OADpBuG,EAAG0hL,iBAAmB,OACtBknE,IAAoBjnP,EAAAsE,OAAA,mBAIG,OADvBjG,EAAG4rP,oBAAsB,UACzBC,IAAuBlqP,EAAAsE,OAAA,mBAGT,OAAdg7F,IAAct/F,EAAAsE,OAAA,2BAAAtE,EAAA7K,KAAA,GAGRy+P,IAAa,QACY,OAA/BjL,IAA+B3oP,EAAAsE,OAAA,oBAGJ,OAA3BjG,EAAG+qP,iBAAmB,KAAKppP,EAAA7K,KAAA,GACrBy+P,IAAa,QAEC,OADpBprK,IACA8gK,IAAoBtpP,EAAAsE,OAAA,2BAAAtE,EAAAsE,OAAA,qCAAAtE,EAAA9J,OAAA,GAAAyJ,EAAA,MAK/BxJ,MAAA,KAAAC,UAAA,UAEcw9P,IAAW,OAAAC,EAAA19P,MAAC,KAADC,UAAA,CAQ1B,SAAAy9P,IAFC,OAEDA,GAAAh/P,OAAAC,UARA,SAAAkM,IAAA,IAAA0kG,EAAAhuG,EAAA,OAAA5C,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA9L,KAAA,EACyBkhG,EAAmB9F,qBAAoB,OAAAmV,EAAAzkG,EAAA5L,KAAtDqC,EAAIguG,EAAJhuG,KACN2G,EAAGm4F,SAAW9+F,EAEd2G,EAAGgrP,kBAAoBhrP,EAAGm4F,SAASp1F,MAAK,SAAAuzE,GAAO,OAAIA,EAAQh+C,SAAS,IAAED,UAAU,wBAAAz1B,EAAA/K,OAAA,GAAA8K,EAAA,MAEnF7K,MAAA,KAAAC,UAAA,CAGD,SAAS6wP,IAmBS,IAAFxnM,EAjBZphD,EAAGqpP,qBAAuB,CACtB1tP,OAAQ,WACRomD,WAAW,EACXtiB,QAAS,CACL0iB,WAAY,GACZC,WAAY,WACZC,YAAa,SAAU16C,GACnBA,EAAQ+W,QAAQjmB,EAAcmuC,yBAAyBj/B,EAAS3H,EAAGspP,gBAAiB,cACxF,GAEJzqP,OAAQ,IACRmjD,YAAa,sBAGjBhiD,EAAGy1P,wBAA0B,IAAIxuP,MAAM5N,KAAKmlB,WAAW,CACnD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAOiR,GAAO,IAAAw3D,EAAA9lE,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACe,OAA/BkJ,EAAG0hD,sBAAuB,EAAK9qD,EAAAE,KAAA,EACV+nE,EAA+B60L,uBAAuBxzH,EAAgBynH,EAAW1yO,IAAG,OAAAkqD,EAAAvoE,EAAAI,KACzGqC,GADMA,EAAI8lE,EAAJ9lE,MACMsC,QAAO,SAAAw7B,GAAI,OAAIA,EAAK3uB,OAASxI,EAAG0hL,gBAAgB,IAC5D1hL,EAAGspP,gBAAkBjwP,EACrBsO,EAAQ+W,QAAQrlB,GAChB2G,EAAG0hD,sBAAuB,EAAM,wBAAA9qD,EAAAiB,OAAA,GAAAnB,EAAA,KACnC,SAPG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KAUhB,CASA,SAAS8zP,IAmBS,IAAFhjM,EAjBZ7oD,EAAGgsP,yBAA2B,CAC1BrwP,OAAQ,WACRomD,WAAW,EACXtiB,QAAS,CACL0iB,WAAY,GACZC,WAAY,WACZC,YAAa,SAAU16C,GACnBA,EAAQ+W,QAAQjmB,EAAcmuC,yBAAyBj/B,EAAS3H,EAAGs5O,oBAAqB,MAC5F,GAEJz6O,OAAQ,IACRmjD,YAAa,0BAGjBhiD,EAAG01P,4BAA8B,IAAIzuP,MAAM5N,KAAKmlB,WAAW,CACvD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAI2tC,GAAAryD,OAAAC,UAAE,SAAA0C,EAAOwO,GAAO,IAAA83D,EAAApmE,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACmB,OAAnCkJ,EAAGo3O,0BAA2B,EAAK99O,EAAAxC,KAAA,EACd+nE,EAA+B60L,uBAAuBxzH,EAAgBynH,EAAW1yO,IAAG,OAAAwqD,EAAAnmE,EAAAtC,KACzGqC,GADMA,EAAIomE,EAAJpmE,MACMsC,QAAO,SAAAwpD,GAAO,OAAIA,EAAQ38C,OAASxI,EAAG4rP,mBAAmB,IACrE5rP,EAAGs5O,oBAAsBjgP,EACzBsO,EAAQ+W,QAAQrlB,GAChB2G,EAAGo3O,0BAA2B,EAAM,wBAAA99O,EAAAzB,OAAA,GAAAsB,EAAA,KACvC,SAPGgI,GAAA,OAAA0nD,EAAA/wD,MAAA,KAAAC,UAAA,KAUhB,CAQA,SACeuyP,IAA4B,OAAAC,EAAAzyP,MAAC,KAADC,UAAA,CA+B3C,SAAAwyP,IAFC,OAEDA,GAAA/zP,OAAAC,UA/BA,SAAAkvB,IAAA,OAAAlvB,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,OA0BO,OAxBHkJ,EAAGwqP,+BAAiC,CAChC7uP,OAAQ,WACRomD,WAAW,EACXtiB,QAAS,CACL0iB,WAAY,GACZC,WAAY,WACZC,YAAa,SAAU16C,GACnBA,EAAQ+W,QAAQjmB,EAAcmuC,yBAAyBj/B,EAAS3H,EAAGg3E,0BAA2B,qBAClG,GAEJn4E,OAAQ,KAGZmB,EAAGyqP,kCAAoC,IAAIxjP,MAAM5N,KAAKmlB,WAAW,CAE7D+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,WAAF,IAAA2lI,GAAArqJ,OAAAC,UAAE,SAAA8uB,EAAO5d,GAAO,IAAAguP,EAAAt8P,EAAA,OAAA5C,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA1uB,KAAA,EACO+nE,EAA+B00L,mCAAmCrzH,EAAejrH,GAAI0yO,EAAW1yO,GAAIjV,EAAGgrP,mBAAkB,OAAA2K,EAAAnwO,EAAAxuB,KAAxIqC,EAAIs8P,EAAJt8P,KACR2G,EAAG2qP,wBAAwB1wN,WAAW,CAAE+nB,YAAa,oCACrDhiD,EAAGg3E,0BAA4B39E,EAC/BsO,EAAQ+W,QAAQrlB,GAAM,wBAAAmsB,EAAA3tB,OAAA,GAAA0tB,EAAA,KAJtB,OAKH,SALGquB,GAAA,OAAAitG,EAAA/oJ,MAAA,KAAAC,UAAA,EAAE,MAOX6tB,EAAA3f,OAAA,SAEIjG,EAAGyqP,mCAAiC,wBAAA7kO,EAAA/tB,OAAA,GAAA8tB,EAAA,KAC9C4kO,EAAAzyP,MAAA,KAAAC,UAAA,UAGckpG,IAAW,OAAArB,EAAA9nG,MAAC,KAADC,UAAA,CAK1B,SAAA6nG,IAFC,OAEDA,GAAAppG,OAAAC,UALA,SAAAwvB,IAAA,IAAA2vO,EAAAv8P,EAAA,OAAA5C,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,cAAAovB,EAAApvB,KAAA,EACyB+nE,EAA+B60L,uBAAuBxzH,EAAgBynH,EAAW1yO,IAAG,OAAA2gP,EAAA1vO,EAAAlvB,KAAnGqC,EAAIu8P,EAAJv8P,KACN2G,EAAGgQ,mBAAqB3W,EAAK,wBAAA6sB,EAAAruB,OAAA,GAAAouB,EAAA,MAChCnuB,MAAA,KAAAC,UAAA,CAG6B,SAAA89P,IAO7B,OAP6BA,GAAAr/P,OAAAC,UAA9B,SAAAk/C,EAA+Bh2C,GAAI,OAAAlJ,UAAA,SAAAm/C,GAAA,cAAAA,EAAA/+C,KAAA++C,EAAA9+C,MAAA,OAC/BkJ,EAAG4lH,cAAgB,KACN,oBAATjmH,EACAK,EAAGyqP,kCAAkCvvO,OAErClb,EAAGqrP,4BAA4BnwO,OAClC,wBAAA06B,EAAA/9C,OAAA,GAAA89C,EAAA,MACJ79C,MAAA,KAAAC,UAAA,UAEcoyF,IAAY,OAAAC,EAAAtyF,MAAC,KAADC,UAAA,UAAAqyF,IAG1B,OAH0BA,GAAA5zF,OAAAC,UAA3B,SAAAo/C,IAAA,IAAAkgB,EAAA18D,EAAA,OAAA5C,UAAA,SAAAq/C,GAAA,cAAAA,EAAAj/C,KAAAi/C,EAAAh/C,MAAA,cAAAg/C,EAAAh/C,KAAA,EACyByX,EAAiB47E,eAAc,OAAAp0B,EAAAjgB,EAAA9+C,KAA9CqC,EAAI08D,EAAJ18D,KACN2G,EAAGkrP,UAAY7xP,EAAK,wBAAAy8C,EAAAj+C,OAAA,GAAAg+C,EAAA,MACvB/9C,MAAA,KAAAC,UAAA,CAED,SAASkzP,IAiBS,IAAFzqG,EAhBZxgJ,EAAGorP,oBAAsB,CACrBzvP,OAAQ,WACRomD,WAAW,EACXtiB,QAAS,CACL0iB,WAAY,GACZC,WAAY,WACZC,YAAa,SAAU16C,GACnBA,EAAQ+W,QAAQjmB,EAAcmuC,yBAAyBj/B,EAAS3H,EAAGi4E,eAAgB,UACvF,GAEJp5E,OAAQ,KAGZmB,EAAGqrP,4BAA8B,IAAIpkP,MAAM5N,KAAKmlB,WAAW,CACvD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIslI,GAAAhqJ,OAAAC,UAAE,SAAAwD,EAAO0N,GAAO,IAAAwiP,EAAA9wP,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EACO+nE,EAA+Bi1L,yBAAyB5zH,EAAejrH,GAAI0yO,EAAW1yO,GAAIjV,EAAGgrP,mBAAkB,OAAAb,EAAAhwP,EAAAnD,KAA9HqC,EAAI8wP,EAAJ9wP,KACR2G,EAAGurP,aAAatxN,WAAW,CAAE+nB,YAAa,uBAEtChiD,EAAG+qP,kBAA4C,0BAAxB/qP,EAAG+qP,iBAC1B/qP,EAAGi4E,eAAiB5+E,EAAKsC,QAAO,SAAAy+C,GAAI,MAAsB,QAAlBA,EAAKyrD,QAAkB,IACxD7lG,EAAG+qP,kBAA4C,qBAAxB/qP,EAAG+qP,iBACjC/qP,EAAGi4E,eAAiB5+E,EAAKsC,QAAO,SAAAy+C,GAAI,MAAsB,OAAlBA,EAAKyrD,QAAiB,IAE9D7lG,EAAGi4E,eAAiB5+E,EAGxBsO,EAAQ+W,QAAQ1e,EAAGi4E,gBAAgB,wBAAA99E,EAAAtC,OAAA,GAAAoC,EAAA,KACtC,SAbGsR,GAAA,OAAAi1I,EAAA1oJ,MAAA,KAAAC,UAAA,KAgBhB,CAGA,SAAS+9P,IACL,OAAQ91P,EAAGkgI,eAAe5gE,WACtB,IAAK,OAEL,IAAK,UACD,MAAO,CAAE8mD,MAAOpmH,EAAG4lH,eACvB,IAAK,UAED,MAAO,CAAE3vD,WADQj2D,EAAG4lH,cAAcxsF,KAAI,SAAA1uB,GAAI,OAAIA,EAAKy3B,SAAS,KAEhE,IAAK,kBACD,MAAO,CAAE0oN,mBAAoB7qP,EAAG4lH,eACpC,IAAK,OACD,MAAO,CACHvtF,UAAWr4B,EAAGgrP,kBACdS,QAASzrP,EAAG4lH,eAM5B,CAEuB,SAAAmwI,IAWtB,OAXsBA,GAAAv/P,OAAAC,UAAvB,SAAAoiD,IAAA,IAAAx/C,EAAA4/C,EAAA,OAAAxiD,UAAA,SAAAqiD,GAAA,cAAAA,EAAAjiD,KAAAiiD,EAAAhiD,MAAA,OACyC,OAArCkJ,EAAGwgG,YAAc,IAAI1+F,EAAgBg3C,EAAAhiD,KAAA,EAClBg/P,IAAe,OAAxB,OAAJz8P,EAAIy/C,EAAA9hD,KAAA8hD,EAAAjiD,KAAG,EAAHiiD,EAAAhiD,KAAG,EAGU+oI,EAA2B0nH,sBAAsBrnH,EAAgBynH,EAAYtuP,GAAK,OAA3F,OAAN4/C,EAAMH,EAAA9hD,KAAA8hD,EAAAhiD,KAAG,GACP2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,QACxDtyF,EAAM+qC,GAAQH,EAAAhiD,KAAA,iBAAAgiD,EAAAjiD,KAAA,GAAAiiD,EAAAr/C,GAAAq/C,EAAA,SAEd94C,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAAi4C,EAAAjhD,OAAA,GAAAghD,EAAA,oBAE3C/gD,MAAA,KAAAC,UAAA,CAED,SAASmW,EAAM+qC,GACXttC,EAAkBuC,MAAM+qC,EAC5B,CA7PAj5C,EAAGgqP,wBAmFH,WACIhqP,EAAGypP,cAAcn+O,MAAM,IACvBtL,EAAGypP,cAAcxvN,WAAW,CAAE+nB,YAAa,aAAFxnD,OAAerC,EAAQ,iCAARA,CAA0C6H,EAAG0hL,kBAAiB,UACtH1hL,EAAGy1P,wBAAwBv6O,MAC/B,EAtFAlb,EAAGqsP,2BAwHH,WACIrsP,EAAGksP,kBAAkB5gP,MAAM,IAC3BtL,EAAGksP,kBAAkBjyN,WAAW,CAAE+nB,YAAa,yBAAFxnD,OAA2BrC,EAAQ,iCAARA,CAA0C6H,EAAG4rP,qBAAoB,UACzI5rP,EAAG01P,4BAA4Bx6O,MACnC,EA3HAlb,EAAGg2P,gBAiKF,SAG6B50P,GAAA,OAAAy0P,EAAA/9P,MAAC,KAADC,UAAA,EAnK9BiI,EAAGi2P,SAyOF,WAEsB,OAAAF,EAAAj+P,MAAC,KAADC,UAAA,EA1OvBiI,EAAGwC,OA2PH,WACImJ,EAAkBxH,SACtB,EA3PAnE,EAAGkgI,e,wWAAc7tE,CAAA,GAAQ6tE,GACzBlgI,EAAG2nP,WAAaA,EAEL,WAEYhvP,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EAyPJ,CCtQ6B,SAAA9F,GAAUwoE,EAAgCxwD,GAEnE,IAAMrO,EAAKwH,KAOY,SAAA7O,IAGtB,OAHsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACIo/P,IACAl2P,EAAG0rH,iBAAmB,KAAK,wBAAA90H,EAAAiB,OAAA,GAAAnB,EAAA,MAC9BoB,MAAA,KAAAC,UAAA,UAEcm+P,IAAa,OAAAC,EAAAr+P,MAAC,KAADC,UAAA,UAAAo+P,IAM3B,OAN2BA,GAAA3/P,OAAAC,UAA5B,SAAA0C,IAAA,IAAAgmE,EAAA9lE,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACgC,OAA5BkJ,EAAGo2P,mBAAoB,EAAK98P,EAAAxC,KAAA,EAEL+nE,EAA+Bs1L,mBAAmBn0P,EAAG+nI,uBAAwB/nI,EAAGq2P,oBAAmB,OAAAl3L,EAAA7lE,EAAAtC,KAAlHqC,EAAI8lE,EAAJ9lE,KACR2G,EAAGs2P,WAAaj9P,EAChB2G,EAAGo2P,mBAAoB,EAAM,wBAAA98P,EAAAzB,OAAA,GAAAsB,EAAA,MAChCrB,MAAA,KAAAC,UAAA,CAEqC,SAAAw+P,IAgBrC,OAhBqCA,GAAA//P,OAAAC,UAAtC,SAAAwD,IAAA,IAAAu8P,EAAA,OAAA//P,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAUM,OATE0/P,EAAiBnoP,EAAUvU,KAAK,CAChC0X,YAAa,qFACbC,WAAYglP,GACZ9kP,aAAc,SACdC,SAAU,SACVC,QAAS,CACLquH,eAAgB,WAAF,OAAQlgI,EAAG+nI,sBAAsB,EAC/C4/G,WAAY,WAAF,OAAQ3nP,EAAGq2P,kBAAkB,KAE7Cl8P,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGQ0/P,EAAerrP,OAAM,cAAAhR,EAAArD,KAAA,EACrBo/P,IAAe,OAAA/7P,EAAArD,KAAA,uBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,mBAE5BnC,MAAA,KAAAC,UAAA,CAE2C,SAAA2+P,IAW3C,OAX2CA,GAAAlgQ,OAAAC,UAA5C,SAAAoE,EAA6C87P,GAAS,IAAAvyK,EAAA,OAAA3tF,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAGjD,OAFKstF,EAAU,CACZwyK,QAAS,CAACD,EAAU1hP,KACvBna,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGS+nE,EAA+B41L,kCAAkCz0P,EAAG+nI,uBAAwB/nI,EAAGq2P,mBAAoBjyK,GAAQ,cAAAtpF,EAAAhE,KAAA,EAC3Ho/P,IAAe,OAAAp7P,EAAAhE,KAAA,uBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAI5B/C,MAAA,KAAAC,UAAA,CA/CDiI,EAAGwtP,wBAgBF,WAEqC,OAAA+I,EAAAz+P,MAAC,KAADC,UAAA,EAjBtCiI,EAAG62P,8BAiCF,SAE2CvxP,GAAA,OAAAoxP,EAAA5+P,MAAC,KAADC,UAAA,EAjC5CiI,EAAG+iD,WAAsB,WAEF,OAAApqD,EAAAb,MAAC,KAADC,UAAA,CA2C3B,CDrDuF1B,GAAAgxB,QAAA,oLCDRhxB,GAAAgxB,QAAA,+CCmB/E,SAV4B,CACxBm5B,SAAU,CACNunF,uBAAwB,IACxBsuH,mBAAoB,KAExB5kP,WAAYqlP,GACZnlP,aAAc,SACdH,YAAa,qFCLjB,GAAe7X,WACH,0CAA2C,IAClD+gB,UAAU,kBCJS,CACpBjJ,WCVyB,WACzB,IAAMzR,EAAKwH,KAEXxH,EAAG2mP,6BAOH,SAAsCzmH,GAClClgI,EAAG++D,aAAe,KAClB/+D,EAAG4pP,cAAgB,KACnB5pP,EAAG+nI,uBAAyB7H,CAChC,EAVAlgI,EAAG6/D,mBAYH,SAA4Bn1D,GACxB1K,EAAG++D,aAAer0D,CACtB,EAbA1K,EAAGusP,oBAeH,SAA6BpD,GACzBnpP,EAAG4pP,cAAgBT,CACvB,EAhBAnpP,EAAG+2P,+BAkBH,SAAwC/I,GAEpC,OADAhuP,EAAGiuP,sBAAwBD,EACnBA,GACJ,IAAK,OACDhuP,EAAG4pP,cAAgB,KACnB,MACJ,IAAK,QACD5pP,EAAG++D,aAAe,KAClB,MACJ,QACI/+D,EAAG4pP,cAAgB,KACnB5pP,EAAG++D,aAAe,KAE9B,EA7BA/+D,EAAGiuP,sBAAwB,MA8B/B,ED3BIt8O,aAAc,OACdH,YAAa,8DDEZkJ,UAAU,sBAAuBqoH,IACjCtxG,QAAQ,6BAA8BulO,IACtCt8O,UAAU,0BAA2Bu8O,IACrCxlO,QAAQ,iCAAkCylO,IAC1CzlO,QAAQ,iCAAkC0lO,IAC1Cz8O,UAAU,2BAA4B08O,IACtC18O,UAAU,gCAAiC28O,IAC3C38O,UAAU,+BAAgC48O,IACtC,K,+NGpBoB,SAAAjhQ,GAAUsV,EAAmBxT,EAASo/P,EAAgB9+P,EAAeu8O,GAC9F,IAAMh1O,EAAKwH,KAOsB,SAAAgwP,IAGhC,OAHgCA,GAAAhhQ,OAAAC,UAAjC,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACIkJ,EAAGwgG,YAAc,IAAI1+F,EACrB21P,IAAsB,wBAAA7gQ,EAAAiB,OAAA,GAAAnB,EAAA,MACzBoB,MAAA,KAAAC,UAAA,UAEc0/P,IAAmB,OAAAC,EAAA5/P,MAAC,KAADC,UAAA,UAAA2/P,IAQjC,OARiCA,GAAAlhQ,OAAAC,UAAlC,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,UAAAwC,EAAAzC,KAAA,GAEuBmJ,EAAGu3P,eAAetiP,GAAE,CAAA3b,EAAAxC,KAAA,eAAAwC,EAAAxC,KAAA,EAASk+O,EAA2Bp+L,YAAY52C,EAAGu3P,gBAAe,OAAAj+P,EAAAG,GAAAH,EAAAtC,KAAAsC,EAAAxC,KAAA,uBAAAwC,EAAAxC,KAAA,EAASk+O,EAA2Bz6I,YAAYv6F,EAAGu3P,gBAAe,OAAAj+P,EAAAG,GAAAH,EAAAtC,KAAA,QAA3J,OAARkD,EAAQZ,EAAAG,GAAAH,EAAAxC,KAAG,GACT2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,QAOjDivB,EANDv1H,EAASb,KAOnBsS,EAAkBuC,MAAMuhH,GAPCn2H,EAAAxC,KAAA,iBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAwlD,GAAAxlD,EAAA,SAErB0G,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAAvH,EAAAzB,OAI5C,IAAe43H,CAJ6B,GAAAt2H,EAAA,oBAE3CrB,MAAA,KAAAC,UAAA,CAlBDiI,EAAG23P,mBAGuC,WAET,OAAAH,EAAA1/P,MAAC,KAADC,UAAA,EAJjCiI,EAAGwC,OAuBH,WACImJ,EAAkBxH,SACtB,EAvBAnE,EAAGu3P,e,wWAAcllM,CAAA,GAAQklM,EAwB7B,CC9B6B,SAAAlhQ,GAAUsV,EAAmBlT,EAAeu8O,GAErE,IAAMh1O,EAAKwH,KAMX,SAAShF,IAAWmJ,EAAkBuC,OAAS,CAIX,SAAA0pP,IAanC,OAbmCA,GAAAphQ,OAAAC,UAApC,SAAAC,EAAqCgL,GAAI,IAAA0sB,EAAA,OAAA33B,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAIC,OAHtCkJ,EAAG87F,cAAgB,IAAIh6F,EACvB9B,EAAGiW,eAAgB,GACfmY,EAAK,IAAIxsB,UACVG,OAAOL,EAAK,GAAGM,KAAMN,EAAK,GAAGA,MAAM9K,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAE5Bk+O,EAA2B6iB,sBAAsBzpO,GAAG,cAAAx3B,EAAAE,KAAA,EACpD2B,EAAc8J,qBAAqBvC,EAAG87F,eAAc,OAC1Dt5F,IAAS5L,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAEToJ,EAAG87F,cAAcj7F,cAAe,EAChCb,EAAGiW,eAAgB,EAAM,yBAAArf,EAAAiB,OAAA,GAAAnB,EAAA,oBAEhCoB,MAAA,KAAAC,UAAA,CAtBDiI,EAAGwC,OAASA,EACZxC,EAAGmE,QAKH,WAAqBwH,EAAkBxH,SAAW,EAJlDnE,EAAGiW,eAAgB,EACnBjW,EAAG63P,sBAKH,SACoCvyP,GAAA,OAAAsyP,EAAA9/P,MAAC,KAADC,UAAA,CAcxC,CCvB6B,SAAA1B,GAAU4B,EAAQ+8O,EAA4Bv8O,EAAe4V,EAAWlW,EAASqrC,GAE1G,IAAMxjC,EAAKwH,KAyBW,SAEPrL,IAAQ,OAAAxD,EAAAb,MAAC,KAADC,UAAA,UAAAY,IAEtB,OAFsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACI8gP,IAAqB,wBAAAhhP,EAAAiB,OAAA,GAAAnB,EAAA,MACxBoB,MAAA,KAAAC,UAAA,UAEc6/O,IAAkB,OAAAkgB,EAAAhgQ,MAAC,KAADC,UAAA,UAAA+/P,IAMhC,OANgCA,GAAAthQ,OAAAC,UAAjC,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACqC,OAAjCkJ,EAAG+3P,wBAAyB,EAAKz+P,EAAAxC,KAAA,EACZk+O,EAA2B4C,qBAAoB,QAAhE19O,EAAQZ,EAAAtC,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGg4P,gBAAkB99P,EAASb,KAC9B2G,EAAG+3P,wBAAyB,EAAM,wBAAAz+P,EAAAzB,OAAA,GAAAsB,EAAA,MACrCrB,MAAA,KAAAC,UAAA,CAED,SAASkgQ,EAA6BV,GAClCv3P,EAAGk4P,gCAAgC,CAAEX,kBACzC,CAEsC,SAAAY,IAmBrC,OAnBqCA,GAAA3hQ,OAAAC,UAAtC,SAAAwD,EAAuCs9P,GAAc,IAAAa,EAAAC,EAAA,OAAA5hQ,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAS/C,OAREshQ,EAAsB/pP,EAAUvU,KAAK,CACrC0X,YAAa,oFACbC,WAAY6mP,GACZ3mP,aAAc,QACdC,SAAU,SACVC,QAAS,CACL0lP,eAAgB,WAAF,OAAQA,GAAkB,IAAI,KAElDp9P,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGkCshQ,EAAoBjtP,OAAM,OAAnC,OAAnBktP,EAAmBl+P,EAAAnD,KAAAmD,EAAArD,KAAG,EACpB8gP,IAAoB,OACtBygB,GAA+C,KAAxBA,GAEvBJ,EAA6Bj4P,EAAGg4P,gBAAgBj1P,MAAK,SAAAk/B,GAAK,OAAIA,EAAMhtB,KAAOojP,CAAmB,KACjGl+P,EAAArD,KAAA,wBAAAqD,EAAAtD,KAAA,GAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,oBAERnC,MAAA,KAAAC,UAAA,CAEkC,SAAAwgQ,IAWlC,OAXkCA,GAAA/hQ,OAAAC,UAAnC,SAAAoE,EAAoC08P,GAAc,IAAAiB,EAAA,OAAA/hQ,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEpC+G,IAAKpF,EAAc4pC,iBAAiB,yBAAD,mDAAA7nC,OAA8E+8P,EAAe19P,KAAI,WAAY,OAAM,cAAAiB,EAAAhE,KAAA,EACtJk+O,EAA2Bh6I,YAAYu8J,EAAetiP,IAAG,OAC3DsiP,EAAetiP,MAAgC,QAA9BujP,EAAKx4P,EAAGy4P,8BAAsB,IAAAD,OAAA,EAAzBA,EAA2BvjP,KACjDgjP,EAA6B,MAEjCrgB,IAAqB98O,EAAAhE,KAAA,uBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAI5B/C,MAAA,KAAAC,UAAA,CAEmC,SAAA2gQ,IAUnC,OAVmCA,GAAAliQ,OAAAC,UAApC,SAAA6K,IAAA,IAAApH,EAAA,OAAAzD,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OACiD,OAA7CkJ,EAAGq8F,oBAAsB,IAAIv6F,EAAgBH,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEpBk+O,EAA2B2jB,wBAAuB,OAAnEz+P,EAAQyH,EAAA3K,KACZyB,EAAc8J,qBAAqBvC,EAAGq8F,qBACtC74D,EAAUC,OAAOvpC,EAASb,KAAM,wBAChC2G,EAAGq8F,oBAAoBx7F,cAAe,EAAMc,EAAA7K,KAAA,iBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAlI,GAAAkI,EAAA,SAE5C3B,EAAGq8F,oBAAoBx7F,cAAe,EAAM,yBAAAc,EAAA9J,OAAA,GAAAyJ,EAAA,oBAEnDxJ,MAAA,KAAAC,UAAA,CAE6B,SAAAg9D,IAY7B,OAZ6BA,GAAAv+D,OAAAC,UAA9B,SAAAkM,IAAA,IAAAqyD,EAAA,OAAAv+D,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OAMM,OALEk+D,EAAc3mD,EAAUvU,KAAK,CAC7B0X,YAAa,6DACbC,WAAYmnP,GACZjnP,aAAc,QACdC,SAAU,WACZhP,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEQk+D,EAAY7pD,OAAM,OAAAvI,EAAA9L,KAAA,sBAAA8L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAAAA,EAAAqD,OAAA,kCAAArD,EAAA/K,OAAA,GAAA8K,EAAA,mBAI/B7K,MAAA,KAAAC,UAAA,CAnGDE,EAAOiE,IAAI,yBAAyB,SAAAozC,GAAC,OAAInzC,GAAU,IAEnD6D,EAAGi4P,6BAA+BA,EAClCj4P,EAAG64P,qBAyDF,SAEkC13P,GAAA,OAAAo3P,EAAAzgQ,MAAC,KAADC,UAAA,EA1DnCiI,EAAG84P,wBAmCF,SAEqCxzP,GAAA,OAAA6yP,EAAArgQ,MAAC,KAADC,UAAA,EApCtCiI,EAAG24P,sBAoEF,WAEmC,OAAAD,EAAA5gQ,MAAC,KAADC,UAAA,EArEpCiI,EAAGk1D,gBA+EF,WAE6B,OAAAH,EAAAj9D,MAAC,KAADC,UAAA,EA/E9BiI,EAAG2rB,YAAc,CACb,CACI1nB,KAAM,OACN2nB,MAAO,SAAAlhB,GACH1K,EAAG84P,wBAAwBpuP,EAAK6sP,eACpC,GAEJ,CACItzP,KAAM,0CACN2nB,MAAO,SAAAlhB,GACH1K,EAAG64P,qBAAqBnuP,EAAK6sP,eACjC,IAIRv3P,EAAGonB,QAAUjrB,CA6EjB,CF7GoE9F,GAAAgxB,QAAA,8FCAHhxB,GAAAgxB,QAAA,mECGiBhxB,GAAAgxB,QAAA,0FCgBlF,SAV4B,CACxBm5B,SAAU,CACNi4M,uBAAwB,IACxBP,gCAAiC,KAErCzmP,WAAYsnP,GACZpnP,aAAc,QACdH,YAAa,qFChBY,SAAAnb,GAAU6B,EAAO8I,GAC1C,IAAMywB,EAAU,CACZmmN,mBAWW,WAEkB,OAAAkgB,EAAAhgQ,MAAC,KAADC,UAAA,EAZ7BihQ,uBAkBH,SAEoC1zP,GAAA,OAAA2zP,EAAAnhQ,MAAC,KAADC,UAAA,EAnBjCwiG,YAyBH,SAEyBp5F,GAAA,OAAAm5F,EAAAxiG,MAAC,KAADC,UAAA,EA1BtBmhQ,eAiCH,SAE4B93P,GAAA,OAAA+3P,EAAArhQ,MAAC,KAADC,UAAA,EAlCzB6+C,YAyCH,SAEyBrrC,GAAA,OAAAsrC,EAAA/+C,MAAC,KAADC,UAAA,EA1CtBijG,YAiDH,SAEyBpnD,GAAA,OAAAmnD,EAAAjjG,MAAC,KAADC,UAAA,EAlDtBqhQ,oBAyDH,SAEiCrkN,EAAAC,GAAA,OAAAqkN,EAAAvhQ,MAAC,KAADC,UAAA,EA1D9B4gQ,sBAiEH,WAEmC,OAAAD,EAAA5gQ,MAAC,KAADC,UAAA,EAlEhC8/P,sBAyEH,SAEmCxiN,GAAA,OAAAuiN,EAAA9/P,MAAC,KAADC,UAAA,GAxEpC,OAAO05B,EAE0B,SAAAqmO,IAMhC,OANgCA,GAAAthQ,OAAAC,UAAjC,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAgC,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAEhEk9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAEoC,SAAAkhQ,IAMpC,OANoCA,GAAAziQ,OAAAC,UAArC,SAAA0C,EAAsCw/C,GAAO,OAAAliD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAExBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,wCAAAC,OAAuCm+C,EAAO,WAAS,cAAAr/C,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAEvFw6C,EAASx6C,EAAAG,IAAM,wBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAEyB,SAAAuiG,IAOzB,OAPyBA,GAAA9jG,OAAAC,UAA1B,SAAAwD,EAA2BZ,GAAI,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEVoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,iCAAiClB,GAAK,cAAAc,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEvE25C,EAAS35C,EAAAV,IACTg8C,EAASt7C,EAAAV,IAAM,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAE4B,SAAAohQ,IAO5B,OAP4BA,GAAA3iQ,OAAAC,UAA7B,SAAAoE,EAA8BxB,GAAI,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEboB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,wCAAAC,OAAuCnB,EAAKigQ,iBAAgB,UAAUjgQ,GAAK,cAAAyB,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAE5Gg5C,EAASh5C,EAAArB,IACTg8C,EAAS36C,EAAArB,IAAM,yBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAEyB,SAAA8+C,IAOzB,OAPyBA,GAAArgD,OAAAC,UAA1B,SAAA6K,EAA2BjI,GAAI,OAAA5C,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEVoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,kCAAAC,OAAiCnB,EAAK4b,IAAM5b,GAAK,cAAAsI,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEjFmyC,EAASnyC,EAAAlI,IACTg8C,EAAS9zC,EAAAlI,IAAM,yBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAEyB,SAAAgjG,IAOzB,OAPyBA,GAAAvkG,OAAAC,UAA1B,SAAAkM,EAA2Bg2C,GAAO,OAAAliD,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEboB,EAAK,OAAQ,GAADsC,OAAID,OAAM,kCAAAC,OAAiCm+C,IAAU,cAAA/1C,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAE9EkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAEiC,SAAAshQ,IAOjC,OAPiCA,GAAA7iQ,OAAAC,UAAlC,SAAA8uB,EAAmCozB,EAAS4gN,GAAW,OAAA9iQ,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAElCoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,wCAAAC,OAAuCm+C,EAAO,WAAAn+C,OAAU++P,IAAc,cAAA/zO,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAEzGsuB,EAAStuB,EAAA/rB,IACTg8C,EAASjwB,EAAA/rB,IAAM,yBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAEtBztB,MAAA,KAAAC,UAAA,CAEmC,SAAA2gQ,IAOnC,OAPmCA,GAAAliQ,OAAAC,UAApC,SAAAkvB,IAAA,OAAAlvB,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,wCAAwC,CAAEo7B,aAAc,SAAS,cAAA/P,EAAA3f,OAAA,SAAA2f,EAAA5uB,MAAA,OAAA4uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAEjGkuB,EAASluB,EAAAnsB,IACTg8C,EAAS7vB,EAAAnsB,IAAM,yBAAAmsB,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAEtB7tB,MAAA,KAAAC,UAAA,CAEmC,SAAA6/P,IAUnC,OAVmCA,GAAAphQ,OAAAC,UAApC,SAAAwvB,EAAqCmI,GAAE,OAAA33B,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,cAAAovB,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAElBoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,wCAAwC6zB,EAAI,CACxElsB,iBAAkBvI,QAAQwI,SAC1BC,QAAS,CAAE,oBAAgBC,KAC7B,cAAA6jB,EAAAjgB,OAAA,SAAAigB,EAAAlvB,MAAA,OAAAkvB,EAAArvB,KAAA,EAAAqvB,EAAAzsB,GAAAysB,EAAA,SAEF4tB,EAAS5tB,EAAAzsB,IACTg8C,EAASvvB,EAAAzsB,IAAM,yBAAAysB,EAAAruB,OAAA,GAAAouB,EAAA,mBAEtBnuB,MAAA,KAAAC,UAAA,CAED,SAAS+7C,EAAU5J,GACflpC,EAAiB,MAAOkpC,EAC5B,CAEA,SAASuL,EAAUvL,GACf,MAAMA,CACV,CAEJ,CCvG6B,SAAA7zC,GAAUsV,EAAmBxT,EAASm9D,EAAeiiM,EAAgB9+P,EAAeu8O,EAA4Bz8O,GACzI,IAcQihQ,EAWQp4M,EAzBVphD,EAAKwH,KAqCW,SAAAiyP,IAoBrB,OApBqBA,GAAAjjQ,OAAAC,UAAtB,SAAA0C,EAAuBjC,GAAI,IAAAmC,EAAAqgQ,EAAA,OAAAjjQ,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAMtB,OALDkJ,EAAG25P,mBAAoB,EACvB1yP,MAAME,GAAGuiD,SAAS1pD,EAAGikI,mBAAmBzmG,SAAS,GAC7CnkC,EAAO,CACPigQ,iBAAkB/B,EAAetiP,GACjCjI,OAAQ9V,EAAKkV,QAChB9S,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAESk+O,EAA2BkkB,eAAe7/P,GAAK,QACjDqgQ,EAAgBhiQ,KAAKC,MAAMD,KAAKoE,UAAU5E,KAChC8V,OAAS0sP,EAActtP,cAC9BstP,EAActtP,OACrBkpD,EAAc/9D,KAAKmiQ,GACnBzyP,MAAME,GAAGuiD,SAAS1pD,EAAGikI,mBAAmBzmG,SAAS,GACjDx9B,EAAGokI,6BAA6BlpH,OAChClb,EAAG25P,mBAAoB,EAAMrgQ,EAAAxC,KAAA,iBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAG,GAAAH,EAAA,SAE7B0G,EAAG25P,mBAAoB,EACvB1yP,MAAME,GAAGuiD,SAAS1pD,EAAGikI,mBAAmBzmG,SAAS,GAAO,yBAAAlkC,EAAAzB,OAAA,GAAAsB,EAAA,oBAE/DrB,MAAA,KAAAC,UAAA,CAvDDiI,EAAGkpF,QAiCF,SAEqB/nF,GAAA,OAAAs4P,EAAA3hQ,MAAC,KAADC,UAAA,EAlCtBiI,EAAGkO,MAwDH,WACIvC,EAAkBuC,OACtB,EAxDAonD,GAAavtC,OAAOutC,GASZkkM,EAA4B,CAC5B,CAAEx1P,MAAO,OAAQ6U,MAAO,gBAAiBgG,WAAYyf,IACrD,CAAEt6B,MAAO,QAAS6U,MAAO,QAASgG,WAAYyf,IAC9C,CAAEp3B,SAAU,0HAA2HlD,MAAO,IAAKiE,MAAO,KAG9JjI,EAAGqkI,0BAA4B5rI,EAAc4uC,mBAAmBmyN,EAA2B,MAE3Fx5P,EAAGokI,6BAA+B,IAAIn9H,MAAM5N,KAAKmlB,WAAW,CACxD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACMyB,EAAYwT,WAAU,QAAvC7R,EAAQtD,EAAAI,MACHqC,KAAOa,EAASb,KAAKsC,QAAO,SAAAi+P,GACjC,OAAQtkM,EAAcj5C,MAAK,SAAAnlB,GAAI,OAAIA,EAAK8V,SAAW4sP,EAAcxtP,MAAM,GAC3E,IACAlS,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,iBAClDsO,EAAQ+W,QAAQxkB,EAASb,MAAM,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,KAClC,SAPG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KAqCpB,CC9D6B,SAAA1B,GAAU2+O,EAA4Bv8O,EAAe4V,GAE9E,IAAMrO,EAAKwH,KAOY,SAAA7O,IAEtB,OAFsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACIiV,IAAU,wBAAAnV,EAAAiB,OAAA,GAAAnB,EAAA,MACboB,MAAA,KAAAC,UAAA,UAEcgU,IAAQ,OAAAic,EAAAlwB,MAAC,KAADC,UAAA,UAAAiwB,IAKtB,OALsBA,GAAAxxB,OAAAC,UAAvB,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAC2B,OAAvBkJ,EAAGy1O,cAAe,EAAKn8O,EAAAxC,KAAA,EACAk+O,EAA2BgkB,uBAAuBh5P,EAAGu3P,eAAetiP,IAAG,OAAxF/a,EAAQZ,EAAAtC,KACdgJ,EAAG6L,MAAQ3R,EAASb,KACpB2G,EAAGy1O,cAAe,EAAM,wBAAAn8O,EAAAzB,OAAA,GAAAsB,EAAA,MAC3BrB,MAAA,KAAAC,UAAA,CAE2B,SAAAglJ,IAgB3B,OAhB2BA,GAAAvmJ,OAAAC,UAA5B,SAAAwD,IAAA,IAAAm+P,EAAA,OAAA3hQ,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAUM,OATEshQ,EAAsB/pP,EAAUvU,KAAK,CACrC0X,YAAa,4FACbC,WAAYooP,GACZloP,aAAc,SACdC,SAAU,SACVC,QAAS,CACLyjD,cAAe,WAAF,OAAQt1D,EAAG6L,KAAK,EAC7B0rP,eAAgB,WAAF,OAAQv3P,EAAGu3P,cAAc,KAE7Cp9P,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGQshQ,EAAoBjtP,OAAM,cAAAhR,EAAArD,KAAA,EAC1BiV,IAAU,OAAA5R,EAAArD,KAAA,uBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,mBAEvBnC,MAAA,KAAAC,UAAA,CAE0C,SAAA+hQ,IAQ1C,OAR0CA,GAAAtjQ,OAAAC,UAA3C,SAAAoE,EAA4C3D,GAAI,OAAAT,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAElC+G,IAAKpF,EAAc4pC,iBAAiB,cAAD,wCAAA7nC,OAAwDtD,EAAKo2C,SAAQ,0BAAA9yC,OAAyBwF,EAAGu3P,eAAe19P,KAAI,WAAY,OAAM,cAAAiB,EAAAhE,KAAA,EACzKk+O,EAA2BokB,oBAAoBp5P,EAAGu3P,eAAetiP,GAAI/d,EAAK+d,IAAG,OACnFlJ,IAAWjR,EAAAhE,KAAA,uBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAIlB/C,MAAA,KAAAC,UAAA,CA1CDiI,EAAG+5P,6BAgCF,SAE0Cz0P,GAAA,OAAAw0P,EAAAhiQ,MAAC,KAADC,UAAA,EAjC3CiI,EAAGw9I,cAaF,WAE2B,OAAAT,EAAAjlJ,MAAC,KAADC,UAAA,EAb5BiI,EAAG+iD,WAAsB,WAEF,OAAApqD,EAAAb,MAAC,KAADC,UAAA,CAsC3B,C,yCDlDiH1B,GAAAgxB,QAAA,4HCC5BhxB,GAAAgxB,QAAA,2DCiBrF,SATgC,CAC5Bm5B,SAAU,CACN+2M,eAAgB,KAEpB9lP,WAAYuoP,GACZroP,aAAc,SACdH,YAAa,6FCTjB,GAAe7X,WACH,0CAA2C,IAClD+gB,UAAU,kBCCS,CACpBjJ,WCVyB,WACzB,IAAMzR,EAAKwH,KAEXxH,EAAGi4P,6BAEH,SAAsCV,GAClCv3P,EAAGy4P,uBAAyBlB,CAChC,CACJ,EDGI5lP,aAAc,OACdH,YAAa,8DDHZkJ,UAAU,sBAAuBu/O,IACjCxoO,QAAQ,6BAA8ByoO,IACtCx/O,UAAU,0BAA2By/O,IACjC,KGVoB,SAAA9jQ,GAAUsV,EAAmBpT,EAAa6hQ,EAAkC3hQ,EAAeN,GAEpH,IAAM6H,EAAKwH,KAYY,SAAAwgB,IAWtB,OAXsBA,GAAAxxB,OAAAC,UAAvB,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACmC,OAA/BkJ,EAAGo0M,sBAAuB,EAAKx9M,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAENyB,EAAYy5C,gBAAe,OAA5C93C,EAAQtD,EAAAI,KACZgJ,EAAGy1D,eAAiBv7D,EAASb,KAE7B2G,EAAGy1D,eAAiBt9D,EAAQ,UAARA,CAAmB6H,EAAGy1D,eAAgB,QAC1Dz1D,EAAGo0M,sBAAuB,EAAMx9M,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAEhCoJ,EAAGo0M,sBAAuB,EAAM,yBAAAx9M,EAAAiB,OAAA,GAAAnB,EAAA,oBAEvCoB,MAAA,KAAAC,UAAA,CAE4B,SAAAsiQ,IAW5B,OAX4BA,GAAA7jQ,OAAAC,UAA7B,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACyC,OAArCkJ,EAAGs6P,4BAA6B,EAAKhhQ,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEZyB,EAAYwT,WAAU,OAAvC7R,EAAQZ,EAAAtC,KACZgJ,EAAGu6P,sBAAwBrgQ,EAASb,KACpC2G,EAAGu6P,sBAAwBv6P,EAAGu6P,sBAAsB5+P,QAAO,SAAAwQ,GAAC,OAAIA,EAAEH,MAAM,IACxEhM,EAAGu6P,sBAAwBpiQ,EAAQ,UAARA,CAAmB6H,EAAGu6P,sBAAuB,iBACxEv6P,EAAGs6P,4BAA6B,EAAMhhQ,EAAAxC,KAAA,iBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAG,GAAAH,EAAA,SAEtC0G,EAAGs6P,4BAA6B,EAAM,yBAAAhhQ,EAAAzB,OAAA,GAAAsB,EAAA,oBAE7CrB,MAAA,KAAAC,UAAA,CAEyC,SAAAyiQ,IAezC,OAfyCA,GAAAhkQ,OAAAC,UAA1C,SAAAwD,IAAA,IAAAZ,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAMK,OAJDkJ,EAAGy6P,wBAA0B,IAAI34P,EAC7BzI,EAAO,CACP,aAAgB2G,EAAG2nB,aAAajsB,GAChC,aAAgBsE,EAAG06P,mBAAmBtuP,QACzCjS,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGSsjQ,EAAiCO,2BAA2BthQ,GAAK,cAAAc,EAAArD,KAAA,EACjE2B,EAAc8J,qBAAqBvC,EAAGy6P,yBAAwB,OAQxE9uP,EAAkBuC,OAAM,GAPZ/T,EAAArD,KAAA,iBAAAqD,EAAAtD,KAAA,GAAAsD,EAAAV,GAAAU,EAAA,SAER6F,EAAGy6P,wBAAwB55P,cAAe,EAAM,yBAAA1G,EAAAtC,OAAA,GAAAoC,EAAA,oBAEvDnC,MAAA,KAAAC,UAAA,CAnDDiI,EAAG46P,4BAkCF,WAEyC,OAAAJ,EAAA1iQ,MAAC,KAADC,UAAA,EAnC1CiI,EAAGwC,OAwDH,WACImJ,EAAkBxH,SACtB,EAnDC,WAEsB6jB,EAAAlwB,MAAC,KAADC,UAAA,CAJnBgU,GAeH,WAE4BsuP,EAAAviQ,MAAC,KAADC,UAAA,CAhBzB8iQ,EAsDR,CCjE6B,SAASC,GAAgCnvP,EAAmByuP,GAErF,IAAMp6P,EAAKwH,KAK+B,SAAAuzP,IAoBzC,OApByCA,GAAAvkQ,OAAAC,UAA1C,SAAAC,EAA2C6K,GAAK,IAAA6sB,EAAA,OAAA33B,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKzC,GAHCs3B,EAAK,IAAIxsB,SACbL,EAAMtG,SAAQ,SAAAyG,GACV0sB,EAAGrsB,OAAOL,EAAKA,KAAKM,KAAMN,EAAKA,KACnC,MAEIH,EAAMrE,OAAS,GAAC,CAAAtG,EAAAE,KAAA,SAE6B,OAD7CkJ,EAAGiW,eAAgB,EACnBjW,EAAG60D,oBAAsB,IAAI/yD,EAAgBlL,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGnCsjQ,EAAiCY,4BAA4B5sO,GAAG,cAAAx3B,EAAAE,KAAA,GAChE2B,cAAc8J,qBAAqBvC,EAAG60D,qBAAoB,QAChElpD,EAAkBuC,QAAQtX,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAE1BoJ,EAAGiW,eAAgB,EACnBjW,EAAG60D,oBAAoBh0D,cAAe,EAAM,yBAAAjK,EAAAiB,OAAA,GAAAnB,EAAA,oBAGvDoB,MAAA,KAAAC,UAAA,CAvBDiI,EAAGg7P,4BACgB,SAEuB11P,GAAA,OAAAy1P,EAAAjjQ,MAAC,KAADC,UAAA,EAF1CiI,EAAGwC,OAwBH,WACImJ,EAAkBxH,SACtB,CACJ,CC7B6B,SAAA9N,GAAU4B,EAAQoW,EAAWlW,EAASM,EAAe2hQ,EAAkCliQ,GAEhH,IAAM8H,EAAKwH,KAiBX,SAASrL,IAUT,IACU8+P,EAeM75M,GAvBf,WAE8B85M,EAAApjQ,MAAC,KAADC,UAAA,CAJ3BojQ,GAUMF,EACF,CACI,CAAEpiP,MAAO,iBAAkB7U,MAAO,OAAQ6a,WAAYyf,IACtD,CAAEzlB,MAAO,kBAAmB7U,MAAO,aAAc6a,WAAYyf,IAC7D,CAAEzlB,MAAO,iBAAkB7U,MAAO,aAAc6a,WAAYyf,IAC5D,CAAEzlB,MAAO,kBAAmB7U,MAAO,mBAAoB6a,WAAYyf,IACnE,CAAEp3B,SAAU,4JAAmKe,MAAO,KAG9LjI,EAAGo7P,iCAAmC3iQ,EAAc4uC,mBAAmB4zN,EAAkC,KACzGj7P,EAAGo7P,iCAAiCv7N,YAAa,EAEjD7/B,EAAGq7P,oCAAsC,IAAIp0P,MAAM5N,KAAKmlB,WAAW,CAC/D+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAOiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACKsjQ,EAAiCkB,2BAA0B,QAA5EphQ,EAAQtD,EAAAI,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,eAClD2G,EAAGu7P,wBAA0BrhQ,EAASb,KAAK+/B,KAAI,SAAAliC,GAAI,OAAIA,EAAK+gC,YAAY,IACxEtwB,EAAQ+W,QAAQxkB,EAASb,MAAM,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,KAClC,SALG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KAvBhB,CAE+B,SAAAmjQ,IAG9B,OAH8BA,GAAA1kQ,OAAAC,UAA/B,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,sBAAoB,OAAxDL,EAAQZ,EAAAtC,KACZgJ,EAAGw7P,UAAYthQ,EAASb,KAAKgjB,MAAK,SAAA++C,GAAM,OAAIA,EAAOqgM,KAAK,IAAE,wBAAAniQ,EAAAzB,OAAA,GAAAsB,EAAA,MAC7DrB,MAAA,KAAAC,UAAA,CA2CwC,SAAA2jQ,IAiBxC,OAjBwCA,GAAAllQ,OAAAC,UAAzC,SAAAwD,IAAA,IAAA0hQ,EAAA,OAAAllQ,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OASM,OARE6kQ,EAActtP,EAAUvU,KAAK,CAC7B0X,YAAa,oFACbC,WAAYmqP,GACZjqP,aAAc,OACdC,SAAU,SACVC,QAAS,CACL0pP,wBAAyB,WAAF,OAAQv7P,EAAGu7P,uBAAuB,KAE/DphQ,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGQ6kQ,EAAYxwP,OAAM,OACxBnL,EAAGq7P,oCAAoCngP,OAAO/gB,EAAArD,KAAA,uBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,mBAIrDnC,MAAA,KAAAC,UAAA,CAEqC,SAAA8jQ,IAGrC,OAHqCA,GAAArlQ,OAAAC,UAAtC,SAAAoE,IAAA,IAAAX,EAAA,OAAAzD,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAhE,KAAA,EACyBsjQ,EAAiC0B,8BAA6B,QAA/E5hQ,EAAQY,EAAA9D,MACHqC,KAAO,CAAEye,SAAU5d,EAASb,MAAO,wBAAAyB,EAAAjD,OAAA,GAAAgD,EAAA,MAC/C/C,MAAA,KAAAC,UAAA,CAEwC,SAAAgkQ,IAUxC,OAVwCA,GAAAvlQ,OAAAC,UAAzC,SAAA6K,EAA0Ci/B,GAAQ,OAAA9pC,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEpC+G,IAAKpF,EAAc4pC,iBAAiB,oBAAqB,4CAA6C,WAAU,OACxD,OAA9Dp7B,MAAME,GAAGuiD,SAAS1pD,EAAGg8P,0BAA0Bx+N,SAAS,GAAM77B,EAAA7K,KAAA,EACxDsjQ,EAAiC6B,2BAA2B17N,EAAStI,aAAcsI,EAAS27N,cAAa,OAC/Gj1P,MAAME,GAAGuiD,SAAS1pD,EAAGg8P,0BAA0Bx+N,SAAS,GACxDx9B,EAAGq7P,oCAAoCngP,OAAOvZ,EAAA7K,KAAA,wBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAlI,GAAAkI,EAAA,SAAAA,EAAAsE,OAAA,mCAAAtE,EAAA9J,OAAA,GAAAyJ,EAAA,oBAIrDxJ,MAAA,KAAAC,UAAA,CApGDiI,EAAGiY,OAAS,CAAC,EACbjY,EAAGm8P,WAAa,CAAC,EAEjBn8P,EAAG7D,SAAWA,EACd6D,EAAGo8P,2BAqDH,WACI/tP,EAAUvU,KAAK,CACX0X,YAAa,oFACbC,WAAYqpP,GACZnpP,aAAc,OACdC,SAAU,UAElB,EA3DA5R,EAAGq8P,2BA2DF,WAEwC,OAAAX,EAAA5jQ,MAAC,KAADC,UAAA,EA5DzCiI,EAAGs8P,wBA6EF,WAEqC,OAAAT,EAAA/jQ,MAAC,KAADC,UAAA,EA9EtCiI,EAAGi8P,2BAiFF,SAEwC96P,GAAA,OAAA46P,EAAAjkQ,MAAC,KAADC,UAAA,EAjFzCiI,EAAGonB,QAAUjrB,EAEblE,EAAOiE,IAAI,qCAAqC,SAAUmC,EAAOC,GAC7D0B,EAAGq7P,oCAAoCngP,MAC3C,IAwCAjjB,EAAOiE,IAAI,+BAA+B,SAAUmC,EAAOC,GACvD0B,EAAGq7P,oCAAoCngP,MAC3C,GA+CJ,CF/GoE7kB,GAAAgxB,QAAA,iG,oEEGrChxB,GAAAgxB,QAAA,4FCY/B,SAN8B,CAC1B5V,WAAY8qP,GACZ5qP,aAAc,OACdH,YAAa,oECZY,SAAAnb,GAAS6B,EAAO8I,GACzC,IAAM+yB,EAAU,CACZunO,yBAmBJ,WACuC,OAAAkB,EAAA1kQ,MAAC,KAADC,UAAA,EAnBnC0kQ,gCAyBH,WAE6C,OAAAC,EAAA5kQ,MAAC,KAADC,UAAA,EA1B1C4kQ,wBAgDH,SAEqCx7P,GAAA,OAAAy7P,EAAA9kQ,MAAC,KAADC,UAAA,EAjDlC8kQ,iBA+BH,WAE8B,OAAAC,EAAAhlQ,MAAC,KAADC,UAAA,EAhC3BglQ,uBAsCH,SAEoCz3P,GAAA,OAAA03P,EAAAllQ,MAAC,KAADC,UAAA,EAvCjCklQ,yBAqDH,WAEsC,OAAAC,EAAAplQ,MAAC,KAADC,UAAA,EAtDnColQ,0BA4DH,WAEuC,OAAAC,EAAAtlQ,MAAC,KAADC,UAAA,EA7DpC4iQ,2BAmEH,SAGwCv5P,GAAA,OAAAi8P,EAAAvlQ,MAAC,KAADC,UAAA,EArErC+jQ,4BA4EH,WAEyC,OAAAwB,EAAAxlQ,MAAC,KAADC,UAAA,EA7EtCwlQ,sCAmFH,SAEmDhyP,GAAA,OAAAiyP,EAAA1lQ,MAAC,KAADC,UAAA,EApFhD0lQ,0CA2FH,WAEuD,OAAAC,EAAA5lQ,MAAC,KAADC,UAAA,EA5FpDijQ,4BAmGH,SAGyCpnN,GAAA,OAAAmnN,EAAAjjQ,MAAC,KAADC,UAAA,EArGtC4lQ,sCA+GH,SAEmD5oN,EAAAC,GAAA,OAAA4oN,EAAA9lQ,MAAC,KAADC,UAAA,EAhHhDkkQ,2BAuHH,SAGwC5mN,EAAA8B,GAAA,OAAA4kN,EAAAjkQ,MAAC,KAADC,UAAA,EAzHrC8lQ,sCAgIH,SAEmDvmN,GAAA,OAAAwmN,EAAAhmQ,MAAC,KAADC,UAAA,GA/HpD,OAAOg8B,EAGgC,SAAAyoO,IAMtC,OANsCA,GAAAhmQ,OAAAC,UAAvC,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAIvI,OAAS,uCAAsC,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAEtEk9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAE6C,SAAA2kQ,IAM7C,OAN6CA,GAAAlmQ,OAAAC,UAA9C,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAIvI,OAAS,gDAA+C,cAAAjB,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAE/Ew6C,EAASx6C,EAAAG,IAAM,wBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAE8B,SAAA+kQ,IAM9B,OAN8BA,GAAAtmQ,OAAAC,UAA/B,SAAAwD,IAAA,OAAAxD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,+CAA6C,cAAAJ,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAE7E25C,EAAS35C,EAAAV,IAAM,wBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAEoC,SAAAilQ,IAMpC,OANoCA,GAAAxmQ,OAAAC,UAArC,SAAAoE,EAAsCkjQ,GAAQ,OAAAtnQ,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEzBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,gCAAAC,OAA+BujQ,EAAQ,mBAAiB,cAAAjjQ,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAExFg5C,EAASh5C,EAAArB,IAAM,wBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAEqC,SAAA6kQ,IAMrC,OANqCA,GAAApmQ,OAAAC,UAAtC,SAAA6K,EAAuC85B,GAAW,OAAA3kC,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAE7BoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,+CAAAC,OAA8C4gC,IAAc,cAAAz5B,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAE5FmyC,EAASnyC,EAAAlI,IAAM,wBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAEsC,SAAAmlQ,IAMtC,OANsCA,GAAA1mQ,OAAAC,UAAvC,SAAAkM,IAAA,OAAAlM,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,wDAAsD,cAAAqI,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAEtFkxC,EAASlxC,EAAAnJ,IAAM,wBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAUD,SAAAqlQ,IAFC,OAEDA,GAAA5mQ,OAAAC,UARA,SAAA8uB,IAAA,OAAA9uB,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,yDAAuD,cAAAirB,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAEvFsuB,EAAStuB,EAAA/rB,IAAM,wBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAEtBztB,MAAA,KAAAC,UAAA,CAGwC,SAAAslQ,IAOxC,OAPwCA,GAAA7mQ,OAAAC,UAAzC,SAAAkvB,EAA0CtsB,GAAI,OAAA5C,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAEzBoB,EAAMge,KAAK3b,OAAS,sCAAuClB,GAAK,cAAAusB,EAAA3f,OAAA,SAAA2f,EAAA5uB,MAAA,OAAA4uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAE7EkuB,EAASluB,EAAAnsB,IACTg8C,EAAS7vB,EAAAnsB,IAAM,yBAAAmsB,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAEtB7tB,MAAA,KAAAC,UAAA,CAEyC,SAAAulQ,IAMzC,OANyCA,GAAA9mQ,OAAAC,UAA1C,SAAAwvB,IAAA,OAAAxvB,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,cAAAovB,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAEqBoB,EAAMge,KAAK3b,OAAS,8CAA6C,cAAA2rB,EAAAjgB,OAAA,SAAAigB,EAAAlvB,MAAA,OAAAkvB,EAAArvB,KAAA,EAAAqvB,EAAAzsB,GAAAysB,EAAA,SAE9E4tB,EAAS5tB,EAAAzsB,IAAM,wBAAAysB,EAAAruB,OAAA,GAAAouB,EAAA,mBAEtBnuB,MAAA,KAAAC,UAAA,CAEmD,SAAAylQ,IAOnD,OAPmDA,GAAAhnQ,OAAAC,UAApD,SAAAk/C,EAAqDt8C,GAAI,OAAA5C,UAAA,SAAAm/C,GAAA,cAAAA,EAAA/+C,KAAA++C,EAAA9+C,MAAA,cAAA8+C,EAAA/+C,KAAA,EAAA++C,EAAA9+C,KAAA,EAEpCoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,gDAAgDlB,GAAK,cAAAu8C,EAAA3vC,OAAA,SAAA2vC,EAAA5+C,MAAA,OAAA4+C,EAAA/+C,KAAA,EAAA++C,EAAAn8C,GAAAm8C,EAAA,SAEtF9B,EAAS8B,EAAAn8C,IACTg8C,EAASG,EAAAn8C,IAAM,yBAAAm8C,EAAA/9C,OAAA,GAAA89C,EAAA,mBAEtB79C,MAAA,KAAAC,UAAA,CAWD,SAAA2lQ,IAFC,OAEDA,GAAAlnQ,OAAAC,UATA,SAAAo/C,IAAA,OAAAp/C,UAAA,SAAAq/C,GAAA,cAAAA,EAAAj/C,KAAAi/C,EAAAh/C,MAAA,cAAAg/C,EAAAj/C,KAAA,EAAAi/C,EAAAh/C,KAAA,EAEqBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,8DAA4D,cAAAu7C,EAAA7vC,OAAA,SAAA6vC,EAAA9+C,MAAA,OAAA8+C,EAAAj/C,KAAA,EAAAi/C,EAAAr8C,GAAAq8C,EAAA,SAE7FhC,EAASgC,EAAAr8C,IACTg8C,EAASK,EAAAr8C,IAAM,yBAAAq8C,EAAAj+C,OAAA,GAAAg+C,EAAA,mBAEtB/9C,MAAA,KAAAC,UAAA,CAGyC,SAAAgjQ,IAUzC,OAVyCA,GAAAvkQ,OAAAC,UAA1C,SAAAoiD,EAA2Cp3C,GAAQ,OAAAhL,UAAA,SAAAqiD,GAAA,cAAAA,EAAAjiD,KAAAiiD,EAAAhiD,MAAA,cAAAgiD,EAAAjiD,KAAA,EAAAiiD,EAAAhiD,KAAA,EAE9BoB,EAAM+J,IAAI1H,OAAS,6CAA8CkH,EAAU,CACpFS,iBAAkBvI,QAAQwI,SAC1BC,QAAS,CAAE,oBAAgBC,KAC7B,cAAAy2C,EAAA7yC,OAAA,SAAA6yC,EAAA9hD,MAAA,OAAA8hD,EAAAjiD,KAAA,EAAAiiD,EAAAr/C,GAAAq/C,EAAA,SAEFhF,EAASgF,EAAAr/C,IACTg8C,EAASqD,EAAAr/C,IAAM,yBAAAq/C,EAAAjhD,OAAA,GAAAghD,EAAA,mBAEtB/gD,MAAA,KAAAC,UAAA,CAWD,SAAA6lQ,IAFC,OAEDA,GAAApnQ,OAAAC,UATA,SAAA21F,EAAqD4xK,EAAW3kQ,GAAI,OAAA5C,UAAA,SAAA41F,GAAA,cAAAA,EAAAx1F,KAAAw1F,EAAAv1F,MAAA,cAAAu1F,EAAAx1F,KAAA,EAAAw1F,EAAAv1F,KAAA,EAE/CoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,iDAAAC,OAAgDwjQ,GAAa3kQ,GAAK,cAAAgzF,EAAApmF,OAAA,SAAAomF,EAAAr1F,MAAA,OAAAq1F,EAAAx1F,KAAA,EAAAw1F,EAAA5yF,GAAA4yF,EAAA,SAElGv4C,EAASu4C,EAAA5yF,IACTg8C,EAAS42C,EAAA5yF,IAAM,yBAAA4yF,EAAAx0F,OAAA,GAAAu0F,EAAA,mBAEtBt0F,MAAA,KAAAC,UAAA,CAGwC,SAAAgkQ,IAOxC,OAPwCA,GAAAvlQ,OAAAC,UAAzC,SAAA61F,EAA0C7xF,EAAQwjQ,GAAY,OAAAxnQ,UAAA,SAAA81F,GAAA,cAAAA,EAAA11F,KAAA01F,EAAAz1F,MAAA,cAAAy1F,EAAA11F,KAAA,EAAA01F,EAAAz1F,KAAA,EAEzCoB,EAAK,OAAQqC,OAAS,oDAAsDE,EAAS,iBAAmBwjQ,GAAa,cAAA1xK,EAAAtmF,OAAA,SAAAsmF,EAAAv1F,MAAA,OAAAu1F,EAAA11F,KAAA,EAAA01F,EAAA9yF,GAAA8yF,EAAA,SAElIz4C,EAASy4C,EAAA9yF,IACTg8C,EAAS82C,EAAA9yF,IAAM,yBAAA8yF,EAAA10F,OAAA,GAAAy0F,EAAA,mBAEtBx0F,MAAA,KAAAC,UAAA,CAEmD,SAAA+lQ,IAMnD,OANmDA,GAAAtnQ,OAAAC,UAApD,SAAAo7F,EAAqDmsK,GAAS,OAAAvnQ,UAAA,SAAAq7F,GAAA,cAAAA,EAAAj7F,KAAAi7F,EAAAh7F,MAAA,cAAAg7F,EAAAj7F,KAAA,EAAAi7F,EAAAh7F,KAAA,EAEzCoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,iDAAAC,OAAgDwjQ,IAAY,cAAAlsK,EAAA7rF,OAAA,SAAA6rF,EAAA96F,MAAA,OAAA86F,EAAAj7F,KAAA,EAAAi7F,EAAAr4F,GAAAq4F,EAAA,SAE/Fh+C,EAASg+C,EAAAr4F,IAAM,wBAAAq4F,EAAAj6F,OAAA,GAAAg6F,EAAA,mBAEtB/5F,MAAA,KAAAC,UAAA,CAED,SAAS09C,EAAU5gB,GACf,MAAMA,CACV,CAEA,SAASif,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CACJ,C,+NC/J6B,SAAAx+B,GAAUsV,EAAmBzT,EAAOkiQ,EAAkC8D,EAASpiJ,EAAmBqiJ,EAAaC,EAAa3lQ,GAErJ,IAqBU4lQ,EArBJr+P,EAAKwH,KA0BuB,SAAA82P,IAUjC,OAViCA,GAAA9nQ,OAAAC,UAAlC,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACgD,OAA5CkJ,EAAGu+P,mCAAoC,EAAK3nQ,EAAAE,KAAA,EACtC0nQ,IAAe,cAAA5nQ,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEIsjQ,EAAiC2C,uBAAuB/8P,EAAGy+P,UAAUxpP,IAAG,OAAzF/a,EAAQtD,EAAAI,KACZgJ,EAAG0+P,2BAA6BxkQ,EAASb,KACzC2G,EAAGu+P,mCAAoC,EAAM3nQ,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAE7CoJ,EAAGu+P,mCAAoC,EAAM,yBAAA3nQ,EAAAiB,OAAA,GAAAnB,EAAA,oBAEpDoB,MAAA,KAAAC,UAAA,CAQA,SAEcymQ,IAAa,OAAAG,EAAA7mQ,MAAC,KAADC,UAAA,UAAA4mQ,IAG3B,OAH2BA,GAAAnoQ,OAAAC,UAA5B,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,sBAAoB,OAAxDL,EAAQZ,EAAAtC,KACZgJ,EAAGy+P,UAAYvkQ,EAASb,KAAK0J,MAAK,SAAAq4D,GAAM,OAAIA,EAAOwjM,SAAS,IAAE,wBAAAtlQ,EAAAzB,OAAA,GAAAsB,EAAA,MACjErB,MAAA,KAAAC,UAAA,CAOA,SAEc4kQ,IAAuB,OAAAC,EAAA9kQ,MAAC,KAADC,UAAA,UAAA6kQ,IAWrC,OAXqCA,GAAApmQ,OAAAC,UAAtC,SAAAwD,IAAA,IAAA4kQ,EAAAC,EAAA,OAAAroQ,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OACgD,OAA5CkJ,EAAG++P,mCAAoC,EAAK5kQ,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEZsjQ,EAAiCuC,wBAAwB38P,EAAGk+P,QAAQ9/K,QAAQ51E,KAAK4a,eAAc,OACnE,OADpDy7O,EAAe1kQ,EAAAnD,KACnBgJ,EAAGg/P,8BAAgCH,EAAgBxlQ,KAAKc,EAAArD,KAAA,EAC3BsjQ,EAAiC+C,4BAA2B,OAArF2B,EAAgB3kQ,EAAAnD,KACpBgJ,EAAGg/P,8BAAgC,GAAHxkQ,QAAAutB,OAAO/nB,EAAGg/P,gCAA6Bj3O,OAAK+2O,EAAiBzlQ,OAC7F2G,EAAG++P,mCAAoC,EAAM5kQ,EAAArD,KAAA,iBAAAqD,EAAAtD,KAAA,GAAAsD,EAAAV,GAAAU,EAAA,SAE7C6F,EAAG++P,mCAAoC,EAAM,yBAAA5kQ,EAAAtC,OAAA,GAAAoC,EAAA,oBAEpDnC,MAAA,KAAAC,UAAA,CAEoC,SAAAknQ,IASpC,OAToCA,GAAAzoQ,OAAAC,UAArC,SAAAoE,IAAA,IAAAX,EAAA,OAAAzD,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OACgD,OAA5CkJ,EAAG++P,mCAAoC,EAAKjkQ,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEnBsjQ,EAAiC6C,2BAA0B,OAA5E/iQ,EAAQY,EAAA9D,KACZgJ,EAAGg/P,8BAAgC9kQ,EAASb,KAC5C2G,EAAG++P,mCAAoC,EAAMjkQ,EAAAhE,KAAA,gBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAE7CkF,EAAG++P,mCAAoC,EAAM,yBAAAjkQ,EAAAjD,OAAA,GAAAgD,EAAA,mBAEpD/C,MAAA,KAAAC,UAAA,CAEmC,SAAAmnQ,IAqBnC,OArBmCA,GAAA1oQ,OAAAC,UAApC,SAAA6K,IAAA,IAAAjI,EAAA,OAAA5C,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAQK,GAPDkJ,EAAGm/P,mBAAqB,IAAIr9P,EAEtBzI,EAAO,CACT4b,GAAIjV,EAAGk+P,QAAQjpP,GACfmqP,qBAAsBp/P,EAAGk+P,QAAQmB,mBAAmBpqP,GACpDqqP,qBAAsBt/P,EAAGk+P,QAAQqB,mBAAmBtqP,GACpDktB,UAAWniC,EAAGk+P,QAAQ9/K,QAAUp+E,EAAGk+P,QAAQ9/K,QAAQ1iF,GAAK,MAC3DiG,EAAA9K,KAAA,GAGOmJ,EAAGk+P,QAAQjpP,GAAI,CAAFtT,EAAA7K,KAAA,eAAA6K,EAAA7K,KAAA,EACPsjQ,EAAiCuD,sCAAsC39P,EAAGk+P,QAAQjpP,GAAI5b,GAAK,OAAAsI,EAAA7K,KAAA,uBAAA6K,EAAA7K,KAAA,GAE3FsjQ,EAAiCmD,sCAAsClkQ,GAAK,eAAAsI,EAAA7K,KAAA,GAEhF2B,EAAc8J,qBAAqBvC,EAAGm/P,oBAAmB,QAQnExzP,EAAkBuC,QAPNvM,EAAA7K,KAAA,iBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAlI,GAAAkI,EAAA,SAER3B,EAAGm/P,mBAAmBt+P,cAAe,EAAM,yBAAAc,EAAA9J,OAAA,GAAAyJ,EAAA,oBAElDxJ,MAAA,KAAAC,UAAA,CArGDiI,EAAGgQ,oBAAkB+X,OAAO+zF,GAC5B97G,EAAGk+P,Q,wWAAO7rM,CAAA,GAAQ6rM,GAClBl+P,EAAGo+P,YAAcA,EAEjBp+P,EAAGm8G,uBA6CH,WACQn8G,EAAGg/P,gCACHh/P,EAAGg/P,8BAAgC,MAEvCrC,GACJ,EAjDA38P,EAAGw/P,sBAyEF,WAEmC,OAAAN,EAAApnQ,MAAC,KAADC,UAAA,EA1EpCiI,EAAGwC,OAqGH,WACImJ,EAAkBxH,SACtB,EAlGQnE,EAAGk+P,QAAQjpP,IAA+B,OAAzBjV,EAAGk+P,QAAQ/7N,YAQ1Bk8N,EAAeF,EAAYp7P,MAAK,SAAA6rB,GAAO,OAAIA,EAAQlzB,KAAOsE,EAAGk+P,QAAQ/7N,SAAS,IACpFniC,EAAGgQ,mBAAmBlG,QAAQu0P,GAC9Br+P,EAAGk+P,QAAQ9/K,QAAUp+E,EAAGgQ,mBAAmB,IAC9C,WAEiCsuP,EAAAxmQ,MAAC,KAADC,UAAA,CAV9B0nQ,GAuB6B,OAAzBz/P,EAAGk+P,QAAQ/7N,WAAsC,wBAAhBi8N,EA8BxC,WAEoCa,EAAAnnQ,MAAC,KAADC,UAAA,CA/B7B2nQ,GAEA/C,GAuEZ,CCnH6B,SAAAtmQ,GAAUgY,EAAW9V,EAAa6hQ,GAE3D,IAAMp6P,EAAKwH,KAQY,SAAA7O,IAEtB,OAFsBA,GAAAnC,OAAAC,UAAvB,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACU6oQ,IAAoB,wBAAA/oQ,EAAAiB,OAAA,GAAAnB,EAAA,MAC7BoB,MAAA,KAAAC,UAAA,CAuBC,SAEa4nQ,IAAkB,OAAAC,EAAA9nQ,MAAC,KAADC,UAAA,UAAA6nQ,IAQhC,OARgCA,GAAAppQ,OAAAC,UAAjC,SAAA0C,IAAA,IAAAe,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyBsjQ,EAAiCqC,kCAAiC,OAET,GAF1EviQ,EAAQZ,EAAAtC,KACZgJ,EAAG6/P,mBAAqB3lQ,EAASb,KAAKsC,QAAO,SAAAuiQ,GAAO,OAA0B,OAAtBA,EAAQ/7N,SAAkB,IAClFniC,EAAG8/P,aAAe5lQ,EAASb,KAAKsC,QAAO,SAAAuiQ,GAAO,OAA0B,OAAtBA,EAAQ/7N,SAAkB,IACvEniC,EAAGm+P,YAAa,CAAF7kQ,EAAAxC,KAAA,eAAAwC,EAAAxC,KAAA,EACT2P,IAAa,OAEvBzG,EAAG87G,kBAAoB97G,EAAGm+P,YAAYxiQ,QAAO,SAAAizB,GAAO,OAAK5uB,EAAG8/P,aAAazjP,MAAK,SAAA6hP,GAAO,OAAIA,EAAQ/7N,YAAcvT,EAAQlzB,EAAE,GAAC,IAAE,wBAAApC,EAAAzB,OAAA,GAAAsB,EAAA,MAC/HrB,MAAA,KAAAC,UAAA,UAEc0O,IAAW,OAAAqJ,EAAAhY,MAAC,KAADC,UAAA,UAAA+X,IAGzB,OAHyBA,GAAAtZ,OAAAC,UAA1B,SAAAwD,IAAA,IAAAC,EAAA,OAAAzD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAArD,KAAA,EACyByB,EAAYkO,cAAa,OAA1CvM,EAAQC,EAAAnD,KACZgJ,EAAGm+P,YAAcjkQ,EAASb,KAAK,wBAAAc,EAAAtC,OAAA,GAAAoC,EAAA,MAClCnC,MAAA,KAAAC,UAAA,CAEkC,SAAAgoQ,IAqBlC,OArBkCA,GAAAvpQ,OAAAC,UAAnC,SAAAoE,EAAoCqjQ,EAASE,GAAW,IAAA4B,EAAA,OAAAvpQ,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAYlD,OAXIkpQ,EAAmB3xP,EAAUvU,KAAK,CACpC0X,YAAa,+FACbC,WAAYwuP,GACZtuP,aAAc,SACdC,SAAU,SACVC,QAAS,CACLqsP,QAAS,WAAF,OAAQA,GAAW,IAAI,EAC9BpiJ,kBAAmB,WAAF,OAAQ97G,EAAG87G,mBAAqB,IAAI,EACrDsiJ,YAAa,WAAF,OAAQA,GAAe,IAAI,EACtCD,YAAa,WAAF,OAAQn+P,EAAGm+P,aAAe,IAAI,KAE/CrjQ,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGQkpQ,EAAiB70P,OAAM,OAC7Bw0P,IAAqB7kQ,EAAAhE,KAAA,uBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAK5B/C,MAAA,KAAAC,UAAA,CAE2B,SAAAmoQ,IAG3B,OAH2BA,GAAA1pQ,OAAAC,UAA5B,SAAA6K,EAA6B48P,GAAO,OAAAznQ,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA7K,KAAA,EAC1BsjQ,EAAiCyD,sCAAsCK,EAAQjpP,IAAG,OACxF0qP,IAAqB,wBAAAh+P,EAAA9J,OAAA,GAAAyJ,EAAA,MACxBxJ,MAAA,KAAAC,UAAA,CAEiC,SAAAooQ,IASjC,OATiCA,GAAA3pQ,OAAAC,UAAlC,SAAAkM,IAAA,OAAAlM,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,OACoC,OAAhCkJ,EAAGogQ,uBAAwB,EAAKx9P,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEtBsjQ,EAAiCqD,4CAA2C,OAClFz9P,EAAGogQ,uBAAwB,EAAMx9P,EAAA9L,KAAA,gBAEA,OAFA8L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAEjC5C,EAAGogQ,uBAAwB,EAAMx9P,EAAAqD,OAAA,mCAAArD,EAAA/K,OAAA,GAAA8K,EAAA,mBAGxC7K,MAAA,KAAAC,UAAA,CArFDiI,EAAGqgQ,qBA8CF,SAEkC/6P,EAAAnE,GAAA,OAAA4+P,EAAAjoQ,MAAC,KAADC,UAAA,EA/CnCiI,EAAGsgQ,cAoEF,SAE2Bl/P,GAAA,OAAA8+P,EAAApoQ,MAAC,KAADC,UAAA,EArE5BiI,EAAGugQ,oBAwEF,WAEiC,OAAAJ,EAAAroQ,MAAC,KAADC,UAAA,EAxElCiI,EAAGonB,QAAmB,WAEC,OAAAzuB,EAAAb,MAAC,KAADC,UAAA,EAIvBiI,EAAGwgQ,mBAAqB,CACpB,CACIv8P,KAAM,OACN2nB,MAAO,SAAUC,EAAYrtB,EAAQ8oB,GACjC,IACI82O,EADA1zP,EAAO4c,EAGP82O,EADmB,OAAnB1zP,EAAKy3B,UACS,sBAEA,cAElBniC,EAAGqgQ,qBAAqB31P,EAAM0zP,EAClC,GAEJ,CACIn6P,KAAM,0CACN2nB,MAAO,SAAUC,EAAYrtB,EAAQ8oB,GACjC,IAAI5c,EAAO4c,EACXtnB,EAAGsgQ,cAAc51P,EACrB,GAyDZ,C,yCD5FoErU,GAAAgxB,QAAA,2ICAuBhxB,GAAAgxB,QAAA,+DCe3F,SAN+B,CAC3B5V,WAAYgvP,GACZ9uP,aAAc,QACdH,YAAa,iGCPjB,GAAe7X,WACH,yCAA0C,IACjD+gB,UAAU,wBAAyBgmP,IACnCjvO,QAAQ,mCAAoCkvO,IAC5CjmP,UAAU,yBAA0BkmP,IAChC,KCVoB,SAAAvqQ,GAAU6B,EAAO8I,GAE1C,IAAM+yB,EAAU,CACZlR,qBAUW,WAEoB,OAAA+3B,EAAA9iD,MAAC,KAADC,UAAA,EAX/B8oQ,kBAiBH,WAE+B,OAAAC,EAAAhpQ,MAAC,KAADC,UAAA,EAlB5BgpQ,kBAwBH,WAE+B,OAAAC,EAAAlpQ,MAAC,KAADC,UAAA,EAzB5BkpQ,cA+BH,SAE2B37P,GAAA,OAAA47P,EAAAppQ,MAAC,KAADC,UAAA,EAhCxBopQ,cAuCH,SAE2BhgQ,GAAA,OAAAigQ,EAAAtpQ,MAAC,KAADC,UAAA,EAxCxBspQ,kBA+CH,SAE+BjgQ,GAAA,OAAAkgQ,EAAAxpQ,MAAC,KAADC,UAAA,EAhD5BwpQ,oBAuDH,SAEiCh2P,GAAA,OAAAi2P,EAAA1pQ,MAAC,KAADC,UAAA,EAxD9B0pQ,qBA+DH,SAEkC7tN,EAAAmB,GAAA,OAAA2sN,EAAA5pQ,MAAC,KAADC,UAAA,GA9DnC,OAAOg8B,EAE4B,SAAA6mB,IAMlC,OANkCA,GAAApkD,OAAAC,UAAnC,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,6CAA2C,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE3Ek9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAE+B,SAAA+oQ,IAM/B,OAN+BA,GAAAtqQ,OAAAC,UAAhC,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,+CAA6C,cAAAjB,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAE7Ew6C,EAASx6C,EAAAG,IAAM,wBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAE+B,SAAAipQ,IAM/B,OAN+BA,GAAAxqQ,OAAAC,UAAhC,SAAAwD,IAAA,OAAAxD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,kCAAgC,cAAAJ,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEhE25C,EAAS35C,EAAAV,IAAM,wBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAE2B,SAAAmpQ,IAO3B,OAP2BA,GAAA1qQ,OAAAC,UAA5B,SAAAoE,EAA6BxB,GAAI,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEZoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,iCAAiClB,GAAK,cAAAyB,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAEvEg5C,EAASh5C,EAAArB,IACTg8C,EAAS36C,EAAArB,IAAM,yBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAE2B,SAAAqpQ,IAO3B,OAP2BA,GAAA5qQ,OAAAC,UAA5B,SAAA6K,EAA6BjI,GAAI,OAAA5C,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEZoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,iCAAiClB,GAAK,cAAAsI,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEvEmyC,EAASnyC,EAAAlI,IACTg8C,EAAS9zC,EAAAlI,IAAM,yBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAE+B,SAAAupQ,IAO/B,OAP+BA,GAAA9qQ,OAAAC,UAAhC,SAAAkM,EAAiCtJ,GAAI,OAAA5C,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEhBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,yCAAyClB,GAAK,cAAAuJ,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAE/EkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAEiC,SAAAypQ,IAOjC,OAPiCA,GAAAhrQ,OAAAC,UAAlC,SAAA8uB,EAAmC2b,GAAS,OAAAzqC,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAEvBoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,gCAAAC,OAA+B0mC,IAAY,cAAA1b,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAE9EsuB,EAAStuB,EAAA/rB,IACTg8C,EAASjwB,EAAA/rB,IAAM,yBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAEtBztB,MAAA,KAAAC,UAAA,CAEkC,SAAA2pQ,IAOlC,OAPkCA,GAAAlrQ,OAAAC,UAAnC,SAAAkvB,EAAoCg8O,EAAgBzgO,GAAS,OAAAzqC,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAExCoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,+CAAAC,OAA8CmnQ,EAAe5gO,gBAAe,aAAAvmC,OAAYmnQ,EAAehgO,UAAS,aAAAnnC,OAAY0mC,EAAS,MAAI,cAAAtb,EAAA3f,OAAA,SAAA2f,EAAA5uB,MAAA,OAAA4uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAE5KkuB,EAASluB,EAAAnsB,IACTg8C,EAAS7vB,EAAAnsB,IAAM,yBAAAmsB,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAEtB7tB,MAAA,KAAAC,UAAA,CAED,SAAS09C,EAAU5gB,GACf,MAAMA,CACV,CAEA,SAASif,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CACJ,CC3F6B,SAAAx+B,GAAU6B,EAAO8I,GAE1C,IAAM+yB,EAAU,CACZ69B,oBAQW,WAEmB,OAAAumL,EAAArgP,MAAC,KAADC,UAAA,EAT9B6pQ,sBAeH,SAEmCt8P,GAAA,OAAAu8P,EAAA/pQ,MAAC,KAADC,UAAA,EAhBhC+pQ,sBAuBH,SAEmC3gQ,EAAAC,GAAA,OAAA2gQ,EAAAjqQ,MAAC,KAADC,UAAA,EAxBhCiqQ,sBA+BH,SAEmCz2P,GAAA,OAAA02P,EAAAnqQ,MAAC,KAADC,UAAA,EAhChCmqQ,WAsCH,SAEwBtuN,EAAAmB,GAAA,OAAAotN,EAAArqQ,MAAC,KAADC,UAAA,EAvCrBqqQ,cA8CH,SAE2BptN,EAAAK,GAAA,OAAAgtN,EAAAvqQ,MAAC,KAADC,UAAA,GA7C5B,OAAOg8B,EAE2B,SAAAokN,IAMjC,OANiCA,GAAA3hP,OAAAC,UAAlC,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,oCAAkC,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAElEk9C,EAASl9C,EAAA6C,IAAQ,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAExBoB,MAAA,KAAAC,UAAA,CAEmC,SAAA8pQ,IAOnC,OAPmCA,GAAArrQ,OAAAC,UAApC,SAAA0C,EAAqC6c,GAAQ,OAAAvf,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAExBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,mCAAmCyb,GAAS,cAAA1c,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAE7Ew6C,EAASx6C,EAAAG,IACTg8C,EAASn8C,EAAAG,IAAQ,yBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAExBrB,MAAA,KAAAC,UAAA,CAEmC,SAAAgqQ,IAOnC,OAPmCA,GAAAvrQ,OAAAC,UAApC,SAAAwD,EAAqCuwI,EAAYl0H,GAAO,OAAA7f,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEnCoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,oCAAAC,OAAmCgwI,GAAcl0H,GAAQ,cAAAnc,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEzF25C,EAAS35C,EAAAV,IACTg8C,EAASt7C,EAAAV,IAAQ,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAExBnC,MAAA,KAAAC,UAAA,CAEmC,SAAAkqQ,IAMnC,OANmCA,GAAAzrQ,OAAAC,UAApC,SAAAoE,EAAqC2vI,GAAU,OAAA/zI,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAE1BoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,oCAAAC,OAAmCgwI,IAAa,cAAA1vI,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAEnFg5C,EAASh5C,EAAArB,IAAQ,wBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAExB/C,MAAA,KAAAC,UAAA,CAEwB,SAAAoqQ,IAOxB,OAPwBA,GAAA3rQ,OAAAC,UAAzB,SAAA6K,EAA0BkpI,EAAYx0H,GAAQ,OAAAvf,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEzBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,oCAAAC,OAAmCgwI,EAAU,cAAcx0H,GAAS,cAAArU,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAErGmyC,EAASnyC,EAAAlI,IACTg8C,EAAS9zC,EAAAlI,IAAQ,yBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAExBxJ,MAAA,KAAAC,UAAA,CAE2B,SAAAsqQ,IAM3B,OAN2BA,GAAA7rQ,OAAAC,UAA5B,SAAAkM,EAA6B6nI,EAAY83H,GAAe,OAAA7rQ,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEnCoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,oCAAAC,OAAmCgwI,EAAU,eAAAhwI,OAAc8nQ,IAAkB,cAAA1/P,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAEhHkxC,EAASlxC,EAAAnJ,IAAQ,wBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAExB7K,MAAA,KAAAC,UAAA,CAED,SAAS09C,EAAU5gB,GACf,MAAMA,CACV,CAEA,SAASif,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CACJ,CCvE6B,SAAAx+B,GAAU6B,EAAO8I,GAE1C,IAAM+yB,EAAU,CACZttB,YAWW,WAGW,OAAAqJ,EAAAhY,MAAC,KAADC,UAAA,EAbtBwqQ,UAmBH,SAEuBj9P,GAAA,OAAAk9P,EAAA1qQ,MAAC,KAADC,UAAA,EApBpB0qQ,WAkCH,SAEwBthQ,EAAAC,EAAAmK,GAAA,OAAAm3P,EAAA5qQ,MAAC,KAADC,UAAA,EAnCrB4qQ,iCAyBH,WAE8C,OAAAC,EAAA9qQ,MAAC,KAADC,UAAA,EA1B3C8qQ,iBAqEH,SAE8B1rN,GAAA,OAAA2rN,EAAAhrQ,MAAC,KAADC,UAAA,EAtE3BgrQ,kBA6EH,WAE+B,OAAAC,EAAAlrQ,MAAC,KAADC,UAAA,EA9E5BkrQ,kBAqFH,SAE+B3rN,GAAA,OAAA4rN,EAAAprQ,MAAC,KAADC,UAAA,EAtF5BorQ,oBA2CH,SAEiCvvN,EAAAmB,EAAAC,GAAA,OAAAouN,EAAAtrQ,MAAC,KAADC,UAAA,EA5C9BsrQ,kBAwDH,SAE+BhuN,GAAA,OAAAiuN,EAAAxrQ,MAAC,KAADC,UAAA,GAvDhC,OAAOg8B,EAGmB,SAAAjkB,IAMzB,OANyBA,GAAAtZ,OAAAC,UAA1B,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,2BAAyB,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAEzDk9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAEuB,SAAAyqQ,IAMvB,OANuBA,GAAAhsQ,OAAAC,UAAxB,SAAA0C,EAAyBsB,GAAM,OAAAhE,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEVoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,6BAAAC,OAA4BC,IAAS,cAAAnB,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAErEw6C,EAASx6C,EAAAG,IAAM,wBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAE8C,SAAA6qQ,IAM9C,OAN8CA,GAAApsQ,OAAAC,UAA/C,SAAAwD,IAAA,OAAAxD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEqBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,yDAAuD,cAAAJ,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAExF25C,EAAUjf,KAAK,wBAAA16B,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAEwB,SAAA2qQ,IAYxB,OAZwBA,GAAAlsQ,OAAAC,UAAzB,SAAAoE,EAA0B0mD,EAAUliD,EAAMhG,GAAI,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEzBoB,EAAM,CACfmC,OAAQ,OACRC,IAAKC,OAAS,+CACdlB,KAAMA,EACNkQ,OAAQ,CAAE,SAAYg4C,EAAU,KAAQliD,KAC1C,cAAAvE,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAEFg5C,EAASh5C,EAAArB,IACTg8C,EAAS36C,EAAArB,IAAM,yBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAEiC,SAAAqrQ,IAYjC,OAZiCA,GAAA5sQ,OAAAC,UAAlC,SAAA6K,EAAmC0U,EAAUurC,EAAUliD,GAAI,OAAA5I,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEtCoB,EAAM,CACfmC,OAAQ,OACRC,IAAKC,OAAS,yDACdlB,KAAM2c,EACNzM,OAAQ,CAAE,SAAYg4C,EAAU,KAAQliD,KAC1C,cAAAsC,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEFmyC,EAASnyC,EAAAlI,IACTg8C,EAAS9zC,EAAAlI,IAAM,yBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAE+B,SAAAurQ,IAO/B,OAP+BA,GAAA9sQ,OAAAC,UAAhC,SAAAkM,EAAiCqT,GAAQ,OAAAvf,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEpBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,0CAA0Cyb,GAAS,cAAApT,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAEpFkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAE8B,SAAA+qQ,IAO9B,OAP8BA,GAAAtsQ,OAAAC,UAA/B,SAAA8uB,EAAgCvP,GAAQ,OAAAvf,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAEnBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,0CAA0Cyb,GAAS,cAAAwP,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAEpFsuB,EAAStuB,EAAA/rB,IACTg8C,EAASjwB,EAAA/rB,IAAM,yBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAEtBztB,MAAA,KAAAC,UAAA,CAE+B,SAAAirQ,IAO/B,OAP+BA,GAAAxsQ,OAAAC,UAAhC,SAAAkvB,IAAA,OAAAlvB,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAEqBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,qCAAmC,cAAAqrB,EAAA3f,OAAA,SAAA2f,EAAA5uB,MAAA,OAAA4uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAEpEkuB,EAASluB,EAAAnsB,IACTg8C,EAAS7vB,EAAAnsB,IAAM,yBAAAmsB,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAEtB7tB,MAAA,KAAAC,UAAA,CAE+B,SAAAmrQ,IAU/B,OAV+BA,GAAA1sQ,OAAAC,UAAhC,SAAAwvB,EAAiCmI,GAAE,OAAA33B,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,cAAAovB,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAEdoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,mCAAmC6zB,EAAI,CACnElsB,iBAAkBvI,QAAQwI,SAC1BC,QAAS,CAAE,oBAAgBC,KAC7B,cAAA6jB,EAAAjgB,OAAA,SAAAigB,EAAAlvB,MAAA,OAAAkvB,EAAArvB,KAAA,EAAAqvB,EAAAzsB,GAAAysB,EAAA,SAEF4tB,EAAS5tB,EAAAzsB,IACTg8C,EAASvvB,EAAAzsB,IAAM,yBAAAysB,EAAAruB,OAAA,GAAAouB,EAAA,mBAEtBnuB,MAAA,KAAAC,UAAA,CAED,SAAS09C,EAAU5gB,GACf,MAAMA,CACV,CAEA,SAASif,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CACJ,CCnH6B,SAAAx+B,GAAU6B,EAAO8I,GAC1C,IAAIywB,EAAU,CACVmlL,YAMW,WAEW,OAAA2sD,EAAAzrQ,MAAC,KAADC,UAAA,EAPtByrQ,oBAcH,WAEiC,OAAAC,EAAA3rQ,MAAC,KAADC,UAAA,EAf9B2rQ,oBAsBH,SAEiCp+P,GAAA,OAAAq+P,EAAA7rQ,MAAC,KAADC,UAAA,EAvB9B6rQ,mBAiCH,SAEgCziQ,GAAA,OAAA0iQ,EAAA/rQ,MAAC,KAADC,UAAA,GAhCjC,OAAO05B,EAEmB,SAAA8xO,IAOzB,OAPyBA,GAAA/sQ,OAAAC,UAA1B,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,iCAA+B,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE/Dk9C,EAASl9C,EAAA6C,IACTg8C,EAAS7+C,EAAA6C,IAAM,yBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAEiC,SAAA0rQ,IAOjC,OAPiCA,GAAAjtQ,OAAAC,UAAlC,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,+CAA+C,CAAEo7B,aAAc,SAAS,cAAAr8B,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAExGw6C,EAASx6C,EAAAG,IACTg8C,EAASn8C,EAAAG,IAAM,yBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAEiC,SAAA4rQ,IAUjC,OAViCA,GAAAntQ,OAAAC,UAAlC,SAAAwD,EAAmCm0B,GAAE,OAAA33B,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEhBoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,+CAA+C6zB,EAAI,CAC/ElsB,iBAAkBvI,QAAQwI,SAC1BC,QAAS,CAAE,oBAAgBC,KAC7B,cAAAlI,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEF25C,EAAS35C,EAAAV,IACTg8C,EAASt7C,EAAAV,IAAM,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAEgC,SAAA8rQ,IAOhC,OAPgCA,GAAArtQ,OAAAC,UAAjC,SAAAoE,EAAkCxB,GAAI,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEjBoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,gCAAAC,OAA+BnB,EAAK0sI,uBAAsB,YAAY1sI,GAAK,cAAAyB,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAE3Gg5C,EAASh5C,EAAArB,IACTg8C,EAAS36C,EAAArB,IAAM,yBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAED,SAAS09C,EAAU5gB,GACf,MAAMA,CACV,CAEA,SAASif,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CAEJ,CCzD6B,SAAAx+B,GAAU6B,EAAO8I,GAC1C,IAAIywB,EAAU,CACVqyO,oBAKW,WAEmB,OAAAC,EAAAjsQ,MAAC,KAADC,UAAA,EAN9BisQ,oBAaH,SAEiC1+P,GAAA,OAAA2+P,EAAAnsQ,MAAC,KAADC,UAAA,EAd9BmsQ,mBAwBH,SAEgC/iQ,GAAA,OAAAgjQ,EAAArsQ,MAAC,KAADC,UAAA,GAvBjC,OAAO05B,EAE2B,SAAAsyO,IAOjC,OAPiCA,GAAAvtQ,OAAAC,UAAlC,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,4CAA4C,CAAEo7B,aAAc,SAAS,cAAA/+B,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAErGk9C,EAASl9C,EAAA6C,IACTg8C,EAAS7+C,EAAA6C,IAAM,yBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAEiC,SAAAksQ,IAUjC,OAViCA,GAAAztQ,OAAAC,UAAlC,SAAA0C,EAAmCi1B,GAAE,OAAA33B,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEhBoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,4CAA4C6zB,EAAI,CAC5ElsB,iBAAkBvI,QAAQwI,SAC1BC,QAAS,CAAE,oBAAgBC,KAC7B,cAAA/I,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAEFw6C,EAASx6C,EAAAG,IACTg8C,EAASn8C,EAAAG,IAAM,yBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAEgC,SAAAosQ,IAOhC,OAPgCA,GAAA3tQ,OAAAC,UAAjC,SAAAwD,EAAkCZ,GAAI,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEjBoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,oCAAoClB,GAAK,cAAAc,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEzE25C,EAAS35C,EAAAV,IACTg8C,EAASt7C,EAAAV,IAAM,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAED,SAAS09C,EAAU5gB,GACf,MAAMA,CACV,CAEA,SAASif,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CAEJ,CC/C6B,SAAAx+B,GAAU6B,EAAO8I,GAC1C,IAAM+yB,EAAU,CACZqwO,eAqCH,SAG4BjjQ,EAAAC,GAAA,OAAAijQ,EAAAvsQ,MAAC,KAADC,UAAA,EAvCzBusQ,uBAoBH,WAEoC,OAAAC,EAAAzsQ,MAAC,KAADC,UAAA,EArBjCysQ,kBA2BH,WAE+B,OAAAC,EAAA3sQ,MAAC,KAADC,UAAA,EA5B5B2sQ,kCAWJ,SACgDp/P,GAAA,OAAAq/P,EAAA7sQ,MAAC,KAADC,UAAA,EAX5C6sQ,kBA0CH,SAE+Br5P,GAAA,OAAAs5P,EAAA/sQ,MAAC,KAADC,UAAA,EA3C5B+sQ,6BAkDH,SAE0ClxN,GAAA,OAAAmxN,EAAAjtQ,MAAC,KAADC,UAAA,EAnDvCitQ,iBA0DH,SAG8BjwN,GAAA,OAAAkwN,EAAAntQ,MAAC,KAADC,UAAA,EA5D3BmtQ,2BAmEH,SAEwClwN,GAAA,OAAAmwN,EAAArtQ,MAAC,KAADC,UAAA,EApErCqtQ,kBA2EH,SAE+B/vN,GAAA,OAAAgwN,EAAAvtQ,MAAC,KAADC,UAAA,EA5E5ButQ,8BAsFH,SAG2CnuN,GAAA,OAAAouN,EAAAztQ,MAAC,KAADC,UAAA,GAtF5C,OAAOg8B,EAGyC,SAAA4wO,IAM/C,OAN+CA,GAAAnuQ,OAAAC,UAAhD,SAAAC,EAAiD8uQ,GAAc,OAAA/uQ,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAE1CoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,gDAAAC,OAA+CgrQ,IAAiB,cAAA5uQ,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAEhGk9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAEoC,SAAAwsQ,IAMpC,OANoCA,GAAA/tQ,OAAAC,UAArC,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,gCAA8B,cAAAjB,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAE9Dw6C,EAASx6C,EAAAG,IAAM,wBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAUD,SAAA0sQ,IAFC,OAEDA,GAAAjuQ,OAAAC,UARA,SAAAwD,IAAA,OAAAxD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,iDAAiD,CAAEo7B,aAAc,SAAS,cAAAx7B,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAE1G25C,EAAS35C,EAAAV,IAAM,wBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAG4B,SAAAssQ,IAM5B,OAN4BA,GAAA7tQ,OAAAC,UAA7B,SAAAoE,EAA8BxB,EAAMkQ,GAAM,OAAA9S,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAErBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,+BAA+BlB,EAAM,CAAEkQ,OAAQA,IAAS,cAAAzO,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAEzFg5C,EAASh5C,EAAArB,IAAM,wBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAE+B,SAAA8sQ,IAO/B,OAP+BA,GAAAruQ,OAAAC,UAAhC,SAAA6K,EAAiCjI,GAAI,OAAA5C,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEhBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,0CAA0ClB,GAAK,cAAAsI,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEhFmyC,EAASnyC,EAAAlI,IACTg8C,EAAS9zC,EAAAlI,IAAM,yBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAWD,SAAAgtQ,IAFC,OAEDA,GAAAvuQ,OAAAC,UATA,SAAAkM,EAA4CtJ,GAAI,OAAA5C,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAE3BoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,+CAA+ClB,GAAK,cAAAuJ,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAErFkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAG8B,SAAAktQ,IAO9B,OAP8BA,GAAAzuQ,OAAAC,UAA/B,SAAA8uB,EAAgClsB,GAAI,OAAA5C,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAEfoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,0CAA0ClB,GAAK,cAAAmsB,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAE/EsuB,EAAStuB,EAAA/rB,IACTg8C,EAASjwB,EAAA/rB,IAAM,yBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAEtBztB,MAAA,KAAAC,UAAA,CAEwC,SAAAotQ,IAOxC,OAPwCA,GAAA3uQ,OAAAC,UAAzC,SAAAkvB,EAA0CtsB,GAAI,OAAA5C,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAEzBoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,0CAA0ClB,GAAK,cAAAusB,EAAA3f,OAAA,SAAA2f,EAAA5uB,MAAA,OAAA4uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAE/EkuB,EAASluB,EAAAnsB,IACTg8C,EAAS7vB,EAAAnsB,IAAM,yBAAAmsB,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAEtB7tB,MAAA,KAAAC,UAAA,CAcD,SAAAstQ,IAFC,OAEDA,GAAA7uQ,OAAAC,UAZA,SAAAwvB,EAAiCmI,GAAE,OAAA33B,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,cAAAovB,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAEdoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,iDAAiD6zB,EAAI,CACjFlsB,iBAAkBvI,QAAQwI,SAC1BC,QAAS,CAAE,oBAAgBC,KAC7B,cAAA6jB,EAAAjgB,OAAA,SAAAigB,EAAAlvB,MAAA,OAAAkvB,EAAArvB,KAAA,EAAAqvB,EAAAzsB,GAAAysB,EAAA,SAEF4tB,EAAS5tB,EAAAzsB,IACTg8C,EAASvvB,EAAAzsB,IAAM,yBAAAysB,EAAAruB,OAAA,GAAAouB,EAAA,mBAEtBnuB,MAAA,KAAAC,UAAA,CAG2C,SAAAwtQ,IAO3C,OAP2CA,GAAA/uQ,OAAAC,UAA5C,SAAAk/C,EAA6C8vN,GAAyB,OAAAhvQ,UAAA,SAAAm/C,GAAA,cAAAA,EAAA/+C,KAAA++C,EAAA9+C,MAAA,cAAA8+C,EAAA/+C,KAAA,EAAA++C,EAAA9+C,KAAA,EAEjDoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,2CAAAC,OAA0CirQ,IAA4B,cAAA7vN,EAAA3vC,OAAA,SAAA2vC,EAAA5+C,MAAA,OAAA4+C,EAAA/+C,KAAA,EAAA++C,EAAAn8C,GAAAm8C,EAAA,SAEzG9B,EAAS8B,EAAAn8C,IACTg8C,EAASG,EAAAn8C,IAAM,yBAAAm8C,EAAA/9C,OAAA,GAAA89C,EAAA,mBAEtB79C,MAAA,KAAAC,UAAA,CAED,SAAS+7C,EAAU5J,GACflpC,EAAiB,MAAOkpC,EAC5B,CAEA,SAASuL,EAAUvL,GACf,MAAMA,CACV,CACJ,CCpH6B,SAAA7zC,GAAU6B,EAAO8I,GAE1C,IAAM+yB,EAAU,CACZ2xO,eAWJ,WAC6B,OAAAC,EAAA7tQ,MAAC,KAADC,UAAA,EAXzB6tQ,kBAiBH,WAE+B,OAAAC,EAAA/tQ,MAAC,KAADC,UAAA,EAlB5B+tQ,mBAwBH,SAGgCxgQ,EAAAnE,GAAA,OAAA4kQ,EAAAjuQ,MAAC,KAADC,UAAA,EA1B7BiuQ,kBAiCH,SAE+B5kQ,GAAA,OAAA6kQ,EAAAnuQ,MAAC,KAADC,UAAA,EAlC5BmuQ,cA4CH,SAG2B36P,GAAA,OAAA46P,EAAAruQ,MAAC,KAADC,UAAA,EA9CxBwoQ,oBAqDH,WAEiC,OAAAJ,EAAAroQ,MAAC,KAADC,UAAA,EAtD9BquQ,cA6DH,SAG2BxyN,EAAAmB,GAAA,OAAAsxN,EAAAvuQ,MAAC,KAADC,UAAA,GA7D5B,OAAOg8B,EAGsB,SAAA4xO,IAM5B,OAN4BA,GAAAnvQ,OAAAC,UAA7B,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,6BAA2B,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE3Dk9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAUD,SAAA8tQ,IAFC,OAEDA,GAAArvQ,OAAAC,UARA,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,4CAA4C,CAAEo7B,aAAc,SAAS,cAAAr8B,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAErGw6C,EAASx6C,EAAAG,IAAM,wBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAGgC,SAAAguQ,IAOhC,OAPgCA,GAAAvvQ,OAAAC,UAAjC,SAAAwD,EAAkCs8C,EAAcjgC,GAAO,OAAA7f,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAElCoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,6BAAAC,OAA4B+7C,GAAgBjgC,GAAQ,cAAAnc,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEpF25C,EAAS35C,EAAAV,IACTg8C,EAASt7C,EAAAV,IAAM,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAcD,SAAAkuQ,IAFC,OAEDA,GAAAzvQ,OAAAC,UAZA,SAAAoE,EAAiCxB,GAAI,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEhBoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,4CAA4ClB,EAAM,CAC9E6I,iBAAkBvI,QAAQwI,SAC1BC,QAAS,CAAE,oBAAgBC,KAC7B,cAAAvH,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAEFg5C,EAASh5C,EAAArB,IACTg8C,EAAS36C,EAAArB,IAAM,yBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAG2B,SAAAouQ,IAO3B,OAP2BA,GAAA3vQ,OAAAC,UAA5B,SAAA6K,EAA6BglQ,GAAS,OAAA7vQ,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEjBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,sCAAsC+rQ,GAAU,cAAA3kQ,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEjFmyC,EAASnyC,EAAAlI,IACTg8C,EAAS9zC,EAAAlI,IAAM,yBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAWD,SAAAooQ,IAFC,OAEDA,GAAA3pQ,OAAAC,UATA,SAAAkM,IAAA,OAAAlM,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEqBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,8CAA4C,cAAAqI,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAE7EkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAG2B,SAAAsuQ,IAO3B,OAP2BA,GAAA7vQ,OAAAC,UAA5B,SAAA8uB,EAA6B9qB,EAAQ87C,GAAY,OAAA9/C,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAE5BoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,8CAAAC,OAA6CC,EAAM,gBAAAD,OAAe+7C,IAAe,cAAA/wB,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAEpHsuB,EAAStuB,EAAA/rB,IACTg8C,EAASjwB,EAAA/rB,IAAM,yBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAEtBztB,MAAA,KAAAC,UAAA,CAED,SAAS09C,EAAU5gB,GACf,MAAMA,CACV,CAEA,SAASif,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CACJ,CCzF6B,SAAAx+B,GAAU6B,EAAO8I,GAE1C,IAAM+yB,EAAU,CACZwyO,qBAQW,WAEoB,OAAAC,EAAA1uQ,MAAC,KAADC,UAAA,EAT/B0uQ,iBAgBH,WAE8B,OAAAC,EAAA5uQ,MAAC,KAADC,UAAA,EAjB3BgU,SAwBH,WAEsB,OAAAic,EAAAlwB,MAAC,KAADC,UAAA,EAzBnB4uQ,mBAgCH,SAEgCrhQ,GAAA,OAAAshQ,EAAA9uQ,MAAC,KAADC,UAAA,EAjC7B8uQ,mBAwCH,SAEgC1lQ,GAAA,OAAA2lQ,EAAAhvQ,MAAC,KAADC,UAAA,EAzC7BgvQ,sBAgDH,SAEmC3lQ,EAAAmK,GAAA,OAAAy7P,EAAAlvQ,MAAC,KAADC,UAAA,GA/CpC,OAAOg8B,EAE4B,SAAAyyO,IAOlC,OAPkCA,GAAAhwQ,OAAAC,UAAnC,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,+BAA6B,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE7Dk9C,EAASl9C,EAAA6C,IACTg8C,EAAS7+C,EAAA6C,IAAM,yBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAE8B,SAAA2uQ,IAO9B,OAP8BA,GAAAlwQ,OAAAC,UAA/B,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,uCAAqC,cAAAjB,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAErEw6C,EAASx6C,EAAAG,IACTg8C,EAASn8C,EAAAG,IAAM,yBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAEsB,SAAAiwB,IAOtB,OAPsBA,GAAAxxB,OAAAC,UAAvB,SAAAwD,IAAA,OAAAxD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,mBAAiB,cAAAJ,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEjD25C,EAAS35C,EAAAV,IACTg8C,EAASt7C,EAAAV,IAAM,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAEgC,SAAA6uQ,IAOhC,OAPgCA,GAAApwQ,OAAAC,UAAjC,SAAAoE,EAAkCxB,GAAI,OAAA5C,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEjBoB,EAAMge,KAAK,GAAD1b,OAAID,OAAM,sCAAsClB,GAAK,cAAAyB,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAE5Eg5C,EAASh5C,EAAArB,IACTg8C,EAAS36C,EAAArB,IAAM,yBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAEgC,SAAA+uQ,IAOhC,OAPgCA,GAAAtwQ,OAAAC,UAAjC,SAAA6K,EAAkCyI,GAAE,OAAAtT,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEfoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,uCAAAC,OAAsCuP,IAAK,cAAApI,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAE9EmyC,EAASnyC,EAAAlI,IACTg8C,EAAS9zC,EAAAlI,IAAM,yBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAEmC,SAAAivQ,IAOnC,OAPmCA,GAAAxwQ,OAAAC,UAApC,SAAAkM,EAAqCoH,EAAI1Q,GAAI,OAAA5C,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAExBoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,+BAAAC,OAA8BuP,GAAM1Q,GAAK,cAAAuJ,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAEzEkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAED,SAAS+7C,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CAEA,SAAS4gB,EAAU5gB,GACf,MAAMA,CACV,CACJ,CC1E6B,SAAAx+B,GAAU6B,EAAO8I,GAE1C,IAAM+yB,EAAU,CACZ6yB,iBAWW,WAEgB,OAAAqgN,EAAAnvQ,MAAC,KAADC,UAAA,EAZ3BmvQ,mBAkBH,SAEgC5hQ,GAAA,OAAA6hQ,EAAArvQ,MAAC,KAADC,UAAA,EAnB7BqvQ,mBA0BH,SAEgCjmQ,EAAAC,GAAA,OAAAimQ,EAAAvvQ,MAAC,KAADC,UAAA,EA3B7BuvQ,mBAkCH,SAEgC/7P,GAAA,OAAAg8P,EAAAzvQ,MAAC,KAADC,UAAA,EAnC7ByvQ,mBAyCH,SAEgC5zN,GAAA,OAAA6zN,EAAA3vQ,MAAC,KAADC,UAAA,EA1C7BstD,QAgDH,SAEqBtQ,EAAAC,GAAA,OAAA6qI,EAAA/nL,MAAC,KAADC,UAAA,EAjDlBmrK,WAwDH,SAEwB7tH,EAAA8B,GAAA,OAAAuwN,EAAA5vQ,MAAC,KAADC,UAAA,EAzDrB4vQ,oBAgEH,WAEiC,OAAAC,EAAA9vQ,MAAC,KAADC,UAAA,EAjE9B8vQ,oBAwEH,SAEiCvwN,GAAA,OAAAwwN,EAAAhwQ,MAAC,KAADC,UAAA,GAvElC,OAAOg8B,EAEwB,SAAAkzO,IAM9B,OAN8BA,GAAAzwQ,OAAAC,UAA/B,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAIvI,OAAS,+BAA8B,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE9Dk9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAEgC,SAAAovQ,IAOhC,OAPgCA,GAAA3wQ,OAAAC,UAAjC,SAAA0C,EAAkC6c,GAAQ,OAAAvf,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAErBoB,EAAMge,KAAK3b,OAAS,8BAA+Byb,GAAS,cAAA1c,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAEzEw6C,EAASx6C,EAAAG,IACTg8C,EAASn8C,EAAAG,IAAM,yBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAEgC,SAAAsvQ,IAOhC,OAPgCA,GAAA7wQ,OAAAC,UAAjC,SAAAwD,EAAkCuwI,EAAYl0H,GAAO,OAAA7f,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEhCoB,EAAM+J,IAAI1H,OAAS,+BAAiCiwI,EAAYl0H,GAAQ,cAAAnc,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAErF25C,EAAS35C,EAAAV,IACTg8C,EAASt7C,EAAAV,IAAM,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAEgC,SAAAwvQ,IAMhC,OANgCA,GAAA/wQ,OAAAC,UAAjC,SAAAoE,EAAkC2vI,GAAU,OAAA/zI,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEvBoB,EAAK,OAAQqC,OAAS,+BAAiCiwI,GAAW,cAAA1vI,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAE/Eg5C,EAASh5C,EAAArB,IAAM,wBAAAqB,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAEgC,SAAA0vQ,IAMhC,OANgCA,GAAAjxQ,OAAAC,UAAjC,SAAA6K,EAAkCogC,GAAS,OAAAjrC,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEtBoB,EAAM4K,IAAIvI,OAAS,wCAA0CmnC,GAAU,cAAA//B,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAEpFmyC,EAASnyC,EAAAlI,IAAM,wBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAEqB,SAAA8nL,IAOrB,OAPqBA,GAAArpL,OAAAC,UAAtB,SAAAkM,EAAuB6nI,EAAYx0H,GAAQ,OAAAvf,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEtBoB,EAAMge,KAAK3b,OAAS,+BAAiCiwI,EAAa,aAAcx0H,GAAS,cAAApT,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAEtGkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAEwB,SAAA2vQ,IAOxB,OAPwBA,GAAAlxQ,OAAAC,UAAzB,SAAA8uB,EAA0BilH,EAAYhb,GAAc,OAAA/4H,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAE/BoB,EAAK,OAAQ,GAADsC,OAAID,OAAM,gCAAAC,OAA+BgwI,EAAU,kBAAAhwI,OAAiBg1H,EAAc,kBAAgB,cAAAhqG,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAE3HsuB,EAAStuB,EAAA/rB,IACTg8C,EAASjwB,EAAA/rB,IAAM,yBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAEtBztB,MAAA,KAAAC,UAAA,CAEiC,SAAA6vQ,IAOjC,OAPiCA,GAAApxQ,OAAAC,UAAlC,SAAAkvB,IAAA,OAAAlvB,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAEqBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,uCAAuC,CAAEo7B,aAAc,SAAS,cAAA/P,EAAA3f,OAAA,SAAA2f,EAAA5uB,MAAA,OAAA4uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAEhGkuB,EAASluB,EAAAnsB,IACTg8C,EAAS7vB,EAAAnsB,IAAM,yBAAAmsB,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAEtB7tB,MAAA,KAAAC,UAAA,CAEiC,SAAA+vQ,IAUjC,OAViCA,GAAAtxQ,OAAAC,UAAlC,SAAAwvB,EAAmCmI,GAAE,OAAA33B,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,cAAAovB,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAEhBoB,EAAM+J,IAAI,GAADzH,OAAID,OAAM,uCAAuC6zB,EAAI,CACvElsB,iBAAkBvI,QAAQwI,SAC1BC,QAAS,CAAE,oBAAgBC,KAC7B,cAAA6jB,EAAAjgB,OAAA,SAAAigB,EAAAlvB,MAAA,OAAAkvB,EAAArvB,KAAA,EAAAqvB,EAAAzsB,GAAAysB,EAAA,SAEF4tB,EAAS5tB,EAAAzsB,IACTg8C,EAASvvB,EAAAzsB,IAAM,yBAAAysB,EAAAruB,OAAA,GAAAouB,EAAA,mBAEtBnuB,MAAA,KAAAC,UAAA,CAED,SAAS+7C,EAAUjf,GACf7zB,EAAiB,MAAO6zB,EAC5B,CAEA,SAAS4gB,EAAU5gB,GACf,MAAMA,CACV,CACJ,C,iXC5FA,SAAel7B,WACH,oCAAqC,IAC5C83B,QAAQ,uBAAwBs2O,IAChCt2O,QAAQ,2BAA4Bu2O,IACpCv2O,QAAQ,iCAAkCw2O,IAC1Cx2O,QAAQ,oBAAqBy2O,IAC7Bz2O,QAAQ,4BAA6B02O,IACrC12O,QAAQ,gCAAiC22O,IACzC32O,QAAQ,2BAA4B42O,IACpC52O,QAAQ,2BAA4B62O,IACpC72O,QAAQ,iCAAkC82O,IACtC,KCrBoB,SAAAlyQ,GAAUsV,EAAmBlT,EAAe+vQ,GAErE,IAAMxoQ,EAAKwH,KAMX,SAAShF,IAAWmJ,EAAkBuC,OAAS,CAIb,SAAAy1P,IAajC,OAbiCA,GAAAntQ,OAAAC,UAAlC,SAAAC,EAAmCgL,GAAI,IAAA0sB,EAAA,OAAA33B,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAIG,OAHtCkJ,EAAG87F,cAAgB,IAAIh6F,EACvB9B,EAAGiW,eAAgB,GACfmY,EAAK,IAAIxsB,UACVG,OAAOL,EAAK,GAAGM,KAAMN,EAAK,GAAGA,MAAM9K,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAE5B0xQ,EAAyB9E,oBAAoBt1O,GAAG,cAAAx3B,EAAAE,KAAA,EAChD2B,EAAc8J,qBAAqBvC,EAAG87F,eAAc,OAC1Dt5F,IAAS5L,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAEToJ,EAAG87F,cAAcj7F,cAAe,EAChCb,EAAGiW,eAAgB,EAAM,yBAAArf,EAAAiB,OAAA,GAAAnB,EAAA,oBAEhCoB,MAAA,KAAAC,UAAA,CAtBDiI,EAAGwC,OAASA,EACZxC,EAAGmE,QAKH,WAAqBwH,EAAkBxH,SAAW,EAJlDnE,EAAGiW,eAAgB,EACnBjW,EAAG0jQ,oBAKH,SACkCp+P,GAAA,OAAAq+P,EAAA7rQ,MAAC,KAADC,UAAA,CActC,CCvB6B,SAAA1B,GAAU4B,EAAQu3C,EAAgB/2C,EAAe4V,EAAWm1B,EAAWjrC,EAAaiwQ,EAA0BC,GAEvI,IAAMzoQ,EAAKwH,KAgB2B,SAAAkhQ,IA2DrC,OA3DqCA,GAAAlyQ,OAAAC,UAAtC,SAAA0C,IAAA,IAAAwvQ,EAAAhoO,EAAA,OAAAlqC,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAKK,OAJK6xQ,EAAuB,CACzB,CAAE3kQ,MAAO,WAAY6U,MAAO,aAAc3R,SAAU,qIAAsIe,MAAO,IAAK4W,WAAYwf,IAClN,CAAExlB,MAAO,OAAQ7U,MAAO,OAAQ6a,WAAYyf,IAC5C,CAAEzlB,MAAO,cAAe7U,MAAO,cAAe6a,WAAYyf,KAC7DhlC,EAAAxC,KAAA,EAEsByB,EAAYkO,cAAa,QAA1Ck6B,EAAQrnC,EAAAtC,MAEDqC,KAAK6D,OAAS,IACvByrQ,EAAqBpxQ,KACjB,CAAEshB,MAAO,cAAe7U,MAAO,UAAW6a,WAAYyf,KAG1Dt+B,EAAG4oQ,mBAAqBjoO,EAAStnC,KAAK+xB,QAAO,SAACsqE,EAAU9mE,GAIpD,OAHIA,EAAQ47B,UACRkrC,EAASn+F,KAAKq3B,EAAQ/0B,MAEnB67F,CACX,GAAG,KAIP11F,EAAG6oQ,yBAA2BpwQ,EAAc4uC,mBAAmBshO,EAAsB,KACrF3oQ,EAAG6oQ,yBAAyB/mN,UAAW,EAEvC9hD,EAAG8oQ,4BAA8B,IAAI7hQ,MAAM5N,KAAKmlB,WAAW,CACvD+iC,SAAUliB,GACViiB,OAAQ3nD,QAAQk0B,OAAOgG,GAAoB,CACvC65B,MAAO,CACH/B,OAAQ,CACJrV,WAAY,CAAE32C,KAAM,eAIhC6hD,cAAc,EACdxiB,iBAAiB,EACjB62B,eAAe,EACfp3C,UAAW,CACPvD,KAAM,WAAF,IAAAkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAtK,EAAAkM,EAAArP,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAU8D,OATzEuG,EAAQ5E,EAAcowC,uBAAuBlhC,GAEjDtK,EAAQmyC,EAAeiB,oBAAoBpzC,EAAO,gBAElD2C,EAAG4oQ,mBAAmB3tQ,SAAQ,SAAA8tQ,GAAa,OAAI1rQ,EAAMsa,QAAQpgB,KAAK,CAC9D+kB,UAAW,cACXge,SAAU,YACVj0B,MAAO0iQ,GACT,IACEx/P,EAAS,CAAE,SAAY5B,EAAQtO,KAAKkoD,SAAU,KAAQ55C,EAAQtO,KAAKgG,MAAMzI,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEpD2xQ,EAA+BrE,eAAe/mQ,EAAOkM,GAAO,OAA7ErP,EAAQtD,EAAAI,KACZ2Q,EAAQ+W,QAAQxkB,EAASb,MAAMzC,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAE/B+Q,EAAQuiC,MAAKtzC,EAAA6C,IAAM,yBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAfvB,OAiBH,SAjBGyK,GAAA,OAAAigD,EAAAtpD,MAAA,KAAAC,UAAA,EAAE,MAmBX,wBAAAuB,EAAAzB,OAAA,GAAAsB,EAAA,KACNuvQ,EAAA5wQ,MAAA,KAAAC,UAAA,CAEyB,SAAAixQ,IAUzB,OAVyBA,GAAAxyQ,OAAAC,UAA1B,SAAAwD,EAA2BsmC,GAAQ,IAAAlnC,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAEuB,OADhDuC,EAAO,CAAE0sI,uBAAwBxlG,EAAS5I,WAAYsxO,cAAe1oO,EAAS+V,YACpFrvC,MAAME,GAAGuiD,SAAS1pD,EAAGkpQ,kBAAkB1rO,SAAS,GAAMrjC,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAE5C0xQ,EAAyB5E,mBAAmBvqQ,GAAK,OACvD4N,MAAME,GAAGuiD,SAAS1pD,EAAGkpQ,kBAAkB1rO,SAAS,GAAOrjC,EAAArD,KAAA,gBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEvDomC,EAAS4oO,SAAW5oO,EAAS4oO,QAC7BliQ,MAAME,GAAGuiD,SAAS1pD,EAAGkpQ,kBAAkB1rO,SAAS,GAAO,yBAAArjC,EAAAtC,OAAA,GAAAoC,EAAA,mBAE9DnC,MAAA,KAAAC,UAAA,CAEiC,SAAA0rQ,IAUjC,OAViCA,GAAAjtQ,OAAAC,UAAlC,SAAAoE,IAAA,IAAAX,EAAA,OAAAzD,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OACiD,OAA7CkJ,EAAGq8F,oBAAsB,IAAIv6F,EAAgBhH,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEpB0xQ,EAAyBhF,sBAAqB,OAA/DtpQ,EAAQY,EAAA9D,KACZyB,EAAc8J,qBAAqBvC,EAAGq8F,qBACtC74D,EAAUC,OAAOvpC,EAASb,KAAM,sBAChC2G,EAAGq8F,oBAAoBx7F,cAAe,EAAM/F,EAAAhE,KAAA,iBAAAgE,EAAAjE,KAAA,GAAAiE,EAAArB,GAAAqB,EAAA,SAE5CkF,EAAGq8F,oBAAoBx7F,cAAe,EAAM,yBAAA/F,EAAAjD,OAAA,GAAAgD,EAAA,oBAEnD/C,MAAA,KAAAC,UAAA,CAE6B,SAAAg9D,IAa7B,OAb6BA,GAAAv+D,OAAAC,UAA9B,SAAA6K,IAAA,IAAA0zD,EAAA,OAAAv+D,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAMM,OALEk+D,EAAc3mD,EAAUvU,KAAK,CAC7B0X,YAAa,yDACbC,WAAY23P,GACZz3P,aAAc,QACdC,SAAU,WACZjQ,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEQk+D,EAAY7pD,OAAM,cAAAxJ,EAAAsE,OAAA,wBAAAtE,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAAAA,EAAAsE,OAAA,mCAAAtE,EAAA9J,OAAA,GAAAyJ,EAAA,mBAK/BxJ,MAAA,KAAAC,UAAA,CAhHDiI,EAAGvH,cAAgBA,EACnBuH,EAAGwjQ,oBAoFF,WAEiC,OAAAC,EAAA3rQ,MAAC,KAADC,UAAA,EArFlCiI,EAAGk1D,gBA+FF,WAE6B,OAAAH,EAAAj9D,MAAC,KAADC,UAAA,EAhG9BiI,EAAGqpQ,YAsEF,SAEyB/jQ,GAAA,OAAA0jQ,EAAAlxQ,MAAC,KAADC,UAAA,EAvE1BiI,EAAG4oQ,mBAAqB,IAAI7sL,MAQ8D,WAEpD2sL,EAAA5wQ,MAAC,KAADC,UAAA,CALlCuxQ,GAGJrxQ,EAAOiE,IAAI,uBAAuB,SAACmC,EAAOC,GAAI,OAAK0B,EAAG8oQ,4BAA4B5tP,MAAM,GAsG5F,CD3HiE7kB,GAAAgxB,QAAA,iECGYhxB,GAAAgxB,QAAA,8ICY7E,SANsB,CAClB5V,WAAY83P,GACZ53P,aAAc,OACdH,YAAa,oDCVY,SAAAnb,GAAUsV,EAAmBlT,EAAe+wQ,GAErE,IAAMxpQ,EAAKwH,KAMX,SAAShF,IAAWmJ,EAAkBuC,OAAS,CAIb,SAAA+1P,IAajC,OAbiCA,GAAAztQ,OAAAC,UAAlC,SAAAC,EAAmCgL,GAAI,IAAA0sB,EAAA,OAAA33B,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAIG,OAHtCkJ,EAAG87F,cAAgB,IAAIh6F,EACvB9B,EAAGiW,eAAgB,GACfmY,EAAK,IAAIxsB,UACVG,OAAOL,EAAK,GAAGM,KAAMN,EAAK,GAAGA,MAAM9K,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAE5B0yQ,EAAyBxF,oBAAoB51O,GAAG,cAAAx3B,EAAAE,KAAA,EAChD2B,EAAc8J,qBAAqBvC,EAAG87F,eAAc,OAC1Dt5F,IAAS5L,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAEToJ,EAAG87F,cAAcj7F,cAAe,EAChCb,EAAGiW,eAAgB,EAAM,yBAAArf,EAAAiB,OAAA,GAAAnB,EAAA,oBAEhCoB,MAAA,KAAAC,UAAA,CAtBDiI,EAAGwC,OAASA,EACZxC,EAAGmE,QAKH,WAAqBwH,EAAkBxH,SAAW,EAJlDnE,EAAGiW,eAAgB,EACnBjW,EAAGgkQ,oBAKH,SACkC1+P,GAAA,OAAA2+P,EAAAnsQ,MAAC,KAADC,UAAA,CActC,CCxB6B,SAAA1B,GAAU4B,EAAQE,EAASM,EAAe4V,EAAWm1B,EAAWgmO,EAA0BC,GAEnH,IAgBQp7M,EAkBQjN,EAlCVphD,EAAKwH,KA2Ce,SAAAkiQ,IAYzB,OAZyBA,GAAAlzQ,OAAAC,UAA1B,SAAA0C,EAA2BonC,GAAQ,IAAA9lC,EAAAkvQ,EAAAtwQ,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAIK,OAHhC2D,EAAS8lC,EAAS7kC,GAClBiuQ,EAAUppO,EAAS4oO,QACnB9vQ,EAAO,CAAE2nC,aAAcvmC,EAAQwuQ,cAAeU,GAClD3pQ,EAAGqd,WAAa,IAAIvb,EAAgBxI,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAE1B0yQ,EAAyBtF,mBAAmB7qQ,GAAK,cAAAC,EAAAxC,KAAA,EACjD2B,EAAc8J,qBAAqBvC,EAAGqd,YAAW,OAAA/jB,EAAAxC,KAAA,iBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAG,GAAAH,EAAA,SAEvDinC,EAAS4oO,SAAW5oO,EAAS4oO,QAC7BnpQ,EAAGqd,WAAWxc,cAAe,EAAM,yBAAAvH,EAAAzB,OAAA,GAAAsB,EAAA,oBAE1CrB,MAAA,KAAAC,UAAA,CAEiC,SAAAgsQ,IASjC,OATiCA,GAAAvtQ,OAAAC,UAAlC,SAAAwD,IAAA,IAAA2vQ,EAAAvwQ,EAAA,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OACiD,OAA7CkJ,EAAGq8F,oBAAsB,IAAIv6F,EAAgB3H,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEpB0yQ,EAAyB1F,sBAAqB,OAAzD,OAAyD8F,EAAAzvQ,EAAAnD,KAA7DqC,EAAIuwQ,EAAJvwQ,KAAIc,EAAArD,KAAA,EACJ2B,EAAc8J,qBAAqBvC,EAAGq8F,qBAAoB,OAChE74D,EAAUC,OAAOpqC,EAAM,sBAAsBc,EAAArD,KAAA,iBAAAqD,EAAAtD,KAAA,GAAAsD,EAAAV,GAAAU,EAAA,SAE7C6F,EAAGq8F,oBAAoBx7F,cAAe,EAAM,yBAAA1G,EAAAtC,OAAA,GAAAoC,EAAA,oBAEnDnC,MAAA,KAAAC,UAAA,CAE6B,SAAAg9D,IAa7B,OAb6BA,GAAAv+D,OAAAC,UAA9B,SAAAoE,IAAA,IAAAm6D,EAAA,OAAAv+D,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAMM,OALEk+D,EAAc3mD,EAAUvU,KAAK,CAC7B0X,YAAa,yDACbC,WAAYo4P,GACZl4P,aAAc,QACdC,SAAU,WACZ9W,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEQk+D,EAAY7pD,OAAM,OACxBnL,EAAG8pQ,eAAe5uP,OAAOpgB,EAAAhE,KAAA,uBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,mBAIhC/C,MAAA,KAAAC,UAAA,CA/EDiI,EAAGvH,cAAgBA,EACnBuH,EAAG8jQ,oBAoDF,WAEiC,OAAAC,EAAAjsQ,MAAC,KAADC,UAAA,EArDlCiI,EAAGk1D,gBA8DF,WAE6B,OAAAH,EAAAj9D,MAAC,KAADC,UAAA,EA/D9BiI,EAAG+pQ,YAoCF,SAEyB5oQ,GAAA,OAAAuoQ,EAAA5xQ,MAAC,KAADC,UAAA,EA3BlBs2D,EAAgB,CAChB,CAAErqD,MAAO,WAAY6U,MAAO,UAAW3R,SAAU,kIAAmIe,MAAO,IAAK4W,WAAYwf,IAC5M,CAAExlB,MAAO,OAAQ7U,MAAO,YAAa6a,WAAYyf,KAGrDt+B,EAAG4hE,gBAAkBnpE,EAAc4uC,mBAAmBgnB,EAAe,KACrEruD,EAAG4hE,gBAAgB9f,UAAW,EAE9B9hD,EAAGmqC,eAAiB,IAAIljC,MAAM5N,KAAKmlB,WAAW,CAC1C+iC,SAAUliB,GACViiB,OAAQ,CACJoM,MAAO,CACH/B,OAAQ,CACJw9M,QAAS,CAAExpQ,KAAM,cAI7B8e,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAqiQ,EAAA3wQ,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACM2yQ,EAA+B/D,iBAAgB,OAAAsE,EAAApzQ,EAAAI,KAA9DqC,EAAI2wQ,EAAJ3wQ,KACNA,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,QAChCsO,EAAQ+W,QAAQrlB,GAAM,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,KACzB,SAJG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,MArBhBE,EAAOiE,IAAI,uBAAuB,SAACmC,EAAOC,GAAI,OAAK0B,EAAGmqC,eAAejvB,MAAM,GAsE/E,CDzFiE7kB,GAAAgxB,QAAA,iECEYhxB,GAAAgxB,QAAA,yHCa7E,SANsB,CAClB5V,WAAYw4P,GACZt4P,aAAc,OACdH,YAAa,oDCPjB,GAAe7X,WACH,gCAAiC,IACxC+gB,UAAU,gBAAiBwvP,IAC3BxvP,UAAU,gBAAiByvP,IACvB,KCNoB,SAAA9zQ,GAAUsV,EAAmBlT,EAAe2xQ,EAA6BC,EAAclyQ,GAEhH,IAAM6H,EAAKwH,KAEP8iQ,EAAqB,GAyCzB,SAASC,IAGLvqQ,EAAGwqQ,4BAA8B/xQ,EAAc4uC,mBAFb,CAAC,CAAExuB,MAAO,OAAQ7U,MAAO,SAEoC,KAE/FhE,EAAGyqQ,+BAAiC,IAAIxjQ,MAAM5N,KAAKmlB,WAAW,CAC1D+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,SAAUvT,GACZyiQ,EAA4BM,uBAAuB1qQ,EAAGqqQ,aAAaM,kBAAkBjvQ,IAChFX,MAAK,SAAAq8B,GACFA,EAAI/9B,KAAOlB,EAAQ,UAARA,CAAmBi/B,EAAI/9B,KAAM,QACxCsO,EAAQ+W,QAAQ0Y,EAAI/9B,MACpBixQ,EAAqBlzO,EAAI/9B,KAAK+/B,KAAI,SAAA9pB,GAAO,OAAOA,EAAE5T,EAAI,GAC1D,IAAE,OAAO,SAAA4zC,GACL3nC,EAAQuiC,OACZ,GACR,IAGZ,CAEA,SAAS0gO,IAaL5qQ,EAAG6qQ,yBAA2BpyQ,EAAc4uC,mBAZb,CAC3B,CACIrjC,MAAO,SACPkD,SAAU,iOAIVe,MAAO,GAAI4W,YAAY,GAE3B,CAAEhG,MAAO,OAAQ7U,MAAO,SAG6D,KAEzFhE,EAAG8qQ,4BAA8B,IAAI7jQ,MAAM5N,KAAKmlB,WAAW,CACvD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,SAAUvT,GACZyiQ,EAA4BW,mBACvBhwQ,MAAK,SAAAq8B,GAEEizO,EAAaW,sBAAsB9tQ,OAAS,GAC5CmtQ,EAAaW,sBAAsB/vQ,SAAQ,SAAAqrK,GAC3BlvI,EAAI/9B,KAAK0J,MAAK,SAAAuM,GAAC,OAAIA,EAAE5T,KAAO4qK,EAAE5qK,EAAE,IACtCuvQ,eAAgB,CAC1B,IAEJ7zO,EAAI/9B,KAAOlB,EAAQ,UAARA,CAAmBi/B,EAAI/9B,KAAM,QACxCsO,EAAQ+W,QAAQ0Y,EAAI/9B,KACxB,IAAE,OAAO,SAAAi2C,GACL3nC,EAAQuiC,OACZ,GACR,IAGZ,CAiCC,SAEcghO,EAAgB5lQ,GAAA,OAAA6lQ,EAAArzQ,MAAC,KAADC,UAAA,UAAAozQ,IAW9B,OAX8BA,GAAA30Q,OAAAC,UAA/B,SAAAC,EAAgC0iC,GAAG,OAAA3iC,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAED,OAA9BkJ,EAAG+N,KAAO,IAAIjM,EAAgBlL,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGpBszQ,EAA4Bc,iBAAiB9xO,GAAI,cAAAxiC,EAAAE,KAAA,EACjD2B,EAAc8J,qBAAqBvC,EAAG+N,MAAK,OACjDpC,EAAkBuC,QAAQtX,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE1BoJ,EAAG+N,KAAO,KAAK,yBAAAnX,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAEwC,SAAAqzQ,IAWxC,OAXwCA,GAAA50Q,OAAAC,UAAzC,SAAA0C,EAA0CsB,GAAM,OAAAhE,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAEd,OAA9BkJ,EAAG+N,KAAO,IAAIjM,EAAgBxI,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAGpBszQ,EAA4BiB,2BAA2B5wQ,GAAO,cAAAnB,EAAAxC,KAAA,EAC9D2B,EAAc8J,qBAAqBvC,EAAG+N,MAAK,OACjDpC,EAAkBuC,QAAQ5U,EAAAxC,KAAA,gBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAE1B0G,EAAG+N,KAAO,KAAK,yBAAAzU,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CA5JDiI,EAAGqqQ,aAAeA,EAClBrqQ,EAAGsrQ,cAkGH,SAAuB/qO,GAEnB,OAAQA,EAAS0qO,eAEb,KAAK,EACDjrQ,EAAGk5E,kBAAkB3hF,KAAKgpC,EAAS7kC,IACnC,MACJ,KAAK,EACDsE,EAAGk5E,kBAAkB/mE,OAAOouB,EAAS7kC,IAGjD,EA5GAsE,EAAGurQ,iBA8GH,WAEI,IAAInyO,EAAM,CAAC,EACXA,EAAIoyO,SAAWnB,EAAaj+P,OAEvBpM,EAAGyS,QAGCzS,EAAGyS,SAAyB,IAAdzS,EAAG+8N,QACtB3jM,EAAIqyO,iBAAmBnB,EACvBlxO,EAAIsyO,uBAAyB,EAC7BR,EAAiB9xO,IAEZp5B,EAAGyS,SAAyB,IAAdzS,EAAG+8N,SACtB3jM,EAAIqyO,iBAAmBzrQ,EAAGk5E,kBAC1B9/C,EAAIsyO,uBAAyB,EAC7BR,EAAiB9xO,IAexB,SAEwCj4B,GAAAiqQ,EAAAtzQ,MAAC,KAADC,UAAA,CA3BjCszQ,CAA2BjyO,EAAIoyO,SAYvC,EA/HAxrQ,EAAGk5E,kBAAoB,GACvBl5E,EAAGwC,OA0JH,WAAoBmJ,EAAkBxH,SAAW,EApJzCkmQ,EAAaW,sBAAsB9tQ,OAAS,IAAG8C,EAAGk5E,kBAAoBmxL,EAAaW,sBAAsB5xO,KAAI,SAAAktI,GAAC,OAAIA,EAAE5qK,EAAE,KAC9E,SAAxC2uQ,EAAaqB,yBAAmC1rQ,EAAGyS,SAAU,GAGrB,sBAAxC43P,EAAaqB,wBACb1rQ,EAAG+8N,OAAS,EACZwtC,IACAK,KAEKP,EAAaM,mBAA6D,kBAAxCN,EAAaqB,wBACpD1rQ,EAAG+8N,OAAS,EACZwtC,IACAK,KAEKP,EAAaM,mBAA6D,SAAxCN,EAAaqB,wBACpD1rQ,EAAG+8N,OAAS,EACZwtC,IACAK,KAEMP,EAAaM,mBAA6D,kBAAxCN,EAAaqB,uBAI/CrB,EAAaM,mBAA6D,SAAxCN,EAAaqB,wBACrDd,KAJA5qQ,EAAG+8N,OAAS,EACZ6tC,IAiIZ,CCtK6B,SAAAv0Q,GAAUsV,EAAmBlT,EAAe2xQ,EAA6B7xQ,EAAa8xQ,EAAclyQ,GAE7H,IAAM6H,EAAKwH,KAEPmkQ,EAAoB,GAyCxB,SAASC,IACL,IAOYxqN,EALZphD,EAAG6rQ,4BAA8BpzQ,EAAc4uC,mBAFX,CAAC,CAAExuB,MAAO,cAAe7U,MAAO,iBAE2B,KAE/FhE,EAAG8rQ,+BAAiC,IAAI7kQ,MAAM5N,KAAKmlB,WAAW,CAC1D+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEUszQ,EAA4B2B,gBAAgB/rQ,EAAGqqQ,aAAaM,kBAAkBjvQ,IAAG,QAAlGxB,EAAQtD,EAAAI,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,eAClDsO,EAAQ+W,QAAQxkB,EAASb,MACzBsyQ,EAAoBzxQ,EAASb,KAAK+/B,KAAI,SAAA40B,GAAO,OAAOA,EAAErsB,SAAW,IAAG/qC,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAEpE+Q,EAAQuiC,QAAQ,yBAAAtzC,EAAAiB,OAAA,GAAAnB,EAAA,kBAEvB,SATG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KAYhB,CAEA,SAASi0Q,IACL,IAiBYnjN,EALZ7oD,EAAGisQ,yBAA2BxzQ,EAAc4uC,mBAZX,CAC7B,CACIrjC,MAAO,SACPkD,SAAU,iOAIVe,MAAO,GAAI4W,YAAY,GAE3B,CAAEhG,MAAO,OAAQ7U,MAAO,iBAG6D,KAEzFhE,EAAGksQ,4BAA8B,IAAIjlQ,MAAM5N,KAAKmlB,WAAW,CACvD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAI2tC,GAAAryD,OAAAC,UAAE,SAAA0C,EAAMwO,GAAO,IAAAyvB,EAAA,OAAA3gC,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEKyB,EAAYkO,cAAa,OAArC2wB,EAAG99B,EAAAtC,KAEHqzQ,EAAa8B,sBAAsBjvQ,OAAS,GAC5CmtQ,EAAa8B,sBAAsBlxQ,SAAQ,SAAAqrK,GAC3BlvI,EAAI/9B,KAAK0J,MAAK,SAAAirD,GAAC,OAAIA,EAAEtyD,KAAO4qK,EAAE5qK,EAAE,IACtC0wQ,eAAgB,CAC1B,IAEJh1O,EAAI/9B,KAAOlB,EAAQ,UAARA,CAAmBi/B,EAAI/9B,KAAM,QACxCsO,EAAQ+W,QAAQ0Y,EAAI/9B,MAAMC,EAAAxC,KAAA,gBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAE1BqO,EAAQuiC,QAAQ,yBAAA5wC,EAAAzB,OAAA,GAAAsB,EAAA,kBAEvB,SAfGgI,GAAA,OAAA0nD,EAAA/wD,MAAA,KAAAC,UAAA,KAkBhB,CAiCC,SAEcs0Q,EAAgBjrQ,GAAA,OAAAkrQ,EAAAx0Q,MAAC,KAADC,UAAA,UAAAu0Q,IAW9B,OAX8BA,GAAA91Q,OAAAC,UAA/B,SAAAwD,EAAgCm/B,GAAG,OAAA3iC,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAED,OAA9BkJ,EAAG+N,KAAO,IAAIjM,EAAgB3H,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGpBszQ,EAA4BiC,iBAAiBjzO,GAAI,cAAAj/B,EAAArD,KAAA,EACjD2B,EAAc8J,qBAAqBvC,EAAG+N,MAAK,OACjDpC,EAAkBuC,QAAQ/T,EAAArD,KAAA,gBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAE1B6F,EAAG+N,KAAO,KAAK,yBAAA5T,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAEwC,SAAAw0Q,IAWxC,OAXwCA,GAAA/1Q,OAAAC,UAAzC,SAAAoE,EAA0CJ,GAAM,OAAAhE,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAEd,OAA9BkJ,EAAG+N,KAAO,IAAIjM,EAAgBhH,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGpBszQ,EAA4BoC,2BAA2B/xQ,GAAO,cAAAK,EAAAhE,KAAA,EAC9D2B,EAAc8J,qBAAqBvC,EAAG+N,MAAK,OACjDpC,EAAkBuC,QAAQpT,EAAAhE,KAAA,gBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAE1BkF,EAAG+N,KAAO,KAAK,yBAAAjT,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CA5JDiI,EAAGqqQ,aAAeA,EAClBrqQ,EAAGysQ,cAkGH,SAAuBlsO,GAEnB,OAAQA,EAAS6rO,eAEb,KAAK,EACDpsQ,EAAG84E,iBAAiBvhF,KAAKgpC,EAAS7kC,IAClC,MACJ,KAAK,EACDsE,EAAG84E,iBAAiB3mE,OAAOouB,EAAS7kC,IAGhD,EA5GAsE,EAAG0sQ,iBA8GH,WAEI,IAAItzO,EAAM,CAAC,EACXA,EAAIoyO,SAAWnB,EAAaj+P,OAEvBpM,EAAGyS,QAGCzS,EAAGyS,SAAyB,IAAdzS,EAAG+8N,QACtB3jM,EAAI68B,WAAa01M,EACjBvyO,EAAIuzO,uBAAyB,EAC7BN,EAAiBjzO,IAEZp5B,EAAGyS,SAAyB,IAAdzS,EAAG+8N,SACtB3jM,EAAI68B,WAAaj2D,EAAG84E,iBACpB1/C,EAAIuzO,uBAAyB,EAC7BN,EAAiBjzO,IAexB,SAEwC7tB,GAAAghQ,EAAAz0Q,MAAC,KAADC,UAAA,CA3BjCy0Q,CAA2BpzO,EAAIoyO,SAYvC,EA/HAxrQ,EAAG84E,iBAAmB,GACtB94E,EAAGwC,OA0JH,WAAoBmJ,EAAkBxH,SAAW,EApJzCkmQ,EAAa8B,sBAAsBjvQ,OAAS,IAAG8C,EAAG84E,iBAAmBuxL,EAAa8B,sBAAsB/yO,KAAI,SAAAktI,GAAC,OAAIA,EAAE5qK,EAAE,KAC7E,SAAxC2uQ,EAAasC,yBAAmC3sQ,EAAGyS,SAAU,GAGrB,sBAAxC43P,EAAasC,wBACb3sQ,EAAG+8N,OAAS,EACZ6uC,IACAI,KAEK3B,EAAaM,mBAA6D,kBAAxCN,EAAasC,wBACpD3sQ,EAAG+8N,OAAS,EACZ6uC,IACAI,KAEK3B,EAAaM,mBAA6D,SAAxCN,EAAasC,wBACpD3sQ,EAAG+8N,OAAS,EACZ6uC,IACAI,KAEM3B,EAAaM,mBAA6D,kBAAxCN,EAAasC,uBAI/CtC,EAAaM,mBAA6D,SAAxCN,EAAasC,wBACrDX,KAJAhsQ,EAAG+8N,OAAS,EACZivC,IAiIZ,CCrK6B,SAASY,GAA2B30Q,EAAQE,EAASkW,EAAW+7P,GAEzF,IAAMpqQ,EAAKwH,KA4BV,SAEcqlQ,IAAgB,OAAAC,EAAAh1Q,MAAC,KAADC,UAAA,UAAA+0Q,IAW9B,OAX8BA,GAAAt2Q,OAAAC,UAA/B,SAAAC,IAAA,IAAAq2Q,EAAA1zQ,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAE6BszQ,EAA4ByC,mBAAkB,OAAAE,EAAAn2Q,EAAAI,MAA7DqC,EAAI0zQ,EAAJ1zQ,MACG6D,OAAS,IACd7D,EAAOA,EAAKsC,QAAO,SAAAzE,GAAI,OAAoB,IAAhBA,EAAK8U,MAAe,IAC/C3S,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,kBAEpC2G,EAAG6L,MAAQxS,EAAKzC,EAAAE,KAAA,uBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAAAA,EAAAqP,OAAA,mCAAArP,EAAAiB,OAAA,GAAAnB,EAAA,mBAIvBoB,MAAA,KAAAC,UAAA,CAM0C,SAAAi1Q,IAgB1C,OAhB0CA,GAAAx2Q,OAAAC,UAA3C,SAAA0C,EAA4CjC,GAAI,IAAA26P,EAAA,OAAAp7P,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAQ1C,OANE+6P,EAAexjP,EAAUvU,KAAK,CAC9B0X,YAAa,0FACbC,WAAYw7P,GACZt7P,aAAc,QACdC,SAAU,SACVC,QAAS,CAAEw4P,aAAc,WAAF,OAAQnzQ,CAAI,KACrCoC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAGQ+6P,EAAa1mP,OAAM,OACzB0hQ,IAAmBvzQ,EAAAxC,KAAA,uBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAAAA,EAAA2M,OAAA,mCAAA3M,EAAAzB,OAAA,GAAAsB,EAAA,mBAI1BrB,MAAA,KAAAC,UAAA,CAE0C,SAAAm1Q,IAgB1C,OAhB0CA,GAAA12Q,OAAAC,UAA3C,SAAAwD,EAA4C/C,GAAI,IAAA86P,EAAA,OAAAv7P,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAQ1C,OANEk7P,EAAe3jP,EAAUvU,KAAK,CAC9B0X,YAAa,0FACbC,WAAY07P,GACZx7P,aAAc,QACdC,SAAU,SACVC,QAAS,CAAEw4P,aAAc,WAAF,OAAQnzQ,CAAI,KACrCiD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGQk7P,EAAa7mP,OAAM,OACzB0hQ,IAAmB1yQ,EAAArD,KAAA,uBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,mBAI1BnC,MAAA,KAAAC,UAAA,CA/EDiI,EAAGq4N,mBAyCH,SAA4BnhO,GACxB8I,EAAG9I,KAAOA,CACd,EA1CA8I,EAAG87G,kBAAoB7jH,EAAO0jB,QAAQjV,yBAMlCmmQ,IAEA7sQ,EAAG2rB,YAAc,CACb,CACI1nB,KAAM,uBACN2nB,MAAO,SAAAlhB,IA+BlB,SAE0CpF,GAAA0nQ,EAAAl1Q,MAAC,KAADC,UAAA,CAhC3Bq1Q,CAA6B1iQ,EAAKxT,KACtC,GAEJ,CACI+M,KAAM,uBACN2nB,MAAO,SAAAlhB,IA2ClB,SAE0CvJ,GAAA+rQ,EAAAp1Q,MAAC,KAADC,UAAA,CA5C3Bs1Q,CAA6B3iQ,EAAKxT,KACtC,EACA40B,UAAW,SAAAphB,GACP,OAAQ1K,EAAG87G,kBAAkB5+G,OAAS,CAC1C,GAyDhB,CFvFoE7G,GAAAgxB,QAAA,6FCAAhxB,GAAAgxB,QAAA,2G,0EEcpE,SANuB,CACnB5V,WAAYm7P,GACZj7P,aAAc,QACdH,YAAa,gFCZY,SAAAnb,GAAU6B,EAAO8I,GAE1C,IAAM+yB,EAAU,CACZ84O,iBAYJ,WAC+B,OAAAC,EAAAh1Q,MAAC,KAADC,UAAA,EAZ3BgzQ,iBAkBH,WAE8B,OAAAuC,EAAAx1Q,MAAC,KAADC,UAAA,EAnB3B2yQ,uBA0BH,SAEoCplQ,GAAA,OAAAioQ,EAAAz1Q,MAAC,KAADC,UAAA,EA3BjCg0Q,gBAkCH,SAE6B5qQ,GAAA,OAAAqsQ,EAAA11Q,MAAC,KAADC,UAAA,EAnC1BmzQ,iBA0CH,SAG8B9pQ,GAAA,OAAA+pQ,EAAArzQ,MAAC,KAADC,UAAA,EA5C3Bs0Q,iBAmDH,SAE8B9gQ,GAAA,OAAA+gQ,EAAAx0Q,MAAC,KAADC,UAAA,EApD3BszQ,2BA2DH,SAGwCz3N,GAAA,OAAAw3N,EAAAtzQ,MAAC,KAADC,UAAA,EA7DrCy0Q,2BAoEH,SAEwCz3N,GAAA,OAAAw3N,EAAAz0Q,MAAC,KAADC,UAAA,GAnEzC,OAAOg8B,EAGwB,SAAA+4O,IAM9B,OAN8BA,GAAAt2Q,OAAAC,UAA/B,SAAAC,IAAA,OAAAD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEqBoB,EAAM4K,IAAIvI,OAAS,kBAAiB,cAAA3D,EAAAqP,OAAA,SAAArP,EAAAI,MAAA,OAAAJ,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAEjDk9C,EAASl9C,EAAA6C,IAAM,wBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAEtBoB,MAAA,KAAAC,UAAA,CAE8B,SAAAu1Q,IAO9B,OAP8BA,GAAA92Q,OAAAC,UAA/B,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEqBoB,EAAM4K,IAAIvI,OAAS,+BAA8B,cAAAjB,EAAA2M,OAAA,SAAA3M,EAAAtC,MAAA,OAAAsC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAE9Dw6C,EAASx6C,EAAAG,IACTg8C,EAASn8C,EAAAG,IAAM,yBAAAH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEtBrB,MAAA,KAAAC,UAAA,CAEoC,SAAAw1Q,IAOpC,OAPoCA,GAAA/2Q,OAAAC,UAArC,SAAAwD,EAAsCQ,GAAM,OAAAhE,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEvBoB,EAAM4K,IAAIvI,OAAS,0CAAHC,OAA6CC,IAAS,cAAAN,EAAA8L,OAAA,SAAA9L,EAAAnD,MAAA,OAAAmD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEnF25C,EAAS35C,EAAAV,IACTg8C,EAASt7C,EAAAV,IAAM,yBAAAU,EAAAtC,OAAA,GAAAoC,EAAA,mBAEtBnC,MAAA,KAAAC,UAAA,CAWD,SAAAy1Q,IAFC,OAEDA,GAAAh3Q,OAAAC,UATA,SAAAoE,EAA+BJ,GAAM,OAAAhE,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAEhBoB,EAAM4K,IAAI,GAADtI,OAAID,OAAM,yCAAAC,OAAwCC,IAAS,cAAAK,EAAAmL,OAAA,SAAAnL,EAAA9D,MAAA,OAAA8D,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAEjFg5C,EAAUjf,KACV4gB,EAAU5gB,KAAK,yBAAA/5B,EAAAjD,OAAA,GAAAgD,EAAA,mBAEtB/C,MAAA,KAAAC,UAAA,CAG8B,SAAAozQ,IAO9B,OAP8BA,GAAA30Q,OAAAC,UAA/B,SAAA6K,EAAgCglQ,GAAS,OAAA7vQ,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAEpBoB,EAAMge,KAAK3b,OAAS,4CAA6C+rQ,GAAU,cAAA3kQ,EAAAsE,OAAA,SAAAtE,EAAA3K,MAAA,OAAA2K,EAAA9K,KAAA,EAAA8K,EAAAlI,GAAAkI,EAAA,SAExFmyC,EAASnyC,EAAAlI,IACTg8C,EAAS9zC,EAAAlI,IAAM,yBAAAkI,EAAA9J,OAAA,GAAAyJ,EAAA,mBAEtBxJ,MAAA,KAAAC,UAAA,CAWD,SAAAu0Q,IAFC,OAEDA,GAAA91Q,OAAAC,UATA,SAAAkM,EAAgC2jQ,GAAS,OAAA7vQ,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAEpBoB,EAAMge,KAAK3b,OAAS,4CAA6C+rQ,GAAU,cAAA1jQ,EAAAqD,OAAA,SAAArD,EAAA5L,MAAA,OAAA4L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAExFkxC,EAASlxC,EAAAnJ,IACTg8C,EAAS7yC,EAAAnJ,IAAM,yBAAAmJ,EAAA/K,OAAA,GAAA8K,EAAA,mBAEtB7K,MAAA,KAAAC,UAAA,CAGwC,SAAAqzQ,IAOxC,OAPwCA,GAAA50Q,OAAAC,UAAzC,SAAA8uB,EAA0C9qB,GAAM,OAAAhE,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAE3BoB,EAAM+J,IAAI1H,OAAS,6CAAHC,OAAgDC,EAAM,aAAW,cAAA+qB,EAAAvf,OAAA,SAAAuf,EAAAxuB,MAAA,OAAAwuB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAE9FsuB,EAAStuB,EAAA/rB,IACTg8C,EAASjwB,EAAA/rB,IAAM,yBAAA+rB,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAEtBztB,MAAA,KAAAC,UAAA,CAEwC,SAAAw0Q,IAOxC,OAPwCA,GAAA/1Q,OAAAC,UAAzC,SAAAkvB,EAA0ClrB,GAAM,OAAAhE,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,cAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAE3BoB,EAAM+J,IAAI1H,OAAS,6CAAHC,OAAgDC,EAAM,aAAW,cAAAmrB,EAAA3f,OAAA,SAAA2f,EAAA5uB,MAAA,OAAA4uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAE9FkuB,EAASluB,EAAAnsB,IACTg8C,EAAS7vB,EAAAnsB,IAAM,yBAAAmsB,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAEtB7tB,MAAA,KAAAC,UAAA,CAED,SAAS+7C,EAAUjf,GAAO7zB,EAAiB,MAAO6zB,EAAM,CACxD,SAAS4gB,EAAU5gB,GAAO,MAAMA,CAAK,CAEzC,C,yCCxFA,SAAel7B,WACH,2CAA4C,IACnD+gB,UAAU,mBAAoB+yP,IAC9Bh8O,QAAQ,8BAA+Bi8O,IACnC,KCPoB,SAAAr3Q,GAAUsV,EAAmBlT,EAAew8O,EAA2BhzM,GAEhG,IAAMjiC,EAAKwH,KAOX,SAAShF,EAAOg6G,GACZ7wG,EAAkBuC,MAAMsuG,EAC5B,CAgB0B,SAAAmxJ,IASzB,OATyBA,GAAAn3Q,OAAAC,UAA1B,SAAAC,EAA2B2C,GAAI,IAAAa,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEFm+O,EAA0Bj+L,iBAAiB39C,GAAK,OAAzD,OAARa,EAAQtD,EAAAI,KAAAJ,EAAAE,KAAG,EACT2B,EAAc8J,qBAAqBvC,EAAGuoB,kBAAiB,OAC7D/lB,EAAOtI,EAASb,MAAMzC,EAAAE,KAAA,gBAEmB,OAFnBF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAEtBoJ,EAAGuoB,iBAAiB1nB,cAAe,EAAMjK,EAAAqP,OAAA,mCAAArP,EAAAiB,OAAA,GAAAnB,EAAA,mBAGhDoB,MAAA,KAAAC,UAAA,CAEyB,SAAA8+C,IAQzB,OARyBA,GAAArgD,OAAAC,UAA1B,SAAA0C,EAA2BE,GAAI,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEjBm+O,EAA0Br+L,YAAY52C,EAAGiiC,MAAMhtB,GAAI5b,GAAK,cAAAC,EAAAxC,KAAA,EACxD2B,EAAc8J,qBAAqBvC,EAAGuoB,kBAAiB,OAC7D/lB,IAASlJ,EAAAxC,KAAA,gBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAET0G,EAAGuoB,iBAAiB1nB,cAAe,EAAM,yBAAAvH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEhDrB,MAAA,KAAAC,UAAA,CA3CDiI,EAAGiiC,MAAQh2B,OAAOC,OAAO,CAAC,EAAG+1B,GAC7BjiC,EAAGmE,QASH,WACIwH,EAAkBxH,SACtB,EAVAnE,EAAGw6F,gBAYH,WACIx6F,EAAGuoB,iBAAmB,IAAIzmB,EAC1B,IAAMzI,EAAO2G,EAAGiiC,MACZA,EAgBP,SAEyB9gC,GAAA01C,EAAA/+C,MAAC,KAADC,UAAA,CAjBlB6+C,CAAYv9C,GAInB,SAEyBiM,GAAAqoQ,EAAA71Q,MAAC,KAADC,UAAA,CAJlB61Q,CAAYv0Q,EAEpB,EAnBA2G,EAAGgY,cAAe,EAClBhY,EAAGuoB,kBAAmB,CAwC1B,CC7C6B,SAAAlyB,GAAUsV,EAAmBlT,EAAew8O,EAA2B18O,EAAaJ,EAAS8pC,EAAOsiL,EAAOspD,EAAmBC,EAAaC,GAEpK,IAsEUC,EAqBM5sN,EA3FVphD,EAAKwH,KAoBX,SAAShF,EAAOyrQ,GACZtiQ,EAAkBuC,MAAM+/P,EAC5B,CAiB0B,SAAAC,IAQzB,OARyBA,GAAA13Q,OAAAC,UAA1B,SAAA0C,EAA2BE,GAAI,IAAAa,EAAA,OAAAzD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEFm+O,EAA0B/9L,sBAAsBl3C,EAAGiiC,MAAMhtB,GAAI5b,GAAK,OAA3E,OAARa,EAAQZ,EAAAtC,KAAAsC,EAAAxC,KAAG,EACT2B,EAAc8J,qBAAqBvC,EAAGuoB,kBAAiB,OAC7D/lB,EAAOtI,EAASb,MAAMC,EAAAxC,KAAA,gBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAEtB0G,EAAGuoB,iBAAiB1nB,cAAe,EAAM,yBAAAvH,EAAAzB,OAAA,GAAAsB,EAAA,mBAEhDrB,MAAA,KAAAC,UAAA,CAEyB,SAAAo2Q,IAQzB,OARyBA,GAAA33Q,OAAAC,UAA1B,SAAAwD,EAA2BZ,GAAI,OAAA5C,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,cAAAqD,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAEjBm+O,EAA0Bn+L,iBAAiB92C,EAAGiiC,MAAMhtB,GAAIjV,EAAGukN,MAAMtvM,GAAI5b,GAAK,cAAAc,EAAArD,KAAA,EAC1E2B,EAAc8J,qBAAqBvC,EAAGuoB,kBAAiB,OAC7D/lB,IAASrI,EAAArD,KAAA,gBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAET6F,EAAGuoB,iBAAiB1nB,cAAe,EAAM,yBAAA1G,EAAAtC,OAAA,GAAAoC,EAAA,mBAEhDnC,MAAA,KAAAC,UAAA,CAxDDiI,EAAGukN,MAAQt4M,OAAOC,OAAO,CAAC,EAAGq4M,GAC7BvkN,EAAGiiC,MAAQh2B,OAAOC,OAAO,CAAC,EAAG+1B,GAC7BjiC,EAAG8tQ,YAAcA,EACjB9tQ,EAAG+tQ,SAAWA,EACd/tQ,EAAGmE,QAmBH,WACIwH,EAAkBxH,SACtB,EApBAnE,EAAGouQ,gBAsBH,WACIpuQ,EAAGuoB,iBAAmB,IAAIzmB,EAC1B,IAAMzI,EAAO2G,EAAGukN,MAChBvkN,EAAGukN,MAAM8pD,gBAAkBruQ,EAAGiiC,MAAMhtB,GAChCjV,EAAGukN,MAAMtvM,GAehB,SAEyB9T,GAAAgtQ,EAAAr2Q,MAAC,KAADC,UAAA,CAhBlBu2Q,CAAYj1Q,GAInB,SAEyBiM,GAAA4oQ,EAAAp2Q,MAAC,KAADC,UAAA,CAJlBw2Q,CAAYl1Q,EAEpB,EA9BA2G,EAAGwuQ,4BAoDH,WACQxuQ,EAAGukN,MAAMkqD,sBACLzuQ,EAAGukN,MAAMmqD,oBAAmB1uQ,EAAGukN,MAAMmqD,kBAAoB,KAErE,EAvDA1uQ,EAAG2uQ,0BAyDH,WACI3uQ,EAAGukN,MAAMqqD,YAAc5uQ,EAAG6uQ,cAAcvxJ,kBAC5C,EA1DAt9G,EAAGgY,cAAe,EAKThY,EAAGukN,MAAMtvM,KACVjV,EAAGukN,MAAMkqD,sBAAuB,EAuD9BT,EAAuB,CACzB,CAAEnuO,YAAY,EAAM53B,MAAO,IAC3B,CAAEjE,MAAO,OAAQ6U,MAAO,gBAAiBgG,WAAYyf,IACrD,CAAEt6B,MAAO,QAAS6U,MAAO,QAASgG,WAAYyf,KAGlDt+B,EAAG8uQ,qBAAuBr2Q,EAAc4uC,mBAAmB2mO,EAAsB,MACjFhuQ,EAAG8uQ,qBAAqBjvO,YAAa,EACrC7/B,EAAG8uQ,qBAAqBptH,kBAAmB,EAC3C1hJ,EAAG8uQ,qBAAqBtnO,UAAY,CAChCtgC,SAAU,sFAGdlH,EAAG+uQ,wBAA0B,IAAI9nQ,MAAM5N,KAAKmlB,WAAW,CACnD+iC,SAAUliB,GACViiB,OAAQ,CACJoM,MAAO,CACH3jD,GAAI,WAGZ0U,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEUyB,EAAYwT,WAAU,QAAvC7R,EAAQtD,EAAAI,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,iBAClDa,EAASb,KAAOa,EAASb,KAAKsC,QAAO,SAAA8T,GAAG,OAAIA,EAAIzD,SAAW6hQ,EAAkBxxP,MAAK,SAAAqrD,GAAC,OAAIA,EAAE16D,SAAWyC,EAAIrD,MAAM,GAAC,IAC/GzE,EAAQ+W,QAAQxkB,EAASb,MAAMzC,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE/B+Q,EAAQuiC,MAAKtzC,EAAA6C,IAAQ,yBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,kBAG5B,SAVG0K,GAAA,OAAAggD,EAAAtpD,MAAA,KAAAC,UAAA,MAcpB,CC5G6B,SAAA1B,GAAUsV,EAAmBlT,EAAew8O,EAA2B18O,EAAaJ,EAAS8pC,EAAOsiL,EAAOspD,GAEpI,IAiCUG,EAoBM5sN,EArDVphD,EAAKwH,KAiBsB,SAAAwnQ,IAahC,OAbgCA,GAAAx4Q,OAAAC,UAAjC,SAAA0C,EAAkCqgP,GAAQ,IAAAngP,EAAA41Q,EAAA,OAAAx4Q,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAKrC,OAJKuC,EAAO,CACT4b,GAAIjV,EAAGukN,MAAMtvM,GACbo5P,gBAAiBruQ,EAAGiiC,MAAMhtB,GAC1BjI,OAAQwsO,EAASptO,QACpB9S,EAAAxC,KAAA,EACKm+O,EAA0B59L,gCAAgCr3C,EAAGiiC,MAAMhtB,GAAIjV,EAAGukN,MAAMtvM,GAAI5b,GAAK,OACzF41Q,EAAoB,CACtBp1Q,KAAM2/O,EAAS3wN,cACf7b,OAAQwsO,EAASptO,QAErBpM,EAAG6tQ,kBAAkBt2Q,KAAK03Q,GAC1BjvQ,EAAG+uQ,wBAAwB7zP,OAAO,wBAAA5hB,EAAAzB,OAAA,GAAAsB,EAAA,MACrCrB,MAAA,KAAAC,UAAA,CA7BDiI,EAAGukN,MAAQt4M,OAAOC,OAAO,CAAC,EAAGq4M,GAC7BvkN,EAAGiiC,MAAQh2B,OAAOC,OAAO,CAAC,EAAG+1B,GAC7BjiC,EAAG6tQ,kBAAoBA,EACvB7tQ,EAAGkvQ,mBAWF,SAEgC5pQ,GAAA,OAAA0pQ,EAAAl3Q,MAAC,KAADC,UAAA,EAZjCiI,EAAGkO,MAQH,WACIvC,EAAkBuC,OACtB,EAkBU8/P,EAAuB,CACzB,CAAEhqQ,MAAO,OAAQ6U,MAAO,gBAAiBgG,WAAYyf,IACrD,CAAEt6B,MAAO,QAAS6U,MAAO,QAASgG,WAAYyf,IAC9C,CAAEp3B,SAAU,4FAA6FlD,MAAO,IAAKiE,MAAO,KAGhIjI,EAAG8uQ,qBAAuBr2Q,EAAc4uC,mBAAmB2mO,EAAsB,MACjFhuQ,EAAG8uQ,qBAAqBjvO,YAAa,EACrC7/B,EAAG8uQ,qBAAqBtnO,UAAY,CAChCtgC,SAAU,sFAGdlH,EAAG+uQ,wBAA0B,IAAI9nQ,MAAM5N,KAAKmlB,WAAW,CACnD+iC,SAAUliB,GACViiB,OAAQ,CACJoM,MAAO,CACH3jD,GAAI,WAGZ0U,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEUyB,EAAYwT,WAAU,QAAvC7R,EAAQtD,EAAAI,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,iBAClDa,EAASb,KAAOa,EAASb,KAAKsC,QAAO,SAAA8T,GAAG,OAAIA,EAAIzD,SAAWhM,EAAG6tQ,kBAAkBxxP,MAAK,SAAAqrD,GAAC,OAAIA,EAAE16D,SAAWyC,EAAIrD,MAAM,GAAC,IAClHzE,EAAQ+W,QAAQxkB,EAASb,MAAMzC,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAA6C,GAAA7C,EAAA,SAE/B+Q,EAAQuiC,MAAKtzC,EAAA6C,IAAQ,yBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,kBAExC,SATeyK,GAAA,OAAAigD,EAAAtpD,MAAA,KAAAC,UAAA,KAapB,CCpE6B,SAAA1B,GAAUsV,EAAmBlT,EAAew8O,GACrE,IAAMj1O,EAAKwH,KAKwB,SAAAkxC,IAalC,OAbkCA,GAAAliD,OAAAC,UAAnC,SAAAC,IAAA,IAAA03B,EAAA,OAAA33B,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAI8D,OAHtDs3B,EAAK,IAAIxsB,SAEb5B,EAAGwgG,YAAc,IAAI1+F,EACrBssB,EAAGrsB,OAAO/B,EAAGuB,MAAMA,MAAM,GAAGS,KAAMhC,EAAGuB,MAAMA,MAAM,GAAGG,MAAM9K,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGhDm+O,EAA0Bz8L,qBAAqBpqB,GAAG,cAAAx3B,EAAAE,KAAA,EAClD2B,EAAc8J,qBAAqBvC,EAAGwgG,aAAY,OAQ5D70F,EAAkBuC,QAPNtX,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAERoJ,EAAGwgG,YAAY3/F,cAAe,EAAM,yBAAAjK,EAAAiB,OAAA,GAAAnB,EAAA,oBAE3CoB,MAAA,KAAAC,UAAA,CAhBDiI,EAAGw4C,qBACgB,WAEgB,OAAAE,EAAA5gD,MAAC,KAADC,UAAA,EAFnCiI,EAAGwC,OAqBH,WACImJ,EAAkBxH,SACtB,CACJ,CCtB6B,SAAA9N,GAAUgY,EAAW4mO,EAA2B98O,EAASM,EAAe+qC,GAEjG,IAAMxjC,EAAKwH,KAgDX,SAASrL,IACLgzQ,GACJ,CAAC,SAEcA,IAAS,OAAAC,EAAAt3Q,MAAC,KAADC,UAAA,UAAAq3Q,IASvB,OATuBA,GAAA54Q,OAAAC,UAAxB,SAAAC,IAAA,IAAAwD,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAGkD,OAF9CkJ,EAAGqvQ,yBAA0B,EACzBrvQ,EAAGumM,gBAAevmM,EAAGumM,cAAgB,MACrCvmM,EAAG0+G,gBAAe1+G,EAAG0+G,cAAgB,MAAK9nH,EAAAE,KAAA,EAEzBm+O,EAA0Bz+L,oBAAmB,QAA9Dt8C,EAAQtD,EAAAI,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClD2G,EAAGsvQ,iBAAmBp1Q,EAASb,KAC/B2G,EAAGqvQ,yBAA0B,EAAM,wBAAAz4Q,EAAAiB,OAAA,GAAAnB,EAAA,MACtCoB,MAAA,KAAAC,UAAA,UAEcw3Q,IAAS,OAAAC,EAAA13Q,MAAC,KAADC,UAAA,UAAAy3Q,IAWvB,OAXuBA,GAAAh5Q,OAAAC,UAAxB,SAAA0C,IAAA,IAAAs2Q,EAAAp2Q,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAEmE,OAD/DkJ,EAAG0vQ,yBAA0B,EACzB1vQ,EAAG6tQ,kBAAkB3wQ,OAAS,IAAG8C,EAAG6tQ,kBAAoB,IAAGv0Q,EAAAxC,KAAA,EAE1Cm+O,EAA0Bv+L,uBAAuB12C,EAAG0+G,cAAczpG,IAAG,OAAAw6P,EAAAn2Q,EAAAtC,KAApFqC,EAAIo2Q,EAAJp2Q,KACN2G,EAAG2vQ,iBAAmBx3Q,EAAQ,UAARA,CAAmBkB,EAAM,SAE/CA,EAAK4B,SAAQ,SAAAspN,GACTvkN,EAAG6tQ,kBAAoB7tQ,EAAG6tQ,kBAAkBrzQ,OAAO+pN,EAAMqrD,UAC7D,IACA5vQ,EAAG0vQ,yBAA0B,EAAM,wBAAAp2Q,EAAAzB,OAAA,GAAAsB,EAAA,MACtCrB,MAAA,KAAAC,UAAA,CAOD,SAAS83Q,EAAkBrzJ,GACvBx8G,EAAG0+G,cAAgB1+G,EAAGsvQ,iBAAiBvsQ,MAAK,SAAAk/B,GAAK,OAAIA,EAAMhtB,KAAOunG,CAAU,IAC5Ex8G,EAAGsvQ,iBAAmBtvQ,EAAGsvQ,iBAAiB3zQ,QAAO,SAAAsmC,GAAK,OAAIA,EAAMhtB,KAAOunG,CAAU,IACjFx8G,EAAGsvQ,iBAAiBxlQ,QAAQ9J,EAAG0+G,cACnC,CAE6B,SAAAoxJ,IAqB5B,OArB4BA,GAAAt5Q,OAAAC,UAA7B,SAAAwD,EAA8BgoC,GAAK,IAAA04D,EAAA6hB,EAAA,OAAA/lH,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAS7B,OARE6jG,EAAatsF,EAAUvU,KAAK,CAC5B0X,YAAa,4EACbC,WAAYs+P,GACZp+P,aAAc,QACdC,SAAU,SACVC,QAAS,CACLowB,MAAO,WAAF,OAAQA,GAAS,IAAI,KAEhC9nC,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGyB6jG,EAAWxvF,OAAM,OAA1B,OAAVqxG,EAAUriH,EAAAnD,KAAAmD,EAAArD,KAAG,EACXq4Q,IAAW,WACb3yJ,EAAY,CAAFriH,EAAArD,KAAA,gBAAAqD,EAAArD,KAAA,GACJ+gI,EAAqBrb,GAAW,eAAAriH,EAAArD,KAAA,GAChC+4Q,EAAkBrzJ,GAAW,QAAAriH,EAAArD,KAAA,qBAC5BkJ,EAAG0+G,cAAe,CAAFvkH,EAAArD,KAAA,gBAAAqD,EAAArD,KAAA,GACjB+gI,EAAqB73H,EAAG0+G,cAAczpG,IAAG,QAAA9a,EAAArD,KAAA,wBAAAqD,EAAAtD,KAAA,GAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,oBAG1DnC,MAAA,KAAAC,UAAA,CAE4B,SAAAi4Q,IAwB5B,OAxB4BA,GAAAx5Q,OAAAC,UAA7B,SAAAoE,EAA8B0pN,EAAOwpD,GAAQ,IAAAkC,EAAAhC,EAAA,OAAAx3Q,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAavC,OAZEm5Q,EAAc5hQ,EAAUvU,KAAK,CAC7B0X,YAAa,4DACbC,WAAYy+P,GACZv+P,aAAc,OACdC,SAAU,SACVC,QAAS,CACL0yM,MAAO,WAAF,OAAQA,GAAS,IAAI,EAC1BtiL,MAAO,WAAF,OAAQjiC,EAAG0+G,aAAa,EAC7BmvJ,kBAAmB,WAAF,OAAQ7tQ,EAAG6tQ,mBAAqB,EAAE,EACnDC,YAAa,WAAF,OAAQ9tQ,EAAG2vQ,iBAAiBzyQ,MAAM,EAC7C6wQ,SAAU,WAAF,OAAQA,CAAQ,KAE9BjzQ,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGyBm5Q,EAAY9kQ,OAAM,OAA3B,OAAV8iQ,EAAUnzQ,EAAA9D,KAAA8D,EAAAhE,KAAG,EACXy4Q,IAAW,WACbtB,EAAY,CAAFnzQ,EAAAhE,KAAA,gBAAAgE,EAAAhE,KAAA,GACJq5Q,EAAqBlC,GAAW,QAAAnzQ,EAAAhE,KAAA,qBAC/BkJ,EAAGumM,cAAe,CAAFzrM,EAAAhE,KAAA,gBAAAgE,EAAAhE,KAAA,GACjBq5Q,EAAqBnwQ,EAAGumM,cAActxL,IAAG,QAAAna,EAAAhE,KAAA,wBAAAgE,EAAAjE,KAAA,GAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,mCAAAnL,EAAAjD,OAAA,GAAAgD,EAAA,oBAG1D/C,MAAA,KAAAC,UAAA,CAEgC,SAAAq4Q,IAoBhC,OApBgCA,GAAA55Q,OAAAC,UAAjC,SAAA6K,IAAA,IAAA+uQ,EAAAC,EAAA,OAAA75Q,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,OAWM,OAVEu5Q,EAAiBhiQ,EAAUvU,KAAK,CAChC0X,YAAa,oEACbC,WAAY8+P,GACZ5+P,aAAc,OACdC,SAAU,SACVC,QAAS,CACL0yM,MAAO,WAAF,OAAQvkN,EAAGumM,aAAa,EAC7BtkK,MAAO,WAAF,OAAQjiC,EAAG0+G,aAAa,EAC7BmvJ,kBAAmB,WAAF,OAAQ7tQ,EAAG6tQ,mBAAqB,EAAE,KAEzDlsQ,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAGQu5Q,EAAellQ,OAAM,OAEb,OADRmlQ,EAAkBtwQ,EAAGumM,cAActxL,GACzCu7P,IAAc7uQ,EAAA7K,KAAA,EACRy4Q,IAAW,cAAA5tQ,EAAA7K,KAAA,GACXq5Q,EAAqBG,GAAgB,QAAA3uQ,EAAA7K,KAAA,wBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAlI,GAAAkI,EAAA,SAAAA,EAAAsE,OAAA,mCAAAtE,EAAA9J,OAAA,GAAAyJ,EAAA,oBAElDxJ,MAAA,KAAAC,UAAA,CAEyB,SAAAgjG,IAQzB,OARyBA,GAAAvkG,OAAAC,UAA1B,SAAAkM,EAA2Bs/B,GAAK,OAAAxrC,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAElB+G,IAAKpF,EAAc4pC,iBAAiB,eAAgB,yCAA2CJ,EAAMpoC,KAAO,IAAK,WAAU,cAAA+I,EAAA9L,KAAA,EAC3Hm+O,EAA0Bv9L,oBAAoBzV,EAAMhtB,IAAG,OAC7Dk6P,IAAYvsQ,EAAA9L,KAAA,uBAAA8L,EAAA/L,KAAA,EAAA+L,EAAAnJ,GAAAmJ,EAAA,SAAAA,EAAAqD,OAAA,mCAAArD,EAAA/K,OAAA,GAAA8K,EAAA,mBAInB7K,MAAA,KAAAC,UAAA,CAE8B,SAAA04Q,IAS9B,OAT8BA,GAAAj6Q,OAAAC,UAA/B,SAAA8uB,EAAgCg/L,GAAK,OAAA9tN,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,cAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAEvB+G,IAAKpF,EAAc4pC,iBAAiB,eAAgB,yCAA2CkiL,EAAMmsD,MAAQ,IAAK,WAAU,cAAAlrP,EAAA1uB,KAAA,EAC5Hm+O,EAA0Bp9L,yBAAyB73C,EAAG0+G,cAAczpG,GAAIsvM,EAAMtvM,IAAG,OAC/D,OAAxBjV,EAAGumM,cAAgB,KAAK/gL,EAAA1uB,KAAA,EAClBy4Q,IAAW,OAAA/pP,EAAA1uB,KAAA,wBAAA0uB,EAAA3uB,KAAA,GAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAAAA,EAAAvf,OAAA,mCAAAuf,EAAA3tB,OAAA,GAAA0tB,EAAA,oBAIxBztB,MAAA,KAAAC,UAAA,CAE4B,SAAA44Q,IAM5B,OAN4BA,GAAAn6Q,OAAAC,UAA7B,SAAAkvB,EAA8B6zN,GAAQ,IAAA82B,EAAA,OAAA75Q,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,OACS,OAArCw5Q,EAAkBtwQ,EAAGumM,cAActxL,GAAE2Q,EAAA9uB,KAAA,EACrCm+O,EAA0Bh9L,qCAAqCj4C,EAAG0+G,cAAczpG,GAAIjV,EAAGumM,cAActxL,GAAIukO,EAASxsO,QAAO,OACjH,OAAdwjQ,IAAc5qP,EAAA9uB,KAAA,EACRy4Q,IAAW,cAAA3pP,EAAA9uB,KAAA,EACXq5Q,EAAqBG,GAAgB,wBAAA1qP,EAAA/tB,OAAA,GAAA8tB,EAAA,MAC9C7tB,MAAA,KAAAC,UAAA,CAE0C,SAAA64Q,IAY1C,OAZ0CA,GAAAp6Q,OAAAC,UAA3C,SAAAwvB,IAAA,IAAA4qP,EAAA,OAAAp6Q,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,OAMM,OALE+5Q,EAAqBxiQ,EAAUvU,KAAK,CACpC0X,YAAa,oEACbC,WAAYq/P,GACZn/P,aAAc,QACdC,SAAU,WACZsU,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAGQ+5Q,EAAmB1lQ,OAAM,OAC/BhP,IAAW+pB,EAAApvB,KAAA,uBAAAovB,EAAArvB,KAAA,EAAAqvB,EAAAzsB,GAAAysB,EAAA,SAAAA,EAAAjgB,OAAA,mCAAAigB,EAAAruB,OAAA,GAAAouB,EAAA,mBAElBnuB,MAAA,KAAAC,UAAA,CAEkC,SAAAwgD,IASlC,OATkCA,GAAA/hD,OAAAC,UAAnC,SAAAk/C,IAAA,IAAAz7C,EAAA,OAAAzD,UAAA,SAAAm/C,GAAA,cAAAA,EAAA/+C,KAAA++C,EAAA9+C,MAAA,OACiD,OAA7CkJ,EAAGq8F,oBAAsB,IAAIv6F,EAAgB8zC,EAAA/+C,KAAA,EAAA++C,EAAA9+C,KAAA,EAElBm+O,EAA0B38L,uBAAsB,OAAzD,OAARp+C,EAAQ07C,EAAA5+C,KAAA4+C,EAAA9+C,KAAG,EACX2B,EAAc8J,qBAAqBvC,EAAGq8F,qBAAoB,OAChE74D,EAAUC,OAAOvpC,EAASb,KAAM,uBAAuBu8C,EAAA9+C,KAAA,iBAAA8+C,EAAA/+C,KAAA,GAAA++C,EAAAn8C,GAAAm8C,EAAA,SAEvD51C,EAAGq8F,oBAAoBx7F,cAAe,EAAM,yBAAA+0C,EAAA/9C,OAAA,GAAA89C,EAAA,oBAEnD79C,MAAA,KAAAC,UAAA,CAED,SAAS8/H,EAAqBk5I,GACtB/wQ,EAAG0+G,eAAiB1+G,EAAG0+G,cAAczpG,KAAO87P,IAGxC/wQ,EAAG6tQ,kBAAkB3wQ,OAAS,IAAG8C,EAAG6tQ,kBAAoB,IAC5D2C,IACAxwQ,EAAG0+G,cAAgB1+G,EAAGsvQ,iBAAiBvsQ,MAAK,SAAAk/B,GAAK,OAAIA,EAAMhtB,KAAO87P,CAAe,IACjFxB,IAER,CAEA,SAASY,EAAqBG,GAnJ9B,IAAsB13N,EAoJd54C,EAAGumM,eAAiBvmM,EAAGumM,cAActxL,KAAOq7P,IAG5CtwQ,EAAGumM,cAAgBvmM,EAAG2vQ,iBAAiB5sQ,MAAK,SAAAwhN,GAAK,OAAIA,EAAMtvM,KAAOq7P,CAAe,IAvJnE13N,EAwJD03N,EAvJjBtwQ,EAAGgxQ,oBAAsBhxQ,EAAG2vQ,iBAAiB5sQ,MAAK,SAAAwhN,GAAK,OAAIA,EAAMtvM,KAAO2jC,CAAO,IAAEg3N,UACjF5vQ,EAAGgxQ,oBAAsB74Q,EAAQ,UAARA,CAAmB6H,EAAGgxQ,oBAAqB,QAwJxE,CAEA,SAASR,IACLxwQ,EAAGumM,cAAgB,KACnBvmM,EAAG2vQ,iBAAmB,KACtB3vQ,EAAGgxQ,oBAAsB,IAC7B,CA3OAhxQ,EAAG6tQ,kBAAoB,GACvB7tQ,EAAGixQ,eAmFF,SAE4B3rQ,GAAA,OAAAwqQ,EAAAh4Q,MAAC,KAADC,UAAA,EApF7BiI,EAAGkxQ,mBAmIF,WAEgC,OAAAd,EAAAt4Q,MAAC,KAADC,UAAA,EApIjCiI,EAAGg7F,YAwJF,SAEyBzvF,GAAA,OAAAwvF,EAAAjjG,MAAC,KAADC,UAAA,EAzJ1BiI,EAAGmxQ,iBAiKF,SAE8Bv9N,GAAA,OAAA68N,EAAA34Q,MAAC,KAADC,UAAA,EAlK/BiI,EAAG63H,qBAAuBA,EAC1B73H,EAAGmwQ,qBAAuBA,EAC1BnwQ,EAAGoxQ,eAoGF,SAE4BjwQ,EAAAC,GAAA,OAAA4uQ,EAAAl4Q,MAAC,KAADC,UAAA,EArG7BiI,EAAGqxQ,eAwKF,SAE4Bt8N,GAAA,OAAA47N,EAAA74Q,MAAC,KAADC,UAAA,EAzK7BiI,EAAGs4C,qBA6LF,WAEkC,OAAAC,EAAAzgD,MAAC,KAADC,UAAA,EA9LnCiI,EAAGsxQ,6BA8KF,WAE0C,OAAAV,EAAA94Q,MAAC,KAADC,UAAA,EA9K3CiI,EAAGuxQ,yBAA2B,CAC1B,CACIttQ,KAAM,OACN2nB,MAAO,SAAAlhB,GACH1K,EAAGixQ,eAAevmQ,EAAKu3B,MAC3B,GAEJ,CACIh+B,KAAM,0CACN2nB,MAAO,SAAAlhB,GACH1K,EAAGg7F,YAAYtwF,EAAKu3B,MACxB,IAIRjiC,EAAGwxQ,8BAAgC,CAC/B,CACIvtQ,KAAM,OACN2nB,MAAO,SAAAlhB,GACH1K,EAAGoxQ,eAAe1mQ,EAAK65M,OAAO,EAClC,GAEJ,CACItgN,KAAM,0CACN2nB,MAAO,SAAAlhB,GACH1K,EAAGmxQ,iBAAiBzmQ,EAAK65M,MAC7B,EACAz4L,UAAW,SAAUxE,GACjB,OAAOtnB,EAAG2vQ,iBAAiBzyQ,SAAWoqB,EAAWi9L,MAAMmsD,OAAS1wQ,EAAG2vQ,iBAAiBzyQ,OAAS,CACjG,IAIRf,GA+LJ,CJvPoE9F,GAAAgxB,QAAA,0ECC6ChxB,GAAAgxB,QAAA,uJCDAhxB,GAAAgxB,QAAA,8HCAhDhxB,GAAAgxB,QAAA,kECKsBhxB,GAAAgxB,QAAA,gFCUvF,SANuB,CACnB5V,WAAYggQ,GACZ9/P,aAAc,OACdH,YAAa,2DCVY,SAAAnb,GAAU8B,EAASwT,EAAmBpT,EAAa6xQ,EAA6B3xQ,EAAei5Q,EAA2B51J,GAEnJ,IAAM97G,EAAKwH,KAyBsB,SAAAmqQ,IAIhC,OAJgCA,GAAAn7Q,OAAAC,UAAjC,SAAA0C,IAAA,IAAA4zQ,EAAA1zQ,EAAA,OAAA5C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACyBszQ,EAA4BW,mBAAkB,OAAAgC,EAAAzzQ,EAAAtC,KAA7DqC,EAAI0zQ,EAAJ1zQ,KACNA,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,QAChC2G,EAAG4xQ,gBAAkBv4Q,EAAK,wBAAAC,EAAAzB,OAAA,GAAAsB,EAAA,MAC7BrB,MAAA,KAAAC,UAAA,CAEqB,SAAA85Q,IAgBrB,OAhBqBA,GAAAr7Q,OAAAC,UAAtB,SAAAwD,IAAA,IAAAgpE,EAAA,OAAAxsE,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAOK,OANDkJ,EAAGqd,WAAa,IAAIvb,EAEhBmhE,EAAS,CACT,UAAajjE,EAAG8xQ,uBAAuBnwO,UACvC,UAAa3hC,EAAG8xQ,uBAAuBp2Q,GACvC,iBAAoBsE,EAAG+xQ,wBAAwB34O,KAAI,SAAA9O,GAAE,OAAIA,EAAG5uB,EAAE,KACjEvB,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAGS46Q,EAA0BrQ,kBAAkBp+L,GAAO,cAAA9oE,EAAArD,KAAA,EACnD2B,EAAc8J,qBAAqBvC,EAAGqd,YAAW,OACvD1R,EAAkBuC,QAAQ/T,EAAArD,KAAA,iBAAAqD,EAAAtD,KAAA,GAAAsD,EAAAV,GAAAU,EAAA,SAE1B6F,EAAGqd,WAAWxc,cAAe,EAAM,yBAAA1G,EAAAtC,OAAA,GAAAoC,EAAA,oBAE1CnC,MAAA,KAAAC,UAAA,CA7CDiI,EAAGgyQ,2BAA6B,GAChChyQ,EAAG+xQ,wBAA0B,GAE7B/xQ,EAAGiyQ,QAwBF,WAEqB,OAAAJ,EAAA/5Q,MAAC,KAADC,UAAA,EAzBtBiI,EAAGwC,OA2CH,WACImJ,EAAkBxH,SACtB,EAnCI23G,EAAkB7gH,QAAO,eAAA8P,GAAAvU,OAAAC,UAAC,SAAAC,EAAMk4B,GAAO,IAAAvM,EAAAhpB,EAAA,OAAA5C,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACdyB,EAAY45C,wBAAwBvjB,EAAQlzB,IAAG,OAAA2mB,EAAAzrB,EAAAI,KAA9DqC,EAAIgpB,EAAJhpB,KACNA,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,QAChC2G,EAAGgyQ,2BAA6BhyQ,EAAGgyQ,2BAA2Bx3Q,OAAOnB,GACrE2G,EAAGgyQ,2BAA6B75Q,EAAQ,UAARA,CAAmB6H,EAAGgyQ,2BAA4B,aAAa,wBAAAp7Q,EAAAiB,OAAA,GAAAnB,EAAA,KAClG,gBAAA4O,GAAA,OAAAyF,EAAAjT,MAAA,KAAAC,UAAA,EALwB,IAO5B,WAEgC45Q,EAAA75Q,MAAC,KAADC,UAAA,CAb7Bm6Q,EAyCR,CCvD6B,SAAA77Q,GAAU4B,EAAQE,EAASwT,EAAmBwmQ,EAAwB15Q,EAAeP,GAC9G,IAOQm2D,EAPFruD,EAAKwH,KAEXxH,EAAGwC,OAyBH,WACImJ,EAAkBxH,SACtB,EAtBQkqD,EAAgB,CAChB,CAAEx1C,MAAO,cAAe7U,MAAO,UAAW6a,WAAYyf,KAG1Dt+B,EAAGoyQ,qBAAuB35Q,EAAc4uC,mBAAmBgnB,EAAe,KAC1EruD,EAAGoyQ,qBAAqBvyO,YAAa,EAErC7/B,EAAGqyQ,oBAAsB,IAAIprQ,MAAM5N,KAAKmlB,WAAW,CAC/C+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,SAAUvT,GACZzP,EAAM4K,IAAIvI,OAAS,iDAAmD43Q,EAAuBxwO,WAAW5mC,MAAK,SAAUb,GACnHA,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClDsO,EAAQ+W,QAAQxkB,EAASb,KAC7B,GACJ,IAShB,CC/B6B,SAAAhD,GAAUylH,EAAmBnwG,EAAmBlT,EAAei5Q,EAA2Bv5Q,GACnH,IAcQk2D,EAIAikN,EAyCQlxN,EA3DVphD,EAAKwH,KAmFiB,SAAA+qQ,IA0B3B,OA1B2BA,GAAA/7Q,OAAAC,UAA5B,SAAA0C,IAAA,IAAAE,EAAAm5Q,EAAAr0N,EAAA,OAAA1nD,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAiBK,OAhBDkJ,EAAGqd,WAAa,IAAIvb,EAEhBzI,EAAO2G,EAAGyyQ,yBAAyBp5Q,OACnCm5Q,EAAwB,GAE5Bn5Q,EAAK4B,SAAQ,SAAAC,GACT,IAAI+nE,EAAS,CACT,GAAM/nE,EAAIQ,GACV,KAAQR,EAAIrB,KACZ,gBAAmBqB,EAAIw3Q,iBAE3BF,EAAsBj7Q,KAAK0rE,EAC/B,IAEI9kB,EAAW,CACX,sBAAyBq0N,GAC5Bl5Q,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAGS46Q,EAA0BzQ,cAAc9iN,GAAS,cAAA7kD,EAAAxC,KAAA,GACjD2B,EAAc8J,qBAAqBvC,EAAGqd,YAAW,QACvD1R,EAAkBuC,QAAQ5U,EAAAxC,KAAA,iBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAG,GAAAH,EAAA,SAE1B0G,EAAGqd,WAAWxc,cAAe,EAAM,yBAAAvH,EAAAzB,OAAA,GAAAsB,EAAA,oBAE1CrB,MAAA,KAAAC,UAAA,CA3GDiI,EAAGwC,OA6GH,WACImJ,EAAkBxH,SACtB,EA9GAnE,EAAG2yQ,cA8ED,WAE0B,OAAAJ,EAAAz6Q,MAAC,KAADC,UAAA,EA/E5BiI,EAAG4yQ,yBAiEH,SAAkCryO,EAAU5Q,EAAYkjP,EAAuBC,GAC3EvyO,EAAS5Q,GAAc,KAEvB,IAAK,IAAI1W,EAAI,EAAGA,EAAIsnB,EAASmyO,gBAAgBx1Q,OAAQ+b,IACjD,GAAIsnB,EAASmyO,gBAAgBz5P,GAAG0oB,YAAckxO,EAAuB,CACjEtyO,EAASmyO,gBAAgBxzP,OAAOjG,EAAG,GACnC,KACJ,CAEoC,IAApCsnB,EAASmyO,gBAAgBx1Q,QACzB8C,EAAGyyQ,yBAAyBtgQ,OAAOouB,EAE3C,EAnEQ8tB,EAAgB,CAChB,CAAEx1C,MAAO,OAAQ7U,MAAO,UAAW6a,WAAYyf,KAG/Cg0O,EAAiB,GACrBx2J,EAAkB7gH,SAAQ,SAAA2zB,GACtB,IAAIe,EAAaf,EAAQ+I,WACrB+J,EAAY9S,EAAQlzB,GACpB4/B,EAAc1M,EAAQ/0B,KAMtBk5Q,EAAc,CAAEl6P,MAAO8W,EAAY3rB,MAAOs3B,EAAap0B,SAHvD,4BAA8ByoB,EAAa,yDAA2DA,EAAtG,+BACwBA,EAAa,2IAA6IA,EAAa,cAAgB+R,EAAY,cAAgBpG,EAAc,cAExKzc,WAAYyf,IACjGg0O,EAAe/6Q,KAAKw7Q,EACxB,IAEAT,EAAiBA,EAAep2P,SAEhCo2P,EAAiBn6Q,EAAQ,UAARA,CAAmBm6Q,EAAgB,SACpDjkN,EAAgBA,EAAc7zD,OAAO83Q,GAErCtyQ,EAAGgzQ,0BAA4Bv6Q,EAAc4uC,mBAAmBgnB,EAAe,KAmB/EruD,EAAGyyQ,yBAA2B,IAAIxrQ,MAAM5N,KAAKmlB,WAAW,CACpD+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACM46Q,EAA0B3Q,oBAAmB,QAA9D7mQ,EAAQtD,EAAAI,MACHqC,OApBYA,EAoBuBa,EAASb,MAnB5D4B,SAAQ,SAAAC,GACT4gH,EAAkB7gH,SAAQ,SAAA2zB,GACtB1zB,EAAI0zB,EAAQ+I,YAAc,IAC9B,IAEAz8B,EAAIw3Q,gBAAgBz3Q,SAAQ,SAAUijQ,GAClC,IAAIvuO,EAAa,KAAOuuO,EAAQpxN,YAAYxjC,QAAQ,KAAM,IAC1DpO,EAAIy0B,GAAcuuO,EAAQhmM,WAC9B,GACJ,IACO7+D,GAUKa,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClDsO,EAAQ+W,QAAQxkB,EAASb,MAAM,wBAAAzC,EAAAiB,OAtB/C,IAAqCwB,CAsBU,GAAA3C,EAAA,KAClC,SALG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KAwDpB,CCpH6B,SAAA1B,GAAU4B,EAAQE,EAASwT,EAAmBsnQ,EAAiCC,EAA+Bz6Q,EAAeF,EAAam5Q,EAA2Bx5Q,GAC9L,IAiBQm2D,EAUQjN,EA3BVphD,EAAKwH,KAqCiB,SAAA2rQ,IAU3B,OAV2BA,GAAA38Q,OAAAC,UAA5B,SAAA0C,IAAA,IAAAi6Q,EAAA,OAAA38Q,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAGwC,GADhCs8Q,EAAuBH,EAAgCP,gBAAgBr2P,MAAK,SAAAxV,GAAC,OAAIA,EAAE86B,YAAc3hC,EAAG4hF,YAAYjgD,SAAS,IAC7H3hC,EAAGqd,WAAa,IAAIvb,GAChBsxQ,EAAsB,CAAF95Q,EAAAxC,KAAA,eAAAwC,EAAAxC,KAAA,EACdwpQ,IAAe,OACrB+S,GAAY,GAAM/5Q,EAAAxC,KAAA,eAElBu8Q,IAAc,wBAAA/5Q,EAAAzB,OAAA,GAAAsB,EAAA,MAErBrB,MAAA,KAAAC,UAAA,UAEcs7Q,EAAWlyQ,GAAA,OAAAmyQ,EAAAx7Q,MAAC,KAADC,UAAA,UAAAu7Q,IAczB,OAdyBA,GAAA98Q,OAAAC,UAA1B,SAAAwD,EAA2Bs5Q,GAAU,IAAAp1N,EAAA,OAAA1nD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAKhC,OAJGqnD,EAAW,CACX,gBAAmB80N,EAAgCv3Q,GACnD,UAAasE,EAAG4hF,YAAYjgD,UAC5B,UAAa3hC,EAAG4hF,YAAYlmF,IAC/BvB,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAES46Q,EAA0BvQ,cAAchjN,GAAS,cAAAhkD,EAAArD,KAAA,EACjD2B,EAAc8J,qBAAqBvC,EAAGqd,YAAW,OACvD1R,EAAkBuC,MAAMqlQ,GAAYp5Q,EAAArD,KAAA,gBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAEpC6F,EAAGqd,WAAWxc,cAAe,EAAM,yBAAA1G,EAAAtC,OAAA,GAAAoC,EAAA,mBAG1CnC,MAAA,KAAAC,UAAA,UAEcuoQ,IAAa,OAAAJ,EAAApoQ,MAAC,KAADC,UAAA,UAAAmoQ,IAoB3B,OApB2BA,GAAA1pQ,OAAAC,UAA5B,SAAAoE,IAAA,IAAA0lC,EAAAizO,EAAA7R,EAAAzgO,EAAA,OAAAzqC,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAMgE,OALxDypC,EAAW0yO,EACXO,EAAwBxzQ,EAAG4hF,YAAYjgD,UAEvCggO,EAAiBsR,EAAgCP,gBAAgB3vQ,MAAK,SAAA8D,GAAC,OAAIA,EAAE86B,YAAc6xO,CAAqB,IAEhHtyO,EAAYuyO,mBAAmB9R,EAAexgO,WAAUrmC,EAAAjE,KAAA,EAAAiE,EAAAhE,KAAA,EAGlD46Q,EAA0BpR,cAAcqB,EAAgBzgO,GAAU,OAAApmC,EAAAhE,KAAA,uBAAAgE,EAAAjE,KAAA,EAAAiE,EAAArB,GAAAqB,EAAA,SAAAA,EAAAmL,OAAA,kBAM5E/N,EAAK,OAAQqC,OAAS,8CAAgDonQ,EAAe5gO,gBAAkB,YAAc4gO,EAAehgO,UAAY,YAAcR,UAAY,KAAKpmC,MAAK,SAAUb,GAC1LjC,EAAOy7Q,4BAA4BnzO,EAAUizO,EACjD,IAAG,SAAuBt5Q,GACtBzB,EAAc2d,iBAAiBlc,EAASb,KAC5C,IAAG,yBAAAyB,EAAAjD,OAAA,GAAAgD,EAAA,mBACN/C,MAAA,KAAAC,UAAA,CAnFDiI,EAAG2zQ,cAgCF,WAG2B,OAAAR,EAAAr7Q,MAAC,KAADC,UAAA,EAlC5BiI,EAAG65E,kBAoFH,SAA2Bt5C,GACvBvgC,EAAG4hF,YAAcrhD,CACrB,EArFAvgC,EAAGwC,OAuFH,WACImJ,EAAkBxH,SACtB,EAvFAnE,EAAGizQ,gCAAkCA,EACrCjzQ,EAAGkzQ,8BAAgCA,EAU3B7kN,EAAgB,CAChB,CAAEx1C,MAAO,OAAQ7U,MAAO,UAAW6a,WAAYyf,KAGnDt+B,EAAGoyQ,qBAAuB35Q,EAAc4uC,mBAAmBgnB,EAAe,KAC1EruD,EAAGoyQ,qBAAqBvyO,YAAa,EAErC7/B,EAAGqyQ,oBAAsB,IAAIprQ,MAAM5N,KAAKmlB,WAAW,CAC/C+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACMyB,EAAY45C,wBAAwB+gO,EAA8BvxO,WAAU,QAA7FznC,EAAQtD,EAAAI,MACHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAClDsO,EAAQ+W,QAAQxkB,EAASb,MAAM,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,KAClC,SAJG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KAoEpB,CC3F6B,SAAA1B,GAAUgY,EAAWlW,EAASM,EAAei5Q,EAA2Bn5Q,GAEjG,IAAMyH,EAAKwH,KAWY,SAAA7O,IAKtB,OALsBA,GAAAnC,OAAAC,UAAvB,SAAA0C,IAAA,OAAA1C,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAxC,KAAA,EACU88Q,IAAe,OACrBC,IACAC,IA4BA9zQ,EAAGmqC,eAAiB,IAAIljC,MAAM5N,KAAKmlB,WAAW,CAC1C+iC,SAAUliB,GACV5gB,UAAW,CACPvD,KAAM,WAAF,IAAAkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACM46Q,EAA0B7Q,oBAAmB,QAA9D3mQ,EAAQtD,EAAAI,MAEHqC,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAElDa,EAASb,KAAK4B,SAAQ,SAAUC,GAC5BA,EAAIw3Q,gBAAgBz3Q,SAAQ,SAAUijQ,GAClC,IAAIvuO,EAAa,KAAOuuO,EAAQpxN,YAAYxjC,QAAQ,KAAM,IAC1DpO,EAAIy0B,GAAcuuO,EAAQhmM,WAC9B,GACJ,IACAvwD,EAAQ+W,QAAQxkB,EAASb,MAAM,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,KAX/B,OAYH,SAZG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,EAAE,MA9BS,wBAAAuB,EAAAzB,OAAA,GAAAsB,EAAA,KAC1BR,EAAAb,MAAA,KAAAC,UAAA,UAEc67Q,IAAa,OAAAG,EAAAj8Q,MAAC,KAADC,UAAA,UAAAg8Q,IAW3B,OAX2BA,GAAAv9Q,OAAAC,UAA5B,SAAAwD,IAAA,OAAAxD,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAC8B,OAA1BkJ,EAAG87G,kBAAoB,GAAG3hH,EAAArD,KAAA,EACLyB,EAAYkO,cAAa,OAAlCtM,EAAAnD,KACHqC,KAAK4B,SAAQ,SAAUC,GAC5B8E,EAAG87G,kBAAkBvkH,KAAK,CACtB,GAAM2D,EAAIQ,GACV,KAAQR,EAAIrB,KACZ,WAAc,KAAOqB,EAAIrB,KAAKyP,QAAQ,KAAM,KAEpD,IAAG,wBAAAnP,EAAAtC,OAAA,GAAAoC,EAAA,MAENnC,MAAA,KAAAC,UAAA,UAEc+7Q,IAAuB,OAAAE,EAAAl8Q,MAAC,KAADC,UAAA,UAAAi8Q,IAOrC,OAPqCA,GAAAx9Q,OAAAC,UAAtC,SAAAoE,IAAA,IAAAX,EAAA,OAAAzD,UAAA,SAAAqE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,cAAAgE,EAAAhE,KAAA,EACyB46Q,EAA0B7uP,uBAAsB,OAAjE3oB,EAAQY,EAAA9D,KACZgJ,EAAGi0Q,2BAA6B/5Q,EAASb,KAEzC2G,EAAGk0Q,4BAA8Bh6Q,EAASb,KAAKi/F,KAAI,SAAUp9F,GACzD,OAAOA,EAAIi5Q,oBACf,IAAG,wBAAAr5Q,EAAAjD,OAAA,GAAAgD,EAAA,MACN/C,MAAA,KAAAC,UAAA,CAwBiC,SAAAypQ,IAYjC,OAZiCA,GAAAhrQ,OAAAC,UAAlC,SAAA6K,EAAmCi/B,GAAQ,OAAA9pC,UAAA,SAAAkL,GAAA,cAAAA,EAAA9K,KAAA8K,EAAA7K,MAAA,cAAA6K,EAAA9K,KAAA,EAAA8K,EAAA7K,KAAA,EAE7B+G,IAAKpF,EAAc4pC,iBAAiB,iBAAkB,oGAAqG,WAAU,OAC9H,OAA7Cp7B,MAAME,GAAGuiD,SAAS1pD,EAAG0tL,SAASlwJ,SAAS,GAAM77B,EAAA7K,KAAA,EACvC46Q,EAA0BnQ,oBAAoBkS,mBAAmBlzO,EAAS7kC,KAAI,OACpFuL,MAAME,GAAGuiD,SAAS1pD,EAAG0tL,SAASlwJ,SAAS,GACvCx9B,EAAG0tL,SAASp0K,WAAW4B,OACvB44P,IAA0BnyQ,EAAA7K,KAAA,wBAAA6K,EAAA9K,KAAA,GAAA8K,EAAAlI,GAAAkI,EAAA,SAAAA,EAAAsE,OAAA,mCAAAtE,EAAA9J,OAAA,GAAAyJ,EAAA,oBAKjCxJ,MAAA,KAAAC,UAAA,CAED,SAAS87Q,IAEL,IAAIxlN,EAAgB,CAChB,CAAEx1C,MAAO,OAAQ7U,MAAO,UAAWkD,SAAU,oKAAqK2X,WAAYyf,KAG9N81O,EAAiB,GAErBp0Q,EAAG87G,kBAAkB7gH,SAAQ,SAAU2zB,GACnC,IAAIe,EAAaf,EAAQ+I,WACrBqvC,EAAYp4C,EAAQlzB,GACpB4/B,EAAc1M,EAAQ/0B,KAMtBk5Q,EAAc,CAAEl6P,MAAO8W,EAAY3rB,MAAOs3B,EAAap0B,SAHvD,oBAAsByoB,EAAa,sIAAwIq3C,EAAY,cAAgB1rC,EAAvM,iCACwB3L,EAAa,qIAAuIA,EAAa,cAAgBq3C,EAAY,cAAgB1rC,EAAc,cAElKzc,WAAYyf,IACjG81O,EAAe78Q,KAAKw7Q,EACxB,IAEAqB,GADAA,EAAiBj8Q,EAAQ,UAARA,CAAmBi8Q,EAAgB,UACpBl4P,SAEhCmyC,EAAgBA,EAAc7zD,OAAO45Q,GAErCp0Q,EAAG4hE,gBAAkBnpE,EAAc4uC,mBAAmBgnB,EAAe,IACzE,CAEmC,SAAAgmN,IAclC,OAdkCA,GAAA79Q,OAAAC,UAAnC,SAAAkM,EAAoC49B,EAAU5Q,EAAYkjP,EAAuBC,GAAuB,IAAAnR,EAAAzgO,EAAA,OAAAzqC,UAAA,SAAAmM,GAAA,cAAAA,EAAA/L,KAAA+L,EAAA9L,MAAA,cAAA8L,EAAA/L,KAAA,EAAA+L,EAAA9L,KAAA,EAE1F+G,IAAKpF,EAAc4pC,iBAAiB,iBAAkB,mDAAqDywO,EAA0B,IAAK,WAAU,OAG7G,OAFzCnR,EAAiBphO,EAASmyO,gBAAgB3vQ,MAAK,SAAA8D,GAAC,OAAIA,EAAE86B,YAAckxO,CAAqB,IACzF3xO,EAAYuyO,mBAAmB9R,EAAexgO,WAClDl6B,MAAME,GAAGuiD,SAAS1pD,EAAG0tL,SAASlwJ,SAAS,GAAM56B,EAAA9L,KAAA,EACvC46Q,EAA0BjQ,qBAAqBE,EAAgBzgO,GAAU,OACN,OAAzEwyO,EAA4BnzO,EAAU5Q,EAAYkjP,GAAuBjwQ,EAAA9L,KAAA,GACnEg9Q,IAAyB,QAC/B7sQ,MAAME,GAAGuiD,SAAS1pD,EAAG0tL,SAASlwJ,SAAS,GAAO56B,EAAA9L,KAAA,wBAAA8L,EAAA/L,KAAA,GAAA+L,EAAAnJ,GAAAmJ,EAAA,SAAAA,EAAAqD,OAAA,mCAAArD,EAAA/K,OAAA,GAAA8K,EAAA,oBAKrD7K,MAAA,KAAAC,UAAA,CAED,SAAS27Q,EAA4BnzO,EAAU5Q,EAAYkjP,UAChDtyO,EAAS5Q,GAEhB,IAAK,IAAI1W,EAAI,EAAGA,EAAIsnB,EAASmyO,gBAAgBx1Q,OAAQ+b,IACjD,GAAIsnB,EAASmyO,gBAAgBz5P,GAAG0oB,YAAckxO,EAAuB,CACjEtyO,EAASmyO,gBAAgBxzP,OAAOjG,EAAG,GACnC,KACJ,CAER,CAEwC,SAAAq7P,IAmBvC,OAnBuCA,GAAA99Q,OAAAC,UAAxC,SAAA8uB,IAAA,IAAAgvP,EAAA,OAAA99Q,UAAA,SAAA+uB,GAAA,cAAAA,EAAA3uB,KAAA2uB,EAAA1uB,MAAA,OAUM,OATEy9Q,EAAwBlmQ,EAAUvU,KAAK,CACvC0X,YAAa,2EACbC,WAAY+iQ,GACZ7iQ,aAAc,SACdC,SAAU,SACVgM,KAAM,KACN/L,QAAS,CACLiqG,kBAAmB,WAAF,OAAQ97G,EAAG87G,iBAAiB,KAEnDt2F,EAAA3uB,KAAA,EAAA2uB,EAAA1uB,KAAA,EAGQy9Q,EAAsBppQ,OAAM,OAClCnL,EAAGmqC,eAAejvB,OAClB44P,IAA0BtuP,EAAA1uB,KAAA,uBAAA0uB,EAAA3uB,KAAA,EAAA2uB,EAAA/rB,GAAA+rB,EAAA,SAAAA,EAAAvf,OAAA,mCAAAuf,EAAA3tB,OAAA,GAAA0tB,EAAA,mBAIjCztB,MAAA,KAAAC,UAAA,CAEuC,SAAA08Q,IAsBvC,OAtBuCA,GAAAj+Q,OAAAC,UAAxC,SAAAkvB,EAAyC4a,EAAUsyO,EAAuBC,GAAuB,IAAA4B,EAAAC,EAAA,OAAAl+Q,UAAA,SAAAmvB,GAAA,cAAAA,EAAA/uB,KAAA+uB,EAAA9uB,MAAA,OAa3F,OAZEo8Q,EAAgC,CAAE,UAAaL,EAAuB,YAAeC,GAErF6B,EAAwBtmQ,EAAUvU,KAAK,CACvC0X,YAAa,+EACbC,WAAYmjQ,GACZjjQ,aAAc,SACdC,SAAU,SACVgM,KAAM,KACN/L,QAAS,CACLohQ,gCAAiC,WAAF,OAAQ1yO,CAAQ,EAC/C2yO,8BAA+B,WAAF,OAAQA,CAA6B,KAExEttP,EAAA/uB,KAAA,EAAA+uB,EAAA9uB,KAAA,EAGQ69Q,EAAsBxpQ,OAAM,OAClCnL,EAAGmqC,eAAejvB,OAClB44P,IAA0BluP,EAAA9uB,KAAA,uBAAA8uB,EAAA/uB,KAAA,EAAA+uB,EAAAnsB,GAAAmsB,EAAA,SAAAA,EAAA3f,OAAA,mCAAA2f,EAAA/tB,OAAA,GAAA8tB,EAAA,mBAIjC7tB,MAAA,KAAAC,UAAA,CAEuC,SAAA88Q,IAmBvC,OAnBuCA,GAAAr+Q,OAAAC,UAAxC,SAAAwvB,IAAA,IAAA6uP,EAAA,OAAAr+Q,UAAA,SAAAyvB,GAAA,cAAAA,EAAArvB,KAAAqvB,EAAApvB,MAAA,OAUM,OATEg+Q,EAAwBzmQ,EAAUvU,KAAK,CACvC0X,YAAa,2EACbC,WAAYsjQ,GACZpjQ,aAAc,SACdC,SAAU,SACVgM,KAAM,KACN/L,QAAS,CACLiqG,kBAAmB,WAAF,OAAQ97G,EAAG87G,iBAAiB,KAEnD51F,EAAArvB,KAAA,EAAAqvB,EAAApvB,KAAA,EAGQg+Q,EAAsB3pQ,OAAM,OAClCnL,EAAGmqC,eAAejvB,OAClB44P,IAA0B5tP,EAAApvB,KAAA,uBAAAovB,EAAArvB,KAAA,EAAAqvB,EAAAzsB,GAAAysB,EAAA,SAAAA,EAAAjgB,OAAA,mCAAAigB,EAAAruB,OAAA,GAAAouB,EAAA,mBAIjCnuB,MAAA,KAAAC,UAAA,CAEkD,SAAAi9Q,IAclD,OAdkDA,GAAAx+Q,OAAAC,UAAnD,SAAAk/C,EAAoD69N,EAAuBV,GAAuB,OAAAr8Q,UAAA,SAAAm/C,GAAA,cAAAA,EAAA/+C,KAAA++C,EAAA9+C,MAAA,OAE9FkJ,EAAGkzQ,8BAAgC,CAAE,UAAaM,EAAuB,YAAeV,GAExFzkQ,EAAUvU,KAAK,CACX0X,YAAa,mGACbC,WAAYwjQ,GACZtjQ,aAAc,UACdC,SAAU,SACVgM,KAAM,KACN/L,QAAS,CACLsgQ,uBAAwB,WAAF,OAAQnyQ,EAAGkzQ,6BAA6B,KAEnE,wBAAAt9N,EAAA/9C,OAAA,GAAA89C,EAAA,MACN79C,MAAA,KAAAC,UAAA,CAjNDiI,EAAGk1Q,qBAoGF,SAEkC9zQ,EAAAmK,EAAAqoC,EAAAmB,GAAA,OAAAs/N,EAAAv8Q,MAAC,KAADC,UAAA,EArGnCiI,EAAGuhQ,oBAyDF,SAEiCpgQ,GAAA,OAAAqgQ,EAAA1pQ,MAAC,KAADC,UAAA,EA1DlCiI,EAAGm1Q,0BA6HD,WAEsC,OAAAb,EAAAx8Q,MAAC,KAADC,UAAA,EA9HxCiI,EAAGo1Q,0BAiJD,SAEsCpgO,EAAAK,EAAA8B,GAAA,OAAAs9N,EAAA38Q,MAAC,KAADC,UAAA,EAlJxCiI,EAAGq1Q,0BAwKD,WAEsC,OAAAR,EAAA/8Q,MAAC,KAADC,UAAA,EAzKxCiI,EAAGs1Q,qCA4LF,SAEkDh+N,EAAAC,GAAA,OAAAy9N,EAAAl9Q,MAAC,KAADC,UAAA,EA5LxC,WAEYY,EAAAb,MAAC,KAADC,UAAA,CAFvBoE,EA4MJ,CJ/NoE9F,GAAAgxB,QAAA,4ICA6ChxB,GAAAgxB,QAAA,0FCC7ChxB,GAAAgxB,QAAA,gGCA6ChxB,GAAAgxB,QAAA,6KCKkBhxB,GAAAgxB,QAAA,kFCSnI,SANuB,CACnB5V,WAAY8jQ,GACZ5jQ,aAAc,OACdH,YAAa,sD,0kBCVY,SAAAnb,GAAU8B,EAASwT,EAAmBpT,EAAag5D,EAAsB94D,EAAeuI,EAAmBkG,GAEpI,IAAMlH,EAAKwH,KAEXxH,EAAGonB,QAiBH,WAIkB,IAAFg6B,EAHZphD,EAAGw1Q,iCAAmC,IAAIvuQ,MAAM5N,KAAKmlB,WAAW,CAC5D+iC,SAAUliB,GACV5gB,UAAW,CACPvD,MAAIkmC,GAAA5qD,OAAAC,UAAE,SAAAC,EAAMiR,GAAO,IAAAzN,EAAA,OAAAzD,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEUyB,EAAY25C,oBAAmB,QAAhDh4C,EAAQtD,EAAAI,MACHqC,KAAOa,EAASb,KAAKsC,QAAO,SAAAwpD,GAAO,OAAIA,EAAQ51C,aAAa,IACrErV,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAC9C2G,EAAGkH,SAASg+C,WAAallD,EAAGkH,SAASg+C,UAAUhoD,OAAS,GACxD8C,EAAGkH,SAASg+C,UAAUjqD,SAAQ,SAAAw6Q,GAC1Bv7Q,EAASb,KAAOa,EAASb,KAAKsC,QAAO,SAAA2T,GAAC,OAAImmQ,EAAGjhN,cAAc94D,KAAO4T,EAAE5T,EAAE,GAC1E,IAGJsE,EAAGwxD,mBAAqBt3D,EAASb,KAAK+xB,QAAO,SAACsqP,EAAsBC,GAChE,IAAMC,EAAsB,CACxBl6Q,GAAIi6Q,EAAej6Q,GACnB7B,KAAM87Q,EAAe97Q,KACrB0V,cAAeomQ,EAAepmQ,eAGlC,GAAIomQ,EAAezwN,UAAUhoD,OAAQ,CACjC,IAAI24Q,EAAwB,GAAIC,EAAiB,GAMjD,OALAH,EAAezwN,UAAUjqD,SAAQ,SAAAkqD,GAC7B2wN,GAAkB3wN,EAAQzpD,GAAK,IACnC,IACAo6Q,EAAiBA,EAAe35P,MAAM,GAAI,GAC1C05P,EAAsBt+Q,KAAI86D,MAAC,CAAC,EAAIujN,GAAmB,IAAEG,WAAYD,KAC1DJ,EAAqBl7Q,OAAOq7Q,EACvC,CAEI,OADAH,EAAqBn+Q,KAAKq+Q,GACnBF,CAGf,GAAG,IAEH/tQ,EAAQ+W,QAAQ1e,EAAGwxD,oBAAoB56D,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAEvC+Q,EAAQuiC,MAAKtzC,EAAA6C,IAAQ,yBAAA7C,EAAAiB,OAAA,GAAAnB,EAAA,mBAE5B,SArCG4O,GAAA,OAAA87C,EAAAtpD,MAAA,KAAAC,UAAA,KAwChB,EA3DAiI,EAAGkH,SAAQmrD,GAAA,GAAQnrD,GAEnBlH,EAAGkiQ,WAyDF,SAEwB/gQ,GAAA,OAAAghQ,EAAArqQ,MAAC,KAADC,UAAA,EA1DzBiI,EAAGkO,MA2FH,WACIvC,EAAkBuC,OACtB,EA3FA,IAAM8nQ,EAAgC,CAClC,CAAEhyQ,MAAO,OAAQ6U,MAAO,OAAQgG,WAAYyf,IAC5C,CAAEt6B,MAAO,aAAc6U,MAAO,aAAcgG,WAAYyf,IACxD,CAAEp3B,SAAU,+GAAgHlD,MAAO,GAAIiE,MAAO,GAAI4W,YAAY,IAqDzI,SAAAsjP,IAgBxB,OAhBwBA,GAAA3rQ,OAAAC,UAAzB,SAAA0C,EAA0BgsD,GAAO,IAAAnvC,EAAA,OAAAvf,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAK5B,OAJDkJ,EAAG2mD,SAAU,EACT3wC,EAAW,CACXigQ,kBAAmBj2Q,EAAGkH,SAAS+N,GAC/BqlC,gBAAiB6K,EAAQzpD,IAC5BpC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAGSy6D,EAAqB2wM,WAAWliQ,EAAGkH,SAAS+N,GAAIe,GAAS,OAC/DkgQ,EAAsB/wN,GACtBgxN,EAAqBhxN,GAAS7rD,EAAAxC,KAAA,uBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAAAA,EAAA2M,OAAA,kBAKlCjG,EAAG2mD,SAAU,EAAM,yBAAArtD,EAAAzB,OAAA,GAAAsB,EAAA,mBACtBrB,MAAA,KAAAC,UAAA,CAED,SAASm+Q,EAAsB/wN,GAC3B,IAAIixN,EAAep2Q,EAAGw1Q,iCAAiC5/M,MAAM7yD,MAAK,SAAAszC,GAAC,OAAIA,EAAE36C,KAAOypD,EAAQzpD,EAAE,IAC1FsE,EAAGw1Q,iCAAiC5/M,MAAMzjD,OAAOikQ,EACrD,CAEA,SAASD,EAAqBhxN,GAC1B,IAAMuN,EAAgB,CAClBujN,kBAAmBj2Q,EAAGkH,SAAS+N,GAC/BohQ,oBAAqBr2Q,EAAGkH,SAASrN,KACjC26D,cAAerP,EAAQzC,SACvB4zN,WAAYnxN,EAAQ4wN,WAAW52Q,MAAM,MAEzCa,EAAGkH,SAASg+C,UAAU3tD,KAAKm7D,EAC/B,CAjFA1yD,EAAGu2Q,8BAAgC99Q,EAAc4uC,mBAAmB2uO,EAA+B,MACnGh2Q,EAAGu2Q,8BAA8B12O,YAAa,CAsFlD,CCvG6B,SAAAxpC,GAAUgY,EAAWlW,EAASo5D,GAEvD,IAAMvxD,EAAKwH,KAGsB,SAElBoqD,EAAmBtsD,GAAA,OAAA6yO,EAAArgP,MAAC,KAADC,UAAA,UAAAogP,IAiBjC,OAjBiCA,GAAA3hP,OAAAC,UAAlC,SAAAC,EAAmC8/Q,GAAa,IAAAC,EAAAp9Q,EAAAi/O,EAAA,OAAA7hP,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACvBy6D,EAAqBK,sBAAqB,OAAA6kN,EAAA7/Q,EAAAI,MAAzDqC,EAAIo9Q,EAAJp9Q,MACG6D,OAAS,IACd7D,EAAK4B,SAAQ,SAAAiM,GACTA,EAASg+C,UAAYh+C,EAASg+C,UAAUvpD,QAAO,SAAAwpD,GAAO,OAAIA,EAAQqP,cAAcjlD,aAAa,IAC7FrI,EAASg+C,UAAUjqD,SAAQ,SAAAy7Q,GAAe,OAAIA,EAAgBJ,WAAaI,EAAgBxxN,UAAU9rB,KAAI,SAAA51B,GAAM,OAAIA,EAAO9H,EAAE,GAAC,GACjI,IAEArC,EAAOlB,EAAQ,UAARA,CAAmBkB,EAAM,QAC5Bm9Q,IACMl+B,EAAkBj/O,EAAK0J,MAAK,SAAAm7I,GAAC,OAAIA,EAAEjpI,KAAOuhQ,CAAa,KAC7Dn9Q,EAAOA,EAAKsC,QAAO,SAAAuiJ,GAAC,OAAIA,EAAEjpI,KAAOuhQ,CAAa,KACzC1sQ,QAAQwuO,GACbq+B,8BAA8Br+B,KAGtCt4O,EAAGo0D,iBAAmB/6D,EAAK,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,MAC9BoB,MAAA,KAAAC,UAAA,CAE2B,SAAAsqQ,IAU3B,OAV2BA,GAAA7rQ,OAAAC,UAA5B,SAAA0C,EAA6BgsD,GAAO,IAAAwN,EAAA,OAAAl8D,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OACR,OAAxBkJ,EAAG42Q,eAAgB,EAAKt9Q,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAEdy6D,EAAqB6wM,cAAcpiQ,EAAGkH,SAAS+N,GAAIkwC,EAAQzpD,IAAG,OAC9Di3D,EAAe3yD,EAAGkH,SAASg+C,UAAUrlC,WAAU,SAAAvQ,GAAC,OAAIA,EAAEklD,cAAc94D,KAAOypD,EAAQzpD,EAAE,IAC3FsE,EAAGkH,SAASg+C,UAAUhmC,OAAOyzC,EAAc,GAAGr5D,EAAAxC,KAAA,uBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAAAA,EAAA2M,OAAA,kBAIlDjG,EAAG42Q,eAAgB,EAAM,yBAAAt9Q,EAAAzB,OAAA,GAAAsB,EAAA,mBAC5BrB,MAAA,KAAAC,UAAA,CAE8B,SAAA8+Q,IAiB9B,OAjB8BA,GAAArgR,OAAAC,UAA/B,SAAAwD,IAAA,IAAA68Q,EAAA,OAAArgR,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAUM,OATIggR,EAAuBzoQ,EAAUvU,KAAK,CACxC0X,YAAa,kEACbC,WAAYslQ,GACZplQ,aAAc,OACdC,SAAU,SACVgM,KAAM,KACN/L,QAAS,CACL3K,SAAU,WAAF,OAAQlH,EAAGkH,QAAQ,KAEjC/M,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAE8BggR,EAAqB3rQ,OAAM,OACvDymD,EADmBz3D,EAAAnD,MACgBmD,EAAArD,KAAA,uBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,mBAI1CnC,MAAA,KAAAC,UAAA,CAnDDiI,EAAGg3Q,iBAgCF,WAE8B,OAAAH,EAAA/+Q,MAAC,KAADC,UAAA,EAjC/BiI,EAAGoiQ,cAmBF,SAE2BjhQ,GAAA,OAAAkhQ,EAAAvqQ,MAAC,KAADC,UAAA,CA+BhC,CD5DiH1B,GAAAgxB,QAAA,oHCC7ChxB,GAAAgxB,QAAA,+CCWpE,SAVqC,CACjCm5B,SAAU,CACNt5C,SAAU,IACVusD,kBAAmB,KAEvBhiD,WAAYwlQ,GACZtlQ,aAAc,SACdH,YAAa,mGCPY,SAAAnb,GAAUsV,EAAmB4lD,EAAsB94D,EAAey+Q,EAAc9iN,EAAkB3B,GAE3H,IAAMzyD,EAAKwH,KAcyB,SAAAq6P,IAYnC,OAZmCA,GAAArrQ,OAAAC,UAApC,SAAAC,IAAA,IAAAsf,EAAA9b,EAAA02J,EAAA,OAAAn6J,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAE4C,OADxCkJ,EAAG2mD,QAAU,IAAI7kD,EACbkU,EAAW,CAAEnc,KAAMmG,EAAG2uJ,cAAc/3J,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEfy6D,EAAqBqwM,sBAAsB5rP,GAAS,OAErD,OAFhB9b,EAAQtD,EAAAI,KACR45J,EAAgB12J,EAASb,KAC7B2G,EAAGmW,WAAY,EAAKvf,EAAAE,KAAA,GACd2B,EAAc8J,qBAAqBvC,EAAG2mD,SAAQ,QACpDh7C,EAAkBuC,MAAM0iJ,GAAeh6J,EAAAE,KAAA,iBAAAF,EAAAC,KAAA,GAAAD,EAAA6C,GAAA7C,EAAA,SAEvCoJ,EAAG2mD,QAAQ9lD,cAAe,EAAM,yBAAAjK,EAAAiB,OAAA,GAAAnB,EAAA,oBAEvCoB,MAAA,KAAAC,UAAA,CAOmC,SAAAgqQ,IAgBnC,OAhBmCA,GAAAvrQ,OAAAC,UAApC,SAAA0C,IAAA,IAAAmd,EAAA,OAAA7f,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAMK,OALDkJ,EAAG2mD,QAAU,IAAI7kD,EAEbwU,EAAU,CACVzc,KAAMmG,EAAG2uJ,aACT15I,GAAIjV,EAAGyyD,iBAAiBx9C,IAC3B3b,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAGSy6D,EAAqBuwM,sBAAsBxrP,EAAQrB,GAAIqB,GAAQ,OACjD,OAApBtW,EAAGmW,WAAY,EAAK7c,EAAAxC,KAAA,EACd2B,EAAc8J,qBAAqBvC,EAAG2mD,SAAQ,OACpDh7C,EAAkBuC,QAAQ5U,EAAAxC,KAAA,iBAAAwC,EAAAzC,KAAA,GAAAyC,EAAAG,GAAAH,EAAA,SAE1B0G,EAAG2mD,QAAQ9lD,cAAe,EAAM,yBAAAvH,EAAAzB,OAAA,GAAAsB,EAAA,oBAEvCrB,MAAA,KAAAC,UAAA,CA/CDiI,EAAGk3Q,aAAeA,EAElBl3Q,EAAGwC,OAwDH,WACImJ,EAAkBxH,SACtB,EAxDIsuD,IACAzyD,EAAGyyD,iBAAmBA,EACtBzyD,EAAG2uJ,aAAel8F,EAAiB54D,MAGvCmG,EAAGm3Q,mBAiBH,WAEI,OAAO/iN,EAAiB/3C,MADZ,SAAC6hI,GAAC,OAAKA,EAAErkJ,KAAKupB,gBAAkBpjB,EAAG2uJ,aAAavrI,aAAa,GAE7E,EAnBApjB,EAAG+6G,WAuCH,WACyB,WAAjBm8J,EAxCmB,WAESrV,EAAA/pQ,MAAC,KAADC,UAAA,CAuC5B6pQ,GAtBP,WAEmCG,EAAAjqQ,MAAC,KAADC,UAAA,CAsB5B+pQ,EAER,CAMJ,CChE6B,SAAAzrQ,GAAU8B,EAASkW,EAAWkjD,EAAsB94D,GAE7E,IAAMuH,EAAKwH,KAKsD,SAGlDoqD,EAAmBtsD,GAAA,OAAA6yO,EAAArgP,MAAC,KAADC,UAAA,UAAAogP,IAiBjC,OAjBiCA,GAAA3hP,OAAAC,UAAlC,SAAAC,EAAmC8/Q,GAAa,IAAAt8Q,EAAAo+O,EAAA,OAAA7hP,UAAA,SAAAG,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACvBy6D,EAAqBK,sBAAqB,QAA3D13D,EAAQtD,EAAAI,MACCqC,KAAK6D,OAAS,IACvBhD,EAASb,KAAK4B,SAAQ,SAAAiM,GAClBA,EAASg+C,UAAYh+C,EAASg+C,UAAUvpD,QAAO,SAAAwpD,GAAO,OAAIA,EAAQqP,cAAcjlD,aAAa,IAC7FrI,EAASg+C,UAAUjqD,SAAQ,SAAAy7Q,GAAe,OAAIA,EAAgBJ,WAAaI,EAAgBxxN,UAAU9rB,KAAI,SAAA51B,GAAM,OAAIA,EAAO9H,EAAE,GAAC,GACjI,IAEAxB,EAASb,KAAOlB,EAAQ,UAARA,CAAmB+B,EAASb,KAAM,QAC9Cm9Q,IACMl+B,EAAkBp+O,EAASb,KAAK0J,MAAK,SAAAm7I,GAAC,OAAIA,EAAEjpI,KAAOuhQ,CAAa,IACtEt8Q,EAASb,KAAOa,EAASb,KAAKsC,QAAO,SAAAuiJ,GAAC,OAAIA,EAAEjpI,KAAOuhQ,CAAa,IAChEt8Q,EAASb,KAAKyQ,QAAQwuO,GACtBq+B,EAA8Br+B,KAGtCt4O,EAAGo0D,iBAAmBl6D,EAASb,KAAK,wBAAAzC,EAAAiB,OAAA,GAAAnB,EAAA,MACvCoB,MAAA,KAAAC,UAAA,CAED,SAAS4+Q,EAA8BzvQ,GACnClH,EAAGkH,SAAWA,EACdlH,EAAGo3Q,iBAAiB,CAAElwQ,YAC1B,CAEoC,SAAA+6P,IAcnC,OAdmCA,GAAAzrQ,OAAAC,UAApC,SAAA0C,EAAqC+N,GAAQ,OAAAzQ,UAAA,SAAA6C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,cAAAwC,EAAAzC,KAAA,EAAAyC,EAAAxC,KAAA,EAE/B+G,IAAKpF,EAAc6yC,yBAAyB,0BAAyB,sEAAA9wC,OAExD0M,EAASrN,KAAI,wCACvB,WAAU,cAAAP,EAAAxC,KAAA,EACby6D,EAAqBywM,sBAAsB96P,EAAS+N,IAAG,OACzDjV,EAAGkH,UAAYlH,EAAGkH,SAAS+N,KAAO/N,EAAS+N,IAC3CjV,EAAGo3Q,iBAAiB,MAExBxlN,IAAsBt4D,EAAAxC,KAAA,uBAAAwC,EAAAzC,KAAA,EAAAyC,EAAAG,GAAAH,EAAA,SAAAA,EAAA2M,OAAA,mCAAA3M,EAAAzB,OAAA,GAAAsB,EAAA,mBAI7BrB,MAAA,KAAAC,UAAA,CAeC,SAEas/Q,EAAwBj2Q,EAAAmK,EAAAqoC,GAAA,OAAA0jO,EAAAx/Q,MAAC,KAADC,UAAA,UAAAu/Q,IAmBtC,OAnBsCA,GAAA9gR,OAAAC,UAAvC,SAAAwD,EAAwCi9Q,EAAc9iN,EAAkB3B,GAAgB,IAAAqkN,EAAA,OAAArgR,UAAA,SAAA0D,GAAA,cAAAA,EAAAtD,KAAAsD,EAAArD,MAAA,OAWlF,OAVIggR,EAAuBzoQ,EAAUvU,KAAK,CACxC0X,YAAa,kFACbC,WAAY8lQ,GACZ5lQ,aAAc,QACdC,SAAU,SACVC,QAAS,CACLqlQ,aAAc,WAAF,OAAQA,CAAY,EAChC9iN,iBAAkB,WAAF,OAAQA,CAAgB,EACxC3B,iBAAkB,WAAF,OAAQA,CAAgB,KAE9Ct4D,EAAAtD,KAAA,EAAAsD,EAAArD,KAAA,EAG8BggR,EAAqB3rQ,OAAM,OACvDymD,EADmBz3D,EAAAnD,MACgBmD,EAAArD,KAAA,uBAAAqD,EAAAtD,KAAA,EAAAsD,EAAAV,GAAAU,EAAA,SAAAA,EAAA8L,OAAA,mCAAA9L,EAAAtC,OAAA,GAAAoC,EAAA,mBAI1CnC,MAAA,KAAAC,UAAA,CAhFDiI,EAAGonB,QAAUwqC,EAEb5xD,EAAGq3Q,yBAA2BA,EAC9Br3Q,EAAG22Q,8BAAgCA,EA2CnC32Q,EAAG2rB,YAAc,CACb,CACI1nB,KAAM,OACN2nB,MAAO,SAAAlhB,GACH2sQ,EAAyB,OAAQr3Q,EAAGo0D,iBAAkB1pD,EAAKxD,SAC/D,GAEJ,CACIjD,KAAM,0CACN2nB,MAAO,SAAAlhB,IA3Bd,SAEmCvJ,GAAA8gQ,EAAAnqQ,MAAC,KAADC,UAAA,CA0BxBiqQ,CAAsBt3P,EAAKxD,SAC/B,GAyBZ,CDzFoE7Q,GAAAgxB,QAAA,kHCCiChxB,GAAAgxB,QAAA,+DCWrG,SAV6B,CACzBm5B,SAAU,CACNt5C,SAAU,IACVkwQ,iBAAkB,KAEtB3lQ,WAAY+lQ,GACZ7lQ,aAAc,QACdH,YAAa,wFCukBjB,GAhlB2B,CACvB,iBACA,eACA,qBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,kBACA,qBACA,mBACA,eACA,oBACA,eACA,iBACA,eACA,uBACA,kBACA,gBACA,kBACA,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,IAAMimQ,GACO,CACZC,QAAS,CACL,CAAE79Q,KAAM,iBAAkBmhC,WAAW,GACrC,CAAEnhC,KAAM,0BAA2BmhC,WAAW,GAC9C,CAAEnhC,KAAM,qCAAsCmhC,WAAW,GACzD,CAAEnhC,KAAM,qCAAsCmhC,WAAW,GACzD,CAAEnhC,KAAM,qC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A0B,sB,+CCAzC,QAAe,IAA0B,6B,+CCAzC,QAAe,IAA0B,2B,+CCAzC,QAAe,IAA0B,wB,+CCAzC,QAAe,IAA0B,2B,+CCAzC,QAAe,IAA0B,kC,+CCAzC,QAAe,IAA0B,+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,gC,+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.1d950e8df48f919b71ad.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.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 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 $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 $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.changeRadioFilter = changeRadioFilter;\r\n vm.exportsAreLoading = false;\r\n vm.showFilters = false;\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.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 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 try {\r\n await myDownloadsDataService.deleteExport(item.Id);\r\n vm.listOfExports.remove(function (el) { return el.Id === item.Id; });\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n function downloadItemClicked(item) {\r\n downloadItem(item);\r\n }\r\n\r\n function downloadItem(item) {\r\n ExportReportService.downloadReportExport(item);\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 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 getExports();\r\n getExportsSharedWithUser();\r\n } catch {\r\n return;\r\n }\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 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 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) {\r\n const service = {\r\n getCurrentSharedUsers,\r\n getExports,\r\n getExportsSharedWithUser,\r\n updateSharedUsers,\r\n deleteExport,\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 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 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.AtHeaderId = 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 function buildHeaderPost(productType) {\r\n let headerPostData;\r\n let headerEndpoint = '';\r\n\r\n if (productType === 'OR') {\r\n headerPostData = {\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 = {\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 = {\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 $http.post(apiUrl + headerEndpoint, headerPostData).then(_ => {\r\n return;\r\n }, function (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.AtHeaderId = 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 function buildHeaderPost(productType) {\r\n let headerPostData;\r\n let headerEndpoint = '';\r\n\r\n if (productType === 'OR') {\r\n headerPostData = {\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 = {\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 = {\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 $http.post(apiUrl + headerEndpoint, headerPostData).then(_ => {\r\n return;\r\n }, function (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.AtHeaderId = 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 function buildHeaderPost(productType) {\r\n let headerPostData;\r\n let headerEndpoint = '';\r\n\r\n if (productType === 'OR') {\r\n headerPostData = {\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 = {\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 = {\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 $http.post(apiUrl + headerEndpoint, headerPostData).then(_ => {\r\n return;\r\n }, function (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.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.AtHeaderId = 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;\r\n let headerEndpoint = '';\r\n\r\n if (productType === 'OR') {\r\n headerPostData = {\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 = {\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 = {\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.AtHeaderId = 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 function buildHeaderPost(productType) {\r\n let headerPostData;\r\n let headerEndpoint = '';\r\n\r\n if (productType === 'OR') {\r\n headerPostData = {\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 = {\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 = {\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 $http.post(apiUrl + headerEndpoint, headerPostData).then(_ => {\r\n return;\r\n }, function (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 {\r\n routeString = 'api/audittrail/ns/v2/places/allchanges/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 vm.tickets.push(ticket);\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 ($scope, $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\r\n\r\n vm.linkedTickets = vm.tickets;\r\n\r\n async function openTicketTable(ticketType) {\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 await updateTicketGrid();\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 await updateTicketGrid();\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 await updateTicketGrid();\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 await updateTicketGrid();\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 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.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;\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 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 },\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 { halSchemaKendoGrid } from \"../../Shared/kendo.module\";\r\nimport { standardGridPageSize, customDatePickerNotNullableFilter, customAutoCompleteFilter } from \"../../Shared/GlobalVariables/filterVariables\";\r\n\r\nexport default /*@ngInject*/ function ($scope, $rootScope, SavedReportSelectorService, dataService, objectIdDataService, CustomReportServices, $filter, $http, 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 $scope.mainGridOptions = helperService.setMainGridOptions(null, 600);\r\n $scope.mainGridOptions.autoBind = false;\r\n $scope.helperService = helperService;\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: 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\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 $scope.reportId = helperService.getSecurityObjectDetailsFromObjectIdAndProductType($scope.ObjectId, vm.selectedProduct.Type).ReportID;\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 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 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 $scope.gridDataSource.read();\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.setColumns = function () {\r\n if (vm.selectedProduct) {\r\n if (vm.selectedProduct.Type === 'AX7') {\r\n $scope.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: \"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\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 { 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: \"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 { 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: \"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 { 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: \"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 { 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: \"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 { 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: \"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 { 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: \"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 { 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: \"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 { 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: \"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 // 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 //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 $scope.sortsAndFilters.Filters = getUniqueObjects($scope.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\\r\\nlist-item.clickable {\\r\\n cursor: pointer;\\r\\n}\\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;;;AAGA;IACI,eAAe;AACnB;;;AAGA;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\\r\\nlist-item.clickable {\\r\\n cursor: pointer;\\r\\n}\\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\":\"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\",\"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/LinkClippedWithDrop.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}.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-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-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-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-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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,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,WNpbc,CMqbd,gBAAA,WN1hBc,CM2hBd,gBAAA,WNxYc,CMyYd,mBAAA,WN/OiB,CMgPjB,mBAAA,WNziBi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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,R0lGODlhIAAgAPMAAP///wAAAMbGxoSEhLa2tpqamjY2NlZWVtjY2OTk5Ly8vB4eHgQEBAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ/V/nmOM82XiHRLYKhKP1oZmADdEAAAh+QQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY/CZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB+A4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6+Ho7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq+B6QDtuetcaBPnW6+O7wDHpIiK9SaVK5GgV543tzjgGcghAgAh+QQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK++G+w48edZPK+M6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE+G+cD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm+FNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk+aV+oJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0/VNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc+XiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30/iI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE/jiuL04RGEBgwWhShRgQExHBAAh+QQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR+ipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY+Yip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd+MFCN6HAAIKgNggY0KtEBAAh+QQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1+vsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d+jYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg+ygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0+bm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h+Kr0SJ8MFihpNbx+4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX+BP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA==);\\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.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-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-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-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-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\\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/LinkClippedWithDrop.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/LinkClippedWithDrop.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":""}