{"version":3,"sources":["components/theme/vertical-divider/VerticalDivider.tsx","components/general/footer/Footer.tsx","hooks/useKeyboardListener.tsx","constants/LocalStorageKeys.ts","services/LocalStorageService.ts","stores/AffiliateStore.ts","stores/CampaignSettingStore.ts","config/AppSettings/ProdSettings.ts","config/AppSettings/SettingsFactory.ts","exceptions/AlgoSupervisionExceptions.ts","models/ApiErrorSchema.ts","services/BaseService.ts","services/operation/CampaignService.ts","stores/CampaignStore.ts","services/operation/CompanyService.ts","stores/CompanyStore.ts","stores/CompanySettingStore.ts","stores/GroupStore.ts","stores/IndeedStore.ts","services/notifications/NotificationService.ts","stores/NotificationStore.ts","components/publisher-selection/mock-data/vendors-list.ts","models/publisher-selection/PublisherSelectionDialog.ts","stores/PublisherSelectionStore.ts","models/BreadCrumb.ts","constants/RoutePaths.ts","models/RouteModel.ts","routes/pages/AccessDeniedPage.tsx","hooks/useOnInit.tsx","hooks/useOnInitAsync.tsx","hooks/useSetCurrentRoute.tsx","hooks/usePageInitialization.tsx","services/campaign-setting/CampaignSettingAuditService.ts","models/campaign-track-system/CampaignSettingsStatus.ts","components/campaign-track-system/CampaignSettingAuditTable.actions.tsx","utils/DateHelpers.ts","components/general/supervision-table/Table.dto.ts","components/campaign-track-system/CampaignSettingsAudit.dto.ts","components/general/supervision-table/ActionsColumn.tsx","components/general/supervision-table/SearchColumn.tsx","components/general/supervision-table/ColumnsBuilder.ts","components/general/supervision-table/RightClickDropdown.tsx","components/general/supervision-table/TableFooter.tsx","components/general/supervision-table/SupervisionTable.tsx","components/campaign-track-system/CampaignSettingAuditTable.tsx","services/campaign-setting/CampaignSettingTypeService.ts","routes/pages/campaign-track-system/helpers/CampaignSettingContextInitializers.ts","routes/pages/supervision/breadcrumbs/supervision.breadcrumbs.tsx","routes/pages/campaign-track-system/helpers/CampaignSetting.breadcrumbs.tsx","services/users/UserService.ts","components/general/loader/Loader.tsx","components/general/inputs/SelectUserInput.tsx","components/campaign-track-system/UploadCsvFile.tsx","routes/pages/campaign-track-system/CampaignTrackAuditPage.tsx","components/campaign-track-system/AuditCampaignForm.tsx","routes/pages/campaign-track-system/CampaignTrackEditAuditPage.tsx","models/users/EActionTypes.ts","services/actions/UserActionService.ts","components/actions/UserActionsTable.actions.tsx","components/actions/ELevelTypes.ts","components/actions/UserActionsTable.dto.ts","components/actions/UserActionsTable.tsx","components/general/inputs/SupervisionAutoComplete.tsx","services/actions/ActionTypeService.ts","routes/pages/actions/UserActionsTablePage.tsx","models/indeed-manager/IndeedCampaignBudgetType.ts","models/indeed-manager/IndeedCampaignObjectiveType.ts","models/indeed-manager/IndeedCreateCampaignEventPayload.ts","models/indeed-manager/IndeedEndDateType.ts","services/indeed/IndeedService.ts","models/indeed-manager/IndeedBudgetFirstMonthBehavior.ts","components/indeed-manager/CampaignBudgetInputs.tsx","models/indeed-manager/IndeedCampaignStatus.ts","components/indeed-manager/CampaignDetailsInputs.tsx","services/operation/JobService.ts","utils/NumbersHelper.ts","components/indeed-manager/IndeedJobsToCampaignTransfer.tsx","components/indeed-manager/IndeedAddCampaignForm.tsx","routes/pages/indeed-manager/helpers/IndeedContextInitializers.ts","routes/pages/indeed-manager/helpers/IndeedManager.breadcrumbs.tsx","routes/pages/indeed-manager/IndeedAddCampaignPage.tsx","models/indeed-manager/IndeedAttachJobsToCampaignEventPayload.ts","components/indeed-manager/IndeedAttachJobsForm.tsx","routes/pages/indeed-manager/IndeedAttachJobsToCampaignPage.tsx","models/operation/GetJobsByIdApiDto.ts","components/indeed-manager/IndeedJobsTable.dto.ts","components/indeed-manager/IndeedJobsTable.tsx","routes/pages/indeed-manager/IndeedCampaignJobsPage.tsx","constants/IAM.ts","components/indeed-manager/IndeedCampaignsTable.actions.tsx","components/indeed-manager/IndeedCampaignsTable.dto.ts","components/indeed-manager/IndeedCampaignsTable.tsx","services/indeed/IndeedStrategyManagementService.ts","components/indeed-manager/strategy/IndeedStrategyCard.tsx","models/indeed-manager/strategy/IndeedCampaignObjectiveType.ts","components/indeed-manager/strategy/IndeedStrategyForm.tsx","components/indeed-manager/strategy/IndeedStrategyManagement.tsx","hooks/useOnPoller.tsx","components/attributes-management/Styles.ts","models/indeed-manager/SubAccountStatusId.ts","components/indeed-manager/IndeedSubAccountStatus.tsx","routes/pages/indeed-manager/IndeedCampaignPage.tsx","models/indeed-manager/IndeedUpdateCampaignBudgetEventPayload.ts","models/indeed-manager/IndeedUpdateCampaignEventPayload.ts","components/indeed-manager/IndeedEditCampaignForm.tsx","routes/pages/indeed-manager/IndeedEditCampaignPage.tsx","services/linkedin/LinkedInStrategyManagementService.ts","models/linkedin-manager/strategy/LinkedInBudgetLevel.ts","components/linkedin-manager/strategy/LinkedInStrategyForm.tsx","components/linkedin-manager/strategy/LinkedInStrategyCard.tsx","components/linkedin-manager/strategy/LinkedInStrategyManagement.tsx","routes/pages/linkedin-manager/helpers/LinkedInManager.breadcrumbs.tsx","components/linkedin-manager/LinkedInChildApplication.tsx","services/linkedin/LinkedInService.ts","routes/pages/linkedin-manager/helpers/LinkedInContextInitializers.ts","routes/pages/linkedin-manager/LinkedInPage.tsx","services/AuthService.ts","routes/pages/Login/SupervisionTitle.tsx","routes/pages/Login/LoginPage.tsx","utils/EmailUtils.ts","constants/CookieConstants.ts","routes/pages/LogoutPage.tsx","routes/pages/NotFoundPage.tsx","components/publisher-selection/entity-page/EntityPage.tsx","components/publisher-selection/entity-page-autocomplete/EntityPageAutoComplete.tsx","components/publisher-selection/vendor-drawer-list/VendorDrawerList.styles.tsx","components/publisher-selection/vendor-drawer-list/VendorDrawerList.tsx","components/publisher-selection/vendor-drawer-autocomplete/VendorDrawerAutocomplete.tsx","components/publisher-selection/vendor-drawer/VendorDrawer.tsx","components/publisher-selection/mock-data/campaigns-list.ts","components/publisher-selection/mock-data/jobs-list.ts","components/publisher-selection/publisher-selection-dialog/PublisherSelectionDialog.tsx","routes/pages/publisher-selection/ChooseCutOffPage.tsx","components/general/shortcuts/ShortcutsData.ts","components/general/shortcuts/ShortCutItem.tsx","routes/pages/ShortCutsManualPage.tsx","assets/styles/theme.ts","components/supervision/campaigns/CampaignSelectInput.tsx","components/supervision/campaigns/CampaignsTable.actions.ts","components/supervision/campaigns/CampaignTable.dto.ts","components/supervision/campaigns/CampaignsTable.tsx","components/supervision/campaigns/CampaignsTableIconActions.tsx","routes/pages/supervision/CampaignsPage.tsx","routes/pages/campaign-track-system/CampaignTrackAddAuditPage.tsx","models/groups/BudgetType.ts","models/groups/GroupStatus.ts","components/groups/GroupTable.dto.ts","services/groups/GroupsService.ts","components/groups/GroupTable.actions.tsx","components/groups/GroupsTable.tsx","routes/pages/groups/helpers/GroupsBreadCrumbs.tsx","services/groups/GroupJobsService.ts","routes/pages/groups/helpers/GroupsContextInitializers .ts","routes/pages/groups/GroupsPage.tsx","components/jobs/JobTransfer.tsx","components/groups/GroupAddForm.tsx","routes/pages/groups/GroupsAddPage.tsx","components/groups/GroupJobsTable.dto.tsx","components/groups/GroupsJobsTable.tsx","routes/pages/groups/GroupJobsPage.tsx","components/groups/GroupsEditForm.tsx","routes/pages/groups/GroupsEditPage.tsx","components/groups/GroupsAttachJobsForm.tsx","routes/pages/groups/GroupsAttachJobsPage.tsx","models/vendor-management/ClassificationType.ts","components/vendor-management/SearchColumn.tsx","models/vendor-management/settings/ELevelTypes.ts","components/vendor-management/VendorManagement.tsx","utils/StringHelper.ts","components/vendor-management/VendorSelectInput.tsx","services/vendor-management/AffiliateVendorService.ts","services/vendor-management/CampaignVendorService.ts","services/vendor-management/CompanyVendorService.ts","services/vendor-management/GroupVendorService.ts","routes/pages/vendor-management/helpers/VendorManagmentContextInitializers.ts","routes/pages/vendor-management/helpers/ClassificationTypeValidation.ts","components/vendor-management/VendorManagmentMode.tsx","routes/pages/vendor-management/helpers/VendorManagmentBreadCrumbs.tsx","models/manual-actions/ManualActionRequestSource.ts","routes/pages/vendor-management/CampaignVendorPage.tsx","components/vendor-management/ControlPanael.tsx","components/vendor-management/Commands.tsx","routes/pages/vendor-management/helpers/VendorManagmentStateContextInitializers.ts","routes/pages/vendor-management/helpers/ReportPage.tsx","routes/pages/vendor-management/GroupVendorPage.tsx","components/supervision/companies/CompaniesTable.actions.ts","components/supervision/companies/CompanyTable.dto.ts","components/supervision/companies/CompaniesTable.tsx","routes/pages/supervision/CompaniesPage.tsx","routes/pages/vendor-management/CompanyVendorPage.tsx","services/company-settings/CompanySettingAuditService.ts","models/company-track-system/CompanySettingsStatus.ts","components/company-track-system/CompanySettingAuditTable.actions.tsx","components/company-track-system/CompanySettingsAudit.dto.ts","components/company-track-system/CompanySettingAuditTable.tsx","services/company-settings/CompanySettingTypeService.ts","routes/pages/company-track-system/helpers/CompanySettingContextInitializers.ts","routes/pages/company-track-system/helpers/CompanySetting.breadcrumbs.tsx","components/company-track-system/UploadCsvFile.tsx","routes/pages/company-track-system/CompanyTrackAuditPage.tsx","services/affiliates/AffiliateService.ts","hooks/usePageInitializationAffiliate.tsx","routes/pages/vendor-management/AffiliateVendorPage.tsx","components/company-track-system/AuditCompanyForm.tsx","routes/pages/company-track-system/CompanyTrackEditAuditPage.tsx","routes/pages/company-track-system/CompanyTrackAddAuditPage.tsx","components/supervision/affiliates/AffiliatesTable.action.ts","components/supervision/affiliates/AffiliateTable.dto.ts","components/supervision/affiliates/AffiliatesTable.tsx","routes/pages/supervision/AffiliatesPage.tsx","components/explainability/JobState.dto.ts","components/explainability/JobVendorState.dto.ts","models/explainability/JobSerachingType.ts","components/explainability/ExplainabilityTable.tsx","components/supervision/companies/CompanySelectInput.tsx","services/explainability/JobsStateService.ts","components/explainability/JobSelectInput.tsx","components/explainability/VendorSelect.tsx","services/explainability/ExplainabilityService.ts","services/explainability/JobVendorStateService.ts","components/explainability/SearchJobState.tsx","routes/pages/explainability/ExplainabilityMainPage.tsx","models/company-attributes/attributes-types/EAppGoalMode.ts","models/company-attributes/attributes-types/EPacingMode.ts","components/attributes-management/Caps.tsx","components/attributes-management/AlgoModes.tsx","services/attributes-management/CompanyAttributesService.ts","services/attributes-management/CompanyPreference.ts","models/company-attributes/attributes-types/EPerMode.ts","routes/pages/attributes-management/heplers/AttributesManagmentContextInitializers.ts","models/company-attributes/CompanyAttributesAggregation.ts","routes/pages/attributes-management/heplers/AttributesManagmentBreadCrumbs.tsx","components/attributes-management/Comments.tsx","components/attributes-management/AttributeLimit.tsx","components/attributes-management/AttributePriorityLimit.tsx","components/attributes-management/CampaignRules.tsx","routes/pages/attributes-management/CompanyAttributesPage.tsx","routes/routes.tsx","services/RouteManager.ts","stores/UIStore.ts","stores/UserStore.ts","stores/VendorManagementStore.ts","stores/ExplainabilityStore.ts","stores/AttributesManagementStore.ts","stores/LinkedInStore.ts","stores/RootStore.ts","stores/RootStoreContext.tsx","utils/Guid.ts","components/general/app-bread-crumbs/AppBreadCrumbs.tsx","components/general/page-header/PageHeader.styles.tsx","components/general/page-header/PageHeader.tsx","components/general/popup/SupervisionPopUp.tsx","components/theme/PandoLogicLogo.tsx","assets/images/pandologic-logo.png","assets/images/pandologic-logo-mini.png","assets/images/plogic_Logo_W.png","components/general/side-menu/components/NotificationsList/NotificationsList.tsx","components/general/side-menu/components/UserInformation/UserInformation.tsx","components/general/side-menu/SideMenu.styles.tsx","components/general/side-menu/SideMenuData.ts","components/general/side-menu/SideMenu.tsx","hoc/PrivateRoute.tsx","routes/index.tsx","utils/SeedUserData.ts","App.tsx","components/general/ErrorHandlerComponent.tsx","config/MuiTheme.ts","reportWebVitals.ts","index.tsx"],"names":["VerticalDivider","props","height","mx","_jsx","Box","children","className","style","Footer","_jsxs","py","px","display","justifyContent","alignItems","component","Date","getFullYear","href","target","useKeyboardListener","id","pattern","callBack","useEffectDependencyMutator","setUseEffectDependencyMutator","useState","useEffect","functionReference","keyboardListenerHandler","callback","_ref","event","window","push","key","baseArray","subArray","join","toLowerCase","isSubArrayEqualArray","isSubArrayContainedInArray","startsWith","addEventListener","removeEventListener","LocalStorageKeys","SetItemString","value","localStorage","setItem","SetItemObject","JSON","stringify","GetItemString","item","getItem","GetItemObject","parse","AffiliateStore","_class","constructor","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","makeObservable","this","selectedAffiliate","LocalStorageService","SearchedAffiliates","undefined","SelectedAffiliate","affiliatesIds","_this$allAffiliates","affiliates","allAffiliates","filter","affiliate","includes","affiliateId","_applyDecoratedDescriptor","prototype","observable","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","CampaignSettingStore","_descriptor4","_descriptor5","campaignSettingTypes","CampaignSettingTypes","campaignSettingTypeValueOptions","CampaignSettingTypeValueOptions","CampaignSettingsAudits","CampaignSettingsAuditsResponse","campaignSettingAudit","SelectedCampaignSettingAudit","updateOperationState","ProdSettings","serverUrl","notificationServerUrl","vendorManagementUrl","explainabilityServiceUrl","attributesManagementServiceUrl","settings","AlgoSupervisionException","Error","message","super","PageNotFoundexception","FetchError","IsApiErrorSchema","errorMessage","apiError","errorCode","retryable","UnauthorizedError","BaseService","controllerPath","ConstructRequestHeaders","requestHeaders","Cookies","get","concat","relativeUrl","response","axios","buildUrl","headers","withCredentials","IsSuccessfulResponse","data","CreateUnsuccessfulFetchError","error","CreateError","payload","isArrayBufferResponseType","arguments","length","options","post","patch","put","delete","status","console","statusText","campaignService","async","campaignId","Get","GetManyByIdsRequest","Post","paginationOptions","CampaignStore","campaigns","SearchedCampaigns","ids","GetManyByIdsAsync","campaign","SelectedCampaign","companyService","companyId","CompanyStore","selectedCompany","SearchedCompanies","SelectedCompany","companies","company","CompanySettingStore","companySettingTypes","CompanySettingTypes","companySettingTypeValueOptions","CompanySettingTypeValueOptions","CompanySettingsAudits","CompanySettingsAuditsResponse","companySettingAudit","SelectedCompanySettingAudit","GroupStore","Groups","GroupsResponse","GroupJobs","GroupJobsResponse","SelectedGroup","GroupBudgetBalance","campaignBudget","campaignBalance","IndeedStore","indeedCampaign","SelectedIndeedCampaign","plIndeedData","PLCampaignData","Company","state","IsDataLoading","indeedSubAccount","notificationId","updateNotificationRequest","seenAt","toISOString","Put","NotificationStore","notifications","NotificationService","GetAll","Notifications","vendorsData","vendors","PublisherSelectionDialog","Conflicts","IsOn","Reset","Vendor","actionType","Set","vendor","conflicts","PublisherSelectionStore","_descriptor6","_descriptor7","SetMockActiveEntityType","entityType","MockActiveEntityType","AddEntityToDrillDownList","entity","MockEntityDrillDownList","SetVendorsForEntity","VendorsForEntity","HandleVendorAction","vendorIndex","findIndex","x","vendorId","isCutOff","operationTypeId","map","index","SetSelectedPublisherActionType","SelectedPublisherActionType","SetSelectedVendor","SelectedVendor","SetSelectedEntity","SelectedEntity","RemoveSelectedEntity","BreadCrumb","breadCrumbText","path","clickHandler","RoutesPaths","Supervision","prefix","CompaniesPrefix","Companies","Campaigns","Affiliates","LinkedInRoutes","StrategyRoute","BuildStrategyRoute","replace","toString","IndeedRoutes","CampaignRoute","BuildCampaignRoute","AddCampaign","BuildAddCampaign","CampaignJobsRoute","BuildCampaignJobsRoute","indeedCampaignId","AttachJobsToIndeedCampaign","BuildAttachJobsToIndeedCampaign","EditIndeedCampaign","BuildEditIndeedCampaign","CompanyTrackSystemRoutes","CompanySettingsRoute","BuildCompanyRoute","EditCompanySettingAudit","BuildEditCompanySettingAudit","auditId","AddCompanySettingAudit","BuildAddCompanySettingAudit","CampaignTrackSystemRoutes","CampaignSettingsRoute","EditCampaignSettingAudit","BuildEditCampaignSettingAudit","AddCampaignSettingAudit","BuildAddCampaignSettingAudit","GroupsRoutes","GroupRoute","BuildGroupRoute","AddGroup","BuildAddGroup","GroupJobsRoute","BuildGroupJobsRoute","groupId","EditGroup","BuildEditGroup","AttachJobsToGroup","BuildAttachJobsToGroup","VendorManagementRoutes","AffiliateVendorRoute","BuildAffiliateVendorManagementRoute","CompanyVendorRoute","BuildCompanyVendorManagementRoute","CampaignVendorRoute","BuildCampaignVendorManagementRoute","GroupVendorRoute","BuildGroupVendorManagementRoute","AttributesManagementRoutes","CompanyAttributesRoute","BuildCompanyAttributesRouteManagementRoute","Explainability","JobExplainabilityRoute","PublisherSelection","ChooseCutOff","Analytics","Actions","Table","Settings","ShortCutsManual","Root","Index","NotFound","AccessDenied","Login","Logout","RouteModel","routePath","renderComponent","mainTitle","breadCrumbsPrefix","isAutoRouteSetup","uuidv4","AccessDeniedPage","generateLocks","lock","document","createElement","position","Math","round","random","y","generatePosition","innerHTML","top","left","classList","body","appendChild","setTimeout","opacity","add","parentElement","removeChild","setInterval","htmlDom","querySelector","margin","padding","overflow","useOnInit","useOnInitAsync","dependencyArray","useSetCurrentRoute","currentLocation","useLocation","uiStore","useContext","RootStoreContext","SetCurrentRoute","pathname","usePageInitialization","initializeConfig","campaignMatch","useParams","companyMatch","history","useHistory","companyStore","campaignStore","pageTitle","SetPageTitle","pageBreadCrumbs","AddBreadCrumbs","onCallback","onInitAsync","SetIsWebsiteLoading","GetCompanyById","Number","SetSelectedCompany","onCompanyContextCallBack","err","GetById","SetSelectedCampaign","campaignSettingAuditService","auditUpdateModel","campaignSettingsAuditCreateModel","Delete","file","userId","fromData","FormData","append","getActionsRequest","queryString","optionTypeId","from","to","url","CampaignSettingsStatus","Text","Typography","CampaignSettingActionsBuilder","campaignSettingStore","text","_campaignSettingStore","SetSelectedCampaignSettingAudit","find","Icon","FiEdit","isDisplayed","popupBody","strong","campaignName","SetPopUp","title","okClickHandler","DeleteCampaignSettingsAudit","auditIndex","Removed","success","okButtonText","RiDeleteBin7Line","dateFormat","dateTimeFormat","minDate","moment","utc","FormatDate","date","format","TableDto","_id","CampaignSettingsAuditDto","type","caseNumber","userName","comment","campaignSettingsAudit","creationDate","BuildActionsColumn","columnOptions","rowActionSettings","render","record","actions","ml","cursor","onClick","Tooltip","placement","SearchColumn","dataIndex","_dataIndex","_searchInput","handleSearch","selectedKeys","confirm","searchText","searchColumn","handleReset","clearFilters","CreateColumn","filterDropdown","setSelectedKeys","Input","ref","node","placeholder","onChange","e","onPressEnter","marginBottom","Space","Button","icon","SearchOutlined","size","width","filterIcon","filtered","color","onFilter","recordKeyValue","onFilterDropdownVisibleChange","visible","select","Highlighter","highlightStyle","backgroundColor","searchWords","autoEscape","textToHighlight","BuildColumnsFromSchema","categoricalColumns","Reflect","ownKeys","dataType","ParseDataType","reduce","prev","cur","toUpperCase","match","some","c","column","_value$match","IsANumberWithPrefixOrPostfix","isValid","IsADateTime","defaultDropdownCoordinates","observer","rightClickData","dropDownMenu","_Fragment","dropdownMenu","Menu","clickCoordinates","yPosition","xPosition","clickedRowData","Item","Dropdown","arrow","overlay","FillRestOfCellsEmpty","tableColumns","_","i","Summary","Cell","dataSource","pageData","fixed","Row","SupervisionTable","tableRowSelection","expandableDataSource","expandableActionSettings","isExpendable","isChild","isShowSizeChanger","expandableDataSources","Array","expandedRowKeys","setExpandedRowKeys","setRightClickData","selectionType","setSelectionType","BuildColumns","showActionsOnLastColumn","showActionsOnRightClick","RightClickDropdown","rowSelection","onRow","rowIndex","onContextMenu","preventDefault","clientX","clientY","rowClassName","columns","tableColumn","PopulateColumnActions","extractNumber","_value$toString$match","_value$toString","sorter","a","b","categoricalColumnOptions","filters","possibleValues","hasOwnProperty","filteredValue","defaultFilteredValue","extractDateValueSinceUnixEpoch","unix","expandable","expandedRowRender","rowExpandable","pagination","showSizeChanger","extra","summary","TableFooter","campaignAudits","Empty","marginTop","description","MapFromCampaignSettingsAudit","campaignSettingTypeService","campaignSettingTypeId","CampaignSettingContextInitializers","_auditData","GetFilteredCampaignSettingsAudits","SetCampaignSettingsAudits","_settingTypesData","GetCampaignSettingTypes","SetCampaignSettingTypes","SupervisionBreadcrumbs","affiliateName","companyName","CampaignSettingBreadCrumbs","CampaignSetting","CampaignSettingAudit","CampaignName","campaignSettingAuditId","userService","email","Loader","createStyles","transform","Spin","tip","defaultValue","onClear","users","setUsers","usersFiltered","setUsersFiltered","isLoading","setIsLoading","_users","displayValue","user","name","AutoComplete","onSelect","selectedUser","onSearch","allowClear","UploadCsvFile","uploadDisabled","setUploadDisabled","userStore","infoFile","setInfoFile","gutter","sx","Upload","onRemove","customRequest","info","accept","Col","disabled","UploadOutlined","shape","UploadFile","User","then","isError","onError","onSuccess","marginLeft","filterSettings","setFilterSettings","userInputValue","setUserInputValue","typeValue","setTypeValue","onCampaignContextCallBack","campaignID","typeOptions","settingType","SelectUserInput","selectedType","DatePicker","RangePicker","initialDateValue","audits","AuditTable","Link","BiPlusCircle","marginRight","layout","labelCol","span","layoutType","layoutValueOptionlabel","campaignAuditId","setSelectedType","valueOptionTypes","setValueOptionTypes","selectedValueOption","setSelectedValueOption","setCaseNumber","setComment","campaignSettingTypeTextValue","setCampaignSettingTypeTextValue","setDate","now","setTypeOptions","setUpdateState","cleanUpState","_campaignSettingStore2","selectedAudit","typeRes","Form","Group","Title","level","label","rules","required","valueOptions","GetSettingTypeValueOptionsPerType","filterOption","inputValue","option","_value","indexOf","valueOption","_value2","dateInput","dateString","TimePicker","time","timeString","TextArea","rows","wrapperCol","offset","auditCreateModel","Active","CampaignSettingAuditService","UpdateCampaignSettingsAudit","CreateCampaignSettingsAudit","CampaignTrackEditAuditPage","SetupdateOperationState","AuditCampaignForm","EActionTypes","userActionService","createRequest","actionTypeIds","UserActionsTableBuilder","AiOutlineFileText","_userAction$data","userAction","userActionDto","hideCancelButton","ELevelTypes","UserActionsTableDto","entityId","entityLevel","userActionType","timeStamp","userActions","SupervisionAutoComplete","optionsToAutoCompleteMapFunction","onSelectHandle","initialValue","placeHolder","setSearchText","filteredOptions","setFilteredOptions","selectedOption","actionTypeService","setUserActions","actionTypes","setActionTypes","GetActionsFiltered","acionType","initialActionTypeValue","UserActionsTable","IndeedCampaignBudgetType","IndeedCampaignObjectiveType","INDEED_CAMPAIGN_OBJECTIVE_DEFAULT_VALUE","BALANCE","IndeedCreateCampaignEventPayload","jobsList","startDate","pandoCampaignId","pandoCompanyId","objective","jobsSourceName","budgetFirstMonthBehavior","fixedEndDate","targetEndDate","budgetOnetimeLimit","budgetMonthlyLimit","IndeedEndDateType","indeedService","pandoLogicCampaignId","createCampaignEventPayload","apiResponse","updateCampaignEventPayload","Patch","updateCampaignBudgetEventPayload","attachJobsToCampaignEventPayload","IndeedBudgetFirstMonthBehavior","Option","Select","CampaignBudgetInputs","isStartDateEditable","budgetLimitTypeInitialValue","budgetLimitType","setBudgetLimitType","disableDateBeforeToday","current","endOf","selectedCampaignType","Fixed","Target","tooltip","disabledDate","val","onOk","OneTime","validator","ruleObject","Promise","reject","resolve","StartNowProratedAmount","StartNowFullAmount","StartNextMonthFullAmount","IndeedCampaignStatus","CampaignDetailsInputs","isStatusEditable","isCampaignObjectiveTypeEditable","campaignObjectiveTypeDefaultValue","campaignObjectiveType","setCampaignObjectiveType","isCampaignTargetInputDisabled","MAXIMUM","Paused","Deleted","TARGET_APPLICATIONS","TARGET_COST_PER_APPLICATION","jobService","paginationParams","limit","getJobsByIdApiDto","getCountRequest","isNumber","isNaN","plCampaignId","onJobsLoad","hasOptionsLoaded","setHasOptionsLoaded","jobOptions","setJobOptions","selectedJobIds","setSelectedJobIds","indeedStore","jobsCount","GetCountAsync","tasks","GetJobsByCampaignIdPagination","_jobs","all","GetIndeedCampaignById","indeedJobs","jobsInIndeedCampaignAndPandoCampaign","_indeedCampaign$indee","indeedJob","jobId","job","getJobLocation","jobLocation","cityName","stateShortName","Transfer","showSearch","searchByJobId","RegExp","test","isJobIdsInput","jobIds","searchByJobIdsMultiple","split","trim","_getJobLocation$toLow","_option$extJobTitleTe","_option$extJobTitleTe2","extJobTitleText","searchByJobTitleTextOrLocation","targetKeys","jobIdsRightSide","direction","searchValue","validateMessages","types","number","range","IndeedAddCampaignForm","campaignJobsIds","setCampaignJobsIds","onFinish","CreateCampaign","formState","campaignStatus","campaignObjective","indeedCampaignSourceInfo","sourceName","deriveEndDate","budgetType","endDate","deriveBudgetLimit","budgetLimitSettings","budgetLimitValue","Monthly","initialValues","IndeedJobsToCampaignTransfer","htmlType","currentType","formBudgetLimitSettings","wantedBudgetLimitSettings","IndeedContextInitializers","pLCampaignId","SetIsDataLoading","_indeedData","GetIndeedCampaignsByPLCampaignId","SetPLCampaignData","GetCompanyByCampaignId","SetCompany","SetSelectedIndeedCampaign","GetIndeedSubAccountByCompanyId","SetIndeedSubAccount","IndeedBreadcrumbs","indeedCampaignName","CampaignJobs","EditCampaign","_indeedStore$PLCampai","_indeedStore$PLCampai2","_indeedStore$PLCampai3","_indeedStore$PLCampai4","IndeedAttachJobsToCampaignEventPayload","detachFromOtherCampaigns","AttachmentType","radioAttachmentType","setRadioAttachmentType","unique","attachJobsEventPayload","AttachJobsToCampaign","CopyToClipboard","onCopy","IndeedAttachJobsToCampaignPage","_indeedStore$Selected","_indeedStore$Selected2","_indeedStore$Selected3","IndeedAttachJobsForm","GetJobsByIdApiDto","IndeedJobTableDto","jobTitle","location","postDate","posCreationDate","jobs","jobsWithPLDataEnriched","setJobsWithPLDataEnriched","getJobsByIdRequest","plJobs","GetJobsByIds","MapFromJob","IndeedJobsViewContainer","IndeedJobsTable","UserIds","IndeedCampaignActionsBuilder","indeedCampaigns","RiSuitcaseLine","BiTransfer","updateCampaignBudgetPayload","Algo","budget","UpdateCampaignBudget","Create","actionTypeId","IndeedAlgoControlRequest","AiOutlineRobot","IndeedCampaignTableDto","_indeedCampaign$campa","_indeedCampaign$campa2","_indeedCampaign$campa3","campaignObjectiveTarget","displayObjective","_campaignStore$Select","MapFromIndeedCampaign","indeedStrategyManagementService","createIndeedCampaignObjectiveStrategyRequest","mapObjectiveTypeToReadableText","objectiveType","IndeedStrategyCard","indeedCampaignObjectiveStrategy","onDelete","Card","bordered","DeleteStrategy","border","fontSize","percentOfCampaignStrategies","targetStrategyOptionMinValue","targetStrategyOptionMaxValue","IndeedStrategyForm","onFormSubmitSuccesfully","form","useForm","loading","setLoading","newlyCreatedStrategy","CreateStrategy","InputNumber","min","step","compact","Panel","Collapse","IndeedStrategyManagement","campaignObjectiveStrategies","setCampaignObjectiveStrategies","campaignStrategies","GetStrategiesByPlCampaign","mb","defaultActiveKey","header","mt","campaignObjectiveStrategy","objectiveId","useOnPoller","pollIntervalInSeconds","pollFunction","interval","clearInterval","StyledInputNumberWrapper","styled","_templateObject","_taggedTemplateLiteral","StyledTextAreaWrapper","_templateObject2","StyledTitle","div","_templateObject3","StyledHeader","_templateObject4","StyledInputGroupWrapper","_templateObject5","StyledColumnGroupWrapper","_templateObject6","StyledColumnGroupToTopWrapper","_templateObject7","StyledInputLabel","_templateObject8","StyledToggleWrapper","_templateObject9","StyledContainer","_templateObject10","StyledCheckbox","Checkbox","_templateObject11","StyledSubSection","_templateObject12","StyledGroupWrapper","_templateObject13","StyledModeWrapper","_templateObject14","SubAccountStatusId","showSubAccountName","log","statusId","getAlertMessageAndType","my","Alert","showIcon","hidden","indeedSubAccountName","plDataHash","useRef","_companyStore$Selecte","hash","plData","indeedSubAccountIsDisconnectedOrRevoked","_indeedStore$indeedSu","_indeedStore$indeedSu2","Idle","IndeedSubAccountStatus","IndeedCampaignsTable","IndeedUpdateCampaignBudgetEventPayload","IndeedUpdateCampaignEventPayload","IndeedEditCampaignForm","endDateType","campaignBudgetType","changedBudgetSettings","newFormState","oldFormState","isSame","GetChangedBudgetSettings","changedCampaignSettings","changedCampaignAttributes","changedCampaignObjective","GetChangedCampaignObjective","GetChangedCampaignSettings","IsEmptyObject","hasErrorOccured","_changedBudgetSetting","newBudgetLimits","initialFormState","budgetOneTimeLimit","GetNewBudgetLimits","endDates","GetEndDates","updateBudgetRequest","updateCampaignRequest","UpdateCampaign","object","keys","linkedinStrategyManagementService","createLinkedInBudgetStrategyRequest","LinkedInBudgetLevel","LinkedInStrategyForm","budgetLevel","setBudgetLevel","percentOfStrategies","LOW","MEDIUM","HIGH","VERY_HIGH","mapBudgetLevelToReadableText","LinkedInStrategyCard","linkedinBudgetStrategy","LinkedInStrategyManagement","BudgetStrategies","setBudgetStrategies","companyStrategies","GetStrategiesByCompanyId","BudgetStrategy","BudgetStrategyId","LinkedInBreadcrumbs","linkedinChildApplication","linkedinService","LinkedInContextInitializers","linkedinStore","linkedInChildApplication","GetLinkedInChildApplicationByCompanyId","SetLinkedInChildApplication","_companyStore$Selecte2","_companyStore$Selecte3","LinkedInChildApplication","authService","loginRequest","SupervisionTitle","LoginPage","setEmail","password","setPassword","method","String","ValidateEmail","CookieConstants","LogoutPage","remove","UserIdentityCookie","Redirect","NotFoundPage","externalColumn","alert","variant","GetChildEntityName","entityName","actionColumn","HandleVendorButtonClick","HandleChildEntityButtonClick","entityData","EntityPageAutoComplete","Autocomplete","freeSolo","multiple","fullWidth","clearOnEscape","entityNameList","HandleInputChange","renderInput","params","TextField","InputProps","useStyles","makeStyles","theme","activeVendor","borderBottom","inActiveVendor","avatarBackground","vendorImg","objectFit","ButtonGroupComponent","HandleButtonActionClick","IsSelected","styledProps","ButtonGroup","publisherSelectionStore","classes","DialogBox","List","dense","ListItem","ListItemAvatar","Avatar","src","imageUrl","alt","vendorName","ListItemText","primary","ListItemSecondaryAction","vendorData","vendorsList","_publisherSelectionSt","_publisherSelectionSt2","_publisherSelectionSt3","vendorsFiltered","setVendorsFiltered","Drawer","anchor","open","isOpen","onClose","VendorDrawerAutocomplete","vendorList","VendorDrawerList","filteredVendor","campaignsMock","jobsMock","jobTitleText","handleClose","Dialog","DialogTitle","DialogContent","DialogContentText","conflict","DialogActions","HandleConfirm","GetEntities","entityRecordHierarchy","setEntityRecordHierarchy","entityDataFiltered","setEntityDataFiltered","isVendorDrawerOpen","setIsVendorDrawerOpen","_entityRecordHierarchy","entities","rootContainerBreadCrumb","RemoveBreadCrumbsUntil","entityLevelName","entityRecord","selectValue","EntityPage","breadCrumb","VendorDrawer","HandleDrawerClose","userShortcuts","Keys","Action","ShortCutItem","p","shortcut","ShortCutsManualContainer","flexDirection","fontWeight","CampaignSelectInput","setOptions","campaignsPartial","GetAllPartial","BuildOptionValue","spacingUnit","wrap","mode","selectedOptionValues","campaignIds","ParseCampaignId","SetSearchedCampaigns","campaignPartial","CampaignsTableActionsBuilder","CampaignId","SiIndeed","MdGroupWork","CampaignTableDto","_campaign$forceEndDat","CreationDate","EndDate","Status","forceEndDate","DetermineStatus","setCampaigns","CampaignsTableIconActions","SiMicrosoftexcel","SiAdobeacrobatreader","CampaignsContainer","CampaignsTable","CampaignTrackAddAuditPage","BudgetType","GroupStatus","GroupTableDto","groupName","groupResponse","isActive","groupBudget","amount","GroupService","groupCreateRequest","updateGroupRequest","updateGroupBudgetRequest","groupService","GroupsActionBuilder","groupStore","groupTableDto","_groupStore$GroupsRes","SetSelectedGroup","DeleteAsync","_groupStore$GroupsRes2","_groupStore$GroupsRes3","IoMdCut","groups","MapFromGroup","GroupsBreadCrumbs","GroupName","AttachJobs","groupJobsService","groupJobRequest","GroupsContextInitializers","groupsStore","_groupData","GroupsService","GetAllAsync","SetGroups","_groupJobsData","GroupJobsService","GetAllByGroupIdAsync","SetGroupJobs","group","GetGroupById","_groupBudgetBalance","GetGroupBudgetBalance","SetGroupBudgetBalance","_groupStore$SelectedC","_groupStore$SelectedC2","_groupStore$SelectedC3","GroupsTable","attachedJobs","IsJobAttachedToGroup","groupJobResponse","FiInfo","groupJob","_option$job$extJobTit","_option$job$extJobTit2","Paragraph","ellipsis","GroupAddForm","groupBudgetBalance","_userStore$User","CreateAsync","Capped","dependencies","getFieldValue","JobTransfer","_groupStore$SelectedC4","GroupJobsTableDto","groupJobId","modificationDate","groupJobs","MapFromGroupJob","_groupStore$SelectedG","_groupStore$SelectedG2","_groupStore$SelectedG3","_groupStore$SelectedG4","GroupsJobsTable","groupsService","GroupsEditForm","_group$groupBudget","_group$groupBudget2","changedGroupSettings","changedGroupAttributes","GetChangedGroupSettings","changedGroupBudget","changedGroupBudgetAttributes","GetChangedGroupBudget","UpdateGroup","UpdateGroupBudget","GroupsAttachJobsForm","AttachedDetachedAsync","GroupsAttachJobsPage","ClassificationType","setVendors","vendorManagementStore","SelectedClassificationType","commentIsEdit","seCommentIsEdit","selectedRowKeys","SearchedVendors","selectedRowIndex","classificationType","None","onSelectAll","selected","selectedRows","forEach","selectedVendor","ClassificationTypeIsOptional","AddToEffectedRows","getCheckboxProps","Badge","dot","isOperativeCutoff","Tag","inheritedLevel","Default","SELECTION_COLUMN","updateVendors","part","InclusionEnforcementIsOptional","inclusionEnforcement","checked","_record$inclusionEnfo","FormatDateIfValid","isAfter","DecompositionString","isEditAble","onBlur","float","EditOutlined","onCell","Excluded","Exclusive","pageSize","entityVendors","filterValue","setFilterValue","selectedValues","setSelectedValues","maxHeight","overflowY","handleBlur","vendorIds","ParseVendorId","SetSearchedVendors","affiliateVendorService","vendorsWithDecision","manualActionRequestSource","entityStateAttributeRequest","entityDistributionSettings","campaignVendorService","companyVendorService","groupVendorService","VendorManagmentContextInitializers","_vendorsAffiliateData","SetVendors","_vendorsCompanyData","_vendorsCampaignData","_vendorsGroupData","ClassificationTypeValidation","Vendors","SetClassificationType","setClassificationType","onValid","EntitySettings","fromClassificationTypeToMode","actionIsValid","newSettings","validAction","validActionReponse","CheckModeCompatiableToTableValues","vendorsInBlackList","buildMessageWithVendorIds","vendorsInWhiteList","vendorIdsMessage","fromModeToClassificationType","Segmented","seletedclassificationType","VendorManagmentBreadCrumbs","AffiliatVendor","CompanyVendor","CampaignVendor","GroupVendor","ManualActionRequestSource","_vendorManagementStor","_vendorManagementStor2","_vendorManagementStor3","isWhitelist","manualVendors","operativeVendors","operativeVendor","manualVendor","sortedVendors","VendorSelectInput","VendorManagmentMode","VendorManagement","SetVendorsToApply","rowsEffected","SelectedVendorsToApply","reportResult","sourceRequest","vendorManagementService","SetCampaignsVendors","borderRadius","isInheritable","setIsInheritable","BoolToMode","ModeToBool","isInheritableBoolValue","SetEntityStateIsInheritable","Commands","onApply","onReset","handleApplyClick","handleResetClick","cancelClickHandler","cancelButtonText","VendorManagmentStateContextInitializers","_groupSettingsData","GetGroupSettingsAsync","SetEntityState","_companySettingsData","GetCompanySettingsAsync","_affiliateStateData","GetAffiliateSettingsAsync","ReportPage","resetEntitiesCollections","handleCopy","reportText","generateReportText","navigator","clipboard","writeText","catch","eLevelTypes","popupBodyApply","renderItem","mark","Divider","orientation","CopyOutlined","_uiStore$PopUp$select","_uiStore$PopUp","selectedValue","PopUp","CampaignTeam","_uiStore$PopUp$select2","_uiStore$PopUp2","closable","hideSelectButton","setGroupVendors","SetGroupVendors","PanelControl","ChangeSettingsIsValidValidationAsync","SetCompanyDistributionSettings","ResetGroupVendors","CompaniesTableActionsBuilder","CgData","FiLayers","SiLinkedin","CompanyTableDto","CompanyTableDtoExpand","setSelectedRowKeys","setCompanies","_companyStore$Searche","SortCompanies","campaignsFlat","flatMap","sort","hideSelectAll","renderCell","originNode","setTitle","GetCompaniesWithActiveCampaigns","SetCompanies","CompaniesTable","updateAndSort","IndeedIsIncludedInTheList","foundVendors","v","companyVendorsService","entityDistributionSettingsResponse","GetEffectedEntitesChangeModeAsync","SetCompanysVendors","ResetCompanyVendors","companySettingAuditService","CompanySettingsStatus","CompanySettingActionsBuilder","companySettingStore","_companySettingStore$","SetSelectedCompanySettingAudit","DeleteCompanySettingsAudit","CompanySettingsAuditDto","companySettingsAudit","companyAudits","MapFromCompanySettingsAudit","companySettingTypeService","companySettingTypeId","CompanySettingContextInitializers","GetFilteredCompanySettingsAudits","SetCompanySettingsAudits","GetCompanySettingTypes","SetCompanySettingTypes","CompanySettingBreadCrumbs","CompanySetting","CompanySettingAudit","CompanyName","companySettingAuditId","affiliateService","usePageInitializationAffiliate","affiliateStore","SetSelectedAffiliate","onAffiliateContextCallBack","SetAffiliateDistributionSettings","SetAffiliatesVendors","companyAuditId","companySettingTypeTextValue","setCompanySettingTypeTextValue","_companySettingStore$2","CompanySettingAuditService","UpdateCompanySettingsAudit","CreateCompanySettingsAudit","CompanyTrackEditAuditPage","AuditCompanyForm","CompanyTrackAddAuditPage","AffiliatesTableActionsBuilder","AffiliateTableDto","_affiliateStore$Selec","setAffiliates","_affiliateStore$allAf","SortAffiliates","companiesFlat","_affiliateStore$Selec2","_affiliateStore$Selec3","aff","GetAffiliates","SetAllAffiliates","AffiliatesTable","JobStateDto","jobState","job_id","is_distributed","reason_name","user_name","last_modified","JobVendorStateDto","jobVendorState","vendor_id","vendor_name","is_cut_off","JobSerachingType","explainabilityStore","setJobs","jobDtos","SelectedJobSerachingType","JobVendorState","JobsState","CompanySelectInput","_props$defaulatValueC","_props$defaulatValueC2","defaulatValueCompanies","jobsStateService","account_id","jobs_lst","ParsejobId","JobId","JobSelectInput","getAciveJobByAccount","maxTagCount","jobsIds","SetSearchedJobsIds","setdefaultValue","vendoIds","vendorsPartial","explainabilityService","jobVendorStateService","vendors_id_lst","setLoding","SearchedJobs","vendors_ids","jobsStateVendorByJobIds","getJobVendorStateByJobsIds","jobsStateVendorByAccountId","getJobVendorStateByCompanyId","jobsStateByAccountId","getJobStateByJobsIds","getJobStateByCompanyId","ExplainabilityMainPage","AllVendors","getAllVendors","ParseCompanyId","SetSearchedCompany","JobState","VendorSelect","SearchJobState","ExplainabilityTable","EAppGoalMode","EPacingMode","Caps","attributesManagementStore","CompanyAttributesAggregation","allVendorsCap","indeedCap","craiglistBudget","cap","onChangeAttribute","onIsOriginalsOnlyAllVendors","isOriginalsOnly","onIsOriginalsOnly","AlgoModes","CompanyProfile","pacingMode","reachAppGoalMode","manualDistribution","agencyMode","holdback","expressWay","autoPilot","avoidSoftLaunchJobsCarouselCAP","Radio","Accelerated","isHoldback","pacingModeType","Paced","onIsHoldback","appGoalMode","Stop","NoStop","Minimal","Switch","stopDistribution","onChangeManualDistribution","isStopDistribution","onIsAutoPilot","isAutoPilot","businessUnit","onIsAvoidSoft","isAvoidSoftLaunchJobsCarouselCAP","onIsExpressWay","isExpressWay","companyAttributesService","companyAttributes","companyPreferenceService","companyPreferenceDto","EPerMode","AttributesManagmentContextInitializers","initializedAttributesData","attributes","_attributes$autoPilot","_attributes$expressWa","_attributes$holdback","_attributes$agencyMod","_attributes$reachAppG","_attributes$pacingMod","_attributes$manualDis","_attributes$indeedCap","_attributes$craiglist","_attributes$budgetLim","_attributes$applicant","_attributes$allVendor","_attributes$avoidSoft","_attributes$budgetLim2","_attributes$applicant2","isEdited","budgetLimitPerJob","PerCycle","requestSource","applicantLimitPerJob","budgetLimitPerPriorityJob","isPriorityLimit","applicantLimitPerPriorityJob","initializeAttributesIfNeeded","getAllAsync","SetAttributes","_customerRequestData","getCustomerRequestsAsync","SetCustomerRequest","_companyPreferenceData","getCompanyPreference","SetCompanyPreference","_companyProfile","getCompanyProfile","SetCompanyProfile","AttributesManagmentBreadCrumbs","CompanyAttributes","Comments","CompanyPreference","setStrategyText","strategy","autoSize","minRows","maxRows","setGenralText","limiAttrubute","customerRequestLimit","customerRequestPriorityLimit","limitType","defaultValueForExpressWay","PerCampaign","PerCompany","readOnly","priorityLimitAttrubute","IsPpriorityChecked","onIsPpriority","CampaignRules","CustomerCampaignAttributesAggregation","AttributeLimit","AttributePriorityLimit","StyledComponent","CompanyAttributesPage","displayLabel","fetchData","_userStore$User2","companysAttributesToUpdate","getEditedAttributes","setCompanysAttributes","companyPreference","setCompanyPreference","resetIsEdited","emptyHandlerToShowCursorArrow","rootRoute","loginRoute","logoutRoute","accessDeniedRoute","publisherSelectionPageRoute","ChooseCutOffContainer","shortcutManualsRoute","supervisionBaseBreadCrumb","campaignsBreadCrumb","companiesBreadCrumb","affiliatesBreadCrumb","supervisionCampaignsRoute","supervisionCompaniesRoute","CompaniesContainer","supervisionAffiliatesRoute","AffiliatesContainer","indeedRoutes","campaignRoute","IndeedCampaignPage","addCampaignRoute","IndeedAddCampaignContainer","campaignJobsRoute","attachJobsToIndeedCampaign","editCampaign","IndeedEditCampaignPage","linkedinRoutes","managementRoute","LinkedInPage","audit","CompanyTrackAuditPage","edit","CampaignTrackAuditPage","actionsBreadCrumb","actionsRoutes","actionsTable","UserActionsTablePage","groupsRoutes","GroupsPage","GroupsAddPage","GroupJobsPage","editGroup","GroupsEditPage","attachJobs","vendorManagementRoutes","companyVendorManagement","CompanyVendorPage","affiliateVendorManagement","AffiliateVendorPage","campaignVendorManagement","CampaignVendorPage","groupVendorManagement","GroupVendorPage","explainabilityRoute","companyAttributesManagement","routes","values","RouteManager","GetCurrentRoute","pathName","ConvertNumbersOrGuidInRouteToColons","ConvertPathParametersToColons","Page","UIStore","_routeManager","_len","_key","BreadCrumbs","PopLatestBreadcrumb","pop","slice","currentRoute","CurrentRoute","IsWebsiteLoading","popUp","ClearPopUp","UserStore","VendorManagementStore","entitySettings","selectedVendorsToApply","vendorsIds","ExplainabilityStore","SearchedCompanyExplainability","AttributesManagementStore","attribute","customerRequest","companyProfile","editedAttributes","baseAttribute","LinkedInStore","RootStore","notificationStore","createContext","RootStoreProvider","Provider","Guid","CreateBreadcrumbStyles","doesBreadcrumbContainPathOrAction","isLastBreadcrumbInUi","styles","blue","Breadcrumb","pageHeader","transition","pageHeaderOn","pageHeaderOff","isPageHeaderActive","setIsPageHeaderActive","NewGuid","Paper","elevation","GetHeaderClassName","pt","AppBreadCrumbs","_uiStore$PopUp5","_uiStore$PopUp6","_uiStore$PopUp7","_uiStore$PopUp8","_uiStore$PopUp$hideSe","_uiStore$PopUp9","_uiStore$PopUp10","_uiStore$PopUp$cancel","_uiStore$PopUp11","_uiStore$PopUp$okButt","_uiStore$PopUp12","_uiStore$PopUp13","formRef","React","createRef","validationHandler","popUpOkClickHandler","_formRef$current","resetFields","_formRef$current2","Modal","onCancel","okText","cancelText","footer","onRequired","_uiStore$PopUp3","_uiStore$PopUp4","flex","ClientRequest","getLogoSrc","logoType","PandoLogicLogo","collapsed","Popover","onVisibleChange","notificationsToUpdateAsSeen","seen","notification","Update","omit","content","itemLayout","orderBy","background","Meta","sentFrom","createdAt","trigger","count","IoMdNotificationsOutline","UserOutlined","Sider","logo","spacing","LinkRoute","link","getSideMenuData","sections","sectionTitle","sectionIcon","GiMoneyStack","itemKey","sectionOptions","optionTitle","route","SiSmartthings","GoLinkExternal","FiSettings","_sections$find","accountsSection","section","_sections$find2","affiliatesSection","Layout","SubMenu","GetLinkFromRoute","substring","setCollapsed","sideNavigationData","setSideNavigationData","sideMenuDataUpdated","renderMenuItem","menuItem","child","rel","collapsible","onCollapse","defaultOpenKeys","sideMenuSection","sideMenuSectionOption","NotificationsList","UserInformation","routeProps","Route","RouteWrapper","RouterComponent","PrivateRoute","exact","SeedUserData","userIdentityJwt","decodedJwt","jwt","decode","user_id","roleId","role_id","SetUser","Content","routeService","fontFamily","minHeight","SideMenu","PageHeader","SupervisionPopUp","ErrorHandlerComponent","ErrorBoundary","FallbackComponent","resetErrorBoundary","MuiLightTheme","createTheme","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","ThemeProvider","CssBaseline","Router","App","getElementById"],"mappings":"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","file":"static/js/main.eae4fbd2.chunk.js","sourcesContent":["import \"./VerticalDivider.scss\";\r\nimport { Box } from \"@material-ui/core\";\r\n\r\ninterface Props {\r\n height?: string;\r\n mx?: number;\r\n}\r\n\r\nconst VerticalDivider = (props: Props) => {\r\n const { height, mx } = props;\r\n const createStyles = () => {\r\n if (!height) return {};\r\n return {\r\n height: height,\r\n };\r\n };\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default VerticalDivider;\r\n","import \"./Footer.scss\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\nimport VerticalDivider from \"../../theme/vertical-divider/VerticalDivider\";\r\n\r\ninterface Props {}\r\n\r\nconst Footer = (props: Props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import { MutableRefObject, useRef, useState } from \"react\";\r\nimport { useEffect, useContext } from \"react\";\r\n\r\n// Extending window\r\ndeclare global {\r\n interface Window {\r\n [key: string]: any;\r\n }\r\n}\r\n\r\nconst isSubArrayEqualArray = (\r\n baseArray: string[],\r\n subArray: string[]\r\n): boolean => {\r\n return baseArray.join(\"\").toLowerCase() == subArray.join(\"\").toLowerCase();\r\n};\r\n\r\nconst isSubArrayContainedInArray = (\r\n baseArray: string[],\r\n subArray: string[]\r\n): boolean => {\r\n return baseArray\r\n .join(\"\")\r\n .toLowerCase()\r\n .startsWith(subArray.join(\"\").toLowerCase());\r\n};\r\n\r\nconst keyboardListenerHandler =\r\n (\r\n id: string,\r\n pattern: string[],\r\n callback: () => void,\r\n [useEffectDependencyMutator, setUseEffectDependencyMutator]: [\r\n number,\r\n (number: number) => void\r\n ]\r\n ) =>\r\n (event: KeyboardEvent): void => {\r\n if (!window[id]) {\r\n window[id] = [];\r\n }\r\n window[id].push(event.key);\r\n\r\n if (isSubArrayEqualArray(pattern, window[id])) {\r\n callback();\r\n window[id] = [];\r\n\r\n setUseEffectDependencyMutator(useEffectDependencyMutator + 1);\r\n return;\r\n }\r\n\r\n // check if valid pattern\r\n if (isSubArrayContainedInArray(pattern, window[id]) === false) {\r\n window[id] = [];\r\n return;\r\n }\r\n };\r\n\r\n/**\r\n * @param id Need to be a special id to register the event listener. You can pass uuidv4()\r\n * @param pattern The pattern you want to register to be listened for. For example [\"alt\", \"1\"] will listen for alt + 1\r\n * @param callBack Call back to be executed when the pattern is clicked\r\n */\r\nconst useKeyboardListener = (\r\n id: string,\r\n pattern: string[],\r\n callBack: () => void\r\n) => {\r\n const [useEffectDependencyMutator, setUseEffectDependencyMutator] =\r\n useState(0);\r\n\r\n useEffect(() => {\r\n const functionReference = keyboardListenerHandler(\r\n id,\r\n pattern,\r\n callBack,\r\n [useEffectDependencyMutator, setUseEffectDependencyMutator]\r\n );\r\n window.addEventListener(\"keydown\", functionReference);\r\n\r\n return function cleanUp() {\r\n delete window[id];\r\n window.removeEventListener(\"keydown\", functionReference);\r\n };\r\n }, [useEffectDependencyMutator]);\r\n};\r\n\r\nexport default useKeyboardListener;\r\n","\r\nexport enum LocalStorageKeys {\r\n SearchedCompanyExplainability = \"searched_company_explainability\",\r\n SearchedCompanies = \"searched_companies\",\r\n SearchedCampaigns = \"searched_campaigns\",\r\n SearchedVendors = \"searched_vendors\",\r\n SearchedAffiliates= \"searched_Affiliates\"\r\n}","\r\nexport class LocalStorageService {\r\n SetItemString(key: string, value: string) {\r\n window.localStorage.setItem(key, value);\r\n }\r\n\r\n SetItemObject(key: string, value: object) {\r\n window.localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n GetItemString(key: string): string | undefined {\r\n const item = window.localStorage.getItem(key);\r\n if (item == null) {\r\n return undefined;\r\n }\r\n return item;\r\n }\r\n\r\n GetItemObject(key: string): T | undefined {\r\n const item = window.localStorage.getItem(key);\r\n if (item == null) {\r\n return undefined;\r\n }\r\n return JSON.parse(item);\r\n }\r\n}\r\n\r\nexport default new LocalStorageService();","import { action, makeObservable, observable } from \"mobx\";\r\nimport { LocalStorageKeys } from \"../constants/LocalStorageKeys\";\r\nimport { Affiliate } from \"../models/operation/Affiliate\";\r\nimport LocalStorageService from \"../services/LocalStorageService\";\r\n\r\n\r\nexport class AffiliateStore {\r\n\r\n /**\r\n * Props\r\n */\r\n\r\n\r\n @observable\r\n public SearchedAffiliates: Affiliate[] = [];\r\n\r\n @observable\r\n public allAffiliates: Affiliate[] = [];\r\n\r\n\r\n\r\n /**\r\n * The Affiliate that is selected in the supervision campaigns page to further do operations on\r\n */\r\n @observable\r\n public SelectedAffiliate: Affiliate | undefined;\r\n\r\n\r\n /**\r\n * Ctor\r\n */\r\n constructor() {\r\n makeObservable(this);\r\n\r\n const selectedAffiliate = LocalStorageService.GetItemObject(LocalStorageKeys.SearchedAffiliates)\r\n if (selectedAffiliate != undefined) {\r\n this.SelectedAffiliate = selectedAffiliate;\r\n }\r\n }\r\n\r\n @action\r\n public async SetSearchedAffiliates(affiliatesIds: number[]) {\r\n const affiliates = this.allAffiliates?.filter(affiliate => affiliatesIds.includes(affiliate.affiliateId))\r\n this.SearchedAffiliates = affiliates;\r\n //LocalStorageService.SetItemObject(LocalStorageKeys.SearchedAffiliates, affiliates);\r\n }\r\n\r\n @action\r\n public async SetAllAffiliates(affiliates: Affiliate[]) {\r\n this.allAffiliates = affiliates;/*.sort((a, b) =>\r\n (a.affiliateId === this.SelectedAffiliate?.affiliateId ? -1 :\r\n b.affiliateId == this.SelectedAffiliate?.affiliateId ? 1 : 0) || a.affiliateId - b.affiliateId\r\n );*/\r\n }\r\n\r\n @action\r\n public async SetSelectedAffiliate(affiliate: Affiliate) {\r\n this.SelectedAffiliate = affiliate;\r\n LocalStorageService.SetItemObject(LocalStorageKeys.SearchedAffiliates, affiliate);\r\n }\r\n\r\n}","import { action, makeObservable, observable } from \"mobx\";\r\nimport { CampaignSettingsAuditResponse } from \"../models/campaign-track-system/CampaignSettingsAuditResponse\";\r\nimport { CampaignSettingTypeResponse } from \"../models/campaign-track-system/CampaignSettingTypeResponse\";\r\nimport { CampaignSettingTypeValueOption } from \"../models/campaign-track-system/CampaignSettingTypeValueOption\";\r\n\r\n\r\n\r\nexport class CampaignSettingStore\r\n{\r\n\r\n@observable\r\npublic CampaignSettingTypes : CampaignSettingTypeResponse[] = [];\r\n\r\n@observable\r\npublic CampaignSettingTypeValueOptions : CampaignSettingTypeValueOption[] = [];\r\n\r\n@observable\r\npublic CampaignSettingsAuditsResponse : CampaignSettingsAuditResponse[] = []; \r\n\r\n@observable\r\npublic SelectedCampaignSettingAudit? : CampaignSettingsAuditResponse; \r\n\r\n@observable\r\npublic updateOperationState?: boolean ;\r\n/**\r\n * ctor\r\n */\r\nconstructor() {\r\n makeObservable(this); \r\n}\r\n\r\n\r\n@action\r\npublic async SetCampaignSettingTypes(campaignSettingTypes : CampaignSettingTypeResponse[])\r\n{\r\n this.CampaignSettingTypes = campaignSettingTypes;\r\n}\r\n\r\n@action\r\npublic async SetCampaignSettingTypeValueOptions(campaignSettingTypeValueOptions : CampaignSettingTypeValueOption[])\r\n{\r\n this.CampaignSettingTypeValueOptions = campaignSettingTypeValueOptions;\r\n}\r\n\r\n@action\r\npublic async SetCampaignSettingsAudits(CampaignSettingsAudits : CampaignSettingsAuditResponse[])\r\n{\r\n this.CampaignSettingsAuditsResponse = CampaignSettingsAudits;\r\n}\r\n\r\n\r\n@action\r\npublic async SetSelectedCampaignSettingAudit(campaignSettingAudit?: CampaignSettingsAuditResponse) {\r\n this.SelectedCampaignSettingAudit = campaignSettingAudit;\r\n}\r\n\r\n\r\n@action\r\npublic async SetupdateOperationState(updateOperationState: boolean) {\r\n this.updateOperationState = updateOperationState;\r\n}\r\n\r\n\r\n}","import { ISettings } from \"./ISettings\";\r\n\r\nexport class ProdSettings implements ISettings {\r\n serverUrl = \"https://supervision-api.pandoiq.com\";\r\n notificationServerUrl = \"https://notification.algoteam.net\";\r\n vendorManagementUrl = \"https://txph2o7gk8.execute-api.us-east-1.amazonaws.com/prod\";\r\n explainabilityServiceUrl = \"https://qd451wgiqd.execute-api.us-east-1.amazonaws.com/prod\"\r\n attributesManagementServiceUrl = \"https://api-attributes.algoteam.net\";\r\n}\r\n","\r\nimport { DockerSettings } from \"./DockerSettings\";\r\nimport { ISettings } from \"./ISettings\";\r\nimport { LocalSettings } from \"./LocalSettings\";\r\nimport { ProdSettings } from \"./ProdSettings\";\r\nimport { StageSettings } from \"./StageSettings\";\r\n\r\nconst environment = process.env.REACT_APP_ENV as string\r\nlet settings: ISettings | undefined;\r\n\r\nswitch (environment) {\r\n case \"prod\":\r\n settings = new ProdSettings();\r\n break;\r\n\r\n case \"stage\":\r\n settings = new StageSettings();\r\n break;\r\n\r\n case \"docker\":\r\n settings = new DockerSettings();\r\n break;\r\n\r\n case \"local\":\r\n default:\r\n settings = new LocalSettings();\r\n break;\r\n\r\n}\r\n\r\nexport default settings as ISettings;","/* eslint-disable @typescript-eslint/no-useless-constructor */\r\nimport { ApiErrorSchema, IsApiErrorSchema } from \"../models/ApiErrorSchema\";\r\n\r\n/**\r\n * Base exception for project. All exceptions should inherit from that exception\r\n */\r\nexport abstract class AlgoSupervisionException extends Error {\r\n constructor(message?: string | undefined) {\r\n super(message);\r\n }\r\n}\r\n\r\nexport class PageNotFoundexception extends AlgoSupervisionException {\r\n}\r\n\r\nexport class FetchError extends AlgoSupervisionException {\r\n apiError: ApiErrorSchema;\r\n\r\n constructor(message?: string | undefined | ApiErrorSchema) {\r\n \r\n if (IsApiErrorSchema(message)) {\r\n super(message.errorMessage);\r\n this.apiError = message;\r\n return;\r\n }\r\n\r\n super(message);\r\n this.apiError = {\r\n errorMessage: message ?? \"Error occured\",\r\n errorCode: 500,\r\n retryable: false\r\n }\r\n }\r\n}\r\n\r\nexport class UnauthorizedError extends AlgoSupervisionException {\r\n\r\n}","export interface ApiErrorSchema {\r\n errorCode: number;\r\n errorMessage: string;\r\n retryable: boolean;\r\n}\r\n\r\nexport const IsApiErrorSchema = (message: unknown): message is ApiErrorSchema => {\r\n return (message as ApiErrorSchema) != undefined;\r\n}","import axios, { AxiosError, AxiosResponse } from \"axios\";\r\nimport Cookies from \"js-cookie\";\r\n\r\nimport settings from \"../config/AppSettings/SettingsFactory\";\r\nimport {\r\n FetchError,\r\n UnauthorizedError\r\n} from \"../exceptions/AlgoSupervisionExceptions\";\r\nimport { ApiErrorSchema } from \"../models/ApiErrorSchema\";\r\n\r\nexport abstract class BaseService {\r\n protected serverUrl: string;\r\n protected controllerPath: string;\r\n\r\n constructor(controllerPath: string, serverUrl?: string) {\r\n this.serverUrl = serverUrl ?? settings.serverUrl;\r\n this.controllerPath = controllerPath;\r\n }\r\n\r\n protected async Get(relativeUrl: string): Promise {\r\n try {\r\n const response: AxiosResponse = await axios.get(this.buildUrl(relativeUrl), {\r\n headers: this.ConstructRequestHeaders(),\r\n withCredentials: true\r\n });\r\n if (this.IsSuccessfulResponse(response)) {\r\n return response.data;\r\n }\r\n\r\n throw this.CreateUnsuccessfulFetchError(response);\r\n }\r\n catch (error: any) {\r\n throw this.CreateError(error);\r\n }\r\n\r\n }\r\n\r\n protected async Post(relativeUrl: string, payload: object, isArrayBufferResponseType: boolean = false): Promise {\r\n const headers = {\r\n 'Content-Type': 'application/json',\r\n };\r\n\r\n let options: any = {}\r\n options['headers'] = { ...this.ConstructRequestHeaders(), ...headers }\r\n if (isArrayBufferResponseType) {\r\n options['responseType'] = 'arraybuffer'\r\n }\r\n options['withCredentials'] = true;\r\n\r\n try {\r\n const response: AxiosResponse = await axios.post(this.buildUrl(relativeUrl), payload, {\r\n ...options,\r\n });\r\n if (this.IsSuccessfulResponse(response)) {\r\n return response.data;\r\n }\r\n\r\n throw this.CreateUnsuccessfulFetchError(response);\r\n }\r\n catch (error: any) {\r\n throw this.CreateError(error);\r\n }\r\n\r\n }\r\n\r\n protected async Patch(relativeUrl: string, payload: object): Promise {\r\n try {\r\n const response: AxiosResponse = await axios.patch(this.buildUrl(relativeUrl), payload, {\r\n headers: this.ConstructRequestHeaders(),\r\n withCredentials: true\r\n });\r\n if (this.IsSuccessfulResponse(response)) {\r\n return response.data;\r\n }\r\n\r\n throw this.CreateUnsuccessfulFetchError(response);\r\n }\r\n catch (error) {\r\n throw this.CreateError(error);\r\n }\r\n\r\n }\r\n\r\n protected async Put(relativeUrl: string, payload: object): Promise {\r\n try {\r\n const response: AxiosResponse = await axios.put(this.buildUrl(relativeUrl), payload, {\r\n headers: this.ConstructRequestHeaders(),\r\n withCredentials: true\r\n });\r\n if (this.IsSuccessfulResponse(response)) {\r\n return response.data;\r\n }\r\n\r\n throw this.CreateUnsuccessfulFetchError(response);\r\n }\r\n catch (error) {\r\n throw this.CreateError(error);\r\n }\r\n\r\n }\r\n\r\n protected async Delete(relativeUrl: string): Promise {\r\n try {\r\n const response: AxiosResponse = await axios.delete(this.buildUrl(relativeUrl), {\r\n headers: this.ConstructRequestHeaders(),\r\n withCredentials: true\r\n });\r\n if (this.IsSuccessfulResponse(response)) {\r\n return response.data;\r\n }\r\n\r\n throw this.CreateUnsuccessfulFetchError(response);\r\n }\r\n\r\n catch (error) {\r\n throw this.CreateError(error);\r\n }\r\n }\r\n\r\n private buildUrl(relativeUrl: string): string {\r\n return `${this.serverUrl}/api/${this.controllerPath}${relativeUrl}`;\r\n }\r\n\r\n private IsSuccessfulResponse(response: AxiosResponse): boolean {\r\n if (response.status >= 200 && response.status <= 226) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private CreateUnsuccessfulFetchError(response: AxiosResponse) {\r\n console.error(`FETCH ERROR: response=${response}`);\r\n return new FetchError(response.data as ApiErrorSchema);\r\n }\r\n\r\n private CreateError(error: any) {\r\n if (error instanceof FetchError) {\r\n throw error;\r\n }\r\n\r\n if (!error.response) {\r\n throw new Error(error);\r\n }\r\n\r\n if (error.response.status === 401) {\r\n return new UnauthorizedError(error.response.statusText);\r\n }\r\n return new FetchError(error.response.data);\r\n }\r\n\r\n private ConstructRequestHeaders = () => {\r\n let requestHeaders: any = {};\r\n\r\n const userIdentityJwt = Cookies.get(\"User.Identity\");\r\n if (userIdentityJwt) {\r\n requestHeaders[\"Authorization\"] = `Bearer ${Cookies.get(\"User.Identity\")}`;\r\n }\r\n\r\n return requestHeaders;\r\n }\r\n}","\r\nimport { Campaign } from \"../../models/operation/Campaign\";\r\nimport { CampaignPartial } from \"../../models/operation/CampaignPartial\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\nexport class CampaignService extends BaseService {\r\n\r\n async GetById(campaignId: number): Promise {\r\n const campaign = await this.Get(`/${campaignId}`);\r\n return campaign;\r\n }\r\n\r\n /**\r\n * Retrieves all campaigns with partial schema\r\n */\r\n async GetAllPartial(): Promise {\r\n const campaignPartial = await this.Get(\"/partial\");\r\n return campaignPartial;\r\n }\r\n\r\n async GetManyByIdsAsync(\r\n GetManyByIdsRequest: { ids: number[] }\r\n ): Promise {\r\n const campaigns = await this.Post(\"/get-multiple-by-ids\", GetManyByIdsRequest);\r\n return campaigns;\r\n }\r\n\r\n async GetByPagination(\r\n paginationOptions: {\r\n skip: number,\r\n take: number\r\n }\r\n ): Promise {\r\n throw new Error(\"Not Implemented\");\r\n }\r\n\r\n}\r\n\r\n\r\nconst campaignService = new CampaignService(\"Campaigns\");\r\nexport default campaignService;","import { action, makeObservable, observable, toJS } from \"mobx\";\r\n\r\nimport { LocalStorageKeys } from \"../constants/LocalStorageKeys\";\r\nimport { Campaign } from \"../models/operation/Campaign\";\r\nimport LocalStorageService from \"../services/LocalStorageService\";\r\nimport campaignService from \"../services/operation/CampaignService\";\r\n\r\nexport class CampaignStore {\r\n /**\r\n * Props\r\n */\r\n\r\n @observable\r\n public SearchedCampaigns: Campaign[] = [];\r\n\r\n /**\r\n * The campaign that is selected in the supervision campaigns page to further do operations on\r\n */\r\n @observable\r\n public SelectedCampaign: Campaign | undefined;\r\n\r\n /**\r\n * Ctor\r\n */\r\n constructor() {\r\n makeObservable(this);\r\n\r\n const campaigns = LocalStorageService.GetItemObject(\r\n LocalStorageKeys.SearchedCampaigns\r\n );\r\n if (campaigns != undefined) {\r\n this.SearchedCampaigns = campaigns;\r\n }\r\n }\r\n\r\n @action\r\n public async SetSearchedCampaigns(ids: number[]) {\r\n const campaigns = await campaignService.GetManyByIdsAsync({ ids });\r\n this.SearchedCampaigns = campaigns;\r\n\r\n LocalStorageService.SetItemObject(\r\n LocalStorageKeys.SearchedCampaigns,\r\n campaigns\r\n );\r\n }\r\n\r\n @action\r\n public async SetSelectedCampaign(campaign: Campaign) {\r\n this.SelectedCampaign = campaign;\r\n }\r\n}\r\n","import { Campaign } from \"../../models/operation/Campaign\";\r\nimport { Company } from \"../../models/operation/Company\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\nexport class CompanyService extends BaseService {\r\n \r\n async GetCompanyById(companyId: number): Promise {\r\n const company = await this.Get(`/${companyId}`);\r\n return company;\r\n }\r\n\r\n async GetCompanyByCampaignId(campaignId: number): Promise {\r\n const company = await this.Get(`/by-campaign/${campaignId}`);\r\n return company;\r\n }\r\n\r\n /**\r\n * Retrieves all companies with at least one active campaigns\r\n */\r\n async GetCompaniesWithActiveCampaigns(): Promise {\r\n const companies = await this.Get(\"/all\");\r\n return companies;\r\n }\r\n\r\n async GetManyByIdsAsync(GetManyByIdsRequest: {\r\n ids: number[];\r\n }): Promise {\r\n const companies = await this.Post(\r\n \"/get-multiple-by-ids\",\r\n GetManyByIdsRequest\r\n );\r\n return companies;\r\n }\r\n}\r\n\r\nconst companyService = new CompanyService(\"Companies\");\r\nexport default companyService;\r\n","\r\nimport { action, makeObservable, observable, toJS } from \"mobx\";\r\n\r\nimport { LocalStorageKeys } from \"../constants/LocalStorageKeys\";\r\nimport { Company } from \"../models/operation/Company\";\r\nimport LocalStorageService from \"../services/LocalStorageService\";\r\nimport companyService from \"../services/operation/CompanyService\";\r\n\r\nexport class CompanyStore {\r\n \r\n /**\r\n * Props\r\n */\r\n @observable\r\n public SearchedCompanies: Company[] = [];\r\n\r\n /**\r\n * The Company that is selected in the supervision companies page to further do operations on\r\n */\r\n @observable\r\n public SelectedCompany: Company | undefined;\r\n\r\n /**\r\n * Ctor\r\n */\r\n constructor() {\r\n makeObservable(this);\r\n\r\n const selectedCompany = LocalStorageService.GetItemObject(LocalStorageKeys.SearchedCompanies)\r\n if (selectedCompany != undefined) {\r\n this.SelectedCompany = selectedCompany;\r\n }\r\n }\r\n\r\n @action\r\n public async SetSearchedCompanies(ids: number[]) {\r\n const companies = await companyService.GetManyByIdsAsync({ ids });\r\n this.SearchedCompanies = companies;\r\n // LocalStorageService.SetItemObject(LocalStorageKeys.SearchedCompanies, companies);\r\n }\r\n\r\n @action\r\n public async SetCompanies(companies: Company[]) {\r\n //const companies = await companyService.GetManyByIdsAsync({ ids });\r\n this.SearchedCompanies = companies;\r\n \r\n }\r\n\r\n @action\r\n public async SetSelectedCompany(company: Company) {\r\n this.SelectedCompany = company;\r\n LocalStorageService.SetItemObject(LocalStorageKeys.SearchedCompanies, company);\r\n }\r\n}","import { action, makeObservable, observable } from \"mobx\";\r\nimport { CompanySettingsAuditResponse } from \"../models/company-track-system/CompanySettingsAuditResponse\";\r\nimport { CompanySettingTypeResponse } from \"../models/company-track-system/CompanySettingTypeResponse\";\r\nimport { CompanySettingTypeValueOption } from \"../models/company-track-system/CompanySettingTypeValueOption\";\r\n\r\nexport class CompanySettingStore {\r\n @observable\r\n public CompanySettingTypes: CompanySettingTypeResponse[] = [];\r\n\r\n @observable\r\n public CompanySettingTypeValueOptions: CompanySettingTypeValueOption[] = [];\r\n\r\n @observable\r\n public CompanySettingsAuditsResponse: CompanySettingsAuditResponse[] = [];\r\n\r\n @observable\r\n public SelectedCompanySettingAudit?: CompanySettingsAuditResponse;\r\n\r\n @observable\r\n public updateOperationState?: boolean;\r\n /**\r\n * ctor\r\n */\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n @action\r\n public async SetCompanySettingTypes(\r\n companySettingTypes: CompanySettingTypeResponse[]\r\n ) {\r\n this.CompanySettingTypes = companySettingTypes;\r\n }\r\n\r\n @action\r\n public async SetCompanySettingTypeValueOptions(\r\n companySettingTypeValueOptions: CompanySettingTypeValueOption[]\r\n ) {\r\n this.CompanySettingTypeValueOptions = companySettingTypeValueOptions;\r\n }\r\n\r\n @action\r\n public async SetCompanySettingsAudits(\r\n CompanySettingsAudits: CompanySettingsAuditResponse[]\r\n ) {\r\n this.CompanySettingsAuditsResponse = CompanySettingsAudits;\r\n }\r\n\r\n @action\r\n public async SetSelectedCompanySettingAudit(\r\n companySettingAudit?: CompanySettingsAuditResponse\r\n ) {\r\n this.SelectedCompanySettingAudit = companySettingAudit;\r\n }\r\n\r\n @action\r\n public async SetupdateOperationState(updateOperationState: boolean) {\r\n this.updateOperationState = updateOperationState;\r\n }\r\n}\r\n","import { action, makeObservable, observable } from \"mobx\";\r\nimport { GroupBudgetBalance } from \"../models/groups/GroupBudgetBalance\";\r\nimport { GroupJobResponse } from \"../models/groups/GroupJobResponse\";\r\nimport { GroupResponse } from \"../models/groups/GroupResponse\";\r\nimport { Campaign } from \"../models/operation/Campaign\";\r\n\r\nexport class GroupStore {\r\n\r\n\r\n @observable\r\n public GroupsResponse: GroupResponse[] = [];\r\n\r\n @observable\r\n public GroupJobsResponse: GroupJobResponse[] = [];\r\n\r\n @observable\r\n public SelectedGroup?: GroupResponse;\r\n\r\n @observable\r\n public SelectedCampaign?: Campaign;\r\n\r\n @observable\r\n public GroupBudgetBalance: GroupBudgetBalance = {\r\n campaignBudget: 0,\r\n campaignBalance: 0\r\n };\r\n /**\r\n * ctor\r\n */\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n @action\r\n public async SetGroups(Groups: GroupResponse[]) {\r\n this.GroupsResponse = Groups;\r\n }\r\n\r\n @action\r\n public async SetGroupJobs(GroupJobs: GroupJobResponse[]) {\r\n this.GroupJobsResponse = GroupJobs;\r\n }\r\n\r\n @action\r\n public async SetSelectedGroup(SelectedGroup?: GroupResponse)\r\n {\r\n this.SelectedGroup = SelectedGroup;\r\n }\r\n\r\n @action\r\n public async SetGroupBudgetBalance(GroupBudgetBalance: GroupBudgetBalance)\r\n {\r\n this.GroupBudgetBalance = GroupBudgetBalance;\r\n }\r\n\r\n @action\r\n public async SetSelectedCampaign(campaign: Campaign)\r\n {\r\n this.SelectedCampaign = campaign;\r\n }\r\n}","import { action, makeObservable, observable, toJS } from \"mobx\";\r\n\r\nimport { LocalStorageKeys } from \"../constants/LocalStorageKeys\";\r\nimport { IndeedCampaign } from \"../models/indeed-manager/IndeedCampaign\";\r\nimport { PLIndeedData } from \"../models/indeed-manager/PLIndeedData\";\r\nimport { Campaign } from \"../models/operation/Campaign\";\r\nimport { Company } from \"../models/operation/Company\";\r\nimport LocalStorageService from \"../services/LocalStorageService\";\r\nimport campaignService from \"../services/operation/CampaignService\";\r\nimport { IndeedSubAccount } from \"../models/indeed-manager/IndeedSubAccount\";\r\n\r\nexport class IndeedStore {\r\n /**\r\n * Indeed data for selected PandoLogic campaign\r\n */\r\n @observable\r\n public PLCampaignData?: PLIndeedData;\r\n\r\n /**\r\n * The selected indeed campaign\r\n */\r\n @observable\r\n public SelectedIndeedCampaign?: IndeedCampaign;\r\n\r\n /**\r\n * The indeed sub account\r\n */\r\n @observable\r\n indeedSubAccount? : IndeedSubAccount;\r\n /**\r\n * The selected company\r\n */\r\n @observable\r\n public Company!: Company;\r\n\r\n /**\r\n * The selected indeed campaign\r\n */\r\n @observable\r\n public IsDataLoading: boolean = false;\r\n\r\n /**\r\n * Ctor\r\n */\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n @action\r\n public async SetSelectedIndeedCampaign(indeedCampaign?: IndeedCampaign) {\r\n this.SelectedIndeedCampaign = indeedCampaign;\r\n }\r\n\r\n @action\r\n public async SetPLCampaignData(plIndeedData?: PLIndeedData) {\r\n this.PLCampaignData = plIndeedData;\r\n }\r\n\r\n @action\r\n public async SetCompany(company: Company) {\r\n this.Company = company;\r\n }\r\n\r\n @action\r\n public async SetIsDataLoading(state: boolean) {\r\n this.IsDataLoading = state;\r\n }\r\n\r\n \r\n @action\r\n public async SetIndeedSubAccount(indeedSubAccount: IndeedSubAccount) {\r\n this.indeedSubAccount = indeedSubAccount;\r\n }\r\n}\r\n","import settings from \"../../config/AppSettings/SettingsFactory\";\r\nimport { Notification } from \"../../models/notifications/Notification\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\nclass NotificationService extends BaseService {\r\n\r\n /**\r\n * Gets all notifications for the user. Uses the JWT to determine the User ID\r\n */\r\n public async GetAll(): Promise {\r\n const notifications = await this.Get(`/`);\r\n return notifications;\r\n }\r\n\r\n \r\n public async Update(notificationId: string, updateNotificationRequest: Omit) {\r\n updateNotificationRequest.seenAt = new Date().toISOString();\r\n const updatedNotification = await this.Put(`/${notificationId}`, updateNotificationRequest);\r\n return updatedNotification;\r\n }\r\n}\r\n\r\n\r\nexport default new NotificationService(\"notifications\", settings.notificationServerUrl);","\r\nimport { action, makeObservable, observable, toJS } from \"mobx\";\r\n\r\nimport { Notification } from \"../models/notifications/Notification\";\r\nimport NotificationService from \"../services/notifications/NotificationService\";\r\n\r\nexport class NotificationStore {\r\n\r\n @observable\r\n public Notifications?: Notification[];\r\n\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n\r\n @action\r\n public async SetNotificationStateForUser() {\r\n const notifications = await NotificationService.GetAll();\r\n this.Notifications = notifications;\r\n }\r\n}","export type vendorMockType = {\r\n isCutOff: boolean;\r\n vendorId: number;\r\n vendorName: string;\r\n imageUrl: string;\r\n operationTypeId: 1 | 2 | 3 | undefined;\r\n};\r\n\r\nexport type vendorMockSchemaType = {\r\n vendors: vendorMockType[];\r\n}\r\n\r\nexport const vendorsData: vendorMockSchemaType = {\r\n vendors: [\r\n {\r\n \"isCutOff\": true,\r\n \"vendorId\": 1,\r\n \"vendorName\": \"Jobble\",\r\n \"imageUrl\": \"data:image/png;base64,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\",\r\n \"operationTypeId\": 1\r\n\r\n },\r\n {\r\n \"isCutOff\": true,\r\n \"vendorId\": 2,\r\n \"vendorName\": \"Glassdoor\",\r\n \"imageUrl\": \"https://www.glassdoor.com/about-us//app/uploads/sites/2/2018/06/Group-7.png\",\r\n \"operationTypeId\": 1\r\n },\r\n {\r\n \"isCutOff\": true,\r\n \"vendorId\": 3,\r\n \"vendorName\": \"Oodle\",\r\n \"imageUrl\": \"https://res.cloudinary.com/crunchbase-production/image/upload/c_lpad,h_256,w_256,f_auto,q_auto:eco,dpr_1/v1397180536/5ba72eeab7ed23ac1faa61da0066bc84.png\",\r\n \"operationTypeId\": 1\r\n },\r\n {\r\n \"isCutOff\": false,\r\n \"vendorId\": 4,\r\n \"vendorName\": \"Yahoo\",\r\n \"imageUrl\": \"https://i.pinimg.com/originals/a1/cf/67/a1cf6782e1d737865bdeca4fec7fc5fd.png\",\r\n \"operationTypeId\": undefined\r\n },\r\n {\r\n \"isCutOff\": false,\r\n \"vendorId\": 5,\r\n \"vendorName\": \"Jobalot\",\r\n \"imageUrl\": \"https://cdn.shopify.com/s/files/1/0579/0603/6936/files/Logo_transparant_cf3b5c8a-8f27-4c74-8128-dcbd745ba3cc.png?v=1626088177\",\r\n \"operationTypeId\": undefined\r\n },\r\n {\r\n \"isCutOff\": false,\r\n \"vendorId\": 7,\r\n \"vendorName\": \"Nexxt\",\r\n \"imageUrl\": \"https://comparecamp.com/media/uploads/2019/05/Nexxt-logo.png\",\r\n \"operationTypeId\": undefined\r\n },\r\n {\r\n \"isCutOff\": false,\r\n \"vendorId\": 8,\r\n \"vendorName\": \"Indeed\",\r\n \"imageUrl\": \"data:image/png;base64,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\",\r\n \"operationTypeId\": undefined\r\n },\r\n {\r\n \"isCutOff\": false,\r\n \"vendorId\": 9,\r\n \"vendorName\": \"CareerJet\",\r\n \"imageUrl\": \"data:image/png;base64,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\",\r\n \"operationTypeId\": undefined\r\n },\r\n {\r\n \"isCutOff\": false,\r\n \"vendorId\": 10,\r\n \"vendorName\": \"College Recruiter\",\r\n \"imageUrl\": \"https://www.freeiconspng.com/uploads/no-image-icon-11.PNG\",\r\n \"operationTypeId\": undefined\r\n },\r\n {\r\n \"isCutOff\": false,\r\n \"vendorId\": 11,\r\n \"vendorName\": \"JobsOnline\",\r\n \"imageUrl\": \"https://www.freeiconspng.com/uploads/no-image-icon-11.PNG\",\r\n \"operationTypeId\": undefined\r\n }\r\n ]\r\n}","import { action, makeObservable, observable } from \"mobx\";\r\nimport { vendorMockType } from \"../../components/publisher-selection/mock-data/vendors-list\";\r\nimport { Nullable } from \"../../types/types\";\r\nimport { PublisherSelectionActionType } from \"../../types/publisher-selection/PublisherSelectionTypes\";\r\n\r\n\r\nexport class PublisherSelectionDialog {\r\n\r\n /**\r\n * Ctor\r\n */\r\n\r\n @observable\r\n public Vendor: Nullable;\r\n\r\n @observable\r\n public actionType: Nullable;\r\n\r\n @observable\r\n public Conflicts: string[];\r\n\r\n @observable\r\n public IsOn: boolean;\r\n\r\n constructor(\r\n ) {\r\n makeObservable(this);\r\n this.Conflicts = [];\r\n this.IsOn = false;\r\n }\r\n\r\n @action\r\n public Reset(): void {\r\n this.Vendor = undefined;\r\n this.actionType = undefined;\r\n this.Conflicts = [];\r\n this.IsOn = false;\r\n }\r\n\r\n @action\r\n public Set(vendor: vendorMockType, actionType: PublisherSelectionActionType, conflicts: string[]): void {\r\n this.Vendor = vendor;\r\n this.actionType = actionType;\r\n this.Conflicts = conflicts;\r\n this.IsOn = true;\r\n }\r\n\r\n}","import { action, makeObservable, observable, toJS } from \"mobx\";\r\n\r\nimport {\r\n vendorMockType,\r\n vendorsData\r\n} from \"../components/publisher-selection/mock-data/vendors-list\";\r\nimport { EntityRecordDetailed } from \"../models/EntityRecord\";\r\nimport { PublisherSelectionDialog } from \"../models/publisher-selection/PublisherSelectionDialog\";\r\nimport {\r\n EntityTypeOption,\r\n PublisherSelectionActionType\r\n} from \"../types/publisher-selection/PublisherSelectionTypes\";\r\nimport { Nullable } from \"../types/types\";\r\n\r\nexport class PublisherSelectionStore {\r\n\r\n /**\r\n * Fields\r\n */\r\n\r\n\r\n /**\r\n * Ctor\r\n */\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n /**\r\n * Props\r\n */\r\n @observable\r\n public MockActiveEntityType: EntityTypeOption = \"campaigns\";\r\n\r\n @observable\r\n public MockEntityDrillDownList: string[] = []; //TODO: Refactor to class type instead of string\r\n\r\n @observable\r\n public DialogBox: PublisherSelectionDialog = new PublisherSelectionDialog();\r\n\r\n @observable\r\n public VendorsForEntity: Nullable;\r\n\r\n\r\n // Refactor the below 3 properties to a class\r\n @observable\r\n public SelectedPublisherActionType: Nullable;\r\n\r\n @observable\r\n public SelectedEntity: Nullable;\r\n\r\n @observable\r\n public SelectedVendor: Nullable;\r\n\r\n\r\n\r\n /**\r\n * Methods\r\n */\r\n @action\r\n public SetMockActiveEntityType(entityType: EntityTypeOption): void {\r\n this.MockActiveEntityType = entityType;\r\n }\r\n\r\n @action\r\n public AddEntityToDrillDownList(entity: string): void {\r\n this.MockEntityDrillDownList.push(entity);\r\n }\r\n\r\n @action\r\n public SetVendorsForEntity(): vendorMockType[] {\r\n if (!this.VendorsForEntity) {\r\n this.VendorsForEntity = vendorsData.vendors;\r\n }\r\n\r\n return this.VendorsForEntity;\r\n }\r\n\r\n @action\r\n public HandleVendorAction(actionType: PublisherSelectionActionType, vendor: vendorMockType): void {\r\n if (!this.VendorsForEntity) throw new Error(\"VendorsForEntity is empty\")\r\n\r\n const vendorIndex = this.VendorsForEntity.findIndex(x => x.vendorId == vendor.vendorId);\r\n if (actionType == \"Exclude\") {\r\n this.VendorsForEntity[vendorIndex].isCutOff = true;\r\n this.VendorsForEntity[vendorIndex].operationTypeId =1;\r\n }\r\n if (actionType == \"Include\") {\r\n this.VendorsForEntity[vendorIndex].isCutOff = false;\r\n this.VendorsForEntity[vendorIndex].operationTypeId = 2;\r\n }\r\n\r\n if (actionType == \"Exclusive\") {\r\n this.VendorsForEntity = this.VendorsForEntity.map((vendor, index) => {\r\n if (index == vendorIndex || vendor.operationTypeId == 3) {\r\n return {\r\n ...vendor,\r\n isCutOff: false,\r\n operationTypeId: 3\r\n }\r\n }\r\n\r\n return {\r\n ...vendor,\r\n isCutOff: true,\r\n operationTypeId: undefined\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n // Refactor the below to a class\r\n @action\r\n public SetSelectedPublisherActionType(actionType: PublisherSelectionActionType): void {\r\n this.SelectedPublisherActionType = actionType;\r\n }\r\n\r\n @action\r\n public SetSelectedVendor(vendor: vendorMockType): void {\r\n this.SelectedVendor = vendor;\r\n }\r\n\r\n @action\r\n public SetSelectedEntity(entity: EntityRecordDetailed): void {\r\n this.SelectedEntity = entity;\r\n }\r\n\r\n @action\r\n public RemoveSelectedEntity(): void {\r\n this.SelectedEntity = undefined;\r\n }\r\n\r\n\r\n}","\r\n// export type breadCrumbActionType = \"link\" | \"state_effect\" | \"none\";\r\n\r\nexport class BreadCrumb {\r\n /**\r\n * ctor\r\n */\r\n constructor(\r\n public breadCrumbText: string,\r\n public path: string | null, // The path to redirect to on click\r\n public clickHandler: (() => void) | null, // Causes state side effect\r\n ) { }\r\n}","class Root {\r\n private prefix = \"/\";\r\n\r\n public Index = `${this.prefix}`;\r\n public NotFound = `/not-found`;\r\n public AccessDenied = `/access-denied`;\r\n public Login = `/login`;\r\n public Logout = `/logout`;\r\n}\r\n\r\nclass PublisherSelection {\r\n private prefix = \"/publisherSelection\";\r\n\r\n public ChooseCutOff = `${this.prefix}/cutoff`;\r\n public Analytics = `${this.prefix}/analytics`;\r\n}\r\n\r\nclass Explainability {\r\n private prefix = \"/explainability\";\r\n\r\n public JobExplainabilityRoute = `${this.prefix}/table`\r\n\r\n}\r\n\r\nclass Actions {\r\n private prefix = \"/actions\";\r\n\r\n public Table = `${this.prefix}/table`;\r\n}\r\n\r\nclass Supervision {\r\n private prefix = \"/\";\r\n public CompaniesPrefix = \"/companies\"; //Didn't use prefix in purpose. Campaigns is the root route\r\n public Companies = \"/\"; //Didn't use prefix in purpose. Campaigns is the root route\r\n public Campaigns = \"/campaigns\";\r\n public Affiliates = \"/Affiliates\"\r\n\r\n public LinkedInRoutes = {\r\n StrategyRoute: `${this.CompaniesPrefix}/:companyId/linkedin`,\r\n BuildStrategyRoute: (companyId: number) =>\r\n `${this.LinkedInRoutes.StrategyRoute}`.replace(\r\n \":companyId\",\r\n companyId.toString()\r\n ),\r\n };\r\n \r\n public IndeedRoutes = {\r\n CampaignRoute: `${this.Campaigns}/:campaignId/indeed`,\r\n BuildCampaignRoute: (campaignId: number) =>\r\n `${this.IndeedRoutes.CampaignRoute}`.replace(\r\n \":campaignId\",\r\n campaignId.toString()\r\n ),\r\n AddCampaign: `${this.Campaigns}/:campaignId/indeed/add-campaign`,\r\n BuildAddCampaign: (campaignId: number) =>\r\n `${this.IndeedRoutes.AddCampaign.replace(\r\n \":campaignId\",\r\n campaignId.toString()\r\n )}`,\r\n CampaignJobsRoute: `${this.Campaigns}/:campaignId/indeed/:indeedCampaignId/jobs`,\r\n BuildCampaignJobsRoute: (campaignId: number, indeedCampaignId: string) =>\r\n `${this.IndeedRoutes.CampaignJobsRoute}`\r\n .replace(\":campaignId\", campaignId.toString())\r\n .replace(\":indeedCampaignId\", indeedCampaignId),\r\n AttachJobsToIndeedCampaign: `${this.Campaigns}/:campaignId/indeed/:indeedCampaignId/attach-jobs`,\r\n BuildAttachJobsToIndeedCampaign: (\r\n campaignId: number,\r\n indeedCampaignId: string\r\n ) =>\r\n `${this.IndeedRoutes.AttachJobsToIndeedCampaign}`\r\n .replace(\":campaignId\", campaignId.toString())\r\n .replace(\":indeedCampaignId\", indeedCampaignId),\r\n EditIndeedCampaign: `${this.Campaigns}/:campaignId/indeed/:indeedCampaignId/edit`,\r\n BuildEditIndeedCampaign: (campaignId: number, indeedCampaignId: string) =>\r\n `${this.IndeedRoutes.EditIndeedCampaign}`\r\n .replace(\":campaignId\", campaignId.toString())\r\n .replace(\":indeedCampaignId\", indeedCampaignId),\r\n };\r\n\r\n public CompanyTrackSystemRoutes = {\r\n CompanySettingsRoute: `${this.CompaniesPrefix}/:companyId/company-settings`,\r\n BuildCompanyRoute: (companyId: number) =>\r\n `${this.CompanyTrackSystemRoutes.CompanySettingsRoute}`.replace(\r\n \":companyId\",\r\n companyId.toString()\r\n ),\r\n\r\n EditCompanySettingAudit: `${this.CompaniesPrefix}/:companyId/company-settings/:auditId/edit`,\r\n BuildEditCompanySettingAudit: (companyId: number, auditId: string) =>\r\n `${this.CompanyTrackSystemRoutes.EditCompanySettingAudit}`\r\n .replace(\":companyId\", companyId.toString())\r\n .replace(\":auditId\", auditId),\r\n\r\n AddCompanySettingAudit: `${this.CompaniesPrefix}/:companyId/company-settings/add`,\r\n BuildAddCompanySettingAudit: (companyId: number) =>\r\n `${this.CompanyTrackSystemRoutes.AddCompanySettingAudit.replace(\r\n \":companyId\",\r\n companyId.toString()\r\n )}`,\r\n };\r\n\r\n public CampaignTrackSystemRoutes = {\r\n CampaignSettingsRoute: `${this.Campaigns}/:campaignId/campaign-settings`,\r\n BuildCampaignRoute: (campaignId: number) =>\r\n `${this.CampaignTrackSystemRoutes.CampaignSettingsRoute}`.replace(\r\n \":campaignId\",\r\n campaignId.toString()\r\n ),\r\n\r\n EditCampaignSettingAudit: `${this.Campaigns}/:campaignId/campaign-settings/:auditId/edit`,\r\n BuildEditCampaignSettingAudit: (campaignId: number, auditId: string) =>\r\n `${this.CampaignTrackSystemRoutes.EditCampaignSettingAudit}`\r\n .replace(\":campaignId\", campaignId.toString())\r\n .replace(\":auditId\", auditId),\r\n\r\n AddCampaignSettingAudit: `${this.Campaigns}/:campaignId/campaign-settings/add`,\r\n BuildAddCampaignSettingAudit: (campaignId: number) =>\r\n `${this.CampaignTrackSystemRoutes.AddCampaignSettingAudit.replace(\r\n \":campaignId\",\r\n campaignId.toString()\r\n )}`,\r\n };\r\n\r\n public GroupsRoutes = {\r\n GroupRoute: `${this.Campaigns}/:campaignId/groups`,\r\n BuildGroupRoute: (campaignId: number) =>\r\n `${this.GroupsRoutes.GroupRoute}`.replace(\r\n \":campaignId\",\r\n campaignId.toString()\r\n ),\r\n\r\n AddGroup: `${this.Campaigns}/:campaignId/groups/add`,\r\n BuildAddGroup: (campaignId: number) =>\r\n `${this.GroupsRoutes.AddGroup}`.replace(\r\n \":campaignId\",\r\n campaignId.toString()\r\n ),\r\n\r\n GroupJobsRoute: `${this.Campaigns}/:campaignId/groups/:groupId/jobs`,\r\n BuildGroupJobsRoute: (campaignId: number, groupId: number) =>\r\n `${this.GroupsRoutes.GroupJobsRoute}`\r\n .replace(\":campaignId\", campaignId.toString())\r\n .replace(\":groupId\", groupId.toString()),\r\n\r\n EditGroup: `${this.Campaigns}/:campaignId/groups/:groupId/edit`,\r\n BuildEditGroup: (campaignId: number, groupId: number) =>\r\n `${this.GroupsRoutes.EditGroup}`\r\n .replace(\":campaignId\", campaignId.toString())\r\n .replace(\":groupId\", groupId.toString()),\r\n\r\n AttachJobsToGroup: `${this.Campaigns}/:campaignId/groups/:groupId/attach-jobs`,\r\n BuildAttachJobsToGroup: (campaignId: number, groupId: number) =>\r\n `${this.GroupsRoutes.AttachJobsToGroup}`\r\n .replace(\":campaignId\", campaignId.toString())\r\n .replace(\":groupId\", groupId.toString()),\r\n };\r\n\r\n\r\n public VendorManagementRoutes = {\r\n\r\n AffiliateVendorRoute: `${this.Affiliates}/:affiliateId/vendor-management`,\r\n BuildAffiliateVendorManagementRoute: (affiliateId: number) =>\r\n `${this.VendorManagementRoutes.AffiliateVendorRoute}`\r\n .replace(\":affiliateId\", affiliateId.toString()\r\n ),\r\n\r\n CompanyVendorRoute: `${this.CompaniesPrefix}/:companyId/vendor-management`,\r\n BuildCompanyVendorManagementRoute: (companyId: number) =>\r\n `${this.VendorManagementRoutes.CompanyVendorRoute}`\r\n .replace(\":companyId\", companyId.toString()\r\n ),\r\n\r\n CampaignVendorRoute: `${this.Campaigns}/:campaignId/vendor-management`,\r\n BuildCampaignVendorManagementRoute: (campaignId: number) =>\r\n `${this.VendorManagementRoutes.CampaignVendorRoute}`\r\n .replace(\":campaignId\", campaignId.toString()\r\n ),\r\n\r\n GroupVendorRoute: `${this.Campaigns}/:campaignId/groups/:groupId/vendor-management`,\r\n BuildGroupVendorManagementRoute: (campaignId: number, groupId: number) =>\r\n `${this.VendorManagementRoutes.GroupVendorRoute}`\r\n .replace(\":campaignId\", campaignId.toString())\r\n .replace(\":groupId\", groupId.toString()\r\n ),\r\n }\r\n\r\n public AttributesManagementRoutes = {\r\n\r\n CompanyAttributesRoute: `${this.CompaniesPrefix}/:companyId/attributes-management`,\r\n BuildCompanyAttributesRouteManagementRoute: (companyId: number) =>\r\n `${this.AttributesManagementRoutes.CompanyAttributesRoute}`\r\n .replace(\":companyId\", companyId.toString()\r\n ),\r\n }\r\n \r\n}\r\n\r\nclass Settings {\r\n private prefix = \"/settings\";\r\n\r\n public ShortCutsManual = `${this.prefix}/short-cuts-manual`;\r\n}\r\n\r\nexport class RoutesPaths {\r\n public static Supervision = new Supervision();\r\n public static Explainability = new Explainability();\r\n\r\n public static PublisherSelection = new PublisherSelection();\r\n // public static IndeedManager = new IndeedManagerRoutes();\r\n public static Actions = new Actions();\r\n public static Settings = new Settings();\r\n public static Root = new Root();\r\n}\r\n","import { makeObservable, observable } from 'mobx';\r\nimport { BreadCrumb } from './BreadCrumb';\r\nimport React, { ReactNode } from 'react';\r\nimport { ReactElement } from 'react';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nexport class RouteModel {\r\n public id: string;\r\n\r\n // Make properties observable\r\n public routePath: string;\r\n public renderComponent: React.ReactElement;\r\n public mainTitle: string;\r\n public breadCrumbsPrefix: BreadCrumb[];\r\n public isAutoRouteSetup: boolean;\r\n\r\n constructor(\r\n routePath: string,\r\n renderComponent: React.ReactElement,\r\n mainTitle: string,\r\n breadCrumbsPrefix: BreadCrumb[],\r\n isAutoRouteSetup: boolean = true\r\n ) {\r\n this.id = uuidv4();\r\n this.routePath = routePath;\r\n this.renderComponent = renderComponent;\r\n this.mainTitle = mainTitle;\r\n this.breadCrumbsPrefix = breadCrumbsPrefix;\r\n this.isAutoRouteSetup = isAutoRouteSetup;\r\n\r\n // Make the class observable\r\n makeObservable(this, {\r\n routePath: observable,\r\n renderComponent: observable,\r\n mainTitle: observable,\r\n breadCrumbsPrefix: observable,\r\n isAutoRouteSetup: observable,\r\n });\r\n }\r\n}","import \"./AccessDeniedPage.scss\";\r\n\r\nimport React, { useEffect } from \"react\";\r\n\r\ninterface Props {}\r\n\r\nconst AccessDeniedPage = (props: Props) => {\r\n const interval = 500;\r\n\r\n function generateLocks() {\r\n const lock: any = document.createElement(\"div\"),\r\n position = generatePosition();\r\n\r\n lock.innerHTML = '';\r\n lock.style.top = position[0];\r\n lock.style.left = position[1];\r\n lock.classList = \"lock\"; // generated';\r\n document.body.appendChild(lock);\r\n setTimeout(() => {\r\n lock.style.opacity = \"1\";\r\n lock.classList.add(\"generated\");\r\n }, 100);\r\n setTimeout(() => {\r\n lock.parentElement.removeChild(lock);\r\n }, 2000);\r\n }\r\n function generatePosition() {\r\n const x = Math.round(Math.random() * 100 - 10) + \"%\";\r\n const y = Math.round(Math.random() * 100) + \"%\";\r\n return [x, y];\r\n }\r\n\r\n setInterval(generateLocks, interval);\r\n generateLocks();\r\n\r\n useEffect(() => {\r\n const htmlDom = document.querySelector(\"html\");\r\n htmlDom!.style!.margin = \"0\";\r\n htmlDom!.style!.padding = \"0\";\r\n htmlDom!.style!.height = \"100%\";\r\n htmlDom!.style!.overflow = \"hidden\";\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n 4\r\n \r\n \r\n \r\n \r\n 3\r\n \r\n Access denied\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AccessDeniedPage;\r\n","import React, { useEffect } from \"react\";\r\n\r\nconst useOnInit = (callback: () => void) => {\r\n useEffect(() => {\r\n callback();\r\n }, [])\r\n}\r\n\r\n\r\nexport default useOnInit;\r\n","import React, { useEffect } from \"react\";\r\n\r\nconst useOnInitAsync = (callback: () => Promise, dependencyArray: any[] = []) => {\r\n useEffect(() => {\r\n (async () => {\r\n await callback();\r\n })();\r\n }, dependencyArray);\r\n};\r\n\r\nexport default useOnInitAsync;\r\n","import React, { useContext, useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nimport { RootStoreContext } from \"../stores/RootStoreContext\";\r\n\r\ninterface Props {}\r\n\r\nconst useSetCurrentRoute = () => {\r\n const currentLocation = useLocation();\r\n const { uiStore } = useContext(RootStoreContext);\r\n\r\n useEffect(() => {\r\n uiStore.SetCurrentRoute(currentLocation.pathname);\r\n }, []);\r\n};\r\n\r\nexport default useSetCurrentRoute;\r\n","import { message } from \"antd\";\r\nimport { throws } from \"assert\";\r\nimport React, { useContext, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport { RoutesPaths } from \"../constants/RoutePaths\";\r\nimport { BreadCrumb } from \"../models/BreadCrumb\";\r\nimport { Campaign } from \"../models/operation/Campaign\";\r\nimport { Company } from \"../models/operation/Company\";\r\nimport campaignService from \"../services/operation/CampaignService\";\r\nimport companyService from \"../services/operation/CompanyService\";\r\nimport { RootStoreContext } from \"../stores/RootStoreContext\";\r\nimport { UIStore } from \"../stores/UIStore\";\r\nimport useOnInit from \"./useOnInit\";\r\nimport useOnInitAsync from \"./useOnInitAsync\";\r\nimport useSetCurrentRoute from \"./useSetCurrentRoute\";\r\n\r\n/**\r\n * NOTE: Use that hook on every page component\r\n * Initializes page configuration\r\n */\r\nconst usePageInitialization = (initializeConfig: {\r\n pageTitle?: string;\r\n pageBreadCrumbs?: BreadCrumb[];\r\n onInitAsync?: () => Promise;\r\n onCallback?: (uiStore: UIStore) => void;\r\n onCampaignContextCallBack?: (campaign: Campaign, uiStore: UIStore) => void;\r\n onCompanyContextCallBack?: (company: Company, uiStore: UIStore) => void;\r\n}) => {\r\n const campaignMatch = useParams<{ campaignId?: string }>();\r\n const companyMatch = useParams<{ companyId?: string }>();\r\n const history = useHistory();\r\n\r\n const { uiStore, companyStore, campaignStore } = useContext(RootStoreContext);\r\n\r\n useSetCurrentRoute();\r\n\r\n useOnInit(() => {\r\n if (initializeConfig.pageTitle) {\r\n uiStore.SetPageTitle(initializeConfig.pageTitle);\r\n }\r\n if (initializeConfig.pageBreadCrumbs) {\r\n uiStore.AddBreadCrumbs(...initializeConfig.pageBreadCrumbs);\r\n }\r\n\r\n if (initializeConfig.onCallback) {\r\n initializeConfig.onCallback(uiStore);\r\n }\r\n });\r\n\r\n useOnInitAsync(async () => {\r\n if (initializeConfig.onInitAsync) {\r\n await initializeConfig.onInitAsync();\r\n }\r\n\r\n if (companyMatch.companyId) {\r\n uiStore.SetIsWebsiteLoading(true);\r\n try {\r\n const company = await companyService.GetCompanyById(\r\n Number(companyMatch.companyId)\r\n );\r\n companyStore.SetSelectedCompany(company);\r\n\r\n if (initializeConfig.onCompanyContextCallBack) {\r\n initializeConfig.onCompanyContextCallBack(company, uiStore);\r\n }\r\n } catch (err) {\r\n history.push(RoutesPaths.Supervision.Companies);\r\n message.error(\r\n `Account with ID: ${companyMatch.companyId} doesn't exist. Returned to home page`\r\n );\r\n } finally {\r\n uiStore.SetIsWebsiteLoading(false);\r\n }\r\n }\r\n\r\n if (campaignMatch.campaignId) {\r\n uiStore.SetIsWebsiteLoading(true);\r\n try {\r\n\r\n const campaign = await campaignService.GetById(\r\n Number(campaignMatch.campaignId)\r\n );\r\n campaignStore.SetSelectedCampaign(campaign);\r\n\r\n const company = await companyService.GetCompanyById(\r\n Number(campaign.companyId)\r\n );\r\n companyStore.SetSelectedCompany(company);\r\n\r\n if (initializeConfig.onCompanyContextCallBack) {\r\n initializeConfig.onCompanyContextCallBack(company, uiStore);\r\n }\r\n } catch (err) {\r\n history.push(RoutesPaths.Supervision.Companies);\r\n message.error(\r\n `Campaign with ID: ${campaignMatch.campaignId} doesn't exist. Returned to home page`\r\n );\r\n } finally {\r\n uiStore.SetIsWebsiteLoading(false);\r\n }\r\n }\r\n });\r\n};\r\n\r\nexport default usePageInitialization;\r\n","import { APIResponse } from \"../../models/APIResponse\";\r\nimport { CampaignSettingsAuditCreateModel } from \"../../models/campaign-track-system/CampaignSettingsAuditCreateModel\";\r\nimport { CampaignSettingsAuditResponse } from \"../../models/campaign-track-system/CampaignSettingsAuditResponse\";\r\nimport { PaginationParams } from \"../../models/pagination/PaginationParams\";\r\nimport { ISODateTime } from \"../../types/types\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\n\r\n\r\nexport class CampaignSettingAuditService extends BaseService {\r\n\r\n\r\n async GetCampaignSettingsAuditByPagination(campaignId: number, paginationOptions: PaginationParams)\r\n {\r\n\r\n const CampaignSettingsAuditData = await this.Post(`/paginate/${campaignId}` , paginationOptions);\r\n return CampaignSettingsAuditData;\r\n }\r\n\r\n\r\n async UpdateCampaignSettingsAudit(auditId: string, auditUpdateModel: CampaignSettingsAuditCreateModel): Promise {\r\n const UpdatedAudit = await this.Put(`/${auditId}`, auditUpdateModel);\r\n return UpdatedAudit;\r\n }\r\n\r\n\r\n async CreateCampaignSettingsAudit(campaignSettingsAuditCreateModel: CampaignSettingsAuditCreateModel): Promise {\r\n\r\n const createdAudit = await this.Post(\"\" , campaignSettingsAuditCreateModel);\r\n return createdAudit;\r\n }\r\n\r\n \r\n async DeleteCampaignSettingsAudit(campaignId: number, auditId: string): Promise {\r\n\r\n const deletedAudit = await this.Delete(`/${campaignId}/${auditId}`);\r\n return deletedAudit;\r\n }\r\n\r\n\r\n async UploadFile(file : any ,userId : string) : Promise>\r\n {\r\n const fromData = new FormData();\r\n fromData.append(\"csvFile\" , file);\r\n fromData.append(\"userId\" , userId);\r\n\r\n const fileUploaded = await this.Post>(`/bulk-upload` , fromData);\r\n\r\n return fileUploaded;\r\n }\r\n\r\n\r\n async GetFilteredCampaignSettingsAudits(getActionsRequest: { userId?: number, from?: ISODateTime, to?: ISODateTime,\r\n optionTypeId?: string , campaignId?: number\r\n }): Promise {\r\n\r\n let queryString = \"\";\r\n \r\n if (getActionsRequest.campaignId) {\r\n queryString += `&campaignId=${getActionsRequest.campaignId}`\r\n }\r\n if (getActionsRequest.optionTypeId) {\r\n queryString += `&optionTypeId=${getActionsRequest.optionTypeId}`\r\n }\r\n if (getActionsRequest.userId) {\r\n queryString += `&userId=${getActionsRequest.userId}`\r\n }\r\n if (getActionsRequest.from) {\r\n queryString += `&from=${getActionsRequest.from}`\r\n }\r\n if (getActionsRequest.to) {\r\n queryString += `&to=${getActionsRequest.to}`\r\n }\r\n\r\n let url = `/?q${queryString}`\r\n return await this.Get(url);\r\n \r\n }\r\n}\r\n\r\n\r\nconst campaignSettingAuditService = new CampaignSettingAuditService(\"CampaignSettingsAudit\");\r\nexport default campaignSettingAuditService;","\r\nexport enum CampaignSettingsStatus {\r\n Active = 1,\r\n Removed = 2\r\n}","import { CampaignSettingStore } from \"../../stores/CampaignSettingStore\";\r\nimport { ActionsBuilder } from \"../general/supervision-table/types\";\r\nimport { History } from \"history\";\r\nimport { FiEdit } from \"react-icons/fi\";\r\nimport { RiDeleteBin7Line } from \"react-icons/ri\";\r\nimport { RoutesPaths } from \"../../constants/RoutePaths\";\r\nimport { CampaignSettingsAuditDto } from \"./CampaignSettingsAudit.dto\";\r\nimport { UIStore } from \"../../stores/UIStore\";\r\nimport campaignSettingAuditService from \"../../services/campaign-setting/CampaignSettingAuditService\";\r\nimport { message, Typography } from \"antd\";\r\nimport { CampaignSettingsStatus } from \"../../models/campaign-track-system/CampaignSettingsStatus\";\r\n\r\nconst { Text } = Typography;\r\n\r\ntype CampaignSettingActionsContext = {\r\n campaignSettingStore: CampaignSettingStore;\r\n uiStore: UIStore;\r\n history: History;\r\n campaignId: number;\r\n};\r\n\r\nexport const CampaignSettingActionsBuilder: ActionsBuilder = ({\r\n history, campaignSettingStore, uiStore, campaignId\r\n}) => [\r\n\r\n {\r\n text: \"Edit Campaign Setting\",\r\n action: (campaignSettingAudit) => {\r\n campaignSettingStore.SetSelectedCampaignSettingAudit(\r\n campaignSettingStore.CampaignSettingsAuditsResponse?.find(\r\n (x) => x.id == campaignSettingAudit.id\r\n )\r\n );\r\n history.push({\r\n pathname:\r\n RoutesPaths.Supervision.CampaignTrackSystemRoutes.BuildEditCampaignSettingAudit(campaignId, campaignSettingAudit.id)\r\n });\r\n },\r\n Icon: FiEdit,\r\n isDisplayed: () => true,\r\n\r\n },\r\n\r\n {\r\n text: \"Delete audit\",\r\n action: (campaignSettingAudit) => {\r\n\r\n const popupBody = (\r\n \r\n Sure you want to delete audit from campaign: {\" \"}\r\n {campaignSettingAudit.campaignName} with audit ID:{\" \"}\r\n {campaignSettingAudit.id}\r\n \r\n );\r\n\r\n uiStore.SetPopUp(\r\n {\r\n body: popupBody,\r\n title: \"Stem Control Request\",\r\n okClickHandler: async () => {\r\n await campaignSettingAuditService.DeleteCampaignSettingsAudit(campaignId ,campaignSettingAudit.id);\r\n let auditIndex = campaignSettingStore\r\n .CampaignSettingsAuditsResponse\r\n .findIndex(x => x.id == campaignSettingAudit.id);\r\n campaignSettingStore.CampaignSettingsAuditsResponse[auditIndex].status = CampaignSettingsStatus.Removed\r\n\r\n message.success(\r\n `Audit Campaign Setting ID:${campaignSettingAudit.id} deleted`\r\n );\r\n },\r\n okButtonText: \"Accept\",\r\n }\r\n );\r\n },\r\n Icon: RiDeleteBin7Line,\r\n isDisplayed: () => true,\r\n\r\n }\r\n\r\n ]\r\n\r\n","import moment from \"moment\";\r\n\r\nimport { ISODateTime } from \"../types/types\";\r\n\r\nexport const dateFormat = \"MMM Do YYYY\";\r\nexport const dateTimeFormat = \"MMM Do YYYY, h:mm:ss a\";\r\nexport const minDate = moment.utc(\"0001-01-01\");\r\n \r\n\r\n\r\nexport const FormatDate = (date: ISODateTime) => {\r\n\r\n return moment(date).format(dateFormat);\r\n}\r\n\r\nexport const FormatDateTime = (date: ISODateTime) => {\r\n // const format = \"MM/DD/YYYY, h:mm:ss a\";\r\n return moment(date).format(dateTimeFormat)\r\n}\r\n\r\nexport const FormatDateIfValid = (date: ISODateTime) => {\r\n if (moment(date).isAfter(minDate)) {\r\n return FormatDate(date)\r\n }\r\n else{\r\n return'';\r\n }\r\n }","/**\r\n * Creates a table dto that is displayed in the table\r\n */\r\nexport class TableDto {\r\n public _id?: number;\r\n}","import { CampaignSettingsAuditResponse } from \"../../models/campaign-track-system/CampaignSettingsAuditResponse\";\r\nimport { CampaignSettingsStatus } from \"../../models/campaign-track-system/CampaignSettingsStatus\";\r\nimport { ISODateTime } from \"../../types/types\";\r\nimport { FormatDate } from \"../../utils/DateHelpers\";\r\nimport { TableDto } from \"../general/supervision-table/Table.dto\";\r\n\r\n\r\n\r\nexport class CampaignSettingsAuditDto extends TableDto {\r\n constructor(\r\n public id: string,\r\n public campaignId: number,\r\n public companyId: number,\r\n public date : ISODateTime,\r\n public status: string,\r\n public campaignName: string,\r\n public type : string,\r\n public value: string,\r\n public caseNumber: string,\r\n public userName: string,\r\n public comment: string\r\n\r\n ) {\r\n super();\r\n }\r\n\r\n public static MapFromCampaignSettingsAudit(campaignSettingsAudit: CampaignSettingsAuditResponse) {\r\n return new CampaignSettingsAuditDto(\r\n campaignSettingsAudit.id,\r\n campaignSettingsAudit.campaignId,\r\n campaignSettingsAudit.companyId,\r\n FormatDate(campaignSettingsAudit.creationDate),\r\n campaignSettingsAudit.status ? CampaignSettingsStatus[campaignSettingsAudit.status] : \"N.A\",\r\n campaignSettingsAudit.campaignName,\r\n campaignSettingsAudit.type,\r\n campaignSettingsAudit.value,\r\n campaignSettingsAudit.caseNumber,\r\n campaignSettingsAudit.userName,\r\n campaignSettingsAudit.comment\r\n\r\n )\r\n }\r\n}","import { Tooltip } from \"antd\";\r\nimport React from \"react\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\nimport { RowActionSettings } from \"./types\";\r\n\r\ntype Props = {\r\n rowActionSettings?: RowActionSettings;\r\n};\r\n\r\nconst BuildActionsColumn = (columnOptions: Props) => {\r\n const { rowActionSettings } = columnOptions;\r\n\r\n const actionsColumn: any = {\r\n title: \"Actions\",\r\n render: (text: any, record: T) => (\r\n \r\n {rowActionSettings &&\r\n rowActionSettings.actions.map(\r\n (action) =>\r\n action.isDisplayed(record) && (\r\n action.action(record)}>\r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n ),\r\n };\r\n\r\n return actionsColumn;\r\n};\r\n\r\nexport default BuildActionsColumn;\r\n","import \"./SupervisionTable.scss\";\r\n\r\nimport { Button, Input, InputRef, Space } from \"antd\";\r\nimport {\r\n FilterConfirmProps,\r\n FilterDropdownProps,\r\n Key\r\n} from \"antd/lib/table/interface\";\r\nimport { makeObservable, observable } from \"mobx\";\r\nimport Highlighter from \"react-highlight-words\";\r\n\r\nimport { SearchOutlined } from \"@ant-design/icons\";\r\n\r\nexport class SearchColumn {\r\n private _dataIndex: string;\r\n private _searchInput: InputRef | null = null;\r\n\r\n constructor(dataIndex: string) {\r\n makeObservable(this);\r\n this._dataIndex = dataIndex;\r\n }\r\n\r\n @observable\r\n public searchText: string = \"\";\r\n\r\n @observable\r\n public searchColumn: string = \"\";\r\n\r\n public handleSearch(\r\n selectedKeys: Key[],\r\n confirm: (param?: FilterConfirmProps | undefined) => void,\r\n dataIndex: string\r\n ) {\r\n confirm(); //triggers OnFilter() function in CreateColumn()\r\n this.searchText = selectedKeys[0] as string;\r\n this.searchColumn = dataIndex;\r\n }\r\n\r\n public handleReset(\r\n clearFilters: (() => void) | undefined,\r\n confirm: (param?: FilterConfirmProps | undefined) => void\r\n ) {\r\n clearFilters!();\r\n this.searchText = \"\";\r\n confirm();\r\n }\r\n\r\n public CreateColumn() {\r\n return {\r\n filterDropdown: ({\r\n setSelectedKeys,\r\n selectedKeys,\r\n confirm,\r\n clearFilters,\r\n }: FilterDropdownProps) => (\r\n \r\n {\r\n this._searchInput = node;\r\n }}\r\n placeholder={`Search ${this._dataIndex}`}\r\n value={selectedKeys[0]}\r\n onChange={(e) =>\r\n setSelectedKeys(\r\n e.target.value ? [e.target.value] : []\r\n )\r\n }\r\n onPressEnter={() =>\r\n this.handleSearch(\r\n selectedKeys,\r\n confirm,\r\n this._dataIndex\r\n )\r\n }\r\n style={{ marginBottom: 8, display: \"block\" }}\r\n />\r\n \r\n \r\n this.handleSearch(\r\n selectedKeys,\r\n confirm,\r\n this._dataIndex\r\n )\r\n }\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}>\r\n Search\r\n \r\n \r\n this.handleReset(clearFilters, confirm)\r\n }\r\n size=\"small\"\r\n style={{ width: 90 }}>\r\n Reset\r\n \r\n \r\n \r\n ),\r\n filterIcon: (filtered: boolean) => (\r\n \r\n ),\r\n onFilter: (value: string, record: T) => {\r\n let recordKeyValue = (record as any)[this._dataIndex];\r\n return recordKeyValue\r\n ? recordKeyValue\r\n .toString()\r\n .toLowerCase()\r\n .includes(value.toLowerCase())\r\n : false;\r\n },\r\n onFilterDropdownVisibleChange: (visible: boolean) => {\r\n if (visible && this._searchInput != null) {\r\n setTimeout(() => this._searchInput!.select(), 100);\r\n }\r\n },\r\n render: (text: any, record: T) => {\r\n if (this.searchColumn == this._dataIndex) {\r\n return (\r\n \r\n );\r\n }\r\n return text;\r\n },\r\n };\r\n }\r\n}\r\n","import moment from \"moment\";\r\n\r\nimport { EnumDefinition } from \"../../../types/types\";\r\nimport { dateFormat, dateTimeFormat } from \"../../../utils/DateHelpers\";\r\nimport BuildActionsColumn from \"./ActionsColumn\";\r\nimport { SearchColumn } from \"./SearchColumn\";\r\nimport {\r\n CategoricalColumns,\r\n RowActionSettings,\r\n TableColumn,\r\n TableColumnDataType\r\n} from \"./types\";\r\n\r\nexport const BuildColumns = (\r\n dataSource: T[],\r\n rowActionSettings?: RowActionSettings,\r\n categoricalColumns?: CategoricalColumns[]\r\n) => {\r\n let tableColumns = BuildColumnsFromSchema(\r\n dataSource[0],\r\n categoricalColumns\r\n );\r\n\r\n // Remove _id column\r\n tableColumns = tableColumns.filter((column) => column.title != \"_id\");\r\n\r\n if (rowActionSettings && rowActionSettings.showActionsOnLastColumn) {\r\n tableColumns = [\r\n ...tableColumns,\r\n BuildActionsColumn({ rowActionSettings }),\r\n ];\r\n }\r\n\r\n return tableColumns;\r\n};\r\n\r\nconst BuildColumnsFromSchema = (\r\n record: T,\r\n categoricalColumns?: CategoricalColumns[]\r\n): TableColumn[] => {\r\n return Reflect.ownKeys(record).map((key) => {\r\n let column: TableColumn = {\r\n dataType: ParseDataType(record, key, categoricalColumns),\r\n dataIndex: key.toString(),\r\n title: [...key.toString()].reduce(\r\n (prev: string, cur: string, index: number) => {\r\n if (index == 0) {\r\n return key.toString()[0].toUpperCase();\r\n } else if (cur.match(/[A-Z]/)) {\r\n return (prev += ` ${cur}`);\r\n }\r\n return prev + cur;\r\n },\r\n \"\"\r\n ),\r\n };\r\n\r\n return column;\r\n });\r\n};\r\n\r\nfunction ParseDataType(\r\n record: T,\r\n key: string | symbol,\r\n categoricalColumns?: CategoricalColumns[]\r\n): TableColumnDataType {\r\n if (categoricalColumns && categoricalColumns.some((c) => c.column == key)) {\r\n return \"categorical\";\r\n }\r\n\r\n const value = (record as any)[key as any];\r\n if (typeof value == \"number\" || IsANumberWithPrefixOrPostfix(value)) {\r\n return \"number\";\r\n }\r\n\r\n if (IsADateTime(value)) {\r\n return \"datetime\";\r\n }\r\n return \"string\";\r\n}\r\n\r\nfunction IsANumberWithPrefixOrPostfix(value: string): boolean {\r\n if (!value) return false;\r\n const match = (value.match(/.\\d+./gi) ?? [\"\"])[0];\r\n return value.length == match.length;\r\n}\r\n\r\nfunction IsADateTime(value: string): boolean {\r\n return (\r\n moment(value, dateFormat).isValid() ||\r\n moment(value, dateTimeFormat).isValid()\r\n );\r\n}\r\n\r\n//https://ant.design/components/table/#Column\r\ntype AntDesignColumnType = any;\r\n\r\nexport const PopulateColumnActions = (\r\n column: TableColumn,\r\n categoricalColumns?: CategoricalColumns[]\r\n): AntDesignColumnType => {\r\n if (column.title == \"Actions\") {\r\n return column;\r\n }\r\n\r\n const searchColumn = new SearchColumn(column.dataIndex);\r\n\r\n // only numbers are sortable or strings that are numbers with prefix or postfix\r\n if (column.dataType == \"number\") {\r\n const extractNumber = (value: string | number): number =>\r\n Number((value.toString()?.match(/\\d+/gi) ?? [0])[0]);\r\n\r\n // we need to add \"sorter\" property to add sorting to our table\r\n return {\r\n ...column,\r\n ...searchColumn.CreateColumn(),\r\n sorter: (a: any, b: any) =>\r\n extractNumber(a[column.dataIndex]) -\r\n extractNumber(b[column.dataIndex]),\r\n };\r\n }\r\n\r\n if (column.dataType == \"categorical\") {\r\n // we need to add \"filters\" and \"onFilter\" property to add categorical filtering\r\n const categoricalColumnOptions = categoricalColumns?.find(\r\n (x) => x.column == column.dataIndex\r\n );\r\n\r\n if (!categoricalColumnOptions) {\r\n return column;\r\n }\r\n\r\n let filters: string[] = [];\r\n if (categoricalColumnOptions.possibleValues.hasOwnProperty(\"length\")) {\r\n // then possibleValue = string list\r\n filters = categoricalColumnOptions.possibleValues as string[];\r\n } else {\r\n for (let key in categoricalColumnOptions.possibleValues as EnumDefinition) {\r\n if (!key.match(/^\\d+$/)) {\r\n filters.push(key);\r\n }\r\n }\r\n }\r\n\r\n return {\r\n ...column,\r\n filters: filters.map((value) => ({\r\n text: value,\r\n value: value,\r\n })),\r\n onFilter: (filteredValue: any, record: T) => {\r\n const recordPropertyValue = (record as any)[column.dataIndex];\r\n return filteredValue == recordPropertyValue;\r\n },\r\n defaultFilteredValue: categoricalColumnOptions.defaultFilteredValue,\r\n };\r\n }\r\n\r\n // sort date timer\r\n if (column.dataType == \"datetime\") {\r\n const extractDateValueSinceUnixEpoch = (value: string): number =>\r\n moment(value, dateTimeFormat).unix();\r\n\r\n // we need to add \"sorter\" property to add sorting to our table\r\n return {\r\n ...column,\r\n ...searchColumn.CreateColumn(),\r\n sorter: (a: any, b: any) =>\r\n extractDateValueSinceUnixEpoch(a[column.dataIndex]) -\r\n extractDateValueSinceUnixEpoch(b[column.dataIndex]),\r\n };\r\n }\r\n\r\n return {\r\n ...column,\r\n ...searchColumn.CreateColumn(),\r\n };\r\n};\r\n","import { Dropdown, Menu } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\nimport { DOMCoordinates } from \"../../../types/types\";\r\nimport { RightClickData, RowAction } from \"./types\";\r\n\r\nconst defaultDropdownCoordinates: DOMCoordinates = {\r\n xPosition: 230,\r\n yPosition: 240,\r\n};\r\n\r\ninterface Props {\r\n rightClickData: RightClickData | undefined;\r\n dropDownMenu: RowAction[];\r\n}\r\n\r\nconst RightClickDropdown = (props: Props) => {\r\n const { rightClickData,dropDownMenu } = props;\r\n\r\n if (!rightClickData) {\r\n return <>>;\r\n }\r\n\r\n const dropdownMenu = (\r\n \r\n {dropDownMenu.map((data, index) => (\r\n data.isDisplayed(rightClickData.clickedRowData)\r\n &&\r\n }\r\n onClick={() => {\r\n data.action(rightClickData.clickedRowData)\r\n }}>\r\n {data.text}\r\n \r\n ))}\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(RightClickDropdown);\r\n","import { Table } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React from \"react\";\r\n\r\nimport { TableColumn } from \"./types\";\r\n\r\ntype Props = {\r\n dataSource: T[];\r\n tableColumns: TableColumn[];\r\n pageData: readonly (T & {\r\n key: number;\r\n })[];\r\n};\r\n\r\nconst FillRestOfCellsEmpty = (tableColumns: TableColumn[]) => {\r\n return (\r\n <>\r\n {/* We need to skip first to indexes because they are taken for the summary text */}\r\n {tableColumns.map((_, i) => {\r\n if (i < 2) {\r\n return;\r\n }\r\n return (\r\n \r\n );\r\n })}\r\n \r\n >\r\n );\r\n};\r\n\r\nconst TableFooter = (props: Props) => {\r\n const { dataSource, tableColumns, pageData } = props;\r\n return (\r\n \r\n \r\n Summary\r\n \r\n Contains: {dataSource.length} rows\r\n \r\n \r\n {FillRestOfCellsEmpty(tableColumns)}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(TableFooter);\r\n","import \"./SupervisionTable.scss\";\r\n\r\nimport { Divider, Radio, Table } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useState } from \"react\";\r\n\r\nimport { BuildColumns, PopulateColumnActions } from \"./ColumnsBuilder\";\r\nimport RightClickDropdown from \"./RightClickDropdown\";\r\nimport TableFooter from \"./TableFooter\";\r\nimport { CategoricalColumns, RightClickData, RowActionSettings } from \"./types\";\r\nimport { TableRowSelection } from \"antd/lib/table/interface\";\r\nimport { TableDto } from \"./Table.dto\";\r\n\r\ninterface Props {\r\n dataSource: T[];\r\n rowActionSettings?: RowActionSettings;\r\n categoricalColumns?: CategoricalColumns[];\r\n tableRowSelection?: TableRowSelection;\r\n expandableDataSource?: Y[];\r\n isExpendable?: boolean;\r\n isShowSizeChanger?: boolean;\r\n expandableActionSettings?: RowActionSettings;\r\n isChild?: boolean;\r\n}\r\n\r\nconst SupervisionTable = (props: Props) => {\r\n const { dataSource, rowActionSettings, categoricalColumns,\r\n tableRowSelection, expandableDataSource, expandableActionSettings,\r\n isExpendable, isChild ,isShowSizeChanger} = props;\r\n \r\n var expandableDataSources = new Array();\r\n if(expandableDataSource != undefined)\r\n {\r\n expandableDataSources = expandableDataSource;\r\n }\r\n\r\n const [expandedRowKeys, setExpandedRowKeys] = useState([]);\r\n\r\n const [rightClickData, setRightClickData] = useState<\r\n RightClickData | undefined\r\n >();\r\n const [selectionType, setSelectionType] = useState<'checkbox' | 'radio'>('checkbox');\r\n \r\n let tableColumns = BuildColumns(\r\n dataSource,\r\n rowActionSettings,\r\n categoricalColumns\r\n );\r\n\r\n return (\r\n <>\r\n {rowActionSettings && rowActionSettings.showActionsOnRightClick && (\r\n \r\n )}\r\n {\r\n return {\r\n onClick: () => {\r\n setRightClickData(undefined);\r\n },\r\n onContextMenu: (event) => {\r\n event.preventDefault();\r\n setRightClickData({\r\n clickCoordinates: {\r\n xPosition: event.clientX,\r\n yPosition: event.clientY,\r\n },\r\n rowIndex: rowIndex ?? -1, // Should never get to -1\r\n clickedRowData: record,\r\n });\r\n },\r\n };\r\n }}\r\n rowClassName={(record, index) => {\r\n if (index == rightClickData?.rowIndex) {\r\n return \"table-row-right-clicked\";\r\n }\r\n return \"\";\r\n }}\r\n size= {isChild ? \"small\" : \"middle\"}\r\n columns={tableColumns.map((tableColumn) =>\r\n PopulateColumnActions(tableColumn, categoricalColumns)\r\n )}\r\n dataSource={dataSource.map((data, i) => ({ ...data, key: data._id != undefined ? data._id : i }))}\r\n expandable={{\r\n expandedRowRender: (record) => x._id == record.key)}\r\n rowActionSettings={expandableActionSettings}\r\n isChild={true}\r\n />,\r\n rowExpandable: (record) => isExpendable ?? false,\r\n }}\r\n pagination={ isChild ? false : {\r\n \r\n showSizeChanger: isShowSizeChanger,\r\n }}\r\n onChange={(pagination, filters, sorter, extra) => {\r\n // console.log(\"params\", pagination, filters, sorter, extra);\r\n }}\r\n summary={(pageData) => (\r\n \r\n )}\r\n />\r\n >\r\n );\r\n};\r\n\r\nexport default observer(SupervisionTable);\r\n","import { Empty} from \"antd\";\r\nimport { useContext, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { CampaignSettingsAuditResponse } from \"../../models/campaign-track-system/CampaignSettingsAuditResponse\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport { CampaignSettingActionsBuilder } from \"./CampaignSettingAuditTable.actions\";\r\nimport { CampaignSettingsAuditDto } from \"./CampaignSettingsAudit.dto\";\r\n\r\nimport { observer } from \"mobx-react-lite\";\r\nimport SupervisionTable from \"../general/supervision-table/SupervisionTable\";\r\n\r\ninterface Props {\r\n campaignId: number;\r\n campaignAudits: CampaignSettingsAuditResponse[];\r\n}\r\n\r\n\r\n\r\nconst CampaignSettingAuditTable = (props: Props) => {\r\n\r\n const {campaignAudits , campaignId } = props;\r\n const { campaignSettingStore, uiStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n \r\n\r\n if (campaignAudits.length == 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\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 observer(CampaignSettingAuditTable);","import { CampaignSettingTypeResponse } from \"../../models/campaign-track-system/CampaignSettingTypeResponse\";\r\nimport { CampaignSettingTypeValueOption } from \"../../models/campaign-track-system/CampaignSettingTypeValueOption\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\n\r\n\r\nexport class CampaignSettingTypeService extends BaseService \r\n{\r\n\r\n async GetCampaignSettingTypes() {\r\n\r\n const CampaignSettingTypeData = await this.Get(\"\");\r\n return CampaignSettingTypeData;\r\n }\r\n\r\n async GetSettingTypeValueOptionsPerType(campaignSettingTypeId: number) {\r\n\r\n const CampaignSettingTypeData = await this.Get(`/${campaignSettingTypeId}/valueOptions`);\r\n return CampaignSettingTypeData;\r\n }\r\n\r\n\r\n}\r\n\r\nconst campaignSettingTypeService = new CampaignSettingTypeService(\"CampaignSettingTypes\");\r\nexport default campaignSettingTypeService;","import { message } from \"antd\";\r\nimport { RoutesPaths } from \"../../../../constants/RoutePaths\";\r\nimport { PaginationParams } from \"../../../../models/pagination/PaginationParams\";\r\nimport campaignSettingAuditService from \"../../../../services/campaign-setting/CampaignSettingAuditService\";\r\nimport campaignSettingTypeService from \"../../../../services/campaign-setting/CampaignSettingTypeService\";\r\nimport { CampaignSettingStore } from \"../../../../stores/CampaignSettingStore\";\r\n\r\n\r\n\r\n\r\n\r\nexport const CampaignSettingContextInitializers = {\r\n\r\n\r\n InitializeCampaignAuditData: async (campaignId: number, campaignSettingStore: CampaignSettingStore, history: any) => {\r\n try {\r\n\r\n const _auditData = await campaignSettingAuditService.GetFilteredCampaignSettingsAudits({ campaignId });\r\n campaignSettingStore.SetCampaignSettingsAudits(_auditData);\r\n\r\n }\r\n catch (err) {\r\n history.push(RoutesPaths.Supervision.Campaigns);\r\n message.error(\r\n `Campaign with ID: ${campaignId} doesn't exist. Returned to home page`\r\n );\r\n }\r\n },\r\n\r\n InitializeCampaignSettingTypes: async (campaignSettingStore: CampaignSettingStore, history: any) => {\r\n try {\r\n\r\n const _settingTypesData = await campaignSettingTypeService.GetCampaignSettingTypes();\r\n\r\n await campaignSettingStore.SetCampaignSettingTypes(_settingTypesData);\r\n\r\n }\r\n catch (err) {\r\n history.push(RoutesPaths.Supervision.Campaigns);\r\n message.error(\r\n `Failed to find Campaign setting types Returned to home page`\r\n );\r\n }\r\n } ,\r\n\r\n InitializeSelectedCampaignSettingAudit: async (auditId: string, campaignSettingStore: CampaignSettingStore, history: any) => {\r\n\r\n try {\r\n\r\n campaignSettingStore.SetSelectedCampaignSettingAudit(\r\n campaignSettingStore.CampaignSettingsAuditsResponse?.find(\r\n (x) => x.id == auditId\r\n ));\r\n }\r\n catch (err) {\r\n history.push(RoutesPaths.Supervision.Campaigns);\r\n message.error(\r\n `Failed to find Campaign setting types Returned to home page`\r\n );\r\n }\r\n }\r\n\r\n}\r\n","import { RoutesPaths } from \"../../../../constants/RoutePaths\";\r\nimport { BreadCrumb } from \"../../../../models/BreadCrumb\";\r\n\r\nexport const SupervisionBreadcrumbs = {\r\n\r\n Affiliates: (affiliateName: string) => {\r\n return new BreadCrumb(affiliateName, null, null);\r\n },\r\n Campaigns: (campaignName: string) => {\r\n return new BreadCrumb(campaignName, null, null);\r\n },\r\n Companies: (companyName: string) => {\r\n return new BreadCrumb(companyName, null, null);\r\n },\r\n};\r\n","import { RoutesPaths } from \"../../../../constants/RoutePaths\";\r\nimport { BreadCrumb } from \"../../../../models/BreadCrumb\";\r\n\r\n\r\n\r\nexport const CampaignSettingBreadCrumbs =\r\n{\r\n\r\n CampaignSetting: (campaignId: number) => {\r\n return new BreadCrumb(\r\n \"Campaign-Settings\",\r\n RoutesPaths.Supervision.CampaignTrackSystemRoutes.BuildCampaignRoute(campaignId),\r\n null\r\n );\r\n },\r\n CampaignSettingAudit : (CampaignName: string) => {\r\n return new BreadCrumb(CampaignName, null, null);\r\n },\r\n AddCampaignSettingAudit : (campaignId: number) => {\r\n return new BreadCrumb(\r\n \"Add Audit\",\r\n RoutesPaths.Supervision.CampaignTrackSystemRoutes.BuildAddCampaignSettingAudit(campaignId),\r\n null\r\n );\r\n },\r\n EditCampaignSettingAudit: (campaignId: number, campaignSettingAuditId: string) => {\r\n return new BreadCrumb(\r\n \"Edit\",\r\n RoutesPaths.Supervision.CampaignTrackSystemRoutes.BuildEditCampaignSettingAudit(\r\n campaignId,\r\n campaignSettingAuditId\r\n ),\r\n null\r\n );\r\n }\r\n\r\n}\r\n\r\nexport default CampaignSettingBreadCrumbs;","\r\nimport { User } from \"../../models/users/User\";\r\nimport { UserResponse } from \"../../models/users/UserResponse\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\nexport class UserService extends BaseService {\r\n async GetAll(): Promise {\r\n return await this.Get(\"/\");\r\n }\r\n\r\n async GetUserById(userId: number | string): Promise {\r\n return await this.Get(`/${userId}`);\r\n }\r\n\r\n async GetByUserEmail(email: string): Promise {\r\n return await this.Get(`/get-by/email/${email}`);\r\n }\r\n}\r\n\r\nexport const userService = new UserService(\"users\");","import { Spin } from \"antd\";\r\nimport React, { CSSProperties } from \"react\";\r\n\r\ninterface Props {\r\n position: \"center\" | \"pad-top\" | \"normal\";\r\n}\r\n\r\nconst Loader = (props: Props) => {\r\n\r\n const createStyles = (): CSSProperties => {\r\n switch (props.position) {\r\n case \"center\":\r\n return {\r\n left: \"50%\",\r\n top: \"50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n };\r\n case \"pad-top\":\r\n return {\r\n marginTop: \"2rem\",\r\n };\r\n case \"normal\":\r\n return {};\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Loader;\r\n","import { AutoComplete } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useState } from \"react\";\r\n\r\nimport useOnInitAsync from \"../../../hooks/useOnInitAsync\";\r\nimport { UserResponse } from \"../../../models/users/UserResponse\";\r\nimport { userService } from \"../../../services/users/UserService\";\r\nimport Loader from \"../loader/Loader\";\r\n\r\ntype Props = {\r\n defaultValue?: UserResponse;\r\n onChange?: (user: UserResponse | undefined) => void;\r\n onClear?: () => void;\r\n};\r\n\r\nconst SelectUserInput = (props: Props) => {\r\n const { defaultValue, onChange, onClear } = props;\r\n\r\n const [users, setUsers] = useState([]);\r\n const [usersFiltered, setUsersFiltered] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n useOnInitAsync(async () => {\r\n const _users = await userService.GetAll();\r\n setUsers(_users);\r\n setUsersFiltered(_users);\r\n\r\n setIsLoading(false);\r\n });\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n const initialValue = () => {\r\n if (!defaultValue) return \"\";\r\n\r\n return displayValue(defaultValue);\r\n };\r\n\r\n const displayValue = (user: UserResponse) => `${user.name} (${user.id})`;\r\n\r\n return (\r\n \r\n ({\r\n value: displayValue(user),\r\n }))}\r\n style={{ width: 300 }}\r\n defaultValue={initialValue()}\r\n onSelect={(value: string) => {\r\n const match = value.match(/\\d+/gi);\r\n if (match == null) return;\r\n\r\n const userId = Number(match[0]);\r\n const selectedUser = users.find((x) => x.id == userId);\r\n\r\n onChange && onChange(selectedUser);\r\n }}\r\n onSearch={(value) => {\r\n if (value == undefined || value == \"\") {\r\n setUsersFiltered(users);\r\n }\r\n\r\n setUsersFiltered(\r\n users.filter((x) =>\r\n x.name.toLowerCase().includes(value.toLowerCase())\r\n )\r\n );\r\n }}\r\n allowClear\r\n onClear={() => {\r\n onClear && onClear();\r\n }}\r\n placeholder=\"User Name\"\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default observer(SelectUserInput);\r\n","import { Upload, message, Button, Row, Col } from 'antd';\r\nimport { UploadOutlined } from '@ant-design/icons';\r\nimport campaignSettingAuditService from '../../services/campaign-setting/CampaignSettingAuditService';\r\nimport { useContext, useState } from 'react';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { RootStoreContext } from '../../stores/RootStoreContext';\r\nimport { Box } from '@material-ui/core';\r\nimport \"./UploadCsvFile.scss\";\r\n\r\nconst UploadCsvFile = () => {\r\n\r\n const [uploadDisabled, setUploadDisabled] = useState(true);\r\n const { userStore } = useContext(RootStoreContext);\r\n const [infoFile, setInfoFile] = useState({});\r\n\r\n const onChange = (info: any) => {\r\n\r\n if (info.file.status !== 'uploading') {\r\n // console.log(info.file, info.fileList);\r\n }\r\n if (info.file.status === 'done') {\r\n message.success(`${info.file.name} file uploaded successfully`);\r\n } else if (info.file.status === 'error') {\r\n message.error(`${info.file.error}. ${info.file.name} file upload failed.`);\r\n }\r\n }\r\n\r\n const uploadFile = async () => {\r\n\r\n\r\n await campaignSettingAuditService.UploadFile(infoFile.file, userStore.User!.id.toString())\r\n .then((response) => {\r\n if (response.isError) {\r\n infoFile.onError(response.body);\r\n }\r\n else\r\n infoFile.onSuccess(\"ok\");\r\n\r\n setUploadDisabled(true);\r\n })\r\n\r\n\r\n }\r\n\r\n const chooseFile = (info: any) => {\r\n\r\n setInfoFile(info);\r\n setUploadDisabled(false);\r\n\r\n }\r\n\r\n const onRemove = () => {\r\n\r\n setUploadDisabled(true);\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n \r\n }\r\n type=\"primary\"\r\n shape=\"round\"\r\n size=\"large\"\r\n style={{\r\n alignItems: \"center\",\r\n display: 'inline-flex',\r\n width: 177,\r\n }}>\r\n Choose File\r\n \r\n \r\n \r\n \r\n }\r\n type=\"primary\"\r\n shape=\"round\"\r\n size=\"large\"\r\n style={{\r\n display: 'inline-flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginLeft: 10\r\n }} >\r\n Upload\r\n \r\n \r\n )\r\n}\r\n\r\n\r\n\r\nexport default observer(UploadCsvFile);","import { useContext, useState } from \"react\";\r\nimport { Link, useHistory, useParams } from \"react-router-dom\";\r\nimport useOnInitAsync from \"../../../hooks/useOnInitAsync\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { CampaignSettingsAuditResponse } from \"../../../models/campaign-track-system/CampaignSettingsAuditResponse\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport AuditTable from \"../../../components/campaign-track-system/CampaignSettingAuditTable\";\r\nimport { CampaignSettingContextInitializers } from \"./helpers/CampaignSettingContextInitializers\";\r\nimport { AutoComplete, Button, DatePicker, Empty, message, Space } from \"antd\";\r\nimport { BiPlusCircle } from \"react-icons/bi\";\r\nimport { RoutesPaths } from \"../../../constants/RoutePaths\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport CampaignSettingBreadCrumbs from \"./helpers/CampaignSetting.breadcrumbs\";\r\nimport { ISODateTime } from \"../../../types/types\";\r\nimport { UserResponse } from \"../../../models/users/UserResponse\";\r\nimport { Moment } from \"moment\";\r\nimport SelectUserInput from \"../../../components/general/inputs/SelectUserInput\";\r\nimport Loader from \"../../../components/general/loader/Loader\";\r\nimport moment from \"moment\";\r\nimport campaignSettingAuditService from \"../../../services/campaign-setting/CampaignSettingAuditService\";\r\nimport UploadCsvFile from \"../../../components/campaign-track-system/UploadCsvFile\";\r\n\r\n\r\ninterface Props { }\r\n\r\ntype FilterSettings = {\r\n userId?: number;\r\n from?: ISODateTime;\r\n to?: ISODateTime;\r\n optionTypeId?: string;\r\n campaignId?: number;\r\n};\r\n\r\nconst CampaignTrackAuditPage = (props: Props) => {\r\n const match = useParams<{ campaignId: string }>();\r\n const { campaignSettingStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n\r\n const [filterSettings, setFilterSettings] = useState({ campaignId: Number(match.campaignId) });\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [userInputValue, setUserInputValue] = useState();\r\n\r\n const [typeValue, setTypeValue] = useState();\r\n const campaignSettingTypes = campaignSettingStore.CampaignSettingTypes;\r\n\r\n usePageInitialization({\r\n\r\n onInitAsync: async () => {\r\n await CampaignSettingContextInitializers.InitializeCampaignAuditData(\r\n Number(match.campaignId),\r\n campaignSettingStore,\r\n history\r\n )\r\n\r\n await CampaignSettingContextInitializers.InitializeCampaignSettingTypes(\r\n campaignSettingStore,\r\n history\r\n )\r\n\r\n setIsLoading(false);\r\n },\r\n\r\n onCampaignContextCallBack: (campaign, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Campaign Audits for: ${campaign.campaignName}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Campaigns(campaign.campaignName),\r\n CampaignSettingBreadCrumbs.CampaignSetting(campaign.campaignID),\r\n );\r\n },\r\n })\r\n\r\n\r\n if (!campaignSettingStore.CampaignSettingsAuditsResponse) {\r\n return ;\r\n }\r\n\r\n\r\n const filterHandler = async () => {\r\n setIsLoading(true);\r\n await campaignSettingAuditService.GetFilteredCampaignSettingsAudits(filterSettings)\r\n .then(\r\n (audits) => {\r\n\r\n campaignSettingStore.SetCampaignSettingsAudits(audits);\r\n }\r\n )\r\n\r\n setIsLoading(false);\r\n message.info(\"Filtered actions\");\r\n };\r\n\r\n const initialDateValue = () => {\r\n let date: [Moment?, Moment?] = [undefined, undefined];\r\n\r\n if (filterSettings.from) {\r\n date[0] = moment(filterSettings.from);\r\n }\r\n if (filterSettings.to) {\r\n date[1] = moment(filterSettings.to);\r\n }\r\n return date;\r\n };\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n const typeOptions = campaignSettingTypes\r\n ?.filter((x) =>\r\n x.settingType\r\n .toLowerCase()\r\n\r\n )\r\n .map((x) => ({ value: x.settingType, id: x.id }));\r\n\r\n\r\n return (\r\n\r\n \r\n \r\n {\r\n setUserInputValue(user);\r\n setFilterSettings({\r\n ...filterSettings,\r\n userId: user?.id,\r\n });\r\n }}\r\n onClear={() => {\r\n setUserInputValue(undefined);\r\n setFilterSettings({\r\n ...filterSettings,\r\n userId: undefined,\r\n });\r\n }}\r\n />\r\n {\r\n setFilterSettings({\r\n ...filterSettings,\r\n optionTypeId: selectedType?.id,\r\n });\r\n setTypeValue(typeValue);\r\n }}\r\n allowClear\r\n onClear={() => {\r\n setFilterSettings({\r\n ...filterSettings,\r\n optionTypeId: undefined,\r\n });\r\n setTypeValue(\"\");\r\n }}\r\n value={typeValue}\r\n placeholder=\"Setting Type\"\r\n />\r\n\r\n {\r\n const from = date?.[0];\r\n const to = date?.[1];\r\n\r\n setFilterSettings({\r\n ...filterSettings,\r\n from: from?.toISOString() || undefined,\r\n to: to?.toISOString() || undefined,\r\n });\r\n }}\r\n defaultValue={initialDateValue() as any}\r\n />\r\n \r\n Filter\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Add New Audit\r\n \r\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 observer(CampaignTrackAuditPage);","import { AutoComplete, Button, Col, DatePicker, Form, Input, message, Row, TimePicker, Typography } from \"antd\";\r\nimport { useContext, useEffect, useState } from \"react\";\r\nimport { CampaignSettingTypeResponse } from \"../../models/campaign-track-system/CampaignSettingTypeResponse\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport campaignSettingTypeService from \"../../services/campaign-setting/CampaignSettingTypeService\"\r\nimport { CampaignSettingTypeValueOption } from \"../../models/campaign-track-system/CampaignSettingTypeValueOption\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { CampaignSettingsAuditCreateModel } from \"../../models/campaign-track-system/CampaignSettingsAuditCreateModel\";\r\nimport { CampaignSettingsStatus } from \"../../models/campaign-track-system/CampaignSettingsStatus\";\r\nimport CampaignSettingAuditService from \"../../services/campaign-setting/CampaignSettingAuditService\";\r\nimport moment from \"moment\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport { FetchError } from \"../../exceptions/AlgoSupervisionExceptions\";\r\nimport { RoutesPaths } from \"../../constants/RoutePaths\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\ninterface Props {\r\n campaignAuditId: string;\r\n campaignId: number;\r\n}\r\n\r\nconst layout = {\r\n labelCol: { span: 4 },\r\n};\r\n\r\nconst layoutType = {\r\n labelCol: { span: 8 },\r\n};\r\n\r\nconst layoutValueOptionlabel = {\r\n labelCol: { span: 6 },\r\n};\r\n\r\nconst AuditCampaignForm = (props: Props) => {\r\n\r\n const { campaignSettingStore, userStore } = useContext(RootStoreContext);\r\n\r\n const { campaignId, campaignAuditId } = props;\r\n\r\n const [selectedType, setSelectedType,] = useState();\r\n const [valueOptionTypes, setValueOptionTypes] = useState();\r\n const [selectedValueOption, setSelectedValueOption] = useState();\r\n const [caseNumber, setCaseNumber] = useState();\r\n const [comment, setComment] = useState();\r\n const [campaignSettingTypeTextValue, setCampaignSettingTypeTextValue,] = useState(\"\");\r\n\r\n const [date, setDate] = useState((moment(Date.now())));\r\n\r\n const history = useHistory();\r\n\r\n const [typeOptions, setTypeOptions] = useState();\r\n\r\n useEffect(() => {\r\n setTypeOptions(campaignSettingStore.CampaignSettingTypes\r\n ?.filter((x) =>\r\n x.settingType\r\n .toLowerCase()\r\n )\r\n .map((x) => ({ value: x.settingType, id: x.id, dataType: x.dataType })))\r\n\r\n },[campaignSettingStore.CampaignSettingTypes])\r\n\r\n useEffect(() => {\r\n\r\n if (campaignSettingStore.updateOperationState) {\r\n setUpdateState();\r\n return;\r\n }\r\n cleanUpState();\r\n }, [campaignSettingStore.updateOperationState]);\r\n\r\n\r\n const setUpdateState = () => {\r\n const selectedAudit = campaignSettingStore.SelectedCampaignSettingAudit;\r\n\r\n const typeRes = campaignSettingStore.CampaignSettingTypes?.find(\r\n (x) => x.settingType == selectedAudit?.type\r\n );\r\n setSelectedType(typeRes);\r\n setCampaignSettingTypeTextValue(typeRes?.settingType);\r\n setSelectedValueOption(selectedAudit?.value);\r\n setCaseNumber(selectedAudit?.caseNumber);\r\n setComment(selectedAudit?.comment);\r\n setDate(moment(selectedAudit?.creationDate));\r\n\r\n };\r\n\r\n const setSelectedTypeOnSelection = async (data: string, selectedType: any) => {\r\n\r\n setCampaignSettingTypeTextValue(data);\r\n\r\n setSelectedType(selectedType);\r\n\r\n const valueOptions = await campaignSettingTypeService.GetSettingTypeValueOptionsPerType(selectedType?.id);\r\n setValueOptionTypes(valueOptions);\r\n\r\n }\r\n\r\n const onSubmit = async (e: React.MouseEvent) => {\r\n\r\n let auditCreateModel: CampaignSettingsAuditCreateModel = {\r\n campaignId: campaignId,\r\n creationDate: date,\r\n campaignSettingTypeId: selectedType?.id,\r\n caseNumber: caseNumber || \"\",\r\n status: CampaignSettingsStatus.Active,\r\n userId: userStore.User!.id,\r\n value: selectedValueOption,\r\n comment: comment\r\n };\r\n\r\n try {\r\n if (campaignSettingStore.updateOperationState) {\r\n\r\n const updatedAudit = await CampaignSettingAuditService.UpdateCampaignSettingsAudit(campaignAuditId, auditCreateModel);\r\n message.success(\"Campaign setting audit created successfully\");\r\n }\r\n\r\n else {\r\n\r\n const createdAudit = await CampaignSettingAuditService.CreateCampaignSettingsAudit(auditCreateModel);\r\n message.success(\"Campaign setting audit updated successfully\");\r\n }\r\n\r\n history.push(\r\n RoutesPaths.Supervision.CampaignTrackSystemRoutes.BuildCampaignRoute(\r\n campaignId\r\n ));\r\n\r\n }\r\n catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n }\r\n\r\n\r\n cleanUpState();\r\n }\r\n\r\n const cleanUpState = () => {\r\n setCaseNumber(\"\");\r\n setComment(\"\");\r\n setSelectedValueOption(\"\");\r\n setDate(moment(Date.now()));\r\n setSelectedType(undefined);\r\n setCampaignSettingTypeTextValue(\"\");\r\n };\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n \r\n \r\n {campaignSettingStore.updateOperationState ? (\r\n Edit Audit) : (\r\n Create Audit\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n option!.value?.toUpperCase().indexOf(inputValue.toUpperCase()) !== -1\r\n }\r\n\r\n placeholder=\"Choose audit criterion\"\r\n />}\r\n \r\n \r\n \r\n \r\n ({\r\n value: x.valueOption,\r\n }))}\r\n onSelect={(data: string) => {\r\n setSelectedValueOption(data);\r\n }}\r\n onSearch={(data: string) =>\r\n setSelectedValueOption(data)\r\n }\r\n filterOption={(inputValue, option) =>\r\n option!.value?.toUpperCase().indexOf(inputValue.toUpperCase()) !== -1\r\n }\r\n allowClear={true}\r\n placeholder=\"Choose value\"\r\n value={selectedValueOption}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n setDate(dateInput);\r\n }}\r\n />\r\n {\r\n setDate(time);\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setCaseNumber(e.target.value)\r\n }\r\n value={caseNumber}\r\n placeholder=\"123456\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n setComment(e.target.value)}\r\n value={comment}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {campaignSettingStore.updateOperationState ? (\r\n Edit Audit) : (\r\n Create Audit\r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default observer(AuditCampaignForm);\r\n\r\n\r\n","import { observer } from \"mobx-react-lite\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport AuditCampaignForm from \"../../../components/campaign-track-system/AuditCampaignForm\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport CampaignSettingBreadCrumbs from \"./helpers/CampaignSetting.breadcrumbs\";\r\nimport { CampaignSettingContextInitializers } from \"./helpers/CampaignSettingContextInitializers\";\r\n\r\n\r\nconst CampaignTrackEditAuditPage = () => {\r\n\r\n const { campaignSettingStore } = useContext(RootStoreContext);\r\n const match = useParams<{ campaignId: string; auditId: string }>();\r\n const history = useHistory();\r\n\r\n usePageInitialization({\r\n\r\n onInitAsync: async () => {\r\n await CampaignSettingContextInitializers.InitializeCampaignAuditData(\r\n Number(match.campaignId),\r\n campaignSettingStore,\r\n history\r\n );\r\n\r\n await CampaignSettingContextInitializers.InitializeCampaignSettingTypes(\r\n campaignSettingStore,\r\n history\r\n )\r\n\r\n await CampaignSettingContextInitializers.InitializeSelectedCampaignSettingAudit(\r\n match.auditId,\r\n campaignSettingStore,\r\n history).then(async () =>\r\n await campaignSettingStore.SetupdateOperationState(true)\r\n );\r\n },\r\n\r\n onCampaignContextCallBack: (campaign, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Campaign Audits for: ${campaign.campaignName}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Campaigns(campaign.campaignName),\r\n CampaignSettingBreadCrumbs.CampaignSetting(campaign.campaignID),\r\n CampaignSettingBreadCrumbs.EditCampaignSettingAudit(\r\n campaign.campaignID,\r\n match.auditId\r\n )\r\n );\r\n },\r\n })\r\n\r\n return (\r\n \r\n \r\n )\r\n\r\n}\r\n\r\nexport default observer(CampaignTrackEditAuditPage);","export enum EActionTypes {\r\n IndeedCreateCampaign = 1,\r\n IndeedUpdateCampaignDetails = 2,\r\n IndeedUpdateCampaignBudget = 3,\r\n IndeedAttachJobsToCampaign = 4,\r\n IndeedAlgoControlRequest = 5\r\n}","import { Action } from \"../../models/users/Action\";\r\nimport { ActionCreateRequest } from \"../../models/users/ActionCreateRequest\";\r\nimport { ActionResponse } from \"../../models/users/ActionResponse\";\r\nimport { ISODateTime } from \"../../types/types\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\nclass UserActionService extends BaseService {\r\n\r\n\r\n public async GetById(id: number) {\r\n return await this.Get(`/${id}`);\r\n }\r\n\r\n public async Create(createRequest: ActionCreateRequest): Promise {\r\n return await this.Post(\"/\", createRequest);\r\n }\r\n\r\n public async GetActionsFiltered(getActionsRequest: {\r\n userId?: number,\r\n from?: ISODateTime,\r\n to?: ISODateTime,\r\n actionTypeIds?: string\r\n }): Promise {\r\n let queryString = \"\";\r\n if (getActionsRequest.actionTypeIds) {\r\n queryString += `&actionTypeIds=${getActionsRequest.actionTypeIds}`\r\n }\r\n if (getActionsRequest.userId) {\r\n queryString += `&userId=${getActionsRequest.userId}`\r\n }\r\n if (getActionsRequest.from) {\r\n queryString += `&from=${getActionsRequest.from}`\r\n }\r\n if (getActionsRequest.to) {\r\n queryString += `&to=${getActionsRequest.to}`\r\n }\r\n let url = `/?q${queryString}`\r\n return await this.Get(url);\r\n }\r\n}\r\n\r\n\r\nexport const userActionService = new UserActionService(\"userActions\");","import { AiOutlineFileText } from \"react-icons/ai\";\r\n\r\nimport { userActionService } from \"../../services/actions/UserActionService\";\r\nimport { UIStore } from \"../../stores/UIStore\";\r\nimport { ActionsBuilder } from \"../general/supervision-table/types\";\r\nimport { UserActionsTableDto } from \"./UserActionsTable.dto\";\r\n\r\ntype UserActionsTableBuilderContext = {\r\n uiStore: UIStore;\r\n};\r\n\r\nexport const UserActionsTableBuilder: ActionsBuilder<\r\n UserActionsTableDto,\r\n UserActionsTableBuilderContext\r\n> = ({ uiStore }) => [\r\n {\r\n Icon: AiOutlineFileText,\r\n text: \"View Data\",\r\n isDisplayed: () => true,\r\n action: async (userActionDto) => {\r\n const userAction = await userActionService.GetById(\r\n userActionDto._id\r\n );\r\n uiStore.SetPopUp({\r\n body: userAction.data ?? \"\",\r\n title: \"Action data\",\r\n hideCancelButton: true,\r\n });\r\n },\r\n },\r\n];\r\n","export enum ELevelTypes {\r\n Default = 0,\r\n Group = 1,\r\n Campaign = 2,\r\n Company = 3,\r\n Affiliate = 4\r\n}","\r\nimport { Action } from \"../../models/users/Action\";\r\nimport { ActionResponse } from \"../../models/users/ActionResponse\";\r\nimport { FormatDate, FormatDateTime } from \"../../utils/DateHelpers\";\r\nimport { ELevelTypes } from \"./ELevelTypes\";\r\n\r\nexport class UserActionsTableDto {\r\n public _id: number;\r\n public user: string;\r\n public entityId: number;\r\n public entityLevel: string;\r\n public userActionType: string;\r\n public description: string;\r\n public timeStamp: string;\r\n\r\n \r\n constructor(action: ActionResponse) {\r\n this._id = action.id;\r\n this.user = action.userName;\r\n this.entityId = action.entityId;\r\n this.entityLevel = ELevelTypes[action.entityLevel];\r\n this.userActionType = action.actionType.name;\r\n this.description = action.description;\r\n this.timeStamp = FormatDateTime(action.creationDate);\r\n }\r\n}","import { Empty } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { useContext } from \"react\";\r\n\r\nimport { ActionResponse } from \"../../models/users/ActionResponse\";\r\nimport { EActionTypes } from \"../../models/users/EActionTypes\";\r\nimport { RootStore } from \"../../stores/RootStore\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport SupervisionTable from \"../general/supervision-table/SupervisionTable\";\r\nimport { UserActionsTableBuilder } from \"./UserActionsTable.actions\";\r\nimport { UserActionsTableDto } from \"./UserActionsTable.dto\";\r\n\r\ntype Props = {\r\n userActions: ActionResponse[];\r\n};\r\n\r\nconst UserActionsTable = (props: Props) => {\r\n const { userActions } = props;\r\n\r\n const { uiStore } = useContext(RootStoreContext);\r\n\r\n if (userActions.length == 0) {\r\n return ;\r\n }\r\n\r\n return (\r\n new UserActionsTableDto(userAction)\r\n )}\r\n rowActionSettings={{\r\n actions: UserActionsTableBuilder({\r\n uiStore,\r\n }),\r\n showActionsOnLastColumn: true,\r\n showActionsOnRightClick: true,\r\n }}\r\n categoricalColumns={[\r\n {\r\n column: \"userActionType\",\r\n possibleValues: EActionTypes\r\n }\r\n ]}\r\n />\r\n );\r\n};\r\n\r\nexport default observer(UserActionsTable);\r\n","import { AutoComplete } from \"antd\";\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\ntype Props = {\r\n options: T[];\r\n optionsToAutoCompleteMapFunction: (value: T) => { value: string };\r\n onSelectHandle: (value: T) => void;\r\n initialValue?: string;\r\n placeHolder?: string;\r\n};\r\n\r\nconst SupervisionAutoComplete = (props: Props) => {\r\n const {\r\n options,\r\n optionsToAutoCompleteMapFunction,\r\n onSelectHandle,\r\n initialValue,\r\n placeHolder,\r\n } = props;\r\n\r\n const [searchText, setSearchText] = useState(initialValue ?? \"\");\r\n const [filteredOptions, setFilteredOptions] = useState(options);\r\n\r\n useEffect(() => {\r\n if (!initialValue) return;\r\n setFilteredOptions(\r\n options.filter((option) =>\r\n optionsToAutoCompleteMapFunction(option)\r\n .value.toLowerCase()\r\n .includes(initialValue.toLowerCase())\r\n )\r\n );\r\n }, []);\r\n\r\n return (\r\n {\r\n const selectedOption = options.find((option) =>\r\n optionsToAutoCompleteMapFunction(option)\r\n .value.toLowerCase()\r\n .includes(value.toLowerCase())\r\n );\r\n if (!selectedOption) return;\r\n\r\n onSelectHandle(selectedOption);\r\n setFilteredOptions([selectedOption]);\r\n setSearchText(value);\r\n }}\r\n onSearch={(value) => {\r\n setSearchText(value);\r\n setFilteredOptions(\r\n options.filter((option) =>\r\n optionsToAutoCompleteMapFunction(option)\r\n .value.toLowerCase()\r\n .includes(value.toLowerCase())\r\n )\r\n );\r\n }}\r\n allowClear\r\n onClear={() => {\r\n setSearchText(\"\");\r\n setFilteredOptions(options);\r\n }}\r\n placeholder={placeHolder}\r\n />\r\n );\r\n};\r\n\r\nexport default SupervisionAutoComplete;\r\n","import { Action } from \"../../models/users/Action\";\r\nimport { ActionResponse } from \"../../models/users/ActionResponse\";\r\nimport { ActionType } from \"../../models/users/ActionType\";\r\nimport { ISODateTime } from \"../../types/types\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\nclass ActionTypeService extends BaseService {\r\n public async GetAll(): Promise {\r\n \r\n return await this.Get(\"/\");\r\n }\r\n}\r\n\r\n\r\nexport const actionTypeService = new ActionTypeService(\"userActionTypes\");","import { Button, DatePicker, message, Space } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport moment, { Moment } from \"moment\";\r\nimport { useState } from \"react\";\r\n\r\nimport UserActionsTable from \"../../../components/actions/UserActionsTable\";\r\nimport SelectUserInput from \"../../../components/general/inputs/SelectUserInput\";\r\nimport SupervisionAutoComplete from \"../../../components/general/inputs/SupervisionAutoComplete\";\r\nimport Loader from \"../../../components/general/loader/Loader\";\r\nimport useOnInitAsync from \"../../../hooks/useOnInitAsync\";\r\nimport { ActionResponse } from \"../../../models/users/ActionResponse\";\r\nimport { ActionType } from \"../../../models/users/ActionType\";\r\nimport { UserResponse } from \"../../../models/users/UserResponse\";\r\nimport { actionTypeService } from \"../../../services/actions/ActionTypeService\";\r\nimport { userActionService } from \"../../../services/actions/UserActionService\";\r\nimport { ISODateTime } from \"../../../types/types\";\r\n\r\ntype Props = {};\r\n\r\ntype FilterSettings = {\r\n userId?: number;\r\n from?: ISODateTime;\r\n to?: ISODateTime;\r\n actionTypeIds?: string;\r\n};\r\n\r\nconst UserActionsTablePage = (props: Props) => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [userActions, setUserActions] = useState([]);\r\n const [filterSettings, setFilterSettings] = useState({});\r\n const [userInputValue, setUserInputValue] = useState<\r\n UserResponse | undefined\r\n >();\r\n const [actionTypes, setActionTypes] = useState([]);\r\n\r\n useOnInitAsync(async () => {\r\n setUserActions(await userActionService.GetActionsFiltered({}));\r\n setActionTypes(await actionTypeService.GetAll());\r\n setIsLoading(false);\r\n });\r\n\r\n const filterHandler = async () => {\r\n setIsLoading(true);\r\n setUserActions(\r\n await userActionService.GetActionsFiltered(filterSettings)\r\n );\r\n setIsLoading(false);\r\n message.info(\"Filtered actions\");\r\n };\r\n\r\n const initialActionTypeValue = () => {\r\n if (!filterSettings.actionTypeIds) return \"\";\r\n\r\n const actionType = actionTypes.find(\r\n (x) => x.id == Number(filterSettings.actionTypeIds)\r\n );\r\n return actionType?.name;\r\n };\r\n\r\n const initialDateValue = () => {\r\n let date: [Moment?, Moment?] = [undefined, undefined];\r\n\r\n if (filterSettings.from) {\r\n date[0] = moment(filterSettings.from);\r\n }\r\n if (filterSettings.to) {\r\n date[1] = moment(filterSettings.to);\r\n }\r\n return date;\r\n };\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n setUserInputValue(user);\r\n setFilterSettings({\r\n ...filterSettings,\r\n userId: user?.id,\r\n });\r\n }}\r\n onClear={() => {\r\n setUserInputValue(undefined);\r\n setFilterSettings({\r\n ...filterSettings,\r\n userId: undefined,\r\n });\r\n }}\r\n />\r\n \r\n ({\r\n value: acionType.name,\r\n })}\r\n onSelectHandle={(actionType) => {\r\n setFilterSettings({\r\n ...filterSettings,\r\n actionTypeIds: actionType.id.toString(),\r\n });\r\n }}\r\n initialValue={initialActionTypeValue()}\r\n placeHolder=\"Action Types\"\r\n />\r\n \r\n\r\n {\r\n const from = date?.[0];\r\n const to = date?.[1];\r\n\r\n setFilterSettings({\r\n ...filterSettings,\r\n from: from?.toISOString() || undefined,\r\n to: to?.toISOString() || undefined,\r\n });\r\n }}\r\n defaultValue={initialDateValue() as any}\r\n />\r\n \r\n Filter\r\n \r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(UserActionsTablePage);\r\n","\r\nexport enum IndeedCampaignBudgetType {\r\n OneTime = 1,\r\n Monthly = 2\r\n}\r\n","export enum IndeedCampaignObjectiveType {\r\n MAXIMUM = 1,\r\n BALANCE = 2,\r\n TARGET_APPLICATIONS = 3,\r\n TARGET_COST_PER_APPLICATION = 4\r\n}\r\n\r\nexport const INDEED_CAMPAIGN_OBJECTIVE_DEFAULT_VALUE = IndeedCampaignObjectiveType.BALANCE;","import { ISODateTime } from \"../../types/types\";\r\nimport { IndeedBudgetFirstMonthBehavior } from \"./IndeedBudgetFirstMonthBehavior\";\r\nimport { IndeedCampaignObjective } from \"./IndeedCampaignObjective\";\r\nimport { IndeedCampaignStatus } from \"./IndeedCampaignStatus\";\r\n\r\nexport class IndeedCreateCampaignEventPayload {\r\n constructor(\r\n public name: string,\r\n public userId: number,\r\n public status: IndeedCampaignStatus,\r\n // public trackingToken: string,\r\n public jobsList: number[],\r\n public startDate: ISODateTime,\r\n public pandoCampaignId: number,\r\n public pandoCompanyId: number,\r\n public objective: IndeedCampaignObjective,\r\n public jobsSourceName?: string,\r\n public budgetFirstMonthBehavior?: IndeedBudgetFirstMonthBehavior,\r\n public fixedEndDate?: ISODateTime,\r\n public targetEndDate?: ISODateTime,\r\n public budgetOnetimeLimit?: number,\r\n public budgetMonthlyLimit?: number,\r\n ) {\r\n }\r\n}\r\n","\r\nexport enum IndeedEndDateType {\r\n Fixed = 1,\r\n Target = 2\r\n}\r\n","\r\nimport { APIResponse } from \"../../models/APIResponse\";\r\nimport { IndeedAttachJobsToCampaignEventPayload } from \"../../models/indeed-manager/IndeedAttachJobsToCampaignEventPayload\";\r\nimport { IndeedCampaign } from \"../../models/indeed-manager/IndeedCampaign\";\r\nimport { IndeedCreateCampaignEventPayload } from \"../../models/indeed-manager/IndeedCreateCampaignEventPayload\";\r\nimport { IndeedSubAccount } from \"../../models/indeed-manager/IndeedSubAccount\";\r\nimport { IndeedUpdateCampaignBudgetEventPayload } from \"../../models/indeed-manager/IndeedUpdateCampaignBudgetEventPayload\";\r\nimport { IndeedUpdateCampaignEventPayload } from \"../../models/indeed-manager/IndeedUpdateCampaignEventPayload\";\r\nimport { PLIndeedData } from \"../../models/indeed-manager/PLIndeedData\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\nexport class IndeedService\r\n extends BaseService {\r\n\r\n /**\r\n * Gets a list of indeed campaigns by PL campaign ID\r\n * The campaigns are returned WITHOUT Indeed Job populated\r\n */\r\n async GetIndeedCampaignsByPLCampaignId(pandoLogicCampaignId: number) {\r\n const PLIndeedData = await this.Get(`/get-data/${pandoLogicCampaignId}`);\r\n return PLIndeedData;\r\n }\r\n \r\n /**\r\n * Gets a indeed Sub Account by PL campaign ID\r\n * \r\n */\r\n async GetIndeedSubAccountByCompanyId(companyId?: number) {\r\n const IndeedSubAccount = await this.Get(`/indeed-sub-account/${companyId}`);\r\n return IndeedSubAccount;\r\n }\r\n\r\n\r\n /**\r\n * Gets an Indeed campaign by Indeed campaign ID.\r\n * The campaign is returned with IndeedJobs list\r\n */\r\n async GetIndeedCampaignById(indeedCampaignId: string) {\r\n const indeedCampaign = await this.Get(`/campaigns/${indeedCampaignId}`);\r\n return indeedCampaign;\r\n }\r\n\r\n async CreateCampaign(createCampaignEventPayload: IndeedCreateCampaignEventPayload): Promise> {\r\n const apiResponse = await this.Post>(`/create-campaign`, createCampaignEventPayload);\r\n if (apiResponse.isError) {\r\n throw new Error(apiResponse.body);\r\n }\r\n return apiResponse;\r\n }\r\n\r\n async UpdateCampaign(updateCampaignEventPayload: IndeedUpdateCampaignEventPayload): Promise> {\r\n const apiResponse = await this.Patch>(`/update-campaign`, updateCampaignEventPayload);\r\n if (apiResponse.isError) {\r\n throw new Error(apiResponse.body);\r\n }\r\n return apiResponse;\r\n }\r\n\r\n async UpdateCampaignBudget(updateCampaignBudgetEventPayload: IndeedUpdateCampaignBudgetEventPayload): Promise> {\r\n const apiResponse = await this.Patch>(`/update-campaign-budget`, updateCampaignBudgetEventPayload);\r\n if (apiResponse.isError) {\r\n throw new Error(apiResponse.body);\r\n }\r\n return apiResponse;\r\n }\r\n\r\n async AttachJobsToCampaign(attachJobsToCampaignEventPayload: IndeedAttachJobsToCampaignEventPayload): Promise> {\r\n const apiResponse = await this.Post>(`/attach-jobs-to-campaign`, attachJobsToCampaignEventPayload);\r\n if (apiResponse.isError) {\r\n throw new Error(apiResponse.body);\r\n }\r\n return apiResponse;\r\n }\r\n}\r\n\r\nconst indeedService = new IndeedService(\"Indeed\");\r\nexport default indeedService","\r\n\r\nexport enum IndeedBudgetFirstMonthBehavior {\r\n StartNowProratedAmount = 1,\r\n StartNowFullAmount = 2,\r\n StartNextMonthFullAmount = 3\r\n}","import { Col, DatePicker, Form, Input, Row, Select, Typography } from \"antd\";\r\nimport moment, { Moment } from \"moment\";\r\nimport React, { useState } from \"react\";\r\n\r\nimport { IndeedBudgetFirstMonthBehavior } from \"../../models/indeed-manager/IndeedBudgetFirstMonthBehavior\";\r\nimport { IndeedCampaignBudgetType } from \"../../models/indeed-manager/IndeedCampaignBudgetType\";\r\nimport { IndeedEndDateType } from \"../../models/indeed-manager/IndeedEndDateType\";\r\n\r\nconst { Option } = Select;\r\n\r\ninterface Props {\r\n isStartDateEditable: boolean;\r\n budgetLimitTypeInitialValue?: IndeedCampaignBudgetType;\r\n}\r\n\r\nconst CampaignBudgetInputs = (props: Props) => {\r\n const { isStartDateEditable, budgetLimitTypeInitialValue } = props;\r\n \r\n const [budgetLimitType, setBudgetLimitType] = useState<\r\n IndeedCampaignBudgetType | undefined\r\n >(budgetLimitTypeInitialValue);\r\n\r\n const disableDateBeforeToday = (current?: Moment): boolean => {\r\n if (!current) return true;\r\n return current < moment().add(-1, \"day\").endOf(\"day\");\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Budget Settings\r\n \r\n \r\n \r\n\r\n \r\n {}}\r\n allowClear>\r\n Fixed\r\n Target\r\n \r\n \r\n\r\n \r\n {\r\n // console.log(val, dateString);\r\n }}\r\n onOk={(val) => {\r\n // console.log(val);\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n // console.log(val, dateString);\r\n }}\r\n onOk={(val) => {\r\n // console.log(val);\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setBudgetLimitType(value);\r\n }}>\r\n \r\n Budget One Time Limit\r\n \r\n {/* \r\n Budget Monthly Limit\r\n */}\r\n \r\n \r\n \r\n \r\n {\r\n if (value < 50 && value > 0) {\r\n return Promise.reject(\r\n \"Value must be greater than 50\"\r\n );\r\n }\r\n return Promise.resolve();\r\n },\r\n },\r\n ]}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {}}\r\n allowClear>\r\n \r\n Start Now Prorated Amount\r\n \r\n \r\n Start Now Full Amount\r\n \r\n \r\n Start Next Month Full Amount\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CampaignBudgetInputs;\r\n","\r\n\r\nexport enum IndeedCampaignStatus {\r\n Active = 1,\r\n Deleted = 2,\r\n Paused = 3\r\n}\r\n","import { Col, Form, Input, Row, Select, Typography } from \"antd\";\r\nimport { useState } from \"react\";\r\n\r\nimport { IndeedCampaignObjectiveType } from \"../../models/indeed-manager/IndeedCampaignObjectiveType\";\r\nimport { IndeedCampaignStatus } from \"../../models/indeed-manager/IndeedCampaignStatus\";\r\n\r\nconst { Option } = Select;\r\n\r\nconst campaignObjectiveTooltipText = `The objective set for the campaign. The four types of objectives are: MAXIMUM - Maximize applicant volume, BALANCE - optimize equally for speed, quantity, and cost, Applicants Goal - target a specific number of applies, CPA Goal - target a specific cost per apply.`;\r\n\r\ninterface Props {\r\n isStatusEditable: boolean;\r\n isCampaignObjectiveTypeEditable: boolean;\r\n campaignObjectiveTypeDefaultValue: IndeedCampaignObjectiveType;\r\n}\r\n\r\nconst CampaignDetailsInputs = (props: Props) => {\r\n const {\r\n isStatusEditable,\r\n isCampaignObjectiveTypeEditable,\r\n campaignObjectiveTypeDefaultValue,\r\n } = props;\r\n\r\n const [campaignObjectiveType, setCampaignObjectiveType] =\r\n useState(\r\n campaignObjectiveTypeDefaultValue\r\n );\r\n\r\n const isCampaignTargetInputDisabled = () => {\r\n return (\r\n campaignObjectiveType == IndeedCampaignObjectiveType.BALANCE ||\r\n campaignObjectiveType == IndeedCampaignObjectiveType.MAXIMUM\r\n );\r\n };\r\n\r\n /**\r\n * Components\r\n */\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n General Details\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Active\r\n Paused\r\n \r\n Deleted\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setCampaignObjectiveType(value);\r\n }}>\r\n \r\n Balance\r\n \r\n \r\n Maximum\r\n \r\n \r\n Applicants Goal\r\n \r\n \r\n CPA Goal\r\n \r\n \r\n \r\n \r\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 CampaignDetailsInputs;\r\n","\r\n\r\nimport { JobsCountResponse } from \"../../models/jobs/JobsCountResponse\";\r\nimport { Campaign } from \"../../models/operation/Campaign\";\r\nimport { CampaignPartial } from \"../../models/operation/CampaignPartial\";\r\nimport { GetJobsByIdApiDto } from \"../../models/operation/GetJobsByIdApiDto\";\r\nimport { Job } from \"../../models/operation/Job\";\r\nimport { CachePaginationBatchRequest } from \"../../models/pagination/CachePaginationBatchRequest\";\r\nimport { CachePaginationBatchResponse } from \"../../models/pagination/CachePaginationBatchResponse\";\r\nimport { PaginationParams } from \"../../models/pagination/PaginationParams\";\r\nimport { BaseService } from \"../BaseService\";\r\nimport { CachePaginationUtils } from \"../pagination/CachePaginationUtils\";\r\n\r\nexport class JobService extends BaseService {\r\n\r\n async GetJobsByCampaignIdPagination(campaignId: number, paginationParams: PaginationParams): Promise {\r\n const queryString = `campaignId=${campaignId}&offset=${paginationParams.offset}&limit=${paginationParams.limit}`\r\n const jobsPage = await\r\n this.Get(`?${queryString}`);\r\n return jobsPage;\r\n }\r\n\r\n async GetJobsByCompanyIdPagination(companyId: number, paginationParams: PaginationParams): Promise {\r\n const queryString = `companyId=${companyId}&offset=${paginationParams.offset}&limit=${paginationParams.limit}`\r\n const jobsPage = await\r\n this.Get(`?${queryString}`);\r\n return jobsPage;\r\n }\r\n\r\n\r\n async GetJobsByIds(getJobsByIdApiDto: GetJobsByIdApiDto): Promise {\r\n const jobs = await this.Post(`/byIds`, getJobsByIdApiDto);\r\n return jobs;\r\n }\r\n\r\n\r\n async GetCountAsync(getCountRequest: { campaignId?: number, companyId?: number }): Promise {\r\n let queryString = `?q`;\r\n if (getCountRequest.campaignId) {\r\n queryString += `&campaignId=${getCountRequest.campaignId}`\r\n }\r\n if (getCountRequest.companyId) {\r\n queryString += `&companyId=${getCountRequest.companyId}`\r\n }\r\n\r\n const jobCountRespose = await this.Get(`/count${queryString}`);\r\n return jobCountRespose;\r\n }\r\n\r\n\r\n}\r\n\r\n\r\nconst jobService = new JobService(\"Jobs\");\r\nexport default jobService;","\r\n\r\nexport const numberWithCommas = (num: number | string): string => {\r\n return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n}\r\n\r\nexport const stripCommas = (formattedNumber: string): number => {\r\n return Number(formattedNumber.replace(\",\", \"\"));\r\n}\r\n\r\nexport const isNumber = (value: string): boolean => {\r\n try {\r\n return !isNaN(Number(value));\r\n }\r\n catch {\r\n return false;\r\n }\r\n}\r\n\r\nexport const Round = (value: number, decimalPoints: number): number => {\r\n if (decimalPoints === 0) {\r\n return Math.round(value);\r\n }\r\n\r\n const multiplier = Math.pow(10, decimalPoints);\r\n return Math.round(value * multiplier) / multiplier;\r\n}\r\n\r\nexport const toFixed = (value: number, decimalPoints: number): number => {\r\n return Number(value.toFixed(decimalPoints));\r\n}","import \"./IndeedJobsToCampaignTransfer.scss\";\r\n\r\nimport { Transfer } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useContext, useEffect, useState } from \"react\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\nimport useOnInitAsync from \"../../hooks/useOnInitAsync\";\r\nimport { Job } from \"../../models/operation/Job\";\r\nimport indeedService from \"../../services/indeed/IndeedService\";\r\nimport jobService from \"../../services/operation/JobService\";\r\nimport { cachePaginatorService } from \"../../services/pagination/CachePaginatorService\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport { isNumber } from \"../../utils/NumbersHelper\";\r\nimport Loader from \"../general/loader/Loader\";\r\n\r\ninterface Props {\r\n plCampaignId: number;\r\n onChange: (jobIds: number[]) => void;\r\n indeedCampaignId?: string;\r\n onJobsLoad?: (jobIds: number[]) => void;\r\n}\r\n\r\nconst IndeedJobsToCampaignTransfer = (props: Props) => {\r\n const { plCampaignId, onChange, indeedCampaignId, onJobsLoad } = props;\r\n const [hasOptionsLoaded, setHasOptionsLoaded] = useState(false);\r\n const [jobOptions, setJobOptions] = useState([]);\r\n const [selectedJobIds, setSelectedJobIds] = useState();\r\n\r\n const { indeedStore } = useContext(RootStoreContext);\r\n\r\n useOnInitAsync(async () => {\r\n //TODO: refactor to a Paginator service (this method exhausts all pages)\r\n const jobsCount = await jobService.GetCountAsync({\r\n campaignId: plCampaignId,\r\n });\r\n let tasks = [];\r\n let batchSize = 1000;\r\n for (let index = 0; index < jobsCount.jobsCount; index += batchSize) {\r\n tasks.push(\r\n jobService.GetJobsByCampaignIdPagination(plCampaignId, {\r\n limit: batchSize,\r\n offset: index,\r\n })\r\n );\r\n }\r\n const jobBatches = await Promise.all(tasks);\r\n const _jobs = jobBatches.reduce((prev, cur) => {\r\n return [...prev, ...cur];\r\n }, []);\r\n\r\n setJobOptions(_jobs);\r\n setHasOptionsLoaded(true);\r\n });\r\n\r\n useEffect(() => {\r\n (async () => {\r\n if (indeedCampaignId) {\r\n const indeedCampaign =\r\n await indeedService.GetIndeedCampaignById(indeedCampaignId);\r\n if (!indeedCampaign.indeedJobs) return;\r\n\r\n // There is a use case that some indeed campaign jobs don't exist in the Pando campaign which causes a bug\r\n const jobsInIndeedCampaignAndPandoCampaign = jobOptions.filter(\r\n (x) =>\r\n indeedCampaign.indeedJobs?.some(\r\n (indeedJob) => indeedJob.jobId == x.jobId\r\n )\r\n );\r\n setSelectedJobIds(\r\n jobsInIndeedCampaignAndPandoCampaign.map((job) =>\r\n job.jobId.toString()\r\n )\r\n );\r\n onJobsLoad &&\r\n onJobsLoad(\r\n jobsInIndeedCampaignAndPandoCampaign.map((job) =>\r\n Number(job.jobId)\r\n )\r\n );\r\n }\r\n })();\r\n }, [indeedCampaignId, indeedStore.SelectedIndeedCampaign, jobOptions]);\r\n\r\n const filterOption = (inputValue: string, option: any) => {\r\n if (isNumber(inputValue)) {\r\n return searchByJobId(Number(inputValue));\r\n }\r\n\r\n if (isJobIdsInput(inputValue)) {\r\n const jobIds: number[] = inputValue\r\n .split(\",\")\r\n .map((jobId) => Number(jobId.trim()));\r\n return searchByJobIdsMultiple(jobIds);\r\n }\r\n\r\n if (inputValue.length >= 2) {\r\n return searchByJobTitleTextOrLocation();\r\n }\r\n return true;\r\n\r\n function searchByJobTitleTextOrLocation() {\r\n return (\r\n (getJobLocation(option).toLowerCase() ?? \"\").indexOf(\r\n inputValue.toLowerCase()\r\n ) > -1 ||\r\n (option.extJobTitleText?.toLowerCase() ?? \"\").indexOf(\r\n inputValue.toLowerCase()\r\n ) > -1\r\n );\r\n }\r\n\r\n function searchByJobId(inputValue: number) {\r\n return option.jobId == inputValue;\r\n }\r\n\r\n function isJobIdsInput(inputValue: string): boolean {\r\n return new RegExp(/^[\\d, ]+$/gm).test(inputValue);\r\n }\r\n\r\n function searchByJobIdsMultiple(jobIds: number[]): boolean {\r\n return jobIds.some((x) => x == option.jobId);\r\n }\r\n };\r\n\r\n const handleChange = (jobIdsRightSide: string[]) => {\r\n setSelectedJobIds(jobIdsRightSide);\r\n onChange(jobIdsRightSide.map((jobId) => Number(jobId)));\r\n };\r\n\r\n const handleSearch = (\r\n direction: \"left\" | \"right\",\r\n searchValue: string\r\n ) => {};\r\n\r\n const getJobLocation = (job: Job) => {\r\n return `${job.jobLocation.cityName}, ${job.jobLocation.stateShortName}`;\r\n };\r\n\r\n return (\r\n \r\n \r\n {!hasOptionsLoaded ? (\r\n \r\n ) : (\r\n ({\r\n key: job.jobId.toString(),\r\n ...job,\r\n }))}\r\n showSearch\r\n filterOption={filterOption}\r\n targetKeys={selectedJobIds}\r\n onChange={handleChange}\r\n onSearch={handleSearch}\r\n pagination\r\n className=\"jobs-transfer\"\r\n render={(job) => (\r\n \r\n \r\n ({job.jobId}) {job.extJobTitleText} |\r\n Location: {getJobLocation(job)}\r\n \r\n \r\n )}\r\n />\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(IndeedJobsToCampaignTransfer);\r\n","import { Button, Col, Form, message, Row, Select, Typography } from \"antd\";\r\nimport { Moment } from \"moment\";\r\nimport { useContext, useState } from \"react\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\nimport { RoutesPaths } from \"../../constants/RoutePaths\";\r\nimport { FetchError } from \"../../exceptions/AlgoSupervisionExceptions\";\r\nimport { IndeedBudgetFirstMonthBehavior } from \"../../models/indeed-manager/IndeedBudgetFirstMonthBehavior\";\r\nimport { IndeedCampaignBudgetType } from \"../../models/indeed-manager/IndeedCampaignBudgetType\";\r\nimport { IndeedCampaignObjective } from \"../../models/indeed-manager/IndeedCampaignObjective\";\r\nimport {\r\n INDEED_CAMPAIGN_OBJECTIVE_DEFAULT_VALUE,\r\n IndeedCampaignObjectiveType\r\n} from \"../../models/indeed-manager/IndeedCampaignObjectiveType\";\r\nimport { IndeedCampaignStatus } from \"../../models/indeed-manager/IndeedCampaignStatus\";\r\nimport { IndeedCreateCampaignEventPayload } from \"../../models/indeed-manager/IndeedCreateCampaignEventPayload\";\r\nimport { IndeedEndDateType } from \"../../models/indeed-manager/IndeedEndDateType\";\r\nimport indeedService from \"../../services/indeed/IndeedService\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport { ISODateTime } from \"../../types/types\";\r\nimport CampaignBudgetInputs from \"./CampaignBudgetInputs\";\r\nimport CampaignDetailsInputs from \"./CampaignDetailsInputs\";\r\nimport IndeedJobsToCampaignTransfer from \"./IndeedJobsToCampaignTransfer\";\r\n\r\nconst { Option } = Select;\r\n\r\ninterface Props {\r\n plCampaignId: number;\r\n}\r\n\r\nconst layout = {\r\n labelCol: { span: 8 },\r\n wrapperCol: { span: 16 },\r\n};\r\n\r\n/* eslint-disable no-template-curly-in-string */\r\nconst validateMessages = {\r\n required: \"${label} is required!\",\r\n types: {\r\n email: \"${label} is not a valid email!\",\r\n number: \"${label} is not a valid number!\",\r\n },\r\n number: {\r\n range: \"${label} must be between ${min} and ${max}\",\r\n },\r\n};\r\n\r\ntype FormState = {\r\n campaignName: string;\r\n campaignStatus: IndeedCampaignStatus;\r\n budgetType: IndeedEndDateType;\r\n startDate: Moment;\r\n endDate: Moment;\r\n budgetLimitSettings: IndeedCampaignBudgetType;\r\n budgetLimitValue: string;\r\n budgetFirstMonthBehavior: IndeedBudgetFirstMonthBehavior;\r\n campaignObjective: IndeedCampaignObjective;\r\n};\r\n\r\ninterface Props {\r\n plCampaignId: number;\r\n}\r\n\r\nconst IndeedAddCampaignForm = (props: Props) => {\r\n const { plCampaignId } = props;\r\n const { campaignStore, userStore, indeedStore } =\r\n useContext(RootStoreContext);\r\n\r\n const history = useHistory();\r\n const [campaignJobsIds, setCampaignJobsIds] = useState([]);\r\n\r\n const onFinish = async (formState: FormState) => {\r\n try {\r\n var response = await indeedService.CreateCampaign(\r\n new IndeedCreateCampaignEventPayload(\r\n formState.campaignName,\r\n userStore.User!.id,\r\n formState.campaignStatus,\r\n campaignJobsIds,\r\n formState.startDate.toISOString(),\r\n plCampaignId,\r\n campaignStore.SelectedCampaign!.companyId,\r\n formState.campaignObjective,\r\n indeedStore.PLCampaignData!.indeedCampaignSourceInfo.sourceName,\r\n formState.budgetFirstMonthBehavior,\r\n deriveEndDate(\r\n formState.budgetType,\r\n IndeedEndDateType.Fixed,\r\n formState.endDate\r\n ),\r\n deriveEndDate(\r\n formState.budgetType,\r\n IndeedEndDateType.Target,\r\n formState.endDate\r\n ),\r\n deriveBudgetLimit(\r\n formState.budgetLimitSettings,\r\n formState.budgetLimitValue,\r\n IndeedCampaignBudgetType.OneTime\r\n ),\r\n deriveBudgetLimit(\r\n formState.budgetLimitSettings,\r\n formState.budgetLimitValue,\r\n IndeedCampaignBudgetType.Monthly\r\n )\r\n )\r\n );\r\n \r\n message.success(response.body);\r\n history.push(\r\n RoutesPaths.Supervision.IndeedRoutes.BuildCampaignRoute(\r\n plCampaignId\r\n )\r\n );\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.message);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n Choose Jobs for Indeed Campaign\r\n \r\n \r\n \r\n {\r\n setCampaignJobsIds(jobIds);\r\n }}\r\n plCampaignId={plCampaignId}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n Create Campaign\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default IndeedAddCampaignForm;\r\n\r\nconst deriveEndDate = (\r\n currentType: IndeedEndDateType,\r\n budgetType: IndeedEndDateType,\r\n endDate: Moment\r\n): ISODateTime | undefined => {\r\n return currentType == budgetType ? endDate.toISOString() : undefined;\r\n};\r\n\r\nconst deriveBudgetLimit = (\r\n formBudgetLimitSettings: IndeedCampaignBudgetType,\r\n budgetLimitValue: string,\r\n wantedBudgetLimitSettings: IndeedCampaignBudgetType\r\n): number | undefined => {\r\n if (formBudgetLimitSettings == wantedBudgetLimitSettings) {\r\n return Number(budgetLimitValue);\r\n }\r\n return undefined;\r\n};\r\n","\r\nimport { message } from \"antd\";\r\n\r\nimport { RoutesPaths } from \"../../../../constants/RoutePaths\";\r\nimport { PLIndeedData } from \"../../../../models/indeed-manager/PLIndeedData\";\r\nimport { Company } from \"../../../../models/operation/Company\";\r\nimport indeedService from \"../../../../services/indeed/IndeedService\";\r\nimport companyService from \"../../../../services/operation/CompanyService\";\r\nimport { IndeedStore } from \"../../../../stores/IndeedStore\";\r\n\r\nexport const IndeedContextInitializers = {\r\n InitializePLCampaignData: async (campaignId: number, indeedStore: IndeedStore, history: any) => {\r\n try {\r\n if (indeedStore.PLCampaignData && campaignId == indeedStore.PLCampaignData.pLCampaignId) {\r\n return;\r\n }\r\n\r\n indeedStore.SetIsDataLoading(true);\r\n\r\n const _indeedData =\r\n await indeedService.GetIndeedCampaignsByPLCampaignId(\r\n campaignId\r\n );\r\n indeedStore.SetPLCampaignData(_indeedData);\r\n\r\n indeedStore.SetIsDataLoading(false);\r\n\r\n const company = await companyService.GetCompanyByCampaignId(campaignId);\r\n\r\n indeedStore.SetCompany(company);\r\n } catch (err) {\r\n history.push(RoutesPaths.Supervision.Campaigns);\r\n message.error(\r\n `Campaign with ID: ${campaignId} doesn't exist. Returned to home page`\r\n );\r\n }\r\n },\r\n\r\n InitializeSelectedIndeedCampaign: async (indeedCampaignId: string, plIndeedData: PLIndeedData, indeedStore: IndeedStore, history: any) => {\r\n //// BUG with caching code below:\r\n // if (indeedStore.SelectedIndeedCampaign && indeedCampaignId == indeedStore.SelectedIndeedCampaign.id) {\r\n // return;\r\n // }\r\n\r\n const indeedCampaign = await indeedService.GetIndeedCampaignById(indeedCampaignId);\r\n if (!indeedCampaign) {\r\n history.push(RoutesPaths.Supervision.IndeedRoutes.BuildCampaignRoute(plIndeedData.pLCampaignId));\r\n message.error(\r\n `Indeed campaign with ID: ${indeedCampaignId} doesn't exist`\r\n );\r\n }\r\n\r\n indeedStore.SetSelectedIndeedCampaign(indeedCampaign);\r\n },\r\n\r\n\r\n InitializeIndeedSubAccount: async (indeedStore: IndeedStore, history: any, companyId?: number) => {\r\n\r\n try {\r\n const indeedSubAccount = await indeedService.GetIndeedSubAccountByCompanyId(companyId);\r\n if (!indeedSubAccount) {\r\n /* message.info(\r\n `Indeed sub account for ID: ${campaignId} doesn't exist`\r\n );*/\r\n }\r\n\r\n indeedStore.SetIndeedSubAccount(indeedSubAccount);\r\n }\r\n catch (err) {\r\n /* message.error(\r\n `Indeed sub account for ID: ${campaignId} doesn't exist.`\r\n ); */\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n}\r\n","import { RoutesPaths } from \"../../../../constants/RoutePaths\";\r\nimport { BreadCrumb } from \"../../../../models/BreadCrumb\";\r\n\r\nexport const IndeedBreadcrumbs = {\r\n Indeed: (campaignId: number) => {\r\n return new BreadCrumb(\r\n \"Indeed\",\r\n RoutesPaths.Supervision.IndeedRoutes.BuildCampaignRoute(campaignId),\r\n null\r\n );\r\n },\r\n IndeedCampaign: (indeedCampaignName: string) => {\r\n return new BreadCrumb(indeedCampaignName, null, null);\r\n },\r\n AddCampaign: (campaignId: number) => {\r\n return new BreadCrumb(\r\n \"Add Campaign\",\r\n RoutesPaths.Supervision.IndeedRoutes.BuildAddCampaign(campaignId),\r\n null\r\n );\r\n },\r\n CampaignJobs: (campaignId: number, indeedCampaignId: string) => {\r\n return new BreadCrumb(\r\n \"Jobs\",\r\n RoutesPaths.Supervision.IndeedRoutes.BuildCampaignJobsRoute(\r\n campaignId,\r\n indeedCampaignId\r\n ),\r\n null\r\n );\r\n },\r\n AttachJobsToIndeedCampaign: (\r\n campaignId: number,\r\n indeedCampaignId: string\r\n ) => {\r\n return new BreadCrumb(\r\n \"Attach Jobs\",\r\n RoutesPaths.Supervision.IndeedRoutes.BuildAttachJobsToIndeedCampaign(\r\n campaignId,\r\n indeedCampaignId\r\n ),\r\n null\r\n );\r\n },\r\n EditCampaign: (campaignId: number, indeedCampaignId: string) => {\r\n return new BreadCrumb(\r\n \"Edit\",\r\n RoutesPaths.Supervision.IndeedRoutes.BuildEditIndeedCampaign(\r\n campaignId,\r\n indeedCampaignId\r\n ),\r\n null\r\n );\r\n },\r\n};\r\n","import { observer } from \"mobx-react-lite\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\n\r\nimport IndeedAddCampaignForm from \"../../../components/indeed-manager/IndeedAddCampaignForm\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport { IndeedContextInitializers } from \"./helpers/IndeedContextInitializers\";\r\nimport { IndeedBreadcrumbs } from \"./helpers/IndeedManager.breadcrumbs\";\r\n\r\ninterface Props {}\r\n\r\nconst IndeedAddCampaignContainer = (props: Props) => {\r\n const match = useParams<{ campaignId: string }>();\r\n const history = useHistory();\r\n const { indeedStore } = useContext(RootStoreContext);\r\n\r\n usePageInitialization({\r\n onInitAsync: async () => {\r\n await IndeedContextInitializers.InitializePLCampaignData(\r\n Number(match.campaignId),\r\n indeedStore,\r\n history\r\n );\r\n },\r\n onCompanyContextCallBack: (company, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Add Indeed Campaign for: ${indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignName}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Companies(company.companyName),\r\n SupervisionBreadcrumbs.Campaigns(`${indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignName}`),\r\n IndeedBreadcrumbs.Indeed(Number(indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignID)),\r\n IndeedBreadcrumbs.AddCampaign(Number(indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignID))\r\n );\r\n },\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(IndeedAddCampaignContainer);\r\n","\r\n\r\nexport class IndeedAttachJobsToCampaignEventPayload {\r\n\r\n constructor(\r\n public indeedCampaignId: string,\r\n public userId: number,\r\n public jobsList: number[],\r\n public detachFromOtherCampaigns: boolean,\r\n ) { }\r\n}","import { Button, message, Radio, Tooltip, Typography } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { useContext, useState } from \"react\";\r\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport { RoutesPaths } from \"../../constants/RoutePaths\";\r\nimport { FetchError } from \"../../exceptions/AlgoSupervisionExceptions\";\r\nimport { IndeedAttachJobsToCampaignEventPayload } from \"../../models/indeed-manager/IndeedAttachJobsToCampaignEventPayload\";\r\nimport indeedService from \"../../services/indeed/IndeedService\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport IndeedJobsToCampaignTransfer from \"./IndeedJobsToCampaignTransfer\";\r\n\r\nconst uniqueRadioExplanation =\r\n 'If \"Unique\" is selected, all the jobs that are attached to this campaign are automatically detached from every other campaign (if they were attached)';\r\n\r\nconst multipleRadioExplanation =\r\n 'If \"Multiple\" is selected, All the jobs that are attached to this campaign will NOT be detached from other campaigns';\r\n\r\nenum AttachmentType {\r\n unique = \"unique\",\r\n multiple = \"multiple\",\r\n}\r\n\r\ninterface Props {\r\n plCampaignId: number;\r\n indeedCampaignId: string;\r\n}\r\n\r\nconst IndeedAttachJobsForm = (props: Props) => {\r\n const { plCampaignId, indeedCampaignId } = props;\r\n const { userStore, indeedStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n\r\n const [campaignJobsIds, setCampaignJobsIds] = useState([]);\r\n const [radioAttachmentType, setRadioAttachmentType] =\r\n useState(AttachmentType.unique);\r\n\r\n const handleAttachJobsClick = async () => {\r\n const attachJobsEventPayload =\r\n new IndeedAttachJobsToCampaignEventPayload(\r\n indeedCampaignId,\r\n userStore.User!.id,\r\n campaignJobsIds,\r\n radioAttachmentType == AttachmentType.unique ? true : false,\r\n );\r\n\r\n try {\r\n var response = await indeedService.AttachJobsToCampaign(attachJobsEventPayload);\r\n message.success(response.body);\r\n history.push(\r\n RoutesPaths.Supervision.IndeedRoutes.BuildCampaignRoute(\r\n plCampaignId\r\n )\r\n );\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n Attach Jobs for Indeed Campaign\r\n \r\n\r\n {\r\n setCampaignJobsIds(jobIds);\r\n }}\r\n onJobsLoad={(jobIds) => {\r\n setCampaignJobsIds(jobIds);\r\n }}\r\n plCampaignId={plCampaignId}\r\n indeedCampaignId={indeedCampaignId}\r\n />\r\n\r\n {/* NOTE: currently this feature is flagged off. All attachments are unique */}\r\n {/* \r\n Attachment Type\r\n \r\n \r\n {\r\n switch (e.target.value) {\r\n case AttachmentType.unique:\r\n setRadioAttachmentType(AttachmentType.unique);\r\n break;\r\n case AttachmentType.multiple:\r\n setRadioAttachmentType(AttachmentType.multiple);\r\n break;\r\n default:\r\n throw new Error(\r\n \"unsupported radio button value\"\r\n );\r\n }\r\n }}\r\n value={radioAttachmentType}>\r\n \r\n Unique\r\n \r\n\r\n \r\n Multiple\r\n \r\n \r\n */}\r\n\r\n \r\n \r\n Attach Jobs\r\n \r\n\r\n \r\n {\r\n message.info(\"Copied to clipboard\");\r\n }}>\r\n Copy Active Job Ids\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(IndeedAttachJobsForm);\r\n","import { observer } from \"mobx-react-lite\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\n\r\nimport IndeedAttachJobsForm from \"../../../components/indeed-manager/IndeedAttachJobsForm\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport { IndeedContextInitializers } from \"./helpers/IndeedContextInitializers\";\r\nimport { IndeedBreadcrumbs } from \"./helpers/IndeedManager.breadcrumbs\";\r\n\r\nconst IndeedAttachJobsToCampaignPage = () => {\r\n const match = useParams<{ campaignId: string; indeedCampaignId: string }>();\r\n const history = useHistory();\r\n const { indeedStore } = useContext(RootStoreContext);\r\n\r\n usePageInitialization({\r\n onInitAsync: async () => {\r\n await IndeedContextInitializers.InitializePLCampaignData(\r\n Number(match.campaignId),\r\n indeedStore,\r\n history\r\n );\r\n await IndeedContextInitializers.InitializeSelectedIndeedCampaign(\r\n match.indeedCampaignId,\r\n indeedStore.PLCampaignData!,\r\n indeedStore,\r\n history\r\n );\r\n },\r\n onCompanyContextCallBack: (company, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Attach PL Jobs to Indeed Campaign: ${indeedStore.SelectedIndeedCampaign?.name}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Companies(company.companyName),\r\n SupervisionBreadcrumbs.Campaigns(`${indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignName}`),\r\n IndeedBreadcrumbs.Indeed(Number(indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignID)),\r\n IndeedBreadcrumbs.IndeedCampaign(\r\n indeedStore.SelectedIndeedCampaign?.name ?? \"\"\r\n ),\r\n IndeedBreadcrumbs.AttachJobsToIndeedCampaign(\r\n Number(indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignID),\r\n match.indeedCampaignId\r\n )\r\n );\r\n },\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(IndeedAttachJobsToCampaignPage);\r\n","\r\nexport class GetJobsByIdApiDto {\r\n /**\r\n *\r\n */\r\n constructor(\r\n public jobIds: number[]\r\n ) { }\r\n}","import { Job } from \"../../models/operation/Job\";\r\nimport { ISODateTime } from \"../../types/types\";\r\nimport { FormatDate } from \"../../utils/DateHelpers\";\r\nimport { TableDto } from \"../general/supervision-table/Table.dto\";\r\n\r\nexport class IndeedJobTableDto extends TableDto {\r\n constructor(\r\n public jobId: number, // alias=\"compPositionId\"\r\n public jobTitle: string,\r\n public location: string,\r\n // public lastModified: ISODateTime,\r\n public postDate: ISODateTime,\r\n ) {\r\n super();\r\n }\r\n\r\n public static MapFromJob(job: Job) {\r\n return new IndeedJobTableDto(\r\n job.jobId,\r\n job.extJobTitleText,\r\n `${job.jobLocation.cityName}, ${job.jobLocation.stateShortName}`,\r\n FormatDate(job.posCreationDate)\r\n )\r\n }\r\n}","import { Empty } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useState } from \"react\";\r\n\r\nimport useOnInitAsync from \"../../hooks/useOnInitAsync\";\r\nimport { GetJobsByIdApiDto } from \"../../models/operation/GetJobsByIdApiDto\";\r\nimport { Job } from \"../../models/operation/Job\";\r\nimport jobService from \"../../services/operation/JobService\";\r\nimport Loader from \"../general/loader/Loader\";\r\nimport SupervisionTable from \"../general/supervision-table/SupervisionTable\";\r\nimport { IndeedJobTableDto } from \"./IndeedJobsTable.dto\";\r\n\r\ninterface Props {\r\n indeedCampaignName: string;\r\n jobs: number[];\r\n}\r\n\r\nconst IndeedJobsTable = (props: Props) => {\r\n const { indeedCampaignName, jobs } = props;\r\n\r\n const [jobsWithPLDataEnriched, setJobsWithPLDataEnriched] = useState(\r\n []\r\n );\r\n\r\n useOnInitAsync(async () => {\r\n if (jobs) {\r\n const getJobsByIdRequest = new GetJobsByIdApiDto(jobs);\r\n const plJobs = await jobService.GetJobsByIds(getJobsByIdRequest);\r\n setJobsWithPLDataEnriched(plJobs);\r\n }\r\n });\r\n\r\n if (jobs.length == 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (jobsWithPLDataEnriched.length == 0) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default observer(IndeedJobsTable);\r\n","import { observer } from \"mobx-react-lite\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\n\r\nimport Loader from \"../../../components/general/loader/Loader\";\r\nimport IndeedJobsTable from \"../../../components/indeed-manager/IndeedJobsTable\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport { IndeedContextInitializers } from \"./helpers/IndeedContextInitializers\";\r\nimport { IndeedBreadcrumbs } from \"./helpers/IndeedManager.breadcrumbs\";\r\n\r\ninterface Props {}\r\n\r\nconst IndeedJobsViewContainer = () => {\r\n const match = useParams<{ campaignId: string; indeedCampaignId: string }>();\r\n const history = useHistory();\r\n const { indeedStore } = useContext(RootStoreContext);\r\n\r\n usePageInitialization({\r\n onInitAsync: async () => {\r\n await IndeedContextInitializers.InitializePLCampaignData(\r\n Number(match.campaignId),\r\n indeedStore,\r\n history\r\n );\r\n await IndeedContextInitializers.InitializeSelectedIndeedCampaign(\r\n match.indeedCampaignId,\r\n indeedStore.PLCampaignData!,\r\n indeedStore,\r\n history\r\n );\r\n },\r\n onCompanyContextCallBack: (company, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Indeed Jobs for Indeed Campaign: ${indeedStore.SelectedIndeedCampaign?.name}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Companies(company.companyName),\r\n SupervisionBreadcrumbs.Campaigns(`${indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignName}`),\r\n IndeedBreadcrumbs.Indeed(Number(indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignID)),\r\n IndeedBreadcrumbs.IndeedCampaign(\r\n indeedStore.SelectedIndeedCampaign?.name ?? \"\"\r\n ),\r\n IndeedBreadcrumbs.CampaignJobs(\r\n Number(indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignID),\r\n match.indeedCampaignId\r\n )\r\n );\r\n },\r\n });\r\n\r\n if (\r\n !indeedStore.SelectedIndeedCampaign ||\r\n !indeedStore.SelectedIndeedCampaign.indeedJobs\r\n ) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {/* */}\r\n x.jobId\r\n )}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default observer(IndeedJobsViewContainer);\r\n","export enum UserIds {\r\n Algo = 2644599\r\n}","import { message, Typography } from \"antd\";\r\nimport { History } from \"history\";\r\nimport { AiOutlineRobot } from \"react-icons/ai\";\r\nimport { BiTransfer } from \"react-icons/bi\";\r\nimport { FiEdit } from \"react-icons/fi\";\r\nimport { RiSuitcaseLine } from \"react-icons/ri\";\r\n\r\nimport { UserIds } from \"../../constants/IAM\";\r\nimport { RoutesPaths } from \"../../constants/RoutePaths\";\r\nimport { IndeedUpdateCampaignBudgetEventPayload } from \"../../models/indeed-manager/IndeedUpdateCampaignBudgetEventPayload\";\r\nimport { EActionTypes } from \"../../models/users/EActionTypes\";\r\nimport { userActionService } from \"../../services/actions/UserActionService\";\r\nimport indeedService from \"../../services/indeed/IndeedService\";\r\nimport { IndeedStore } from \"../../stores/IndeedStore\";\r\nimport { UIStore } from \"../../stores/UIStore\";\r\nimport { UserStore } from \"../../stores/UserStore\";\r\nimport { ActionsBuilder } from \"../general/supervision-table/types\";\r\nimport { IndeedCampaignTableDto } from \"./IndeedCampaignsTable.dto\";\r\n\r\nconst { Text } = Typography;\r\n\r\ntype IndeedCampaignActionsContext = {\r\n indeedStore: IndeedStore;\r\n history: History;\r\n plCampaignId: number;\r\n uiStore: UIStore;\r\n userStore: UserStore;\r\n};\r\n\r\nexport const IndeedCampaignActionsBuilder: ActionsBuilder<\r\n IndeedCampaignTableDto,\r\n IndeedCampaignActionsContext\r\n> = ({ history, indeedStore, plCampaignId, uiStore, userStore }) => [\r\n {\r\n text: \"View Jobs\",\r\n action: (indeedCampaign) => {\r\n indeedStore.SetSelectedIndeedCampaign(\r\n indeedStore.PLCampaignData?.indeedCampaigns.find(\r\n (x) => x.id == indeedCampaign.id\r\n )\r\n );\r\n history.push({\r\n pathname:\r\n RoutesPaths.Supervision.IndeedRoutes.BuildCampaignJobsRoute(\r\n plCampaignId,\r\n indeedCampaign.id\r\n ),\r\n });\r\n },\r\n Icon: RiSuitcaseLine,\r\n isDisplayed: () => true,\r\n },\r\n {\r\n text: \"Attach Jobs\",\r\n action: (indeedCampaign) => {\r\n indeedStore.SetSelectedIndeedCampaign(\r\n indeedStore.PLCampaignData?.indeedCampaigns.find(\r\n (x) => x.id == indeedCampaign.id\r\n )\r\n );\r\n history.push({\r\n pathname:\r\n RoutesPaths.Supervision.IndeedRoutes.BuildAttachJobsToIndeedCampaign(\r\n plCampaignId,\r\n indeedCampaign.id\r\n ),\r\n });\r\n },\r\n Icon: BiTransfer,\r\n isDisplayed: () => true,\r\n },\r\n {\r\n text: \"Edit Campaign\",\r\n action: (indeedCampaign) => {\r\n indeedStore.SetSelectedIndeedCampaign(\r\n indeedStore.PLCampaignData?.indeedCampaigns.find(\r\n (x) => x.id == indeedCampaign.id\r\n )\r\n );\r\n history.push({\r\n pathname:\r\n RoutesPaths.Supervision.IndeedRoutes.BuildEditIndeedCampaign(\r\n plCampaignId,\r\n indeedCampaign.id\r\n ),\r\n });\r\n },\r\n Icon: FiEdit,\r\n isDisplayed: () => true,\r\n },\r\n {\r\n text: \"Assign to Algo (Stem It)\",\r\n action: async (indeedCampaign) => {\r\n const popupBody = (\r\n \r\n Stem is about to take control over campaign:{\" \"}\r\n {indeedCampaign.name} with ID:{\" \"}\r\n {indeedCampaign.id}\r\n \r\n \r\n Which is currently managed by:{\" \"}\r\n {indeedCampaign.user}\r\n \r\n \r\n );\r\n\r\n const updateCampaignBudgetPayload: IndeedUpdateCampaignBudgetEventPayload =\r\n {\r\n indeedCampaignId: indeedCampaign.id,\r\n userId: UserIds.Algo,\r\n budgetOnetimeLimit: Number(\r\n indeedCampaign.budget.replace(\"$\", \"\")\r\n ),\r\n };\r\n\r\n uiStore.SetPopUp({\r\n body: popupBody,\r\n title: \"Stem Control Request\",\r\n okClickHandler: async () => {\r\n await indeedService.UpdateCampaignBudget(\r\n updateCampaignBudgetPayload\r\n );\r\n\r\n await userActionService.Create({\r\n actionTypeId: EActionTypes.IndeedAlgoControlRequest,\r\n data: JSON.stringify({\r\n campaignId: plCampaignId,\r\n indeedCampaignId: indeedCampaign.id,\r\n }),\r\n userId: userStore.User!.id,\r\n });\r\n\r\n message.success(\r\n `Indeed Campaign ID:${indeedCampaign.id} returned control to Algo`\r\n );\r\n },\r\n okButtonText: \"Accept\",\r\n });\r\n },\r\n Icon: AiOutlineRobot,\r\n isDisplayed: (indeedCampaign) => indeedCampaign.user != \"Algo\",\r\n },\r\n];\r\n","import { IndeedBudgetFirstMonthBehavior } from \"../../models/indeed-manager/IndeedBudgetFirstMonthBehavior\";\r\nimport { IndeedCampaign } from \"../../models/indeed-manager/IndeedCampaign\";\r\nimport {\r\n INDEED_CAMPAIGN_OBJECTIVE_DEFAULT_VALUE,\r\n IndeedCampaignObjectiveType\r\n} from \"../../models/indeed-manager/IndeedCampaignObjectiveType\";\r\nimport { IndeedCampaignStatus } from \"../../models/indeed-manager/IndeedCampaignStatus\";\r\nimport { ISODateTime } from \"../../types/types\";\r\nimport { FormatDate } from \"../../utils/DateHelpers\";\r\nimport { TableDto } from \"../general/supervision-table/Table.dto\";\r\n\r\nexport class IndeedCampaignTableDto extends TableDto {\r\n constructor(\r\n public id: string,\r\n public name: string,\r\n public sourceName: string,\r\n public status: string,\r\n public budget: string,\r\n public objective: string,\r\n public startDate: ISODateTime,\r\n public endDate: ISODateTime,\r\n public budgetFirstMonthBehavior: string,\r\n public user: string\r\n\r\n ) {\r\n super();\r\n }\r\n\r\n public static MapFromIndeedCampaign(indeedCampaign: IndeedCampaign) {\r\n return new IndeedCampaignTableDto(\r\n indeedCampaign.id,\r\n indeedCampaign.name,\r\n indeedCampaign.indeedCampaignSourceInfo.sourceName ?? \"N.A\",\r\n IndeedCampaignStatus[indeedCampaign.status],\r\n `$${indeedCampaign.campaignBudget ?? 0}`,\r\n displayObjective(indeedCampaign),\r\n FormatDate(indeedCampaign.startDate),\r\n indeedCampaign.endDate ? FormatDate(indeedCampaign.endDate) : \"N.A\",\r\n indeedCampaign.budgetFirstMonthBehavior ? IndeedBudgetFirstMonthBehavior[indeedCampaign.budgetFirstMonthBehavior] : \"N.A\",\r\n indeedCampaign.userName\r\n\r\n )\r\n }\r\n}\r\n\r\nfunction displayObjective(indeedCampaign: IndeedCampaign): string {\r\n if (indeedCampaign.campaignObjectiveType == IndeedCampaignObjectiveType.TARGET_APPLICATIONS) {\r\n return `${indeedCampaign.campaignObjectiveTarget ?? 0} - Applications Goal`\r\n }\r\n\r\n if (indeedCampaign.campaignObjectiveType == IndeedCampaignObjectiveType.TARGET_COST_PER_APPLICATION) {\r\n return `${indeedCampaign.campaignObjectiveTarget ?? 0} - CPA Goal`\r\n }\r\n\r\n const objectiveType = indeedCampaign.campaignObjectiveType ? IndeedCampaignObjectiveType[indeedCampaign.campaignObjectiveType] : IndeedCampaignObjectiveType[INDEED_CAMPAIGN_OBJECTIVE_DEFAULT_VALUE];\r\n return objectiveType;\r\n}\r\n","import { Empty } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport { IndeedCampaign } from \"../../models/indeed-manager/IndeedCampaign\";\r\nimport { IndeedCampaignStatus } from \"../../models/indeed-manager/IndeedCampaignStatus\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport Loader from \"../general/loader/Loader\";\r\nimport SupervisionTable from \"../general/supervision-table/SupervisionTable\";\r\nimport { IndeedCampaignActionsBuilder } from \"./IndeedCampaignsTable.actions\";\r\nimport { IndeedCampaignTableDto } from \"./IndeedCampaignsTable.dto\";\r\n\r\ninterface Props {\r\n campaignId: number;\r\n indeedCampaigns: IndeedCampaign[] | undefined;\r\n}\r\n\r\nconst IndeedCampaignsTable = (props: Props) => {\r\n const { campaignId, indeedCampaigns } = props;\r\n\r\n const { campaignStore, indeedStore, uiStore, userStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n\r\n if (!indeedCampaigns) {\r\n return ;\r\n }\r\n\r\n if (indeedCampaigns.length == 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default observer(IndeedCampaignsTable);\r\n","import { CreateIndeedCampaignObjectiveStrategyRequest } from \"../../models/indeed-manager/strategy/CreateIndeedCampaignObjectiveStrategyRequest\";\r\nimport { IndeedCampaignObjectiveStrategy } from \"../../models/indeed-manager/strategy/IndeedCampaignObjectiveStrategy\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\nclass IndeedStrategyManagementService extends BaseService {\r\n public async GetStrategiesByPlCampaign(\r\n plCampaignId: number | string\r\n ): Promise {\r\n return await this.Get(\r\n `/${plCampaignId}/indeed-strategy`\r\n );\r\n }\r\n\r\n public async CreateStrategy(\r\n plCampaignId: number | string,\r\n createIndeedCampaignObjectiveStrategyRequest: CreateIndeedCampaignObjectiveStrategyRequest\r\n ): Promise {\r\n return await this.Post(\r\n `/${plCampaignId}/indeed-strategy`,\r\n createIndeedCampaignObjectiveStrategyRequest\r\n );\r\n }\r\n\r\n public async DeleteStrategy(\r\n plCampaignId: number | string,\r\n id: number\r\n ): Promise {\r\n return await this.Delete(\r\n `/${plCampaignId}/indeed-strategy/${id}`\r\n );\r\n }\r\n}\r\n\r\nexport const indeedStrategyManagementService = new IndeedStrategyManagementService(\"campaign\");","import { Card, message, Typography } from \"antd\";\r\n\r\nimport { FetchError } from \"../../../exceptions/AlgoSupervisionExceptions\";\r\nimport { IndeedCampaignObjectiveType } from \"../../../models/indeed-manager/IndeedCampaignObjectiveType\";\r\nimport { IndeedCampaignObjectiveStrategy } from \"../../../models/indeed-manager/strategy/IndeedCampaignObjectiveStrategy\";\r\nimport { indeedStrategyManagementService } from \"../../../services/indeed/IndeedStrategyManagementService\";\r\n\r\nconst { Text } = Typography;\r\n\r\ntype Props = {\r\n indeedCampaignObjectiveStrategy: IndeedCampaignObjectiveStrategy;\r\n plCampaignId: number | string;\r\n onDelete: (objectiveId: number) => void;\r\n};\r\n\r\nfunction mapObjectiveTypeToReadableText(\r\n objectiveType: IndeedCampaignObjectiveType\r\n) {\r\n switch (objectiveType) {\r\n case IndeedCampaignObjectiveType.BALANCE:\r\n return \"Balanced\";\r\n case IndeedCampaignObjectiveType.MAXIMUM:\r\n return \"Maximum\";\r\n case IndeedCampaignObjectiveType.TARGET_APPLICATIONS:\r\n return \"Applicants\";\r\n case IndeedCampaignObjectiveType.TARGET_COST_PER_APPLICATION:\r\n return \"CPA\";\r\n default:\r\n throw new Error(\r\n `Unsupported indeed objective type ${objectiveType}`\r\n );\r\n }\r\n}\r\n\r\nconst IndeedStrategyCard = (props: Props) => {\r\n const { indeedCampaignObjectiveStrategy, plCampaignId, onDelete } = props;\r\n\r\n return (\r\n {\r\n try {\r\n await indeedStrategyManagementService.DeleteStrategy(\r\n plCampaignId,\r\n indeedCampaignObjectiveStrategy.id\r\n );\r\n onDelete(indeedCampaignObjectiveStrategy.id);\r\n message.success(\"Deleted strategy successfully\");\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n }\r\n }}>\r\n Delete\r\n ,\r\n ]}\r\n style={{ border: \"1px solid #d9d9d9\" }}>\r\n \r\n Percent{\" \"}\r\n \r\n {\r\n indeedCampaignObjectiveStrategy.percentOfCampaignStrategies\r\n }\r\n %\r\n \r\n \r\n \r\n {indeedCampaignObjectiveStrategy.targetStrategyOptionMinValue && (\r\n <>\r\n \r\n Min Target Value{\" \"}\r\n \r\n {\r\n indeedCampaignObjectiveStrategy.targetStrategyOptionMinValue\r\n }\r\n \r\n \r\n \r\n >\r\n )}\r\n\r\n {indeedCampaignObjectiveStrategy.targetStrategyOptionMaxValue && (\r\n <>\r\n \r\n Max Target Value{\" \"}\r\n \r\n {\r\n indeedCampaignObjectiveStrategy.targetStrategyOptionMaxValue\r\n }\r\n \r\n \r\n \r\n >\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default IndeedStrategyCard;\r\n","export enum IndeedCampaignObjectiveType {\r\n MAXIMUM = 1,\r\n BALANCE = 2,\r\n TARGET_APPLICATIONS = 3,\r\n TARGET_COST_PER_APPLICATION = 4,\r\n}\r\n","import { Button, Form, Input, InputNumber, message, Select } from \"antd\";\r\nimport React, { useState } from \"react\";\r\n\r\nimport { FetchError } from \"../../../exceptions/AlgoSupervisionExceptions\";\r\nimport { IndeedCampaignObjectiveStrategy } from \"../../../models/indeed-manager/strategy/IndeedCampaignObjectiveStrategy\";\r\nimport { IndeedCampaignObjectiveType } from \"../../../models/indeed-manager/strategy/IndeedCampaignObjectiveType\";\r\nimport { indeedStrategyManagementService } from \"../../../services/indeed/IndeedStrategyManagementService\";\r\nimport Loader from \"../../general/loader/Loader\";\r\n\r\nconst { Option } = Select;\r\n\r\ntype FormState = {\r\n campaignObjectiveType: IndeedCampaignObjectiveType;\r\n percentOfCampaignStrategies: string;\r\n targetStrategyOptionMaxValue: string;\r\n targetStrategyOptionMinValue: string;\r\n};\r\n\r\ntype Props = {\r\n plCampaignId: string | number;\r\n onFormSubmitSuccesfully: (\r\n newlyCreatedStrategy: IndeedCampaignObjectiveStrategy\r\n ) => void;\r\n};\r\n\r\nconst IndeedStrategyForm = (props: Props) => {\r\n const { plCampaignId, onFormSubmitSuccesfully } = props;\r\n\r\n const [form] = Form.useForm();\r\n const [campaignObjectiveType, setCampaignObjectiveType] =\r\n useState();\r\n const [loading, setLoading] = useState(false);\r\n\r\n const onFinish = async (formState: FormState) => {\r\n setLoading(true);\r\n try {\r\n const newlyCreatedStrategy =\r\n await indeedStrategyManagementService.CreateStrategy(\r\n plCampaignId,\r\n {\r\n campaignObjectiveType: formState.campaignObjectiveType,\r\n percentOfCampaignStrategies: Number(\r\n formState.percentOfCampaignStrategies\r\n ),\r\n targetStrategyOptionMinValue:\r\n formState.targetStrategyOptionMinValue !== \"\"\r\n ? Number(formState.targetStrategyOptionMinValue)\r\n : undefined,\r\n targetStrategyOptionMaxValue:\r\n formState.targetStrategyOptionMaxValue !== \"\"\r\n ? Number(formState.targetStrategyOptionMaxValue)\r\n : undefined,\r\n }\r\n );\r\n\r\n onFormSubmitSuccesfully(newlyCreatedStrategy);\r\n\r\n message.success(\"Created new strategy successfully\");\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n setCampaignObjectiveType(val);\r\n }}>\r\n \r\n Maximum\r\n \r\n \r\n Balance\r\n \r\n \r\n Target Applications\r\n \r\n \r\n Target CPA\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {(campaignObjectiveType ===\r\n IndeedCampaignObjectiveType.TARGET_APPLICATIONS ||\r\n campaignObjectiveType ===\r\n IndeedCampaignObjectiveType.TARGET_COST_PER_APPLICATION) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {loading ? (\r\n \r\n ) : (\r\n \r\n \r\n Submit\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default IndeedStrategyForm;\r\n","import \"./IndeedStrategyManagement.scss\";\r\n\r\nimport { Col, Collapse, Row } from \"antd\";\r\nimport { useState } from \"react\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\nimport useOnInitAsync from \"../../../hooks/useOnInitAsync\";\r\nimport { IndeedCampaignObjectiveStrategy } from \"../../../models/indeed-manager/strategy/IndeedCampaignObjectiveStrategy\";\r\nimport { indeedStrategyManagementService } from \"../../../services/indeed/IndeedStrategyManagementService\";\r\nimport Loader from \"../../general/loader/Loader\";\r\nimport IndeedStrategyCard from \"./IndeedStrategyCard\";\r\nimport IndeedStrategyForm from \"./IndeedStrategyForm\";\r\n\r\nconst { Panel } = Collapse;\r\n\r\ntype Props = {\r\n plCampaignId: string | number;\r\n};\r\n\r\nconst IndeedStrategyManagement = (props: Props) => {\r\n const { plCampaignId } = props;\r\n\r\n const [campaignObjectiveStrategies, setCampaignObjectiveStrategies] =\r\n useState();\r\n\r\n const callback = (key: any) => {};\r\n\r\n useOnInitAsync(async () => {\r\n const campaignStrategies =\r\n await indeedStrategyManagementService.GetStrategiesByPlCampaign(\r\n plCampaignId\r\n );\r\n setCampaignObjectiveStrategies(campaignStrategies);\r\n });\r\n\r\n if (!campaignObjectiveStrategies) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n setCampaignObjectiveStrategies([\r\n ...campaignObjectiveStrategies,\r\n newlyCreatedStrategy,\r\n ]);\r\n }}\r\n />\r\n \r\n\r\n \r\n {campaignObjectiveStrategies.map(\r\n (campaignObjectiveStrategy, index) => (\r\n \r\n {\r\n setCampaignObjectiveStrategies(\r\n campaignObjectiveStrategies.filter(\r\n (x) => x.id !== objectiveId\r\n )\r\n );\r\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 IndeedStrategyManagement;\r\n","import React, { useEffect } from \"react\";\r\n\r\nconst useOnPoller = (\r\n pollIntervalInSeconds: number,\r\n pollFunction: () => void\r\n) => {\r\n useEffect(() => {\r\n const interval = setInterval(\r\n pollFunction,\r\n pollIntervalInSeconds * 1000\r\n );\r\n\r\n return function cleanUp() {\r\n clearInterval(interval);\r\n };\r\n }, []);\r\n};\r\n\r\nexport default useOnPoller;\r\n","// styles.js\r\nimport styled from 'styled-components';\r\nimport { Checkbox, Input, InputNumber } from 'antd';\r\nimport TextArea from 'antd/lib/input/TextArea';\r\n\r\nexport const StyledInputNumberWrapper = styled(InputNumber)`\r\n background: white;\r\n border-radius: 4px;\r\n border: 1px #809BAF solid;\r\n justify-content: flex-start;\r\n align-items: center;\r\n display: flex;\r\n`;\r\n\r\nexport const StyledTextAreaWrapper = styled(Input.TextArea)`\r\n border-radius: 4px;\r\n border: 1px #809BAF solid;\r\n`;\r\n\r\nexport const StyledTitle = styled.div`\r\n align-self: stretch;\r\n height: 19px;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: center;\r\n color: #225A78;\r\n font-size: 16px;\r\n font-family: 'Open Sans';\r\n font-weight: 700;\r\n line-height: 19.20px;\r\n word-wrap: break-word;\r\n`;\r\n\r\nexport const StyledHeader = styled.div`\r\n color: '#225A78';\r\n font-size: 18px;\r\n font-family: 'Open Sans';\r\n font-weight: '400';\r\n word-wrap: 'break-word' ;\r\n`;\r\n\r\nexport const StyledInputGroupWrapper = styled.div`\r\n flex-direction: row; \r\n justify-content: center;\r\n align-items: flex-start;\r\n gap: 24px;\r\n display: flex;\r\n`;\r\n\r\nexport const StyledColumnGroupWrapper = styled.div`\r\nflex-direction: column;\r\njustify-content: center;\r\nalign-items: flex-start;\r\ngap: 12px;\r\ndisplay: flex;\r\n`;\r\n\r\nexport const StyledColumnGroupToTopWrapper = styled.div`\r\nflex-direction: column;\r\njustify-content: flex-start;\r\nalign-items: flex-start;\r\ngap: 12px;\r\ndisplay: flex;\r\n`;\r\n\r\nexport const StyledInputLabel = styled.div`\r\n color: #485465;\r\n font-size: 14px;\r\n font-family: 'Open Sans';\r\n font-weight: 600;\r\n line-height: 18.20px;\r\n word-wrap: break-word;\r\n \r\n`;\r\n\r\nexport const StyledToggleWrapper = styled.div`\r\n width: 198px;\r\n background: white;\r\n border-radius: 4px;\r\n border: 1px #809BAF solid;\r\n justify-content: flex-start;\r\n align-items: center;\r\n display: flex;\r\n`;\r\n\r\nexport const StyledContainer = styled.div`\r\nwidth: 100%;\r\nheight: 100%;\r\npadding: 26px 24px 30px 24px;\r\nbackground: white;\r\nbox-shadow: 0px 1px 8px rgba(0, 0, 0, 0.10);\r\nborder-radius: 4px;\r\ndisplay: flex;\r\nflex-direction: column;\r\njustify-content: flex-start;\r\nalign-items: flex-start;\r\ngap: 24px;\r\n`;\r\n\r\nexport const StyledCheckbox = styled(Checkbox)`\r\n color: #225A78;\r\n font-size: 14px;\r\n font-family: 'Open Sans';\r\n font-weight: 500;\r\n line-height: 14.40px;\r\n word-wrap: break-word;\r\n`;\r\n\r\nexport const StyledSubSection = styled.div`\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: flex-start;\r\n gap: 12px;\r\n display: flex;\r\n`;\r\n\r\nexport const StyledGroupWrapper = styled.div`\r\n flex-direction: row; \r\n justify-content: center;\r\n gap: 24px;\r\n display: flex;\r\n`;\r\n\r\nexport const StyledModeWrapper = styled.div`\r\n justify-content: flex-start;\r\n align-items: center;\r\n gap: 8px;\r\n display: inline-flex;\r\n`;\r\n\r\n\r\n\r\n\r\n","\r\nexport enum SubAccountStatusId {\r\n Revoked = 0,\r\n Idle = -1,\r\n Active = 1\r\n}","import { Box } from \"@material-ui/core\";\r\nimport { Alert } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\"\r\nimport { StyledTitle } from \"../attributes-management/Styles\";\r\nimport { SubAccountStatusId } from \"../../models/indeed-manager/SubAccountStatusId\";\r\nimport { IndeedSubAccount } from \"../../models/indeed-manager/IndeedSubAccount\";\r\n\r\ninterface Props {\r\n indeedSubAccount?: IndeedSubAccount;\r\n showSubAccountName?: boolean;\r\n}\r\n\r\nconst IndeedSubAccountStatus = (props: Props) => {\r\n\r\n const { indeedSubAccount, showSubAccountName} = props;\r\n\r\n type AlertType = \"warning\" | \"error\" | \"success\" | \"info\" | undefined;\r\n\r\n // Helper function to generate alert message and type\r\n const getAlertMessageAndType = (indeedSubAccount?: IndeedSubAccount)\r\n : { message: string | null, type: AlertType, display: boolean } => {\r\n console.log(indeedSubAccount?.statusId);\r\n if (!indeedSubAccount) {\r\n return {\r\n message: \"This account isn't connected to an active Indeed sub account.\",\r\n type: \"error\",\r\n display: true\r\n };\r\n }\r\n\r\n const { statusId } = indeedSubAccount;\r\n\r\n switch (statusId) {\r\n case -1: // Idle\r\n return {\r\n message: \"This account is connected to an idle Indeed sub account.\",\r\n type: \"warning\",\r\n display: true\r\n };\r\n case 0: // Revoked\r\n return {\r\n message: \"This account is connected to a revoked Indeed sub account.\",\r\n type: \"error\",\r\n display: true\r\n };\r\n default : // Active\r\n return {\r\n message: null, // No alert message needed\r\n type: undefined,\r\n display: false\r\n };\r\n }\r\n };\r\n\r\n const { message, type, display } = getAlertMessageAndType(indeedSubAccount);\r\n\r\n const statusText = (indeedSubAccount?.statusId != null && indeedSubAccount?.statusId != undefined)\r\n ? SubAccountStatusId[indeedSubAccount.statusId]\r\n : \"Unknown\";\r\n return (\r\n <>\r\n {display && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n Indeed Connection: {indeedSubAccount?.indeedSubAccountName}, Status: {statusText}\r\n \r\n \r\n >\r\n );\r\n};\r\nexport default observer(IndeedSubAccountStatus)\r\n\r\n\r\n","import { Button, message } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport hash from \"object-hash\";\r\nimport { useContext, useRef } from \"react\";\r\nimport { BiPlusCircle } from \"react-icons/bi\";\r\nimport { Link, useHistory, useParams } from \"react-router-dom\";\r\n\r\nimport Loader from \"../../../components/general/loader/Loader\";\r\nimport IndeedCampaignsTable from \"../../../components/indeed-manager/IndeedCampaignsTable\";\r\nimport IndeedStrategyManagement from \"../../../components/indeed-manager/strategy/IndeedStrategyManagement\";\r\nimport { RoutesPaths } from \"../../../constants/RoutePaths\";\r\nimport useOnInitAsync from \"../../../hooks/useOnInitAsync\";\r\nimport useOnPoller from \"../../../hooks/useOnPoller\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport indeedService from \"../../../services/indeed/IndeedService\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport { IndeedContextInitializers } from \"./helpers/IndeedContextInitializers\";\r\nimport { IndeedBreadcrumbs } from \"./helpers/IndeedManager.breadcrumbs\";\r\nimport { IndeedSubAccount } from \"../../../models/indeed-manager/IndeedSubAccount\";\r\nimport IndeedSubAccountStatus from \"../../../components/indeed-manager/IndeedSubAccountStatus\";\r\nimport { SubAccountStatusId } from \"../../../models/indeed-manager/SubAccountStatusId\";\r\nimport \"./IndeedCampaignPage.scss\";\r\n\r\ninterface Props { }\r\n\r\nconst IndeedCampaignPage = (props: Props) => {\r\n const match = useParams<{ campaignId: string }>();\r\n const history = useHistory();\r\n const { indeedStore, uiStore, companyStore } = useContext(RootStoreContext);\r\n const plDataHash = useRef(\"\");\r\n\r\n useOnInitAsync(async () => {\r\n await IndeedContextInitializers.InitializePLCampaignData(\r\n Number(match.campaignId),\r\n indeedStore,\r\n history\r\n );\r\n await IndeedContextInitializers.InitializeIndeedSubAccount(\r\n indeedStore,\r\n history,\r\n companyStore.SelectedCompany?.companyId\r\n );\r\n uiStore.SetPageTitle(\r\n `Indeed Campaigns for: ${indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignName}`\r\n );\r\n plDataHash.current = hash(indeedStore.PLCampaignData ?? \"\");\r\n });\r\n\r\n usePageInitialization({\r\n\r\n onCompanyContextCallBack: (company, uiStore) => {\r\n /* uiStore.SetPageTitle(\r\n `Indeed Campaigns for: ${indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignName}`\r\n );*/\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Companies(company.companyName),\r\n SupervisionBreadcrumbs.Campaigns(`${indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignName}`),\r\n IndeedBreadcrumbs.Indeed(company.companyId),\r\n );\r\n },\r\n\r\n });\r\n\r\n // Update page if data changed\r\n useOnPoller(10, async () => {\r\n const plData = await indeedService.GetIndeedCampaignsByPLCampaignId(\r\n Number(match.campaignId)\r\n );\r\n\r\n if (hash(plData) != plDataHash.current) {\r\n indeedStore.SetPLCampaignData(plData);\r\n plDataHash.current = hash(plData);\r\n message.info(\"Updated table since data has been changed\");\r\n }\r\n });\r\n\r\n if (indeedStore.IsDataLoading) {\r\n return ;\r\n }\r\n\r\n const indeedSubAccountIsDisconnectedOrRevoked = () => {\r\n\r\n if (indeedStore?.indeedSubAccount?.statusId == SubAccountStatusId.Active\r\n || indeedStore?.indeedSubAccount?.statusId == SubAccountStatusId.Idle) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n return (\r\n \r\n {/* */}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Add New Indeed Campaign\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(IndeedCampaignPage);\r\n","import { ISODateTime } from \"../../types/types\";\r\nimport { IndeedBudgetFirstMonthBehavior } from \"./IndeedBudgetFirstMonthBehavior\";\r\n\r\nexport class IndeedUpdateCampaignBudgetEventPayload {\r\n constructor(\r\n public indeedCampaignId: string,\r\n public userId: number,\r\n public startDate?: ISODateTime,\r\n public fixedEndDate?: ISODateTime,\r\n public targetEndDate?: ISODateTime,\r\n public budgetFirstMonthBehavior?: IndeedBudgetFirstMonthBehavior,\r\n public budgetOnetimeLimit?: number,\r\n public budgetMonthlyLimit?: number\r\n ) {}\r\n}\r\n","import { CampaignSettingsAuditDto } from \"../../components/campaign-track-system/CampaignSettingsAudit.dto\";\r\nimport { IndeedCampaignObjective } from \"./IndeedCampaignObjective\";\r\nimport { IndeedCampaignStatus } from \"./IndeedCampaignStatus\";\r\n\r\nexport class IndeedUpdateCampaignEventPayload {\r\n constructor(\r\n public indeedCampaignId: string,\r\n public userId: number,\r\n public name?: string,\r\n public status?: IndeedCampaignStatus,\r\n public objective?: IndeedCampaignObjective\r\n ) { }\r\n}\r\n","import { Button, Form, message, Select } from \"antd\";\r\nimport moment, { Moment } from \"moment\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\nimport { RoutesPaths } from \"../../constants/RoutePaths\";\r\nimport { FetchError } from \"../../exceptions/AlgoSupervisionExceptions\";\r\nimport { IndeedBudgetFirstMonthBehavior } from \"../../models/indeed-manager/IndeedBudgetFirstMonthBehavior\";\r\nimport { IndeedCampaign } from \"../../models/indeed-manager/IndeedCampaign\";\r\nimport { IndeedCampaignBudgetType } from \"../../models/indeed-manager/IndeedCampaignBudgetType\";\r\nimport { IndeedCampaignObjective } from \"../../models/indeed-manager/IndeedCampaignObjective\";\r\nimport {\r\n INDEED_CAMPAIGN_OBJECTIVE_DEFAULT_VALUE,\r\n IndeedCampaignObjectiveType\r\n} from \"../../models/indeed-manager/IndeedCampaignObjectiveType\";\r\nimport { IndeedCampaignStatus } from \"../../models/indeed-manager/IndeedCampaignStatus\";\r\nimport { IndeedEndDateType } from \"../../models/indeed-manager/IndeedEndDateType\";\r\nimport { IndeedUpdateCampaignBudgetEventPayload } from \"../../models/indeed-manager/IndeedUpdateCampaignBudgetEventPayload\";\r\nimport { IndeedUpdateCampaignEventPayload } from \"../../models/indeed-manager/IndeedUpdateCampaignEventPayload\";\r\nimport indeedService from \"../../services/indeed/IndeedService\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport CampaignBudgetInputs from \"./CampaignBudgetInputs\";\r\nimport CampaignDetailsInputs from \"./CampaignDetailsInputs\";\r\n\r\nconst { Option } = Select;\r\n\r\ninterface Props {\r\n plCampaignId: number;\r\n}\r\n\r\nconst layout = {\r\n labelCol: { span: 8 },\r\n wrapperCol: { span: 16 },\r\n};\r\n\r\n/* eslint-disable no-template-curly-in-string */\r\nconst validateMessages = {\r\n required: \"${label} is required!\",\r\n types: {\r\n email: \"${label} is not a valid email!\",\r\n number: \"${label} is not a valid number!\",\r\n },\r\n number: {\r\n range: \"${label} must be between ${min} and ${max}\",\r\n },\r\n};\r\n\r\ntype FormState = {\r\n campaignName: string;\r\n campaignStatus: IndeedCampaignStatus;\r\n budgetType: IndeedEndDateType;\r\n startDate: Moment;\r\n endDate: Moment;\r\n budgetLimitSettings: IndeedCampaignBudgetType;\r\n budgetLimitValue: string;\r\n budgetFirstMonthBehavior: IndeedBudgetFirstMonthBehavior | undefined;\r\n campaignObjective: IndeedCampaignObjective;\r\n};\r\n\r\ninterface Props {\r\n plCampaignId: number;\r\n indeedCampaign: IndeedCampaign;\r\n}\r\n\r\nconst IndeedEditCampaignForm = (props: Props) => {\r\n const { plCampaignId, indeedCampaign } = props;\r\n const { userStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n\r\n const onFinish = async (formState: FormState) => {\r\n const changedBudgetSettings = GetChangedBudgetSettings(\r\n formState,\r\n initialValues\r\n );\r\n\r\n const changedCampaignSettings = GetChangedCampaignSettings(\r\n formState,\r\n initialValues\r\n );\r\n\r\n if (\r\n IsEmptyObject(changedCampaignSettings) &&\r\n IsEmptyObject(changedBudgetSettings)\r\n ) {\r\n message.info(\"Nothing changed in campaign settings.\");\r\n return;\r\n }\r\n\r\n let hasErrorOccured = false;\r\n\r\n if (!IsEmptyObject(changedBudgetSettings)) {\r\n const newBudgetLimits = GetNewBudgetLimits(\r\n changedBudgetSettings,\r\n initialValues\r\n );\r\n\r\n const endDates = GetEndDates(changedBudgetSettings, initialValues);\r\n\r\n const updateBudgetRequest =\r\n new IndeedUpdateCampaignBudgetEventPayload(\r\n indeedCampaign.id,\r\n userStore.User!.id,\r\n changedBudgetSettings.startDate?.toISOString(),\r\n endDates.fixedEndDate,\r\n endDates.targetEndDate,\r\n changedBudgetSettings.budgetFirstMonthBehavior,\r\n newBudgetLimits.budgetOneTimeLimit,\r\n newBudgetLimits.budgetMonthlyLimit\r\n );\r\n\r\n try {\r\n var response = await indeedService.UpdateCampaignBudget(updateBudgetRequest);\r\n message.success(response.body);\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n hasErrorOccured = true;\r\n }\r\n }\r\n\r\n if (!IsEmptyObject(changedCampaignSettings)) {\r\n const updateCampaignRequest = new IndeedUpdateCampaignEventPayload(\r\n indeedCampaign.id,\r\n userStore.User!.id,\r\n changedCampaignSettings.name,\r\n changedCampaignSettings.status,\r\n changedCampaignSettings.campaignObjective\r\n );\r\n try {\r\n var response = await indeedService.UpdateCampaign(updateCampaignRequest);\r\n message.success(response.body);\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n hasErrorOccured = true;\r\n }\r\n }\r\n\r\n if (!hasErrorOccured) {\r\n history.push(\r\n RoutesPaths.Supervision.IndeedRoutes.BuildCampaignRoute(\r\n plCampaignId\r\n )\r\n );\r\n }\r\n };\r\n\r\n const initialValues: FormState = {\r\n campaignName: indeedCampaign.name,\r\n campaignStatus: indeedCampaign.status,\r\n budgetType: indeedCampaign.endDateType,\r\n startDate: moment(indeedCampaign.startDate),\r\n endDate: moment(indeedCampaign.endDate),\r\n budgetLimitSettings: indeedCampaign.campaignBudgetType,\r\n budgetLimitValue: indeedCampaign.campaignBudget?.toString() ?? \"0\",\r\n budgetFirstMonthBehavior: indeedCampaign.budgetFirstMonthBehavior,\r\n campaignObjective: {\r\n type:\r\n indeedCampaign.campaignObjectiveType ||\r\n INDEED_CAMPAIGN_OBJECTIVE_DEFAULT_VALUE,\r\n target: indeedCampaign.campaignObjectiveTarget,\r\n },\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n Edit Campaign\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default IndeedEditCampaignForm;\r\n\r\ntype ChangedBudgetSettings = {\r\n budgetType?: IndeedEndDateType;\r\n startDate?: Moment;\r\n endDate?: Moment;\r\n budgetLimitSettings?: IndeedCampaignBudgetType;\r\n budgetLimitValue?: string;\r\n budgetFirstMonthBehavior?: IndeedBudgetFirstMonthBehavior;\r\n};\r\n\r\nfunction GetChangedBudgetSettings(\r\n newFormState: FormState,\r\n oldFormState: FormState\r\n): ChangedBudgetSettings {\r\n const changedBudgetSettings: ChangedBudgetSettings = {};\r\n\r\n if (oldFormState.budgetType != newFormState.budgetType) {\r\n changedBudgetSettings[\"budgetType\"] = newFormState.budgetType;\r\n }\r\n\r\n if (!oldFormState.startDate.isSame(newFormState.startDate)) {\r\n changedBudgetSettings[\"startDate\"] = newFormState.startDate;\r\n }\r\n\r\n if (!oldFormState.endDate.isSame(newFormState.endDate)) {\r\n changedBudgetSettings[\"endDate\"] = newFormState.endDate;\r\n }\r\n\r\n if (oldFormState.budgetLimitSettings != newFormState.budgetLimitSettings) {\r\n changedBudgetSettings[\"budgetLimitSettings\"] =\r\n newFormState.budgetLimitSettings;\r\n }\r\n\r\n if (oldFormState.budgetLimitValue != newFormState.budgetLimitValue) {\r\n changedBudgetSettings[\"budgetLimitValue\"] =\r\n newFormState.budgetLimitValue;\r\n }\r\n\r\n if (\r\n oldFormState.budgetFirstMonthBehavior !=\r\n newFormState.budgetFirstMonthBehavior\r\n ) {\r\n changedBudgetSettings[\"budgetFirstMonthBehavior\"] =\r\n newFormState.budgetFirstMonthBehavior;\r\n }\r\n\r\n return changedBudgetSettings;\r\n}\r\n\r\ntype CampaignChangedSettings = {\r\n name?: string;\r\n status?: IndeedCampaignStatus;\r\n campaignObjective?: IndeedCampaignObjective;\r\n};\r\n\r\nfunction GetChangedCampaignSettings(\r\n newFormState: FormState,\r\n oldFormState: FormState\r\n): CampaignChangedSettings {\r\n const changedCampaignAttributes: CampaignChangedSettings = {};\r\n\r\n if (oldFormState.campaignName != newFormState.campaignName) {\r\n changedCampaignAttributes[\"name\"] = newFormState.campaignName;\r\n }\r\n\r\n if (oldFormState.campaignStatus != newFormState.campaignStatus) {\r\n changedCampaignAttributes[\"status\"] = newFormState.campaignStatus;\r\n }\r\n\r\n const changedCampaignObjective = GetChangedCampaignObjective(\r\n newFormState,\r\n oldFormState\r\n );\r\n if (changedCampaignObjective) {\r\n changedCampaignAttributes.campaignObjective = changedCampaignObjective;\r\n }\r\n\r\n return changedCampaignAttributes;\r\n}\r\n\r\nfunction GetNewBudgetLimits(\r\n changedBudgetSettings: ChangedBudgetSettings,\r\n initialFormState: FormState\r\n): {\r\n budgetOneTimeLimit?: number;\r\n budgetMonthlyLimit?: number;\r\n} {\r\n // if both settings and value changed\r\n if (\r\n changedBudgetSettings.budgetLimitSettings &&\r\n changedBudgetSettings.budgetLimitValue\r\n ) {\r\n if (\r\n changedBudgetSettings.budgetLimitSettings ==\r\n IndeedCampaignBudgetType.Monthly\r\n ) {\r\n return {\r\n budgetMonthlyLimit: Number(\r\n changedBudgetSettings.budgetLimitValue\r\n ),\r\n };\r\n } else if (\r\n changedBudgetSettings.budgetLimitSettings ==\r\n IndeedCampaignBudgetType.OneTime\r\n ) {\r\n return {\r\n budgetOneTimeLimit: Number(\r\n changedBudgetSettings.budgetLimitValue\r\n ),\r\n };\r\n }\r\n }\r\n\r\n // if only settings changed\r\n else if (\r\n changedBudgetSettings.budgetLimitSettings &&\r\n changedBudgetSettings.budgetLimitValue == undefined\r\n ) {\r\n if (\r\n changedBudgetSettings.budgetLimitSettings ==\r\n IndeedCampaignBudgetType.Monthly\r\n ) {\r\n return {\r\n budgetMonthlyLimit: Number(initialFormState.budgetLimitValue),\r\n };\r\n } else if (\r\n changedBudgetSettings.budgetLimitSettings ==\r\n IndeedCampaignBudgetType.OneTime\r\n ) {\r\n return {\r\n budgetOneTimeLimit: Number(initialFormState.budgetLimitValue),\r\n };\r\n }\r\n }\r\n\r\n // if only value changed\r\n else if (\r\n changedBudgetSettings.budgetLimitSettings == undefined &&\r\n changedBudgetSettings.budgetLimitValue\r\n ) {\r\n if (\r\n initialFormState.budgetLimitSettings ==\r\n IndeedCampaignBudgetType.Monthly\r\n ) {\r\n return {\r\n budgetMonthlyLimit: Number(\r\n changedBudgetSettings.budgetLimitValue\r\n ),\r\n };\r\n } else if (\r\n initialFormState.budgetLimitSettings ==\r\n IndeedCampaignBudgetType.OneTime\r\n ) {\r\n return {\r\n budgetOneTimeLimit: Number(\r\n changedBudgetSettings.budgetLimitValue\r\n ),\r\n };\r\n }\r\n }\r\n\r\n return {};\r\n}\r\n\r\nfunction GetEndDates(\r\n changedBudgetSettings: ChangedBudgetSettings,\r\n initialFormState: FormState\r\n): {\r\n fixedEndDate?: string;\r\n targetEndDate?: string;\r\n} {\r\n // if both budget type and end date changed\r\n if (changedBudgetSettings.budgetType && changedBudgetSettings.endDate) {\r\n if (changedBudgetSettings.budgetType == IndeedEndDateType.Fixed) {\r\n return {\r\n fixedEndDate: changedBudgetSettings.endDate.toISOString(),\r\n };\r\n } else if (\r\n changedBudgetSettings.budgetType == IndeedEndDateType.Target\r\n ) {\r\n return {\r\n targetEndDate: changedBudgetSettings.endDate.toISOString(),\r\n };\r\n }\r\n }\r\n\r\n // if only budgetType changed\r\n else if (\r\n changedBudgetSettings.budgetType &&\r\n changedBudgetSettings.endDate == undefined\r\n ) {\r\n if (changedBudgetSettings.budgetType == IndeedEndDateType.Fixed) {\r\n return {\r\n fixedEndDate: initialFormState.endDate.toISOString(),\r\n };\r\n } else if (\r\n changedBudgetSettings.budgetType == IndeedEndDateType.Target\r\n ) {\r\n return {\r\n targetEndDate: initialFormState.endDate.toISOString(),\r\n };\r\n }\r\n }\r\n\r\n // if only end date changed\r\n else if (\r\n changedBudgetSettings.budgetType == undefined &&\r\n changedBudgetSettings.endDate\r\n ) {\r\n if (initialFormState.budgetType == IndeedEndDateType.Fixed) {\r\n return {\r\n fixedEndDate: changedBudgetSettings.endDate.toISOString(),\r\n };\r\n } else if (initialFormState.budgetType == IndeedEndDateType.Target) {\r\n return {\r\n targetEndDate: changedBudgetSettings.endDate.toISOString(),\r\n };\r\n }\r\n }\r\n\r\n return {};\r\n}\r\n\r\nfunction GetChangedCampaignObjective(\r\n newFormState: FormState,\r\n oldFormState: FormState\r\n): IndeedCampaignObjective | undefined {\r\n if (\r\n oldFormState.campaignObjective.type ==\r\n IndeedCampaignObjectiveType.BALANCE ||\r\n oldFormState.campaignObjective.type ==\r\n IndeedCampaignObjectiveType.MAXIMUM\r\n ) {\r\n return undefined;\r\n }\r\n\r\n // If target changed\r\n if (\r\n newFormState.campaignObjective.target !=\r\n oldFormState.campaignObjective.target\r\n ) {\r\n return {\r\n type: oldFormState.campaignObjective.type,\r\n target: newFormState.campaignObjective.target,\r\n };\r\n }\r\n\r\n // If target didn't change\r\n return undefined;\r\n}\r\n\r\nfunction IsEmptyObject(object: object): boolean {\r\n return Object.keys(object).length == 0;\r\n}\r\n","import { observer } from \"mobx-react-lite\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\n\r\nimport Loader from \"../../../components/general/loader/Loader\";\r\nimport IndeedEditCampaignForm from \"../../../components/indeed-manager/IndeedEditCampaignForm\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport { IndeedContextInitializers } from \"./helpers/IndeedContextInitializers\";\r\nimport { IndeedBreadcrumbs } from \"./helpers/IndeedManager.breadcrumbs\";\r\n\r\ninterface Props {}\r\n\r\nconst IndeedEditCampaignPage = (props: Props) => {\r\n const match = useParams<{ campaignId: string; indeedCampaignId: string }>();\r\n const history = useHistory();\r\n const { indeedStore } = useContext(RootStoreContext);\r\n\r\n usePageInitialization({\r\n onInitAsync: async () => {\r\n await IndeedContextInitializers.InitializePLCampaignData(\r\n Number(match.campaignId),\r\n indeedStore,\r\n history\r\n );\r\n await IndeedContextInitializers.InitializeSelectedIndeedCampaign(\r\n match.indeedCampaignId,\r\n indeedStore.PLCampaignData!,\r\n indeedStore,\r\n history\r\n );\r\n },\r\n onCompanyContextCallBack: (company, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Edit Indeed Campaign: ${indeedStore.SelectedIndeedCampaign?.name}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Companies(company.companyName),\r\n SupervisionBreadcrumbs.Campaigns(`${indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignName}`),\r\n IndeedBreadcrumbs.Indeed(Number(indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignID)),\r\n IndeedBreadcrumbs.IndeedCampaign(\r\n indeedStore.SelectedIndeedCampaign?.name ?? \"\"\r\n ),\r\n IndeedBreadcrumbs.EditCampaign(\r\n Number(indeedStore.PLCampaignData?.indeedCampaignSourceInfo.campaignID),\r\n match.indeedCampaignId\r\n )\r\n );\r\n },\r\n });\r\n\r\n if (!indeedStore.SelectedIndeedCampaign) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(IndeedEditCampaignPage);\r\n","import { CreateLinkedInBudgetStrategyRequest } from \"../../models/linkedin-manager/strategy/CreateLinkedInBudgetStrategyRequest\";\r\nimport { LinkedInBudgetStrategy } from \"../../models/linkedin-manager/strategy/LinkedInBudgetStrategy\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\nclass LinkedInStrategyManagementService extends BaseService {\r\n public async GetStrategiesByCompanyId(\r\n companyId: number | string\r\n ): Promise {\r\n return await this.Get(\r\n `/${companyId}/linkedin-strategy`\r\n );\r\n }\r\n\r\n public async CreateStrategy(\r\n companyId: number | string,\r\n createLinkedInBudgetStrategyRequest: CreateLinkedInBudgetStrategyRequest\r\n ): Promise {\r\n return await this.Post(\r\n `/${companyId}/linkedin-strategy`,\r\n createLinkedInBudgetStrategyRequest\r\n );\r\n }\r\n\r\n public async DeleteStrategy(\r\n companyId: number | string,\r\n id: number\r\n ): Promise {\r\n return await this.Delete(\r\n `/${companyId}/linkedin-strategy/${id}`\r\n );\r\n }\r\n}\r\n\r\nexport const linkedinStrategyManagementService = new LinkedInStrategyManagementService(\"company\");","export enum LinkedInBudgetLevel {\r\n LOW = 1,\r\n MEDIUM = 2,\r\n HIGH = 3,\r\n VERY_HIGH = 4\r\n}\r\n","import { Button, Form, Input, InputNumber, message, Select } from \"antd\";\r\nimport React, { useState } from \"react\";\r\n\r\nimport { FetchError } from \"../../../exceptions/AlgoSupervisionExceptions\";\r\nimport { LinkedInBudgetLevel } from \"../../../models/linkedin-manager/strategy/LinkedInBudgetLevel\";\r\nimport { LinkedInBudgetStrategy } from \"../../../models/linkedin-manager/strategy/LinkedInBudgetStrategy\";\r\nimport { linkedinStrategyManagementService } from \"../../../services/linkedin/LinkedInStrategyManagementService\";\r\nimport Loader from \"../../general/loader/Loader\";\r\n\r\nconst { Option } = Select;\r\n\r\ntype FormState = {\r\n budgetLevel: LinkedInBudgetLevel;\r\n percentOfStrategies: string;\r\n};\r\n\r\ntype Props = {\r\n companyId: string | number;\r\n onFormSubmitSuccesfully: (\r\n newlyCreatedStrategy: LinkedInBudgetStrategy\r\n ) => void;\r\n};\r\n\r\nconst LinkedInStrategyForm = (props: Props) => {\r\n const { companyId, onFormSubmitSuccesfully } = props;\r\n\r\n const [form] = Form.useForm();\r\n const [budgetLevel, setBudgetLevel] =\r\n useState();\r\n const [loading, setLoading] = useState(false);\r\n\r\n const onFinish = async (formState: FormState) => {\r\n setLoading(true);\r\n try {\r\n const newlyCreatedStrategy =\r\n await linkedinStrategyManagementService.CreateStrategy(\r\n companyId,\r\n {\r\n budgetLevel: formState.budgetLevel,\r\n percentOfStrategies: Number(\r\n formState.percentOfStrategies\r\n )\r\n }\r\n );\r\n\r\n onFormSubmitSuccesfully(newlyCreatedStrategy);\r\n\r\n message.success(\"Created new strategy successfully\");\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n setBudgetLevel(val);\r\n }}>\r\n \r\n Low\r\n \r\n \r\n Medium\r\n \r\n \r\n High\r\n \r\n \r\n Very High\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {loading ? (\r\n \r\n ) : (\r\n \r\n \r\n Submit\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LinkedInStrategyForm;\r\n","import { Card, message, Typography } from \"antd\";\r\n\r\nimport { FetchError } from \"../../../exceptions/AlgoSupervisionExceptions\";\r\nimport { LinkedInBudgetLevel } from \"../../../models/linkedin-manager/strategy/LinkedInBudgetLevel\";\r\nimport { LinkedInBudgetStrategy } from \"../../../models/linkedin-manager/strategy/LinkedInBudgetStrategy\";\r\nimport { linkedinStrategyManagementService } from \"../../../services/linkedin/LinkedInStrategyManagementService\";\r\n\r\nconst { Text } = Typography;\r\n\r\ntype Props = {\r\n linkedinBudgetStrategy: LinkedInBudgetStrategy;\r\n companyId: number | string;\r\n onDelete: (linkedinBudgetStrategyId: number) => void;\r\n};\r\n\r\nfunction mapBudgetLevelToReadableText(\r\n budgetLevel: LinkedInBudgetLevel\r\n) {\r\n switch (budgetLevel) {\r\n case LinkedInBudgetLevel.LOW:\r\n return \"Low\";\r\n case LinkedInBudgetLevel.MEDIUM:\r\n return \"Medium\";\r\n case LinkedInBudgetLevel.HIGH:\r\n return \"High\";\r\n case LinkedInBudgetLevel.VERY_HIGH:\r\n return \"Very High\";\r\n default:\r\n throw new Error(\r\n `Unsupported linkedin budget level ${budgetLevel}`\r\n );\r\n }\r\n}\r\n\r\nconst LinkedInStrategyCard = (props: Props) => {\r\n const { linkedinBudgetStrategy, companyId, onDelete } = props;\r\n\r\n return (\r\n {\r\n try {\r\n await linkedinStrategyManagementService.DeleteStrategy(\r\n companyId,\r\n linkedinBudgetStrategy.id\r\n );\r\n onDelete(linkedinBudgetStrategy.id);\r\n message.success(\"Deleted strategy successfully\");\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n }\r\n }}>\r\n Delete\r\n ,\r\n ]}\r\n style={{ border: \"1px solid #d9d9d9\" }}>\r\n \r\n Percent{\" \"}\r\n \r\n {\r\n linkedinBudgetStrategy.percentOfStrategies\r\n }\r\n %\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LinkedInStrategyCard;\r\n","import { Col, Collapse, Row } from \"antd\";\r\nimport { useState } from \"react\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\nimport useOnInitAsync from \"../../../hooks/useOnInitAsync\";\r\nimport { LinkedInBudgetStrategy } from \"../../../models/linkedin-manager/strategy/LinkedInBudgetStrategy\";\r\nimport { linkedinStrategyManagementService } from \"../../../services/linkedin/LinkedInStrategyManagementService\";\r\nimport Loader from \"../../general/loader/Loader\";\r\nimport LinkedInStrategyForm from \"./LinkedInStrategyForm\";\r\nimport LinkedInStrategyCard from \"./LinkedInStrategyCard\";\r\n\r\nconst { Panel } = Collapse;\r\n\r\ntype Props = {\r\n companyId: string | number;\r\n};\r\n\r\nconst LinkedInStrategyManagement = (props: Props) => {\r\n const { companyId } = props;\r\n\r\n const [BudgetStrategies, setBudgetStrategies] =\r\n useState();\r\n\r\n const callback = (key: any) => {};\r\n\r\n useOnInitAsync(async () => {\r\n const companyStrategies =\r\n await linkedinStrategyManagementService.GetStrategiesByCompanyId(\r\n companyId\r\n );\r\n setBudgetStrategies(companyStrategies);\r\n });\r\n\r\n if (!BudgetStrategies) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n setBudgetStrategies([\r\n ...BudgetStrategies,\r\n newlyCreatedStrategy,\r\n ]);\r\n }}\r\n />\r\n \r\n\r\n \r\n {BudgetStrategies.map(\r\n (BudgetStrategy, index) => (\r\n \r\n {\r\n setBudgetStrategies(\r\n BudgetStrategies.filter(\r\n (x) => x.id !== BudgetStrategyId\r\n )\r\n );\r\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 LinkedInStrategyManagement;\r\n","import { RoutesPaths } from \"../../../../constants/RoutePaths\";\r\nimport { BreadCrumb } from \"../../../../models/BreadCrumb\";\r\n\r\nexport const LinkedInBreadcrumbs = {\r\n LinkedIn: (companyId: number) => {\r\n return new BreadCrumb(\r\n \"LinkedIn\",\r\n RoutesPaths.Supervision.LinkedInRoutes.BuildStrategyRoute(companyId),\r\n null\r\n );\r\n }\r\n};\r\n","import { Box } from \"@material-ui/core\";\r\nimport { observer } from \"mobx-react-lite\"\r\nimport { StyledTitle } from \"../attributes-management/Styles\";\r\nimport { LinkedInChildApplicationResponse } from \"../../models/linkedin-manager/LinkedInChildApplicationResponse\";\r\nimport { Alert } from \"antd\";\r\n\r\ninterface Props {\r\n linkedinChildApplication?: LinkedInChildApplicationResponse;\r\n}\r\n\r\nconst LinkedinChildApplication = (props: Props) => {\r\n\r\n const { linkedinChildApplication } = props;\r\n type AlertType = \"warning\" | \"error\" | \"info\" | undefined;\r\n\r\n // Helper function to generate alert message and type\r\n const getAlertMessageAndType = (linkedinChildApplication?: LinkedInChildApplicationResponse)\r\n : { message: string | null, type: AlertType, display: boolean } => {\r\n\r\n if (!linkedinChildApplication) {\r\n return {\r\n message: \"This account isn't connected to a LinkedIn child application\",\r\n type: \"error\",\r\n display: true\r\n };\r\n }\r\n return {\r\n message: null, // No alert message needed\r\n type: undefined,\r\n display: false\r\n };\r\n };\r\n\r\n const { message, type, display } = getAlertMessageAndType(linkedinChildApplication);\r\n\r\n return (\r\n <>\r\n {display && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n Linkedin child application: {linkedinChildApplication ? linkedinChildApplication.name : \"None\"}\r\n \r\n \r\n >\r\n );\r\n};\r\nexport default observer(LinkedinChildApplication)\r\n\r\n\r\n","\r\nimport { LinkedInChildApplicationResponse } from \"../../models/linkedin-manager/LinkedInChildApplicationResponse\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\nexport class LinkedInService\r\n extends BaseService {\r\n /**\r\n * Gets the LinkedIn child application of a company\r\n * \r\n */\r\n async GetLinkedInChildApplicationByCompanyId(companyId?: number) {\r\n const linkedInChildApplication = await this.Get(`/linkedin-child-application/${companyId}`);\r\n return linkedInChildApplication;\r\n }\r\n}\r\n\r\nconst linkedinService = new LinkedInService(\"LinkedIn\");\r\nexport default linkedinService","\r\nimport { message } from \"antd\";\r\n\r\nimport { LinkedInStore } from \"../../../../stores/LinkedInStore\";\r\nimport linkedinService from \"../../../../services/linkedin/LinkedInService\";\r\n\r\nexport const LinkedInContextInitializers = {\r\n InitializeLinkedInChildApplication: async (linkedinStore: LinkedInStore, history: any, companyId?: number) => {\r\n\r\n const linkedInChildApplication = await linkedinService.GetLinkedInChildApplicationByCompanyId(companyId);\r\n linkedinStore.SetLinkedInChildApplication(linkedInChildApplication);\r\n }\r\n}\r\n","import { observer } from \"mobx-react-lite\";\r\nimport { useContext, useRef } from \"react\";\r\nimport { Link, useHistory, useParams } from \"react-router-dom\";\r\n\r\nimport Loader from \"../../../components/general/loader/Loader\";\r\nimport LinkedInStrategyManagement from \"../../../components/linkedin-manager/strategy/LinkedInStrategyManagement\";\r\nimport { RoutesPaths } from \"../../../constants/RoutePaths\";\r\nimport useOnInitAsync from \"../../../hooks/useOnInitAsync\";\r\nimport useOnPoller from \"../../../hooks/useOnPoller\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport linkedinService from \"../../../services/linkedin/LinkedInService\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport { LinkedInBreadcrumbs } from \"./helpers/LinkedInManager.breadcrumbs\";\r\nimport LinkedInChildApplication from \"../../../components/linkedin-manager/LinkedInChildApplication\";\r\nimport { LinkedInContextInitializers } from \"./helpers/LinkedInContextInitializers\";\r\n\r\ninterface Props { }\r\n\r\nconst LinkedInPage = (props: Props) => {\r\n const match = useParams<{ companyId: string }>();\r\n const history = useHistory();\r\n const { uiStore, companyStore, linkedinStore } = useContext(RootStoreContext);\r\n const plDataHash = useRef(\"\");\r\n\r\n useOnInitAsync(async () => {\r\n await LinkedInContextInitializers.InitializeLinkedInChildApplication(\r\n linkedinStore,\r\n history,\r\n companyStore.SelectedCompany?.companyId\r\n );\r\n uiStore.SetPageTitle(\r\n `LinkedIn Budgets for: ${companyStore.SelectedCompany?.companyName}`\r\n );\r\n });\r\n\r\n usePageInitialization({\r\n\r\n onCompanyContextCallBack: (company, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `LinkedIn Budgets for: ${companyStore.SelectedCompany?.companyName}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Companies(company.companyName),\r\n LinkedInBreadcrumbs.LinkedIn(company.companyId),\r\n );\r\n },\r\n\r\n });\r\n\r\n if (linkedinStore.IsDataLoading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default observer(LinkedInPage);\r\n","import { LoginRequest } from \"../models/auth/LoginRequest\";\r\nimport { LoginResponse } from \"../models/auth/LoginResponse\";\r\nimport { BaseService } from \"./BaseService\";\r\n\r\nexport class AuthService extends BaseService {\r\n public async Login(loginRequest: LoginRequest) {\r\n const loginResponse = await this.Post(\"/login\", loginRequest);\r\n return loginResponse;\r\n }\r\n}\r\n\r\n\r\nexport const authService = new AuthService(\"auth\");","import \"./SupervisionTitle.scss\";\r\n\r\nimport React from \"react\";\r\n\r\ntype Props = {};\r\n\r\nconst SupervisionTitle = (props: Props) => {\r\n return (\r\n \r\n \r\n \r\n Algo\r\n Supervision\r\n \r\n Algo\r\n Supervision\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SupervisionTitle;\r\n","import \"./LoginPage.scss\";\r\n\r\nimport { Divider, message } from \"antd\";\r\nimport React, { useState } from \"react\";\r\nimport { BsMicrosoft } from \"react-icons/bs\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nimport settings from \"../../../config/AppSettings/SettingsFactory\";\r\nimport { RoutesPaths } from \"../../../constants/RoutePaths\";\r\nimport { authService } from \"../../../services/AuthService\";\r\nimport { ValidateEmail } from \"../../../utils/EmailUtils\";\r\nimport SupervisionTitle from \"./SupervisionTitle\";\r\n\r\ntype Props = {};\r\n\r\nconst LoginPage = (props: Props) => {\r\n const [email, setEmail] = useState();\r\n const [password, setPassword] = useState();\r\n const [loading, setLoading] = useState(false);\r\n\r\n const history = useHistory();\r\n\r\n const handleFormLogin = async () => {\r\n if (!email) {\r\n message.error(\"Email can't be empty\");\r\n return;\r\n }\r\n\r\n if (!password) {\r\n message.error(\"Password can't be empty\");\r\n return;\r\n }\r\n\r\n if (!ValidateEmail(email)) {\r\n message.error(\"Please provide a valid email\");\r\n return;\r\n }\r\n\r\n try {\r\n setLoading(true);\r\n await authService.Login({\r\n email,\r\n password,\r\n });\r\n\r\n setLoading(false);\r\n history.push(RoutesPaths.Supervision.Campaigns);\r\n } catch (error) {\r\n message.error(\"Invalid credentials\");\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Login\r\n {/*\r\n \r\n \r\n Microsoft Login\r\n \r\n \r\n OR */}\r\n \r\n setEmail(e.target.value)}\r\n />\r\n setPassword(e.target.value)}\r\n />\r\n \r\n {loading ? \"Loading...\" : \"Let me in.\"}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LoginPage;\r\n","export const ValidateEmail = (email: string) => {\r\n return String(email)\r\n .toLowerCase()\r\n .match(\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n );\r\n };","\r\nexport enum CookieConstants {\r\n UserIdentityCookie = \"User.Identity\"\r\n}","import { message } from \"antd\";\r\nimport Cookies from \"js-cookie\";\r\nimport React, { useEffect } from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport { CookieConstants } from \"../../constants/CookieConstants\";\r\nimport { RoutesPaths } from \"../../constants/RoutePaths\";\r\n\r\ntype Props = {};\r\n\r\nconst LogoutPage = (props: Props) => {\r\n useEffect(() => {\r\n message.success(\"Successfully logged out\");\r\n }, []);\r\n\r\n Cookies.remove(CookieConstants.UserIdentityCookie);\r\n return ;\r\n};\r\n\r\nexport default LogoutPage;\r\n","import React from 'react'\r\n\r\ninterface Props {\r\n \r\n}\r\n\r\n\r\n/**\r\n * TODO: Customize that page\r\n */\r\nconst NotFoundPage = (props: Props) => {\r\n return (\r\n \r\n 404 Page Not Found\r\n \r\n )\r\n}\r\n\r\nexport default NotFoundPage\r\n","import { Space, Table, TablePaginationConfig } from \"antd\";\r\nimport { FilterValue, SorterResult } from \"antd/lib/table/interface\";\r\nimport { EntityRecordDetailed } from \"../../../models/EntityRecord\";\r\nimport { Box, Button } from \"@material-ui/core\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\nconst externalColumn: any = {\r\n title: \"External\",\r\n key: \"action\",\r\n render: (text: any, record: EntityRecordDetailed) => (\r\n \r\n \r\n window.alert(\r\n \"Will redirect you to campaign details in the future\"\r\n )\r\n }\r\n variant=\"text\"\r\n color=\"primary\"\r\n style={{ marginRight: \"30px\" }}>\r\n Campaign Details\r\n \r\n \r\n ),\r\n};\r\n\r\ntype entityTypes = \"Campaigns\" | \"Groups\" | \"Jobs\";\r\n\r\nconst GetChildEntityName = (entityName: entityTypes): entityTypes | \"\" => {\r\n switch (entityName) {\r\n case \"Campaigns\":\r\n // return \"Groups\";\r\n return \"Jobs\";\r\n case \"Groups\":\r\n return \"Jobs\";\r\n default:\r\n return \"\";\r\n }\r\n};\r\n\r\ninterface Props {\r\n entityName: entityTypes;\r\n entityData: EntityRecordDetailed[];\r\n columns: {title: string, dataIndex: string | string[]}[]\r\n HandleChildEntityButtonClick: (entityName: string) => void;\r\n HandleVendorButtonClick: (record: EntityRecordDetailed) => void;\r\n}\r\n\r\nconst EntityPage = (props: Props) => {\r\n const actionColumn: any = {\r\n title: \"Action\",\r\n key: \"action\",\r\n render: (text: any, record: EntityRecordDetailed) => (\r\n \r\n props.HandleVendorButtonClick(record)}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n style={{ marginRight: \"30px\" }}>\r\n Vendors\r\n \r\n {props.entityName != \"Jobs\" && (\r\n \r\n props.HandleChildEntityButtonClick(\r\n record.entityName\r\n )\r\n }>\r\n View {GetChildEntityName(props.entityName)}\r\n \r\n )}\r\n \r\n ),\r\n };\r\n\r\n // const columns = [\r\n // {\r\n // title: props.entityName,\r\n // dataIndex: \"entityName\",\r\n // },\r\n // {\r\n // title: \"Jobs\",\r\n // dataIndex: \"jobsCount\",\r\n // sorter: {\r\n // compare: (a: EntityRecordDetailed, b: EntityRecordDetailed) =>\r\n // a.jobsCount - b.jobsCount,\r\n // //multiple: 3,\r\n // },\r\n // },\r\n // ];\r\n\r\n return (\r\n {\r\n // console.log(\"params\", pagination, filters, sorter, extra);\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default observer(EntityPage);\r\n","/* eslint-disable no-use-before-define */\r\nimport React from \"react\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport { EntityRecordDetailed } from \"../../../models/EntityRecord\";\r\n\r\ninterface Props {\r\n entityData: EntityRecordDetailed[];\r\n HandleInputChange: (text: string[]) => void;\r\n}\r\n\r\nconst EntityPageAutoComplete = (props: Props) => {\r\n return (\r\n \r\n option.entityName)}\r\n onChange={(_, entityNameList: string[]) => {\r\n props.HandleInputChange(entityNameList);\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default EntityPageAutoComplete;\r\n","import { makeStyles } from \"@material-ui/core\";\r\n// Material UI\r\n\r\nexport const useStyles = makeStyles((theme) => ({\r\n activeVendor: {\r\n backgroundColor: \"rgba(67, 160, 71, 0.2)\",\r\n borderBottom: '1px solid #f0f0f0',\r\n },\r\n inActiveVendor: {\r\n backgroundColor: \"rgba(229, 57, 53, 0.2)\",\r\n borderBottom: '1px solid #f0f0f0',\r\n },\r\n avatarBackground: {\r\n backgroundColor: \"#fff\",\r\n },\r\n vendorImg: {\r\n objectFit: \"contain\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n },\r\n}));\r\n","import React, { useContext } from \"react\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\r\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\r\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport { Button, ButtonGroup } from \"@material-ui/core\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useStyles } from \"./VendorDrawerList.styles\";\r\nimport { PublisherSelectionActionType } from \"../../../types/publisher-selection/PublisherSelectionTypes\";\r\nimport { RootStoreContext } from \"./../../../stores/RootStoreContext\";\r\nimport { vendorMockType, vendorsData } from \"./../mock-data/vendors-list\";\r\n\r\n/**\r\n * Helper Components\r\n */\r\ninterface ButtonGroupComponentPropsType {\r\n HandleButtonActionClick: (\r\n actionType: PublisherSelectionActionType,\r\n vendor: vendorMockType\r\n ) => (event: any) => void;\r\n vendor: vendorMockType;\r\n}\r\n\r\nconst ButtonGroupComponent = (props: ButtonGroupComponentPropsType) => {\r\n const { HandleButtonActionClick, vendor } = props;\r\n\r\n const IsSelected = (actionType: PublisherSelectionActionType) => {\r\n const styledProps = {\r\n variant: \"contained\",\r\n color: \"primary\",\r\n };\r\n if (actionType == \"Exclude\" && vendor.operationTypeId == 1) {\r\n return styledProps;\r\n }\r\n if (actionType == \"Include\" && vendor.operationTypeId == 2) {\r\n return styledProps;\r\n }\r\n\r\n if (actionType == \"Exclusive\" && vendor.operationTypeId == 3) {\r\n return styledProps;\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n Include\r\n \r\n \r\n Exclude\r\n \r\n \r\n Exclusive\r\n \r\n \r\n );\r\n};\r\n\r\ninterface Props {\r\n vendorsData: vendorMockType[];\r\n}\r\n\r\nconst VendorDrawerList = (props: Props) => {\r\n const { uiStore, publisherSelectionStore } = useContext(RootStoreContext);\r\n\r\n const classes = useStyles();\r\n\r\n /**\r\n * Functions\r\n */\r\n const HandleButtonActionClick =\r\n (actionType: PublisherSelectionActionType, vendor: vendorMockType) =>\r\n (event: any): void => {\r\n publisherSelectionStore.DialogBox.Set(vendor, actionType, [\r\n \"Job A: Include\",\r\n \"Job C: Exclude\",\r\n ]);\r\n\r\n publisherSelectionStore.SetSelectedPublisherActionType(actionType);\r\n publisherSelectionStore.SetSelectedVendor(vendor);\r\n };\r\n\r\n return (\r\n \r\n {props.vendorsData.map((vendor: vendorMockType) => (\r\n \r\n \r\n \r\n \r\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 observer(VendorDrawerList);\r\n","/* eslint-disable no-use-before-define */\r\nimport React from \"react\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport { vendorMockType } from \"../mock-data/vendors-list\";\r\nimport { observer } from 'mobx-react-lite';\r\n\r\ninterface Props {\r\n vendorData: vendorMockType[];\r\n HandleInputChange: (text: string[]) => void;\r\n}\r\n\r\nconst VendorDrawerAutocomplete = (props: Props) => {\r\n return (\r\n \r\n option.vendorName)}\r\n onChange={(_, vendorsList: string[]) => {\r\n props.HandleInputChange(vendorsList);\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default observer(VendorDrawerAutocomplete);\r\n","import { Box, Drawer, Typography } from \"@material-ui/core\";\r\nimport React, { useState, useEffect, useContext } from \"react\";\r\nimport VendorDrawerList from \"../vendor-drawer-list/VendorDrawerList\";\r\nimport VendorDrawerAutocomplete from \"./../vendor-drawer-autocomplete/VendorDrawerAutocomplete\";\r\nimport { vendorMockType, vendorsData } from \"../mock-data/vendors-list\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\n\r\ninterface Props {\r\n isOpen: boolean;\r\n onClose:\r\n | ((event: {}, reason: \"backdropClick\" | \"escapeKeyDown\") => void)\r\n | undefined;\r\n}\r\n\r\nconst VendorDrawer = (props: Props) => {\r\n const { uiStore, publisherSelectionStore } = useContext(RootStoreContext);\r\n const [vendorsFiltered, setVendorsFiltered] = useState([]);\r\n\r\n /**\r\n * Functions\r\n */\r\n const HandleAutoCompleteSearch = (vendorList: string[]) => {\r\n setVendorsFiltered(vendorList);\r\n };\r\n\r\n const GetVendorsAfterFilter = (): vendorMockType[] => {\r\n if (vendorsFiltered.length == 0) {\r\n return publisherSelectionStore.VendorsForEntity!;\r\n }\r\n\r\n return publisherSelectionStore.VendorsForEntity!.filter((vendor) =>\r\n vendorsFiltered.some((filteredVendor) =>\r\n vendor.vendorName\r\n .toLowerCase()\r\n .includes(filteredVendor.toLowerCase())\r\n )\r\n );\r\n };\r\n\r\n /**\r\n * Hooks\r\n */\r\n useEffect(() => {\r\n if (!publisherSelectionStore.VendorsForEntity) {\r\n publisherSelectionStore.SetVendorsForEntity();\r\n }\r\n }, []);\r\n\r\n /**\r\n * Render\r\n */\r\n\r\n if (!publisherSelectionStore.VendorsForEntity) {\r\n return loading...;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n Select publishers for:{\" \"}\r\n \r\n {\" \"}\r\n {publisherSelectionStore.SelectedEntity?.entityName ?? \"\"} (\r\n {publisherSelectionStore.MockActiveEntityType ?? \"\"})\r\n \r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(VendorDrawer);\r\n","import { EntityRecordDetailed } from \"../../../models/EntityRecord\"\r\n\r\nexport type EntityRecordHierarchyType = {\r\n entityLevelName: \"Campaigns\" | \"Groups\" | \"Jobs\",\r\n entities: EntityRecordDetailed[]\r\n // entities: EntityRecordDetailed<{ campaignName: string, startDate: string, endDate: string }>[]\r\n}\r\n\r\nexport const campaignsMock: EntityRecordHierarchyType<{ campaignName: string, startDate: string, endDate: string }> = {\r\n \"entityLevelName\": \"Campaigns\",\r\n \"entities\": [\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 1,\r\n \"entityName\": \"Blount memorial Hospital\",\r\n \"entityData\": {\r\n \"campaignName\": \"Blount memorial Hospital\",\r\n \"startDate\": \"2017-11-26 00:00:00\",\r\n \"endDate\": \"2018-11-25 23:59:59\"\r\n }\r\n\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 2,\r\n \"entityName\": \"Parrish Medical Center\",\r\n \"entityData\": {\r\n \"campaignName\": \"Parrish Medical Center\",\r\n \"startDate\": \"2017-07-24 00:00:00\",\r\n \"endDate\": \"2018-07-28 23:59:59\"\r\n }\r\n\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 3,\r\n \"entityName\": \"Advance Financial\",\r\n \"entityData\": {\r\n \"campaignName\": \"Advance Financial\",\r\n \"startDate\": \"2018-11-17 00:00:00\",\r\n \"endDate\": \"2019-04-23 23:59:59\"\r\n }\r\n\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 4,\r\n \"entityName\": \"Lazer Spot-Pp\",\r\n \"entityData\": {\r\n \"campaignName\": \"Lazer Spot-Pp\",\r\n \"startDate\": \"2018-02-11 00:00:00\",\r\n \"endDate\": \"2019-05-28 23:59:59\"\r\n }\r\n\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 5,\r\n \"entityName\": \"Meridian Health\",\r\n \"entityData\": {\r\n \"campaignName\": \"Meridian Health\",\r\n \"startDate\": \"2017-01-02 00:00:00\",\r\n \"endDate\": \"2017-04-28 23:59:59\"\r\n }\r\n\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 7,\r\n \"entityName\": \"Mesquite Gaming\",\r\n \"entityData\": {\r\n \"campaignName\": \"Mesquite Gaming\",\r\n \"startDate\": \"2016-07-28 00:00:00\",\r\n \"endDate\": \"2016-12-28 23:59:59\"\r\n }\r\n\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 8,\r\n \"entityName\": \"Integrity Staffing\",\r\n \"entityData\": {\r\n \"campaignName\": \"Integrity Staffing\",\r\n \"startDate\": \"2017-11-26 00:00:00\",\r\n \"endDate\": \"2018-11-25 23:59:59\"\r\n }\r\n\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 1,\r\n \"entityName\": \"Classic Carriers\",\r\n \"entityData\": {\r\n \"campaignName\": \"Classic Carriers\",\r\n \"startDate\": \"2017-11-26 00:00:00\",\r\n \"endDate\": \"2018-11-25 23:59:59\"\r\n }\r\n\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 1,\r\n \"entityName\": \"Witham Memorial Hospital\",\r\n \"entityData\": {\r\n \"campaignName\": \"Witham Memorial Hospital\",\r\n \"startDate\": \"2017-11-26 00:00:00\",\r\n \"endDate\": \"2018-11-25 23:59:59\"\r\n }\r\n\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 2,\r\n \"entityName\": \"Avis Budget Group\",\r\n \"entityData\": {\r\n \"campaignName\": \"Avis Budget Group\",\r\n \"startDate\": \"2017-11-26 00:00:00\",\r\n \"endDate\": \"2018-11-25 23:59:59\"\r\n }\r\n\r\n }\r\n ]\r\n}","import { EntityRecordHierarchyType } from \"./campaigns-list\";\r\n\r\n// export const jobsMock: EntityRecordHierarchyType = {} as EntityRecordHierarchyType\r\n\r\nexport const jobsMock: EntityRecordHierarchyType<{ location: string, jobTitleText: string }> = {\r\n \"entityLevelName\": \"Jobs\",\r\n \"entities\": [\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 1,\r\n \"entityName\": \"Truck Driver\",\r\n \"entityData\": {\r\n jobTitleText: \"Foreign Language Teacher\",\r\n location: \"Concord, NH\"\r\n\r\n }\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 2,\r\n \"entityName\": \"Dietary Manager\",\r\n \"entityData\": {\r\n jobTitleText: \"General Assistant Professor\",\r\n location: \"South Bend Area\"\r\n\r\n }\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 3,\r\n \"entityName\": \"Clerk\",\r\n \"entityData\": {\r\n jobTitleText: \"Nurse Manager\",\r\n location: \"NE, COLUMBUS\"\r\n\r\n }\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 4,\r\n \"entityName\": \"Chef\",\r\n \"entityData\": {\r\n jobTitleText: \"Senior Accountant\",\r\n location: \"NE, GRAND ISLAND\"\r\n\r\n }\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 5,\r\n \"entityName\": \"Programmer Analyst\",\r\n \"entityData\": {\r\n jobTitleText: \"MOORHEAD, MN\",\r\n location: \"Certified Peer Specialist\"\r\n\r\n }\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 7,\r\n \"entityName\": \"Marketing Representative\",\r\n \"entityData\": {\r\n jobTitleText: \"Automobile Salesperson\",\r\n location: \"FARGO, ND\"\r\n\r\n }\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 7,\r\n \"entityName\": \"Research Communications/Grant Dev Specialist\",\r\n \"entityData\": {\r\n jobTitleText: \"Pharmacy Technician\",\r\n location: \"BISMARCK, ND\"\r\n\r\n }\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 7,\r\n \"entityName\": \"Software Engineer\",\r\n \"entityData\": {\r\n jobTitleText: \"Sales Representative\",\r\n location: \"CONTACT VIRGINIA\"\r\n\r\n }\r\n },\r\n {\r\n \"entityTypeId\": 5,\r\n \"entityId\": 7,\r\n \"entityName\": \"Accountant\",\r\n \"entityData\": {\r\n jobTitleText: \"Administrative Assistant\",\r\n location: \"NEW YORK NEW YORK\"\r\n\r\n }\r\n },\r\n ]\r\n}","import React, { useContext } from \"react\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport {\r\n Box,\r\n List,\r\n ListItem,\r\n ListItemText,\r\n Typography,\r\n} from \"@material-ui/core\";\r\n\r\nconst PublisherSelectionDialog = () => {\r\n const { uiStore, publisherSelectionStore } = useContext(RootStoreContext);\r\n\r\n /**\r\n * Functions\r\n */\r\n const handleClose = () => {\r\n publisherSelectionStore.DialogBox.Reset();\r\n };\r\n\r\n const HandleConfirm = () => {\r\n if (\r\n !publisherSelectionStore.SelectedPublisherActionType ||\r\n !publisherSelectionStore.SelectedVendor\r\n ) {\r\n throw new Error(\r\n \"Cant confirm because either vendor or action type isn't selected\"\r\n );\r\n }\r\n\r\n publisherSelectionStore.HandleVendorAction(\r\n publisherSelectionStore.SelectedPublisherActionType,\r\n publisherSelectionStore.SelectedVendor\r\n );\r\n\r\n \r\n publisherSelectionStore.DialogBox.Reset();\r\n };\r\n\r\n return (\r\n \r\n \r\n Warning\r\n \r\n\r\n \r\n \r\n \r\n \r\n {publisherSelectionStore.DialogBox.actionType}\r\n {\" \"}\r\n \r\n {\" \"}\r\n {publisherSelectionStore.DialogBox.Vendor\r\n ?.vendorName ?? \"\"}\r\n {\" \"}\r\n FOR{\" \"}\r\n \r\n {publisherSelectionStore.SelectedEntity?.entityName}\r\n \r\n \r\n \r\n The following rules will be overriden:\r\n \r\n \r\n \r\n {publisherSelectionStore.DialogBox.Conflicts.map(\r\n (conflict) => (\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Disagree\r\n \r\n \r\n Agree\r\n \r\n \r\n \r\n );\r\n};\r\nexport default observer(PublisherSelectionDialog);\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Box, Typography } from \"@material-ui/core\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport EntityPage from \"../../../components/publisher-selection/entity-page/EntityPage\";\r\nimport EntityPageAutoComplete from \"../../../components/publisher-selection/entity-page-autocomplete/EntityPageAutoComplete\";\r\nimport { EntityRecordDetailed } from \"../../../models/EntityRecord\";\r\nimport useSetCurrentRoute from \"../../../hooks/useSetCurrentRoute\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { BreadCrumb } from \"../../../models/BreadCrumb\";\r\nimport VendorDrawer from \"../../../components/publisher-selection/vendor-drawer/VendorDrawer\";\r\n\r\n/**\r\n * Mock Data\r\n */\r\nimport { groupsMock } from \"../../../components/publisher-selection/mock-data/groups-list\";\r\nimport {\r\n campaignsMock,\r\n EntityRecordHierarchyType,\r\n} from \"../../../components/publisher-selection/mock-data/campaigns-list\";\r\nimport { jobsMock } from \"../../../components/publisher-selection/mock-data/jobs-list\";\r\nimport PublisherSelectionDialog from \"../../../components/publisher-selection/publisher-selection-dialog/PublisherSelectionDialog\";\r\n\r\ninterface Props {}\r\n\r\nconst ChooseCutOffContainer = (props: Props) => {\r\n const { uiStore, publisherSelectionStore } = useContext(RootStoreContext);\r\n\r\n const GetEntities = (): [\r\n EntityRecordHierarchyType,\r\n { dataIndex: string | string[]; title: string }[]\r\n ] => {\r\n switch (publisherSelectionStore.MockActiveEntityType) {\r\n case \"campaigns\":\r\n return [\r\n campaignsMock,\r\n [\r\n {\r\n dataIndex: [\"entityData\", \"campaignName\"],\r\n title: \"Campaign Name\",\r\n },\r\n {\r\n dataIndex: [\"entityData\", \"startDate\"],\r\n title: \"Start Date\",\r\n },\r\n {\r\n dataIndex: [\"entityData\", \"endDate\"],\r\n title: \"End Date\",\r\n },\r\n ],\r\n ];\r\n\r\n // case \"groups\":\r\n // return [groupsMock, []];\r\n\r\n case \"jobs\":\r\n return [\r\n jobsMock,\r\n [\r\n {\r\n dataIndex: [\"entityData\", \"jobTitleText\"],\r\n title: \"Job Title\",\r\n },\r\n {\r\n dataIndex: [\"entityData\", \"location\"],\r\n title: \"Location\",\r\n },\r\n ],\r\n ];\r\n\r\n default:\r\n throw new Error(\"Invalid MockActiveEntityType type\");\r\n }\r\n };\r\n\r\n /**\r\n * Local State\r\n */\r\n\r\n const [entityRecordHierarchy, setEntityRecordHierarchy] = useState<\r\n EntityRecordHierarchyType\r\n >({} as EntityRecordHierarchyType);\r\n\r\n const [entityDataFiltered, setEntityDataFiltered] = useState<\r\n EntityRecordDetailed[]\r\n >([]);\r\n\r\n const [isVendorDrawerOpen, setIsVendorDrawerOpen] =\r\n useState(false);\r\n\r\n /**\r\n * Event Handlers\r\n */\r\n\r\n const HandleInputSearch = (entityNameList: string[]) => {\r\n if (entityNameList.length == 0) {\r\n setEntityDataFiltered(entityRecordHierarchy.entities);\r\n return;\r\n }\r\n\r\n setEntityDataFiltered(\r\n entityRecordHierarchy.entities.filter((entityRecord) =>\r\n entityNameList.some((selectValue) =>\r\n selectValue\r\n .toLowerCase()\r\n .includes(entityRecord.entityName.toLowerCase())\r\n )\r\n )\r\n );\r\n };\r\n\r\n const HandleChildEntityButtonClick = (entityName: string) => {\r\n if (entityRecordHierarchy.entityLevelName == \"Campaigns\") {\r\n const breadCrumb = new BreadCrumb(entityName, null, () => {\r\n publisherSelectionStore.SetMockActiveEntityType(\"jobs\");\r\n uiStore.RemoveBreadCrumbsUntil(entityName);\r\n });\r\n uiStore.AddBreadCrumbs(breadCrumb);\r\n publisherSelectionStore.SetMockActiveEntityType(\"jobs\");\r\n }\r\n\r\n // if (entityRecordHierarchy.entityLevelName == \"Groups\") {\r\n // const breadCrumb = new BreadCrumb(entityName, null, () => {\r\n // publisherSelectionStore.SetMockActiveEntityType(\"jobs\");\r\n // uiStore.RemoveBreadCrumbsUntil(entityName);\r\n // });\r\n // uiStore.AddBreadCrumbPath(breadCrumb);\r\n // publisherSelectionStore.SetMockActiveEntityType(\"jobs\");\r\n // }\r\n };\r\n\r\n const HandleVendorButtonClick = (record: EntityRecordDetailed) => {\r\n publisherSelectionStore.SetSelectedEntity(record);\r\n setIsVendorDrawerOpen(true);\r\n };\r\n\r\n const HandleDrawerClose = () => {\r\n publisherSelectionStore.RemoveSelectedEntity();\r\n setIsVendorDrawerOpen(false);\r\n };\r\n\r\n /**\r\n * Hooks\r\n */\r\n\r\n useEffect(() => {\r\n const [_entityRecordHierarchy] = GetEntities();\r\n setEntityRecordHierarchy(_entityRecordHierarchy);\r\n setEntityDataFiltered(_entityRecordHierarchy.entities);\r\n }, [publisherSelectionStore.MockActiveEntityType]);\r\n\r\n useSetCurrentRoute();\r\n\r\n useEffect(() => {\r\n const rootContainerBreadCrumb = new BreadCrumb(\r\n \"Select Cut Offs\",\r\n null,\r\n () => {\r\n publisherSelectionStore.SetMockActiveEntityType(\"campaigns\");\r\n uiStore.RemoveBreadCrumbsUntil(rootContainerBreadCrumb);\r\n }\r\n );\r\n\r\n uiStore.AddBreadCrumbs(rootContainerBreadCrumb);\r\n }, []);\r\n\r\n /**\r\n * Render\r\n */\r\n\r\n if (Object.keys(entityRecordHierarchy).length == 0) {\r\n return loading...;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {entityRecordHierarchy.entityLevelName}\r\n \r\n \r\n\r\n \r\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 observer(ChooseCutOffContainer);\r\n","export type shortcutType = {\r\n Keys: string,\r\n Action: string\r\n}\r\n\r\nexport const userShortcuts: shortcutType[] = [\r\n {\r\n Keys: \"Alt + b\",\r\n Action: \"Toggles sidebar\",\r\n },\r\n {\r\n Keys: \"Alt + h\",\r\n Action: \"Toggles header menu\",\r\n },\r\n {\r\n Keys: \"Alt + q\",\r\n Action: \"Open this page (shortcut page)\",\r\n },\r\n];","import React from \"react\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\nimport { shortcutType } from \"./ShortcutsData\";\r\n\r\ninterface Props {\r\n shortcut: shortcutType\r\n}\r\n\r\nconst ShortCutItem = (props: Props) => {\r\n return (\r\n \r\n \r\n {props.shortcut.Keys}\r\n \r\n {props.shortcut.Action}\r\n \r\n );\r\n};\r\n\r\nexport default ShortCutItem;\r\n","import { Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport { userShortcuts } from \"../../components/general/shortcuts/ShortcutsData\";\r\nimport ShortCutItem from \"../../components/general/shortcuts/ShortCutItem\";\r\n\r\ninterface Props {}\r\n\r\nconst ShortCutsManualContainer = (props: Props) => {\r\n return (\r\n \r\n \r\n \r\n Shortcuts Guide\r\n \r\n \r\n\r\n \r\n \r\n \r\n Shortcut\r\n \r\n \r\n Action\r\n \r\n \r\n\r\n {userShortcuts.map((shortcut) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ShortCutsManualContainer;\r\n","export const spacingUnit = 8;","import { Col, Row, Select, Space, Typography } from \"antd\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\n\r\nimport { spacingUnit } from \"../../../assets/styles/theme\";\r\nimport useOnInitAsync from \"../../../hooks/useOnInitAsync\";\r\nimport { CampaignPartial } from \"../../../models/operation/CampaignPartial\";\r\nimport campaignService from \"../../../services/operation/CampaignService\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport Loader from \"../../general/loader/Loader\";\r\n\r\nconst { Option } = Select;\r\n\r\ninterface Props {}\r\n\r\nconst CampaignSelectInput = (props: Props) => {\r\n const [options, setOptions] = useState();\r\n const { campaignStore } = useContext(RootStoreContext);\r\n\r\n useOnInitAsync(async () => {\r\n const campaignsPartial = await campaignService.GetAllPartial();\r\n setOptions(campaignsPartial);\r\n });\r\n\r\n if (!options || options.length == 0) {\r\n return ;\r\n }\r\n\r\n const defaultValue =\r\n campaignStore.SearchedCampaigns.length > 0\r\n ? campaignStore.SearchedCampaigns.map((campaign) =>\r\n BuildOptionValue(campaign.campaignName, campaign.campaignID)\r\n )\r\n : [];\r\n return (\r\n \r\n \r\n \r\n Search Campaign(s)\r\n \r\n\r\n {\r\n const campaignIds = selectedOptionValues.map(\r\n (campaign) => ParseCampaignId(campaign)\r\n );\r\n campaignStore.SetSearchedCampaigns(campaignIds);\r\n }}>\r\n {options.map((campaignPartial) => (\r\n \r\n {campaignPartial.campaignName} - {campaignPartial.campaignID}\r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CampaignSelectInput;\r\n\r\nconst separator = \"##\";\r\n\r\nconst BuildOptionValue = (campaignName: string, campaignId: number) => {\r\n return `${campaignName}${separator}${campaignId}`;\r\n};\r\n\r\nconst ParseCampaignId = (campaign: string) => {\r\n return Number(campaign.split(separator)[1]);\r\n};\r\n","import { History } from \"history\";\r\nimport { IoMdCut } from \"react-icons/io\";\r\nimport { SiIndeed } from \"react-icons/si\";\r\nimport { CgData } from \"react-icons/cg\";\r\nimport { MdGroupWork } from \"react-icons/md\";\r\n\r\nimport { RoutesPaths } from \"../../../constants/RoutePaths\";\r\nimport { ActionsBuilder } from \"../../general/supervision-table/types\";\r\nimport { CampaignTableDto } from \"./CampaignTable.dto\";\r\n\r\ntype CampaignsTableActionsContext = {\r\n history: History;\r\n}\r\n\r\nexport const CampaignsTableActionsBuilder: ActionsBuilder =\r\n ({ history }) => [\r\n {\r\n text: \"Indeed Management\",\r\n action: (campaign) => {\r\n if (!history) {\r\n throw new Error(\"history doesn't exist in context... Can't perform redirect\");\r\n }\r\n\r\n history.push(\r\n RoutesPaths.Supervision.IndeedRoutes.BuildCampaignRoute(campaign.CampaignId)\r\n );\r\n },\r\n Icon: SiIndeed,\r\n isDisplayed: () => true\r\n },\r\n /* NOT ACTIVE\r\n {\r\n text: \"Campaign Settings\",\r\n action: (campaign) => {\r\n if (!history) {\r\n throw new Error(\"history doesn't exist in context... Can't perform redirect\");\r\n }\r\n\r\n history.push(\r\n RoutesPaths.Supervision.CampaignTrackSystemRoutes.BuildCampaignRoute(campaign.CampaignId)\r\n );\r\n },\r\n Icon: CgData,\r\n isDisplayed: () => true\r\n },\r\n */\r\n {\r\n text: \"Groups\",\r\n action: (campaign) => {\r\n if (!history) {\r\n throw new Error(\"history doesn't exist in context... Can't perform redirect\");\r\n }\r\n\r\n history.push(\r\n RoutesPaths.Supervision.GroupsRoutes.BuildGroupRoute(campaign.CampaignId)\r\n );\r\n },\r\n \r\n Icon: MdGroupWork,\r\n isDisplayed: () => true\r\n },\r\n /*\r\n {\r\n text: \"Vendor Management\",\r\n action: (campaign) => {\r\n if (!history) {\r\n throw new Error(\"history doesn't exist in context... Can't perform redirect\");\r\n }\r\n\r\n history.push(\r\n RoutesPaths.Supervision.VendorManagementRoutes.BuildCampaignVendorManagementRoute(campaign.CampaignId)\r\n // RoutesPaths.PublisherSelection.ChooseCutOff\r\n );\r\n },\r\n Icon: IoMdCut,\r\n isDisplayed: () => true\r\n }\r\n */\r\n ]","\r\nimport { Campaign } from \"../../../models/operation/Campaign\";\r\nimport { ISODateTime } from \"../../../types/types\";\r\nimport { FormatDate } from \"../../../utils/DateHelpers\";\r\nimport { TableDto } from \"../../general/supervision-table/Table.dto\";\r\n\r\n/**\r\n * Creates a campaign table dto that is displayed in the table\r\n */\r\nexport class CampaignTableDto extends TableDto {\r\n \r\n public CampaignId: number;\r\n public CampaignName: string;\r\n public CreationDate: ISODateTime;\r\n public EndDate: ISODateTime;\r\n public Status: string;\r\n\r\n constructor(campaign: Campaign) {\r\n super();\r\n this._id = campaign.companyId;\r\n this.CampaignId = campaign.campaignID;\r\n this.CampaignName = campaign.campaignName;\r\n this.CreationDate = FormatDate(campaign.creationDate);\r\n this.EndDate = FormatDate(campaign.forceEndDate ?? campaign.endDate);\r\n this.Status = this.DetermineStatus(campaign.statusId);\r\n }\r\n\r\n\r\n private DetermineStatus(statusId: number) {\r\n switch (statusId) {\r\n case 1: return \"Setup\";\r\n case 2: return \"Active\";\r\n case 3: return \"Removed\";\r\n case 4: return \"Stop\";\r\n case 5: return \"Paused\";\r\n\r\n default: throw new Error(`Unsupported Status number ${statusId}`);\r\n }\r\n }\r\n}","import \"./CampaignTable.scss\";\r\n\r\nimport { Empty, Table } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport { Campaign } from \"../../../models/operation/Campaign\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { DOMCoordinates } from \"../../../types/types\";\r\nimport Loader from \"../../general/loader/Loader\";\r\nimport SupervisionTable from \"../../general/supervision-table/SupervisionTable\";\r\nimport { CampaignsTableActionsBuilder } from \"./CampaignsTable.actions\";\r\nimport { CampaignTableDto } from \"./CampaignTable.dto\";\r\n\r\nexport type RightClickData = {\r\n clickCoordinates: DOMCoordinates;\r\n clickedCampaign: CampaignTableDto;\r\n rowIndex: number;\r\n};\r\n\r\ninterface Props {}\r\nconst CampaignsTable = (props: Props) => {\r\n const history = useHistory();\r\n\r\n const { campaignStore } = useContext(RootStoreContext);\r\n\r\n const [campaigns, setCampaigns] = useState(\r\n undefined\r\n );\r\n\r\n useEffect(() => {\r\n setCampaigns(campaignStore.SearchedCampaigns);\r\n }, [campaignStore.SearchedCampaigns]);\r\n\r\n if (campaigns == undefined) {\r\n return ;\r\n }\r\n\r\n if (campaigns.length == 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n new CampaignTableDto(c))}\r\n rowActionSettings={{\r\n actions: CampaignsTableActionsBuilder({\r\n history: history\r\n }),\r\n showActionsOnRightClick: true,\r\n showActionsOnLastColumn: true,\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default observer(CampaignsTable);\r\n","import { Tooltip } from \"antd\";\r\nimport React from \"react\";\r\nimport { SiAdobeacrobatreader, SiMicrosoftexcel } from \"react-icons/si\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\ninterface Props {}\r\n\r\nconst CampaignsTableIconActions = (props: Props) => {\r\n return (\r\n \r\n \r\n {\r\n window.alert(\"To be done\");\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n window.alert(\"To be done\");\r\n }}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CampaignsTableIconActions;\r\n","import React from \"react\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\nimport CampaignSelectInput from \"../../../components/supervision/campaigns/CampaignSelectInput\";\r\nimport CampaignsTable from \"../../../components/supervision/campaigns/CampaignsTable\";\r\nimport CampaignsTableIconActions from \"../../../components/supervision/campaigns/CampaignsTableIconActions\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\n\r\ninterface Props {}\r\n\r\nconst CampaignsContainer = (props: Props) => {\r\n usePageInitialization({\r\n pageTitle: \"Algo Supervision - Campaigns\"\r\n })\r\n\r\n return (\r\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 CampaignsContainer;\r\n","import { observer } from \"mobx-react-lite\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport AuditCampaignForm from \"../../../components/campaign-track-system/AuditCampaignForm\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport CampaignSettingBreadCrumbs from \"./helpers/CampaignSetting.breadcrumbs\";\r\nimport { CampaignSettingContextInitializers } from \"./helpers/CampaignSettingContextInitializers\";\r\n\r\n\r\nconst CampaignTrackAddAuditPage = () => {\r\n\r\n const { campaignSettingStore } = useContext(RootStoreContext);\r\n const match = useParams<{ campaignId: string; campaignAuditId: string }>();\r\n const history = useHistory();\r\n\r\n\r\n usePageInitialization({\r\n\r\n onInitAsync: async () => {\r\n\r\n await CampaignSettingContextInitializers.InitializeCampaignSettingTypes(\r\n campaignSettingStore,\r\n history\r\n )\r\n .then(async () =>\r\n await campaignSettingStore.SetupdateOperationState(false)\r\n );\r\n },\r\n\r\n onCampaignContextCallBack: (campaign, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Campaign Audits for: ${campaign.campaignName}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Campaigns(campaign.campaignName),\r\n CampaignSettingBreadCrumbs.CampaignSetting(campaign.campaignID),\r\n CampaignSettingBreadCrumbs.AddCampaignSettingAudit(\r\n campaign.campaignID\r\n )\r\n );\r\n },\r\n })\r\n\r\n return (\r\n \r\n \r\n )\r\n\r\n}\r\n\r\nexport default observer(CampaignTrackAddAuditPage);","\r\nexport enum BudgetType {\r\n Fixed = 1,\r\n Capped = 2\r\n}","\r\nexport enum GroupStatus {\r\n Removed = 0,\r\n Active = 1\r\n \r\n}","import { BudgetType } from \"../../models/groups/BudgetType\";\r\nimport { GroupResponse } from \"../../models/groups/GroupResponse\";\r\nimport { GroupStatus } from \"../../models/groups/GroupStatus\";\r\nimport { ISODateTime } from \"../../types/types\";\r\nimport { FormatDate } from \"../../utils/DateHelpers\";\r\nimport { TableDto } from \"../general/supervision-table/Table.dto\";\r\n\r\n\r\nexport class GroupTableDto extends TableDto{\r\n constructor(\r\n public groupId: number,\r\n public campaignId: number,\r\n public groupName: string,\r\n public status: string,\r\n public userName: string,\r\n public budget: number,\r\n public budgetType: string,\r\n public creationDate : ISODateTime,\r\n )\r\n {\r\n super();\r\n }\r\n public static MapFromGroup(groupResponse: GroupResponse) {\r\n return new GroupTableDto(\r\n groupResponse.groupId,\r\n groupResponse.campaignId,\r\n groupResponse.groupName,\r\n GroupStatus[Number(groupResponse.isActive)],\r\n groupResponse.userName,\r\n groupResponse.groupBudget.amount,\r\n BudgetType[groupResponse.groupBudget.budgetType],\r\n FormatDate(groupResponse.creationDate),\r\n\r\n )\r\n }\r\n\r\n}","import { extend } from \"lodash\";\r\nimport { APIResponse } from \"../../models/APIResponse\";\r\nimport { GroupBudgetBalance } from \"../../models/groups/GroupBudgetBalance\";\r\nimport { GroupBudgetRequest } from \"../../models/groups/GroupBudgetRequest\";\r\nimport { GroupCreateRequest } from \"../../models/groups/GroupCreateRequest\";\r\nimport { GroupResponse } from \"../../models/groups/GroupResponse\";\r\nimport { GroupUpdateRequest } from \"../../models/groups/GroupUpdateRequest\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\nexport class GroupService extends BaseService {\r\n async GetAllAsync(campaignId: number) {\r\n const groupsData = await this.Get(\r\n `/${campaignId}`\r\n );\r\n return groupsData;\r\n }\r\n\r\n async CreateAsync(groupCreateRequest: GroupCreateRequest): Promise {\r\n const apiResponse = await this.Post>(\r\n \"\",\r\n groupCreateRequest\r\n );\r\n if (apiResponse.isError) {\r\n throw new Error(apiResponse.body);\r\n }\r\n }\r\n\r\n async DeleteAsync(campaignId: number, groupId: number) {\r\n const deletedGroup = await this.Delete(\r\n `/${campaignId}/${groupId}`\r\n );\r\n return deletedGroup;\r\n }\r\n\r\n async GetGroupById(groupId: number) {\r\n return await this.Get(`/group/${groupId}`);\r\n }\r\n\r\n async UpdateGroup(\r\n groupId: number,\r\n updateGroupRequest: GroupUpdateRequest\r\n ): Promise {\r\n const apiResponse = await this.Put>(\r\n `/${groupId}`,\r\n updateGroupRequest\r\n );\r\n if (apiResponse.isError) {\r\n throw new Error(apiResponse.body);\r\n }\r\n }\r\n\r\n\r\n async UpdateGroupBudget(\r\n groupId: number,\r\n updateGroupBudgetRequest: GroupBudgetRequest\r\n ): Promise {\r\n const apiResponse = await this.Put>(\r\n `/group-budget/${groupId}`,\r\n updateGroupBudgetRequest\r\n );\r\n if (apiResponse.isError) {\r\n throw new Error(apiResponse.body);\r\n }\r\n }\r\n \r\n\r\n async GetGroupBudgetBalance(\r\n campaignId: number,\r\n groupId?: number\r\n ) : Promise \r\n {\r\n const groupBudgetBalance = await this.Get(\r\n `/group-budget/${campaignId}/${groupId ?? ''}`\r\n );\r\n return groupBudgetBalance;\r\n }\r\n \r\n}\r\n\r\nconst groupService = new GroupService(\"Groups\");\r\nexport default groupService;\r\n","import { RoutesPaths } from \"../../constants/RoutePaths\";\r\nimport { UIStore } from \"../../stores/UIStore\";\r\nimport { UserStore } from \"../../stores/UserStore\";\r\nimport { GroupTableDto } from \"./GroupTable.dto\";\r\nimport { message, Typography } from \"antd\";\r\nimport { ActionsBuilder } from \"../general/supervision-table/types\";\r\nimport { GroupStore } from \"../../stores/GroupStore\";\r\nimport { History } from \"history\";\r\nimport { FiEdit } from \"react-icons/fi\";\r\nimport { RiDeleteBin7Line, RiSuitcaseLine } from \"react-icons/ri\";\r\nimport { GroupStatus } from \"../../models/groups/GroupStatus\";\r\nimport groupService from \"../../services/groups/GroupsService\";\r\nimport { IoMdCut } from \"react-icons/io\";\r\nimport { BiTransfer } from \"react-icons/bi\";\r\n\r\nconst { Text } = Typography;\r\n\r\ntype GroupActionsContext = {\r\n groupStore: GroupStore;\r\n history: History;\r\n campaignId: number;\r\n uiStore: UIStore;\r\n userStore: UserStore;\r\n};\r\n\r\nexport const GroupsActionBuilder: ActionsBuilder =\r\n ({ history, groupStore, campaignId, uiStore, userStore }) => [\r\n {\r\n text: \"View Jobs\",\r\n action: (groupTableDto) => {\r\n groupStore.SetSelectedGroup(\r\n groupStore.GroupsResponse?.find(\r\n (x) => x.groupId == groupTableDto.groupId\r\n )\r\n );\r\n history.push({\r\n pathname:\r\n RoutesPaths.Supervision.GroupsRoutes.BuildGroupJobsRoute(campaignId, groupTableDto.groupId)\r\n });\r\n }\r\n ,\r\n Icon: RiSuitcaseLine,\r\n isDisplayed: () => true,\r\n },\r\n {\r\n text: \"Delete Group\",\r\n action: (groupTableDto) => {\r\n\r\n const popupBody = (\r\n \r\n Sure you want to delete audit from campaign: {\" \"}\r\n {groupTableDto.groupName} with group ID:{\" \"}\r\n {groupTableDto.groupId}\r\n \r\n );\r\n\r\n uiStore.SetPopUp(\r\n {\r\n body: popupBody,\r\n title: \"Stem Control Request\",\r\n okClickHandler: async () => {\r\n await groupService.DeleteAsync(campaignId, groupTableDto.groupId);\r\n let auditIndex = groupStore\r\n .GroupsResponse\r\n .findIndex(x => x.groupId == groupTableDto.groupId);\r\n groupStore.GroupsResponse[auditIndex].isActive = GroupStatus.Removed\r\n\r\n message.success(\r\n `Group ID:${groupTableDto.groupId} deleted`\r\n );\r\n },\r\n okButtonText: \"Accept\",\r\n }\r\n );\r\n },\r\n Icon: RiDeleteBin7Line,\r\n isDisplayed: () => true,\r\n\r\n },\r\n {\r\n text: \"Edit Group\",\r\n action: (groupTableDto) => {\r\n groupStore.SetSelectedGroup(\r\n groupStore.GroupsResponse?.find(\r\n (x) => x.groupId == groupTableDto.groupId\r\n )\r\n );\r\n history.push({\r\n pathname: RoutesPaths.Supervision.GroupsRoutes.BuildEditGroup(\r\n campaignId,\r\n groupTableDto.groupId\r\n ),\r\n });\r\n },\r\n Icon: FiEdit,\r\n isDisplayed: () => true,\r\n },\r\n {\r\n text: \"Attach Jobs\",\r\n action: (groupTableDto) => {\r\n groupStore.SetSelectedGroup(\r\n groupStore.GroupsResponse?.find(\r\n (x) => x.groupId == groupTableDto.groupId\r\n )\r\n );\r\n history.push({\r\n pathname: RoutesPaths.Supervision.GroupsRoutes.BuildAttachJobsToGroup(\r\n campaignId,\r\n groupTableDto.groupId\r\n ),\r\n });\r\n },\r\n Icon: BiTransfer,\r\n isDisplayed: () => true,\r\n },\r\n {\r\n text: \"Vendor Management\",\r\n action: (groupTableDto) => {\r\n if (!history) {\r\n throw new Error(\"history doesn't exist in context... Can't perform redirect\");\r\n }\r\n history.push(\r\n RoutesPaths.Supervision.VendorManagementRoutes\r\n .BuildGroupVendorManagementRoute(campaignId, groupTableDto.groupId)\r\n );\r\n },\r\n Icon: IoMdCut,\r\n isDisplayed: () => true\r\n }\r\n ]","import { Empty } from \"antd\";\r\nimport { useContext, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\n\r\nimport { observer } from \"mobx-react-lite\";\r\nimport SupervisionTable from \"../general/supervision-table/SupervisionTable\";\r\nimport { GroupResponse } from \"../../models/groups/GroupResponse\";\r\nimport { GroupStore } from \"../../stores/GroupStore\";\r\nimport { GroupTableDto } from \"./GroupTable.dto\";\r\nimport { GroupsActionBuilder } from \"./GroupTable.actions\"\r\n\r\ninterface Props {\r\n campaignId: number;\r\n groups: GroupResponse[];\r\n}\r\n\r\n\r\n\r\nconst GroupsTable = (props: Props) => {\r\n\r\n const { groups, campaignId } = props;\r\n const { groupStore, uiStore, userStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n\r\n\r\n if (groups.length == 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n\r\n\r\n}\r\n\r\n\r\n\r\nexport default observer(GroupsTable);","\r\nimport { RoutesPaths } from \"../../../../constants/RoutePaths\";\r\nimport { BreadCrumb } from \"../../../../models/BreadCrumb\";\r\n\r\nexport const GroupsBreadCrumbs = {\r\n\r\n Groups: (campaignId: number) => {\r\n return new BreadCrumb(\r\n \"Groups\",\r\n RoutesPaths.Supervision.GroupsRoutes.BuildGroupRoute(campaignId),\r\n null\r\n );\r\n },\r\n\r\n GroupName: (groupName: string) => {\r\n return new BreadCrumb(groupName, null, null);\r\n },\r\n\r\n GroupJobs: (campaignId: number, groupId: number) => {\r\n return new BreadCrumb(\r\n \"Jobs\",\r\n RoutesPaths.Supervision.GroupsRoutes.BuildGroupJobsRoute(\r\n campaignId,\r\n groupId\r\n ),\r\n null\r\n );\r\n },\r\n\r\n AddGroup: (campaignId: number) => {\r\n return new BreadCrumb(\r\n \"Add Group\",\r\n RoutesPaths.Supervision.GroupsRoutes.BuildAddGroup(campaignId),\r\n null\r\n );\r\n },\r\n\r\n EditGroup: (campaignId: number, groupId: number) => {\r\n return new BreadCrumb(\r\n \"Edit Group\",\r\n RoutesPaths.Supervision.GroupsRoutes.BuildEditGroup(campaignId, groupId),\r\n null\r\n );\r\n },\r\n\r\n AttachJobs: (campaignId: number, groupId: number) => {\r\n return new BreadCrumb(\r\n \"Attach Jobs\",\r\n RoutesPaths.Supervision.GroupsRoutes.BuildAttachJobsToGroup(campaignId, groupId),\r\n null\r\n );\r\n },\r\n}\r\n\r\n\r\nexport default GroupsBreadCrumbs;","import { GroupJobResponse } from \"../../models/groups/GroupJobResponse\";\r\nimport { GroupJobsRequest } from \"../../models/groups/GroupJobsRequest\";\r\nimport { Job } from \"../../models/operation/Job\";\r\nimport { PaginationParams } from \"../../models/pagination/PaginationParams\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\n\r\nexport class GroupJobsService extends BaseService {\r\n\r\n async GetAllByGroupIdAsync(groupId: number): Promise {\r\n const GroupJobsData = await this.Get(`/${groupId}`);\r\n return GroupJobsData;\r\n\r\n }\r\n\r\n async AttachedDetachedAsync(groupJobRequest: GroupJobsRequest)\r\n {\r\n const apiResponse = await this.Post(\r\n \"/attached-jobs\",\r\n groupJobRequest\r\n );\r\n }\r\n\r\n async GetJobsByCampaignIdPagination(campaignId: number, paginationParams: PaginationParams): Promise {\r\n const queryString = `campaignId=${campaignId}&offset=${paginationParams.offset}&limit=${paginationParams.limit}`\r\n const jobsPage = await\r\n this.Get(`?${queryString}`);\r\n return jobsPage;\r\n }\r\n\r\n\r\n\r\n}\r\n\r\nconst groupJobsService = new GroupJobsService(\"GroupJobs\");\r\nexport default groupJobsService;","import { message } from \"antd\";\r\nimport { RoutesPaths } from \"../../../../constants/RoutePaths\";\r\nimport GroupJobsService from \"../../../../services/groups/GroupJobsService\";\r\nimport groupService from \"../../../../services/groups/GroupsService\";\r\nimport GroupsService from \"../../../../services/groups/GroupsService\";\r\nimport campaignService from \"../../../../services/operation/CampaignService\";\r\nimport { GroupStore } from \"../../../../stores/GroupStore\";\r\n\r\nexport const GroupsContextInitializers = {\r\n\r\n InitializeGroupCampaign: async (campaignId: number, groupsStore: GroupStore, history: any) => {\r\n try {\r\n const campaign = await campaignService.GetById(campaignId);\r\n groupsStore.SetSelectedCampaign(campaign);\r\n }\r\n catch (err) {\r\n history.push(RoutesPaths.Supervision.Companies);\r\n message.error(\r\n `Campaign with ID: ${campaignId} doesn't exist. Returned to home page`\r\n );\r\n }\r\n },\r\n\r\n InitializeGroupData: async (campaignId: number, groupsStore: GroupStore, history: any) => {\r\n try {\r\n\r\n const _groupData = await GroupsService.GetAllAsync(campaignId);\r\n groupsStore.SetGroups(_groupData);\r\n }\r\n catch (err) {\r\n history.push(RoutesPaths.Supervision.Companies);\r\n message.error(\r\n `Campaign with ID: ${campaignId} doesn't exist. Returned to home page`\r\n );\r\n }\r\n },\r\n\r\n\r\n InitializeGroupJobsData: async (groupId: number, groupsStore: GroupStore, history: any) => {\r\n try {\r\n\r\n const _groupJobsData = await GroupJobsService.GetAllByGroupIdAsync(groupId);\r\n groupsStore.SetGroupJobs(_groupJobsData);\r\n }\r\n catch (err) {\r\n history.push(RoutesPaths.Supervision.Campaigns);\r\n message.error(\r\n `Group with ID: ${groupId} doesn't exist. Returned to home page`\r\n );\r\n }\r\n },\r\n\r\n\r\n InitializeSelectedGroup: async (groupId: number, groupsStore: GroupStore, history: any) => {\r\n try {\r\n const group = await groupService.GetGroupById(groupId);\r\n groupsStore.SetSelectedGroup(group);\r\n } catch (err) {\r\n message.error(\r\n `Group with ID: ${groupId} doesn't exist`\r\n );\r\n }\r\n },\r\n\r\n\r\n InitializeGroupBudgetBalance: async (campaignId: number, groupsStore: GroupStore, history: any, groupId?: number) => {\r\n try {\r\n const _groupBudgetBalance = await groupService.GetGroupBudgetBalance(campaignId,groupId);\r\n groupsStore.SetGroupBudgetBalance(_groupBudgetBalance);\r\n } catch (err) {\r\n message.error(\r\n `Balance to campaign with ID: ${campaignId} doesn't exist`\r\n );\r\n }\r\n }\r\n\r\n\r\n}","import { Link, useHistory, useParams } from \"react-router-dom\";\r\nimport { ISODateTime } from \"../../../types/types\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport GroupsTable from \"../../../components/groups/GroupsTable\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport GroupsBreadCrumbs from \"./helpers/GroupsBreadCrumbs\";\r\nimport { GroupsContextInitializers } from \"./helpers/GroupsContextInitializers \";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { useContext } from \"react\";\r\nimport { Button } from \"antd\";\r\nimport { BiPlusCircle } from \"react-icons/bi\";\r\nimport { RoutesPaths } from \"../../../constants/RoutePaths\";\r\n\r\ninterface Props {}\r\n\r\nconst GroupPage = (props: Props) => {\r\n const match = useParams<{ campaignId: string }>();\r\n const { groupStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n\r\n usePageInitialization({\r\n onInitAsync: async () => {\r\n await GroupsContextInitializers.InitializeGroupData(\r\n Number(match.campaignId),\r\n groupStore,\r\n history\r\n );\r\n await GroupsContextInitializers.InitializeGroupCampaign(\r\n Number(match.campaignId),\r\n groupStore,\r\n history\r\n );\r\n },\r\n\r\n onCompanyContextCallBack: (company, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Groups for: ${groupStore.SelectedCampaign?.campaignName}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Companies(company.companyName),\r\n SupervisionBreadcrumbs.Campaigns(\r\n `${groupStore.SelectedCampaign?.campaignName}`\r\n ),\r\n GroupsBreadCrumbs.Groups(\r\n Number(groupStore.SelectedCampaign?.campaignID)\r\n )\r\n );\r\n },\r\n });\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Add New Group\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(GroupPage);\r\n","import \"./JobsTransfer.scss\";\r\n\r\nimport { Transfer } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { useContext, useEffect, useState } from \"react\";\r\nimport { FiInfo } from \"react-icons/fi\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\nimport useOnInitAsync from \"../../hooks/useOnInitAsync\";\r\nimport { Job } from \"../../models/operation/Job\";\r\nimport jobService from \"../../services/operation/JobService\";\r\nimport { isNumber } from \"../../utils/NumbersHelper\";\r\nimport Loader from \"../general/loader/Loader\";\r\nimport groupJobsService from \"../../services/groups/GroupJobsService\";\r\nimport { GroupJobResponse } from \"../../models/groups/GroupJobResponse\";\r\nimport Paragraph from \"antd/lib/typography/Paragraph\";\r\n\r\ninterface Props {\r\n plCampaignId: number;\r\n groupId?: number;\r\n onChange: (jobIds: number[]) => void;\r\n onJobsLoad?: (jobIds: number[]) => void;\r\n}\r\n\r\nconst GroupJobTransfer = (props: Props) => {\r\n const { plCampaignId, groupId, onChange } = props;\r\n const [hasOptionsLoaded, setHasOptionsLoaded] = useState(false);\r\n const [jobOptions, setJobOptions] = useState([]);\r\n const [selectedJobIds, setSelectedJobIds] = useState();\r\n\r\n useOnInitAsync(async () => {\r\n\r\n if (groupId) {\r\n const attachedJobs = await groupJobsService.GetAllByGroupIdAsync(groupId);\r\n setSelectedJobIds(attachedJobs.map((jobId) => jobId.jobId.toString()));\r\n }\r\n\r\n //TODO: refactor to a Paginator service (this method exhausts all pages)\r\n const jobsCount = await jobService.GetCountAsync({\r\n campaignId: plCampaignId,\r\n });\r\n let tasks = [];\r\n let batchSize = 1000;\r\n for (let index = 0; index < jobsCount.jobsCount; index += batchSize) {\r\n tasks.push(\r\n groupJobsService.GetJobsByCampaignIdPagination(plCampaignId, {\r\n limit: batchSize,\r\n offset: index,\r\n })\r\n );\r\n }\r\n const jobBatches = await Promise.all(tasks);\r\n const _jobs = jobBatches.reduce((prev, cur) => {\r\n return [...prev, ...cur];\r\n }, []);\r\n\r\n setJobOptions(_jobs);\r\n setHasOptionsLoaded(true);\r\n });\r\n\r\n\r\n\r\n const filterOption = (inputValue: string, option: any) => {\r\n if (isNumber(inputValue)) {\r\n return searchByJobId(Number(inputValue));\r\n }\r\n\r\n if (isJobIdsInput(inputValue)) {\r\n const jobIds: number[] = inputValue\r\n .split(\",\")\r\n .map((jobId) => Number(jobId.trim()));\r\n return searchByJobIdsMultiple(jobIds);\r\n }\r\n if (inputValue.length >= 2) {\r\n return searchByJobTitleTextOrLocation();\r\n }\r\n return true;\r\n\r\n function searchByJobTitleTextOrLocation() {\r\n return (\r\n (getJobLocation(option.job).toLowerCase() ?? \"\").indexOf(\r\n inputValue.toLowerCase()\r\n ) > -1 ||\r\n (option.job.extJobTitleText?.toLowerCase() ?? \"\").indexOf(\r\n inputValue.toLowerCase()\r\n ) > -1\r\n );\r\n }\r\n\r\n function searchByJobId(inputValue: number) {\r\n return option.job.jobId == inputValue;\r\n }\r\n\r\n function isJobIdsInput(inputValue: string): boolean {\r\n return new RegExp(/^[\\d, ]+$/gm).test(inputValue);\r\n }\r\n\r\n function searchByJobIdsMultiple(jobIds: number[]): boolean {\r\n return jobIds.some((x) => x == option.job.jobId);\r\n }\r\n };\r\n\r\n const handleChange = (jobIdsRightSide: string[]) => {\r\n setSelectedJobIds(jobIdsRightSide);\r\n onChange(jobIdsRightSide.map((jobId) => Number(jobId)));\r\n };\r\n\r\n const handleSearch = (\r\n direction: \"left\" | \"right\",\r\n searchValue: string\r\n ) => { };\r\n\r\n const getJobLocation = (job: Job) => {\r\n\r\n return `${job.jobLocation.cityName}, ${job.jobLocation.stateShortName}`;\r\n\r\n };\r\n\r\n const getGroupId = (groupJobResponse: GroupJobResponse) => {\r\n if (groupJobResponse.groupId == undefined || !groupJobResponse.isActive) {\r\n return '';\r\n }\r\n return `Group Name: ${groupJobResponse.groupName}`;\r\n };\r\n\r\n const IsJobAttachedToGroup = (groupJobResponse: GroupJobResponse) => {\r\n if (groupJobResponse.isActive) {\r\n return (\r\n \r\n )\r\n }\r\n else return '';\r\n\r\n }\r\n\r\n return (\r\n \r\n \r\n {!hasOptionsLoaded ? (\r\n \r\n ) : (\r\n ({\r\n key: groupJob.job.jobId.toString(),\r\n ...groupJob,\r\n }))}\r\n showSearch\r\n filterOption={filterOption}\r\n targetKeys={selectedJobIds}\r\n onChange={handleChange}\r\n onSearch={handleSearch}\r\n pagination\r\n className=\"jobs-transfer\"\r\n render={(groupJob) => (\r\n \r\n {IsJobAttachedToGroup(groupJob)} ({groupJob.job.jobId}) {groupJob.job.extJobTitleText} |\r\n Location: {getJobLocation(groupJob.job)}\r\n\r\n \r\n )}\r\n />\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(GroupJobTransfer);","import { Box } from \"@material-ui/core\";\r\nimport { Button, Col, Form, Input, message, Row, Select, Typography } from \"antd\";\r\nimport Paragraph from \"antd/lib/typography/Paragraph\";\r\nimport { useContext, useState } from \"react\";\r\nimport { FiInfo } from \"react-icons/fi\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { RoutesPaths } from \"../../constants/RoutePaths\";\r\nimport { FetchError } from \"../../exceptions/AlgoSupervisionExceptions\";\r\nimport { BudgetType } from \"../../models/groups/BudgetType\";\r\nimport { GroupBudgetBalance } from \"../../models/groups/GroupBudgetBalance\";\r\nimport { GroupCreateRequest } from \"../../models/groups/GroupCreateRequest\";\r\nimport { GroupStatus } from \"../../models/groups/GroupStatus\";\r\nimport GroupsService from \"../../services/groups/GroupsService\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport JobTransfer from \"../jobs/JobTransfer\";\r\n\r\nconst { Option } = Select;\r\n\r\ntype FormState = {\r\n groupName: string;\r\n isActive: GroupStatus;\r\n budget: number;\r\n budgetType: BudgetType;\r\n};\r\n\r\ninterface Props {\r\n campaignId: number;\r\n isStatusEditable: boolean;\r\n groupBudgetBalance: GroupBudgetBalance;\r\n}\r\n\r\n\r\nconst layout = {\r\n labelCol: { span: 8 },\r\n wrapperCol: { span: 16 },\r\n};\r\n\r\n\r\n\r\nconst GroupAddForm = (props: Props) => {\r\n\r\n const {\r\n campaignId,\r\n isStatusEditable,\r\n groupBudgetBalance\r\n } = props;\r\n\r\n const { userStore, groupStore } = useContext(RootStoreContext);\r\n const [campaignJobsIds, setCampaignJobsIds] = useState([]);\r\n const history = useHistory();\r\n const onFinish = async (formState: FormState) => {\r\n try {\r\n\r\n let groupCreateRequest: GroupCreateRequest = {\r\n\r\n campaignId: campaignId,\r\n groupName: formState.groupName,\r\n isActive: true,\r\n userId: userStore.User?.id,\r\n jobsList: campaignJobsIds,\r\n budgetType: formState.budgetType,\r\n amount: formState.budget\r\n };\r\n\r\n await GroupsService.CreateAsync(groupCreateRequest);\r\n history.push(\r\n RoutesPaths.Supervision.GroupsRoutes.BuildGroupRoute(\r\n campaignId\r\n )\r\n );\r\n message.success(\"Group creation requested successfully\");\r\n\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n }\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n General Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Active\r\n Removed\r\n \r\n \r\n\r\n \r\n \r\n \r\n Budget Settings (Client) \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Capped\r\n \r\n \r\n \r\n Fixed\r\n \r\n \r\n \r\n ({\r\n validator(ruleObject, value, err) {\r\n if (value < 0) {\r\n return Promise.reject(\r\n \"Value must be greater than 0\"\r\n );\r\n }\r\n if (value > groupBudgetBalance.campaignBalance && getFieldValue(\"budgetType\") == BudgetType.Fixed) {\r\n return Promise.reject(\r\n `Value must be equal or less than ${groupBudgetBalance.campaignBalance}`\r\n );\r\n }\r\n if (value > groupBudgetBalance.campaignBudget && getFieldValue(\"budgetType\") == BudgetType.Capped) {\r\n return Promise.reject(\r\n `Value must be equal or less than ${groupBudgetBalance.campaignBudget}`\r\n );\r\n }\r\n return Promise.resolve();\r\n }\r\n })\r\n ]}>\r\n \r\n \r\n\r\n \r\n\r\n \r\n Choose Jobs for Group\r\n \r\n\r\n {\r\n setCampaignJobsIds(jobIds);\r\n }}\r\n plCampaignId={campaignId}\r\n />\r\n \r\n \r\n Create Group\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\nexport default GroupAddForm;","import { observer } from \"mobx-react-lite\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport GroupAddForm from \"../../../components/groups/GroupAddForm\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport GroupsBreadCrumbs from \"./helpers/GroupsBreadCrumbs\";\r\nimport { GroupsContextInitializers } from \"./helpers/GroupsContextInitializers \";\r\n\r\ninterface Props {}\r\n\r\nconst GroupsAddPage = (props: Props) => {\r\n const match = useParams<{ campaignId: string }>();\r\n const { groupStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n\r\n usePageInitialization({\r\n onInitAsync: async () => {\r\n await GroupsContextInitializers.InitializeGroupData(\r\n Number(match.campaignId),\r\n groupStore,\r\n history\r\n );\r\n\r\n await GroupsContextInitializers.InitializeGroupBudgetBalance(\r\n Number(match.campaignId),\r\n groupStore,\r\n history\r\n );\r\n },\r\n\r\n onCompanyContextCallBack: (company, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Add Groups for: ${groupStore.SelectedCampaign?.campaignName}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Companies(company.companyName),\r\n SupervisionBreadcrumbs.Campaigns(\r\n `${groupStore.SelectedCampaign?.campaignName}`\r\n ),\r\n GroupsBreadCrumbs.Groups(\r\n Number(groupStore.SelectedCampaign?.campaignID)\r\n ),\r\n GroupsBreadCrumbs.AddGroup(\r\n Number(groupStore.SelectedCampaign?.campaignID)\r\n )\r\n );\r\n },\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(GroupsAddPage);\r\n","import { GroupJobResponse } from \"../../models/groups/GroupJobResponse\";\r\nimport { GroupStatus } from \"../../models/groups/GroupStatus\";\r\nimport { ISODateTime } from \"../../types/types\";\r\nimport { FormatDate } from \"../../utils/DateHelpers\";\r\nimport { TableDto } from \"../general/supervision-table/Table.dto\";\r\n\r\n\r\nexport class GroupJobsTableDto extends TableDto {\r\n constructor(\r\n public groupJobId: number,\r\n public groupId: string,\r\n public campaignId: number,\r\n public jobId: number,\r\n public status: string,\r\n public userName: string,\r\n public creationDate: ISODateTime,\r\n public modificationDate: ISODateTime,\r\n ) {\r\n super();\r\n }\r\n\r\n public static MapFromGroupJob(groupJobResponse: GroupJobResponse) {\r\n return new GroupJobsTableDto(\r\n groupJobResponse.groupJobId,\r\n groupJobResponse.groupId,\r\n groupJobResponse.campaignId,\r\n groupJobResponse.jobId,\r\n GroupStatus[Number(groupJobResponse.isActive)],\r\n groupJobResponse.userName,\r\n FormatDate(groupJobResponse.creationDate),\r\n FormatDate(groupJobResponse.modificationDate),\r\n\r\n )\r\n }\r\n}","import { Empty } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\nimport { GroupJobResponse } from \"../../models/groups/GroupJobResponse\";\r\nimport Loader from \"../general/loader/Loader\";\r\nimport SupervisionTable from \"../general/supervision-table/SupervisionTable\";\r\nimport { GroupJobsTableDto } from \"./GroupJobsTable.dto\";\r\n\r\ninterface Props {\r\n groupName: string;\r\n groupId: number;\r\n groupJobs: GroupJobResponse[];\r\n}\r\n\r\nconst GroupsJobsTable = (props: Props) => {\r\n\r\n const { groupJobs, groupName } = props;\r\n\r\n\r\n if (groupJobs.length == 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (groupJobs.length == 0) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default observer(GroupsJobsTable);","import { observer } from \"mobx-react-lite\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\n\r\nimport Loader from \"../../../components/general/loader/Loader\";\r\nimport GroupsJobsTable from \"../../../components/groups/GroupsJobsTable\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport GroupsBreadCrumbs from \"./helpers/GroupsBreadCrumbs\";\r\nimport { GroupsContextInitializers } from \"./helpers/GroupsContextInitializers \";\r\n\r\ninterface Props { }\r\n\r\nconst IndeedJobsViewContainer = () => {\r\n const match = useParams<{ campaignId: string; groupId: string }>();\r\n const history = useHistory();\r\n const { groupStore } = useContext(RootStoreContext);\r\n\r\n usePageInitialization({\r\n onInitAsync: async () => {\r\n await GroupsContextInitializers.InitializeGroupJobsData(\r\n Number(match.groupId),\r\n groupStore,\r\n history,\r\n );\r\n await GroupsContextInitializers.InitializeSelectedGroup(\r\n Number(match.groupId),\r\n groupStore,\r\n history\r\n );\r\n await GroupsContextInitializers.InitializeGroupCampaign(\r\n Number(match.campaignId),\r\n groupStore,\r\n history\r\n );\r\n },\r\n onCompanyContextCallBack: (company, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Jobs for Group: ${groupStore.SelectedGroup?.groupName}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Companies(company.companyName),\r\n SupervisionBreadcrumbs.Campaigns(\r\n `${groupStore.SelectedCampaign?.campaignName}`\r\n ),\r\n GroupsBreadCrumbs.Groups(\r\n Number(groupStore.SelectedCampaign?.campaignID)\r\n ),\r\n GroupsBreadCrumbs.GroupName(\r\n groupStore.SelectedGroup?.groupName?? \"\"\r\n ),\r\n GroupsBreadCrumbs.GroupJobs(\r\n Number(groupStore.SelectedGroup?.campaignId),\r\n Number(match.groupId)\r\n )\r\n );\r\n },\r\n });\r\n\r\n if (!groupStore.GroupJobsResponse) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(IndeedJobsViewContainer);","import { useContext } from \"react\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nimport { Box } from \"@material-ui/core\";\r\n\r\nimport {\r\n Button,\r\n Col,\r\n Form,\r\n Input,\r\n message,\r\n Row,\r\n Select,\r\n Typography,\r\n} from \"antd\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport { GroupResponse } from \"../../models/groups/GroupResponse\";\r\nimport { GroupStatus } from \"../../models/groups/GroupStatus\";\r\nimport { FetchError } from \"../../exceptions/AlgoSupervisionExceptions\";\r\nimport { RoutesPaths } from \"../../constants/RoutePaths\";\r\nimport { GroupUpdateRequest } from \"../../models/groups/GroupUpdateRequest\";\r\nimport { GroupService } from \"../../services/groups/GroupsService\";\r\nimport { BudgetType } from \"../../models/groups/BudgetType\";\r\nimport { GroupBudgetRequest } from \"../../models/groups/GroupBudgetRequest\";\r\nimport { GroupBudgetBalance } from \"../../models/groups/GroupBudgetBalance\";\r\n\r\nconst { Option } = Select;\r\n\r\ntype FormState = {\r\n groupName: string;\r\n isActive: GroupStatus;\r\n budget: number;\r\n budgetType: BudgetType;\r\n};\r\n\r\nconst layout = {\r\n labelCol: { span: 8 },\r\n wrapperCol: { span: 16 },\r\n};\r\n\r\ninterface Props {\r\n campaignId: number;\r\n group: GroupResponse;\r\n groupBudgetBalance: GroupBudgetBalance;\r\n}\r\n\r\nconst groupsService = new GroupService(\"Groups\");\r\n\r\nconst GroupsEditForm = (props: Props) => {\r\n const { campaignId, group, groupBudgetBalance } = props;\r\n const { userStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n\r\n const onFinish = async (formState: FormState) => {\r\n const changedGroupSettings = GetChangedGroupSettings(\r\n formState,\r\n initialValues\r\n );\r\n\r\n const changedGroupBudget = GetChangedGroupBudget(\r\n formState,\r\n initialValues\r\n );\r\n\r\n if (IsEmptyObject(changedGroupSettings) && IsEmptyObject(changedGroupBudget)) {\r\n message.info(\"Nothing changed in group settings.\");\r\n return;\r\n }\r\n\r\n let hasErrorOccured = false;\r\n\r\n if (!IsEmptyObject(changedGroupSettings)) {\r\n const updateGroupRequest: GroupUpdateRequest = {\r\n groupId: group.groupId,\r\n campaignId: campaignId,\r\n groupName: formState.groupName,\r\n isActive: formState.isActive\r\n };\r\n try {\r\n await groupsService.UpdateGroup(group.groupId, updateGroupRequest);\r\n message.success(\"Group details updated successfully\");\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n hasErrorOccured = true;\r\n }\r\n }\r\n\r\n if (!IsEmptyObject(changedGroupBudget)) {\r\n const updateGroupRequest: GroupBudgetRequest = {\r\n groupId: group.groupId,\r\n id: group.groupBudget.id,\r\n amount: Number(formState.budget),\r\n budgetType: formState.budgetType,\r\n campaignId: campaignId\r\n };\r\n console.log(Number(formState.budget));\r\n try {\r\n await groupsService.UpdateGroupBudget(group.groupId, updateGroupRequest);\r\n message.success(\"Group budget updated successfully\");\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n hasErrorOccured = true;\r\n }\r\n }\r\n\r\n if (!hasErrorOccured) {\r\n history.push(\r\n RoutesPaths.Supervision.GroupsRoutes.BuildGroupRoute(\r\n campaignId\r\n )\r\n );\r\n }\r\n };\r\n\r\n const initialValues: FormState = {\r\n groupName: group.groupName,\r\n isActive: group.isActive ? GroupStatus.Active : GroupStatus.Removed,\r\n budget: group.groupBudget?.amount,\r\n budgetType: group.groupBudget?.budgetType\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n General Details\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Active\r\n Removed\r\n \r\n \r\n\r\n \r\n \r\n Capped\r\n Fixed\r\n \r\n \r\n ({\r\n validator(ruleObject, value, err) {\r\n if (value < 0) {\r\n return Promise.reject(\r\n \"Value must be greater than 0\"\r\n );\r\n }\r\n if (value > groupBudgetBalance.campaignBalance && getFieldValue(\"budgetType\") == BudgetType.Fixed) {\r\n return Promise.reject(\r\n `Value must be equal or less than ${groupBudgetBalance.campaignBalance}`\r\n );\r\n }\r\n if (value > groupBudgetBalance.campaignBudget && getFieldValue(\"budgetType\") == BudgetType.Capped) {\r\n return Promise.reject(\r\n `Value must be equal or less than ${groupBudgetBalance.campaignBudget}`\r\n );\r\n }\r\n return Promise.resolve();\r\n }\r\n })\r\n ]}>\r\n \r\n \r\n\r\n \r\n \r\n Edit Group\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupsEditForm;\r\n\r\ntype ChangedGroupSettings = {\r\n groupName?: string;\r\n isActive?: GroupStatus;\r\n amount?: number;\r\n budgetType?: BudgetType;\r\n};\r\n\r\nfunction GetChangedGroupSettings(\r\n newFormState: FormState,\r\n oldFormState: FormState\r\n): ChangedGroupSettings {\r\n const changedGroupAttributes: ChangedGroupSettings = {};\r\n\r\n if (oldFormState.groupName != newFormState.groupName) {\r\n changedGroupAttributes[\"groupName\"] = newFormState.groupName;\r\n }\r\n\r\n if (oldFormState.isActive != newFormState.isActive) {\r\n changedGroupAttributes[\"isActive\"] = newFormState.isActive;\r\n }\r\n\r\n return changedGroupAttributes;\r\n}\r\n\r\nfunction GetChangedGroupBudget(\r\n newFormState: FormState,\r\n oldFormState: FormState\r\n): ChangedGroupSettings {\r\n const changedGroupBudgetAttributes: ChangedGroupSettings = {};\r\n\r\n if (oldFormState.budget != newFormState.budget) {\r\n changedGroupBudgetAttributes[\"amount\"] = newFormState.budget;\r\n }\r\n\r\n if (oldFormState.budgetType != newFormState.budgetType) {\r\n changedGroupBudgetAttributes[\"budgetType\"] = newFormState.budgetType;\r\n }\r\n\r\n return changedGroupBudgetAttributes;\r\n}\r\n\r\nfunction IsEmptyObject(object: object): boolean {\r\n return Object.keys(object).length == 0;\r\n}\r\n","import { observer } from \"mobx-react-lite\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\n\r\nimport Loader from \"../../../components/general/loader/Loader\";\r\nimport GroupsEditForm from \"../../../components/groups/GroupsEditForm\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport GroupsBreadCrumbs from \"./helpers/GroupsBreadCrumbs\";\r\nimport { GroupsContextInitializers } from \"./helpers/GroupsContextInitializers \";\r\n\r\ninterface Props {}\r\n\r\nconst GroupsEditPage = (props: Props) => {\r\n const match = useParams<{ campaignId: string; groupId: string }>();\r\n const { groupStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n\r\n usePageInitialization({\r\n onInitAsync: async () => {\r\n await GroupsContextInitializers.InitializeGroupData(\r\n Number(match.campaignId),\r\n groupStore,\r\n history\r\n );\r\n await GroupsContextInitializers.InitializeSelectedGroup(\r\n Number(match.groupId),\r\n groupStore,\r\n history\r\n );\r\n await GroupsContextInitializers.InitializeGroupBudgetBalance(\r\n Number(match.campaignId),\r\n groupStore,\r\n history,\r\n Number(match.groupId)\r\n );\r\n await GroupsContextInitializers.InitializeGroupCampaign(\r\n Number(match.campaignId),\r\n groupStore,\r\n history\r\n );\r\n },\r\n onCompanyContextCallBack: (company, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Edit Group: ${groupStore.SelectedGroup?.groupName}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Companies(company.companyName),\r\n SupervisionBreadcrumbs.Campaigns(\r\n `${groupStore.SelectedCampaign?.campaignName}`\r\n ),\r\n GroupsBreadCrumbs.Groups(\r\n Number(groupStore.SelectedCampaign?.campaignID)\r\n ),\r\n GroupsBreadCrumbs.GroupName(groupStore.SelectedGroup?.groupName ?? \"\"),\r\n GroupsBreadCrumbs.EditGroup(\r\n Number(groupStore.SelectedGroup?.campaignId),\r\n Number(match.groupId)\r\n )\r\n );\r\n },\r\n });\r\n\r\n if (!groupStore.SelectedGroup) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(GroupsEditPage);\r\n","import { Button, Col, message, Row, Typography } from \"antd\";\r\nimport { useContext, useState } from \"react\";\r\nimport CopyToClipboard from \"react-copy-to-clipboard\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { RoutesPaths } from \"../../constants/RoutePaths\";\r\nimport { FetchError } from \"../../exceptions/AlgoSupervisionExceptions\";\r\nimport { GroupJobResponse } from \"../../models/groups/GroupJobResponse\";\r\nimport { GroupJobsRequest } from \"../../models/groups/GroupJobsRequest\";\r\nimport groupJobsService from \"../../services/groups/GroupJobsService\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport JobTransfer from \"../jobs/JobTransfer\";\r\n\r\n\r\n\r\ninterface Props {\r\n campaignId: number;\r\n groupId: number;\r\n}\r\n\r\n\r\n\r\nconst GroupsAttachJobsForm = (props: Props) => {\r\n\r\n const { campaignId, groupId } = props;\r\n const [campaignJobsIds, setCampaignJobsIds] = useState([]);\r\n const { userStore, groupStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n const handleAttachJobsClick = async () => {\r\n let groupCreateRequest: GroupJobsRequest = {\r\n campaignId: campaignId,\r\n isActive: true,\r\n userId: userStore.User?.id,\r\n groupId: groupId,\r\n groupName: groupStore.SelectedGroup?.groupName || \"\",\r\n jobsList: campaignJobsIds,\r\n };\r\n try {\r\n await groupJobsService.AttachedDetachedAsync(groupCreateRequest);\r\n message.success(\"Successfully attach jobed to campaign\");\r\n history.push(\r\n RoutesPaths.Supervision.GroupsRoutes.BuildGroupRoute(\r\n campaignId\r\n )\r\n );\r\n } catch (error) {\r\n if (error instanceof FetchError) {\r\n message.error(error.apiError.errorMessage);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n Attach Jobs for Group\r\n \r\n {\r\n setCampaignJobsIds(jobIds);\r\n }}\r\n plCampaignId={campaignId}\r\n groupId={groupId}\r\n />\r\n \r\n \r\n Attach Jobs\r\n \r\n \r\n {\r\n message.info(\"Copied to clipboard\");\r\n }}>\r\n Copy Active Job Ids\r\n \r\n \r\n \r\n \r\n\r\n )\r\n\r\n}\r\n\r\nexport default GroupsAttachJobsForm","import { useContext } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport GroupsAttachJobsForm from \"../../../components/groups/GroupsAttachJobsForm\";\r\nimport usePageInitialization from \"../../../hooks/usePageInitialization\";\r\nimport { RootStoreContext } from \"../../../stores/RootStoreContext\";\r\nimport { SupervisionBreadcrumbs } from \"../supervision/breadcrumbs/supervision.breadcrumbs\";\r\nimport GroupsBreadCrumbs from \"./helpers/GroupsBreadCrumbs\";\r\nimport { GroupsContextInitializers } from \"./helpers/GroupsContextInitializers \";\r\n\r\nconst GroupsAttachJobsPage = () => {\r\n const match = useParams<{ campaignId: string; groupId: string }>();\r\n const { groupStore } = useContext(RootStoreContext);\r\n const history = useHistory();\r\n\r\n usePageInitialization({\r\n onInitAsync: async () => {\r\n await GroupsContextInitializers.InitializeGroupJobsData(\r\n Number(match.groupId),\r\n groupStore,\r\n history\r\n );\r\n await GroupsContextInitializers.InitializeSelectedGroup(\r\n Number(match.groupId),\r\n groupStore,\r\n history\r\n );\r\n await GroupsContextInitializers.InitializeGroupCampaign(\r\n Number(match.campaignId),\r\n groupStore,\r\n history\r\n );\r\n },\r\n onCompanyContextCallBack: (company, uiStore) => {\r\n uiStore.SetPageTitle(\r\n `Attach Jobs for Group: ${groupStore.SelectedGroup?.groupName}`\r\n );\r\n uiStore.AddBreadCrumbs(\r\n SupervisionBreadcrumbs.Companies(company.companyName),\r\n SupervisionBreadcrumbs.Campaigns(\r\n `${groupStore.SelectedCampaign?.campaignName}`\r\n ),\r\n GroupsBreadCrumbs.Groups(\r\n Number(groupStore.SelectedCampaign?.campaignID)\r\n ),\r\n GroupsBreadCrumbs.GroupName(groupStore.SelectedGroup?.groupName ?? \"\"),\r\n GroupsBreadCrumbs.AttachJobs(\r\n Number(groupStore.SelectedGroup?.campaignId),\r\n Number(match.groupId)\r\n )\r\n );\r\n },\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupsAttachJobsPage;\r\n","export enum ClassificationType {\r\n None = 0,\r\n Exclusive = 1,\r\n Excluded = 2\r\n}","import \"./ColumnSuperVision.scss\";\r\n\r\nimport { Button, Input, InputRef, Space } from \"antd\";\r\nimport {\r\n FilterConfirmProps,\r\n FilterDropdownProps,\r\n Key\r\n} from \"antd/lib/table/interface\";\r\nimport { makeObservable, observable } from \"mobx\";\r\nimport Highlighter from \"react-highlight-words\";\r\n\r\nimport { SearchOutlined } from \"@ant-design/icons\";\r\n\r\nexport class SearchColumn {\r\n private _dataIndex: string;\r\n private _searchInput: InputRef | null = null;\r\n\r\n constructor(dataIndex: string) {\r\n makeObservable(this);\r\n this._dataIndex = dataIndex;\r\n }\r\n\r\n @observable\r\n public searchText: string = \"\";\r\n\r\n @observable\r\n public searchColumn: string = \"\";\r\n\r\n public handleSearch(\r\n selectedKeys: Key[],\r\n confirm: (param?: FilterConfirmProps | undefined) => void,\r\n dataIndex: string\r\n ) {\r\n confirm(); //triggers OnFilter() function in CreateColumn()\r\n this.searchText = selectedKeys[0] as string;\r\n this.searchColumn = dataIndex;\r\n }\r\n\r\n public handleReset(\r\n clearFilters: (() => void) | undefined,\r\n confirm: (param?: FilterConfirmProps | undefined) => void\r\n ) {\r\n clearFilters!();\r\n this.searchText = \"\";\r\n confirm();\r\n }\r\n\r\n public CreateColumn() {\r\n return {\r\n filterDropdown: ({\r\n setSelectedKeys,\r\n selectedKeys,\r\n confirm,\r\n clearFilters,\r\n }: FilterDropdownProps) => (\r\n \r\n {\r\n this._searchInput = node;\r\n }}\r\n placeholder={`Search ${this._dataIndex}`}\r\n value={selectedKeys[0]}\r\n onChange={(e) =>\r\n setSelectedKeys(\r\n e.target.value ? [e.target.value] : []\r\n )\r\n }\r\n onPressEnter={() =>\r\n this.handleSearch(\r\n selectedKeys,\r\n confirm,\r\n this._dataIndex\r\n )\r\n }\r\n style={{ marginBottom: 8, display: \"block\" }}\r\n />\r\n \r\n \r\n this.handleSearch(\r\n selectedKeys,\r\n confirm,\r\n this._dataIndex\r\n )\r\n }\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}>\r\n Search\r\n \r\n \r\n this.handleReset(clearFilters, confirm)\r\n }\r\n size=\"small\"\r\n style={{ width: 90 }}>\r\n Reset\r\n \r\n \r\n \r\n ),\r\n filterIcon: (filtered: boolean) => (\r\n \r\n ),\r\n onFilter: (value: any, record: T) => {\r\n let recordKeyValue = (record as any)[this._dataIndex];\r\n return recordKeyValue\r\n ? recordKeyValue\r\n .toString()\r\n .toLowerCase()\r\n .includes(value.toLowerCase())\r\n : false;\r\n },\r\n onFilterDropdownVisibleChange: (visible: boolean) => {\r\n if (visible && this._searchInput != null) {\r\n setTimeout(() => this._searchInput!.select(), 100);\r\n }\r\n },\r\n render: (text: any, record: T) => {\r\n if (this.searchColumn == this._dataIndex) {\r\n return (\r\n \r\n );\r\n }\r\n return text;\r\n },\r\n };\r\n }\r\n}\r\n","export enum ELevelTypes {\r\n Default = 0,\r\n Group = 1,\r\n Campaign = 2,\r\n Company = 3,\r\n Affiliate = 4\r\n}","import {\r\n Badge,\r\n Button,\r\n Empty,\r\n Table,\r\n Checkbox,\r\n Segmented,\r\n Space,\r\n Form,\r\n Input,\r\n Switch,\r\n Tag,\r\n} from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Key, useContext, useEffect, useState } from \"react\";\r\nimport { EntityVendorResponse } from \"../../models/vendor-management/EntityVendorResponse\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport type { ColumnsType } from \"antd/es/table\";\r\nimport { ClassificationType } from \"../../models/vendor-management/ClassificationType\";\r\nimport { ISODateTime } from \"../../types/types\";\r\nimport { Box, TextField, Tooltip } from \"@material-ui/core\";\r\nimport { FormatDateIfValid } from \"../../utils/DateHelpers\";\r\nimport { CommentIsEdit } from \"./types\";\r\nimport { EditOutlined } from \"@ant-design/icons\";\r\nimport Paragraph from \"antd/lib/typography/Paragraph\";\r\nimport { SearchColumn } from \"./SearchColumn\";\r\nimport { DecompositionString } from \"../../utils/StringHelper\";\r\nimport { ELevelTypes } from \"../../models/vendor-management/settings/ELevelTypes\";\r\nimport \"./VendorManagementTable.scss\";\r\n\r\n\r\ninterface Props { }\r\n\r\nconst VendorManagement = (props: Props) => {\r\n const [vendors, setVendors] = useState([]);\r\n const { vendorManagementStore } = useContext(RootStoreContext);\r\n const { SelectedClassificationType } = vendorManagementStore;\r\n const [commentIsEdit, seCommentIsEdit] = useState();\r\n\r\n const selectedRowKeys = vendorManagementStore.SearchedVendors.reduce(\r\n function (selectedRowIndex: number[], vendor, index) {\r\n /* if (vendor.inclusionEnforcement == true && SelectedClassificationType != ClassificationType.Excluded) {\r\n vendor.classificationType = ClassificationType.Exclusive\r\n }*/\r\n if (vendor.classificationType != ClassificationType.None) {\r\n selectedRowIndex.push(index);\r\n }\r\n return selectedRowIndex;\r\n },\r\n []\r\n );\r\n useEffect(() => {\r\n setVendors(vendorManagementStore.SearchedVendors);\r\n }, [vendorManagementStore.SearchedVendors]);\r\n\r\n const rowSelection = {\r\n onSelectAll: (selected: boolean, selectedRows: any[]) => {\r\n vendorManagementStore.SearchedVendors.forEach((vendor, index) => {\r\n var selectedVendor = vendorManagementStore.SearchedVendors[index];\r\n\r\n if (selected == true && ClassificationTypeIsOptional(selectedVendor)) {\r\n selectedVendor.classificationType = SelectedClassificationType;\r\n } else if (ClassificationTypeIsOptional(selectedVendor)) {\r\n selectedVendor.classificationType = ClassificationType.None;\r\n }\r\n vendorManagementStore.AddToEffectedRows(selectedVendor);\r\n });\r\n },\r\n\r\n onSelect: (record: any, selected: boolean) => {\r\n let vendorIndex = vendorManagementStore.SearchedVendors.findIndex(\r\n (x) => x.vendorId == record.vendorId\r\n );\r\n if (selected == true) {\r\n vendorManagementStore.SearchedVendors[vendorIndex].classificationType =\r\n SelectedClassificationType;\r\n } else {\r\n vendorManagementStore.SearchedVendors[vendorIndex].classificationType =\r\n ClassificationType.None;\r\n }\r\n vendorManagementStore.AddToEffectedRows(\r\n vendorManagementStore.SearchedVendors[vendorIndex]\r\n );\r\n },\r\n\r\n getCheckboxProps: (record: EntityVendorResponse) => ({\r\n disabled: !ClassificationTypeIsOptional(record),\r\n }),\r\n\r\n selectedRowKeys: selectedRowKeys,\r\n };\r\n\r\n const columns: ColumnsType = [\r\n {\r\n dataIndex: \"isOperativeCutoff\",\r\n key: \"isOperativeCutoff\",\r\n width: \"3%\",\r\n render: (value, record: EntityVendorResponse) => (\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n title: 'Rule Source',\r\n dataIndex: \"inheritedLevel\",\r\n key: \"inheritedLevel\",\r\n width: \"10%\",\r\n render: (value, record: EntityVendorResponse) => (\r\n \r\n \r\n {record.inheritedLevel != ELevelTypes.Default ? ELevelTypes[record.inheritedLevel] : ''}\r\n \r\n \r\n ),\r\n },\r\n {\r\n title: \"VendorId\",\r\n dataIndex: \"vendorId\",\r\n key: \"vendorId\",\r\n ...new SearchColumn(\"vendorId\").CreateColumn(),\r\n },\r\n {\r\n title: \"VendorName\",\r\n dataIndex: \"vendorName\",\r\n key: \"vendorName\",\r\n width: \"15%\",\r\n ...new SearchColumn(\"vendorName\").CreateColumn(),\r\n },\r\n { title: \"UserName\", dataIndex: \"userName\", key: \"userName\" },\r\n Table.SELECTION_COLUMN,\r\n {\r\n title: ClassificationType[SelectedClassificationType],\r\n key: \"classificationType\",\r\n },\r\n {\r\n title: (record: EntityVendorResponse) => {\r\n return (\r\n <>\r\n \r\n {\r\n var updateVendors = [\r\n ...vendorManagementStore.SearchedVendors,\r\n ];\r\n updateVendors.forEach(function (part, index) {\r\n if (\r\n !InclusionEnforcementIsOptional(\r\n vendorManagementStore.SearchedVendors[index]\r\n )\r\n ) {\r\n // use ! (not) , beacuse InclusionEnforcementIsOptional use for disabled attribute\r\n vendorManagementStore.SearchedVendors[\r\n index\r\n ].inclusionEnforcement = e.target.checked;\r\n vendorManagementStore.AddToEffectedRows(\r\n vendorManagementStore.SearchedVendors[index]\r\n );\r\n }\r\n });\r\n setVendors(updateVendors);\r\n }}\r\n />\r\n Inclusion Enforcement\r\n \r\n >\r\n );\r\n },\r\n key: \"InclusionEnforcement\",\r\n dataIndex: \"InclusionEnforcement\",\r\n width: \"13%\",\r\n render: (value, record: EntityVendorResponse) => (\r\n \r\n {\r\n let vendorIndex = vendorManagementStore.SearchedVendors.findIndex(\r\n (x) => x.vendorId == record.vendorId\r\n );\r\n vendorManagementStore.SearchedVendors[\r\n vendorIndex\r\n ].inclusionEnforcement = e.target.checked;\r\n vendorManagementStore.AddToEffectedRows(\r\n vendorManagementStore.SearchedVendors[vendorIndex]\r\n );\r\n }}\r\n style={{ marginRight: \"30px\" }}\r\n checked={record.inclusionEnforcement ?? false}\r\n disabled={InclusionEnforcementIsOptional(record)}\r\n >\r\n \r\n ),\r\n },\r\n {\r\n title: \"ModificationDate\",\r\n dataIndex: \"modificationDate\",\r\n key: \"modificationDate\",\r\n render: (val) => FormatDateIfValid(val),\r\n },\r\n {\r\n title: \"Reason Type\",\r\n dataIndex: \"reasonType\",\r\n key: \"reasonType\",\r\n width: \"10%\",\r\n render: (val) => DecompositionString(val),\r\n },\r\n {\r\n title: \"Comment\",\r\n dataIndex: \"comment\",\r\n key: \"comment\",\r\n width: \"25%\",\r\n render: (value, record: EntityVendorResponse, rowIndex) => {\r\n if (commentIsEdit?.isEditAble && commentIsEdit.rowIndex == rowIndex) {\r\n return (\r\n \r\n {\r\n let vendorIndex =\r\n vendorManagementStore.SearchedVendors.findIndex(\r\n (x) => x.vendorId == record.vendorId\r\n );\r\n vendorManagementStore.SearchedVendors[vendorIndex].comment =\r\n e.target.value;\r\n vendorManagementStore.AddToEffectedRows(\r\n vendorManagementStore.SearchedVendors[vendorIndex]\r\n );\r\n let commentIsEdit: CommentIsEdit = {\r\n isEditAble: false,\r\n rowIndex: rowIndex,\r\n };\r\n seCommentIsEdit(commentIsEdit);\r\n }}\r\n />\r\n \r\n );\r\n }\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {value}\r\n \r\n \r\n \r\n >\r\n );\r\n },\r\n onCell: (record, rowIndex) => {\r\n return {\r\n onClick: () => {\r\n let commentIsEdit: CommentIsEdit = {\r\n isEditAble: true,\r\n rowIndex: rowIndex,\r\n };\r\n seCommentIsEdit(commentIsEdit);\r\n },\r\n };\r\n },\r\n }\r\n ];\r\n\r\n if (vendors.length == 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const InclusionEnforcementIsOptional = (record: EntityVendorResponse) => {\r\n switch (SelectedClassificationType) {\r\n case ClassificationType.Excluded: {\r\n if (record.classificationType == ClassificationType.Excluded) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n case ClassificationType.Exclusive: {\r\n if (record.classificationType == ClassificationType.Exclusive) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n const ClassificationTypeIsOptional = (record: EntityVendorResponse) => {\r\n switch (SelectedClassificationType) {\r\n case ClassificationType.Excluded: {\r\n if (record.inclusionEnforcement == true) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n case ClassificationType.Exclusive: {\r\n if (record.inclusionEnforcement == true) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n return (\r\n ({ ...data, key: i }))}\r\n pagination={{\r\n pageSize: 10,\r\n showSizeChanger: false,\r\n }}\r\n columns={columns}\r\n rowSelection={rowSelection}\r\n />\r\n );\r\n};\r\n\r\nexport default observer(VendorManagement);\r\n","\r\n\r\nexport const DecompositionString = (text: string): string => {\r\n if (text == null || text == undefined)\r\n return \"\";\r\n return text.replace(/([a-z])([A-Z])/g, '$1 $2');\r\n}","import { Col, Row, Select, Space, Typography } from \"antd\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { spacingUnit } from \"../../assets/styles/theme\";\r\nimport { ClassificationType } from \"../../models/vendor-management/ClassificationType\";\r\nimport { EntityVendorResponse } from \"../../models/vendor-management/EntityVendorResponse\";\r\nimport vendorManagementService from \"../../services/vendor-management/CampaignVendorService\";\r\nimport { RootStoreContext } from \"../../stores/RootStoreContext\";\r\nimport Loader from \"../general/loader/Loader\";\r\nimport \"./VendorSelectInput.scss\";\r\n\r\n\r\nconst { Option } = Select;\r\n\r\ninterface Props {\r\n entityVendors: EntityVendorResponse[]\r\n}\r\n\r\n\r\n// ... (other imports)\r\n\r\nconst VendorSelectInput = (props: Props) => {\r\n const { entityVendors } = props;\r\n const [filterValue, setFilterValue] = useState('');\r\n const { vendorManagementStore } = useContext(RootStoreContext);\r\n const [filteredOptions, setFilteredOptions] = useState([]);\r\n const [selectedValues, setSelectedValues] = useState();\r\n\r\n\r\n useEffect(() => {\r\n const defaultValue = vendorManagementStore.SearchedVendors.map((vendor) =>\r\n BuildOptionValue(vendor.vendorName, vendor.vendorId)\r\n );\r\n\r\n setSelectedValues(defaultValue);\r\n setFilteredOptions(filteredOptions.length ? filteredOptions : entityVendors);\r\n \r\n }, [vendorManagementStore.SearchedVendors]);\r\n\r\n const handleFilter = (inputValue: string) => {\r\n setFilterValue(inputValue);\r\n const filtered = entityVendors.filter(\r\n (vendor) =>\r\n vendor.vendorName.toLowerCase().includes(inputValue.toLowerCase()) ||\r\n vendor.vendorId.toString().includes(inputValue)\r\n );\r\n setFilteredOptions(filtered);\r\n };\r\n\r\n const handleBlur = () => {\r\n setFilteredOptions(entityVendors)\r\n };\r\n\r\n return (\r\n \r\n \r\n Search Vendor(s)\r\n \r\n {\r\n const vendorIds = selectedOptionValues.map((vendor) =>\r\n ParseVendorId(vendor)\r\n );\r\n vendorManagementStore.SetSearchedVendors(vendorIds);\r\n }}\r\n >\r\n {filteredOptions.map((vendor) => (\r\n \r\n {vendor.vendorName} - {vendor.vendorId}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n\r\nexport default observer(VendorSelectInput);\r\n\r\n\r\nconst separator = \"##\";\r\n\r\nconst BuildOptionValue = (vendorName: string, vendorId: number) => {\r\n return `${vendorName}${separator}${vendorId}`;\r\n};\r\n\r\nconst ParseVendorId = (vendor: string) => {\r\n return Number(vendor.split(separator)[1]);\r\n};","import settings from \"../../config/AppSettings/SettingsFactory\";\r\nimport { ManualActionRequestSource } from \"../../models/manual-actions/ManualActionRequestSource\";\r\nimport { Affiliate } from \"../../models/operation/Affiliate\";\r\nimport { EntityVendorRequest } from \"../../models/vendor-management/EntityVendorRequest\";\r\nimport { EntityVendorResponse } from \"../../models/vendor-management/EntityVendorResponse\";\r\nimport { EntityDistributionSettings } from \"../../models/vendor-management/settings/EntityDistributionSettings\";\r\nimport { EntityDistributionSettingsResponse } from \"../../models/vendor-management/settings/EntityDistributionSettingsResponse\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\n\r\n\r\nexport class AffiliateVendorService extends BaseService {\r\n\r\n async GetAllAsync(affiliateId: number): Promise {\r\n const vendorManagementdata = await this.Get(`/all/${affiliateId}`);\r\n return vendorManagementdata;\r\n }\r\n\r\n async SetAffiliatesVendors(vendorsWithDecision: EntityVendorRequest[], affiliateId: number, \r\n manualActionRequestSource: ManualActionRequestSource) {\r\n\r\n const vendorManagementdata = await this.Post(`/${affiliateId}?manualActionRequestSource=${manualActionRequestSource}`, vendorsWithDecision);\r\n return vendorManagementdata;\r\n }\r\n\r\n async GetAffiliateSettingsAsync(affiliateId: number) {\r\n const vendorManagementdata = await this.Get(`/settings/${affiliateId}`);\r\n return vendorManagementdata;\r\n }\r\n\r\n async SetAffiliateDistributionSettings(entityStateAttributeRequest: EntityDistributionSettings, affiliateId: number) {\r\n const dataState = await this\r\n .Post(`/settings/${affiliateId}`, entityStateAttributeRequest);\r\n return dataState;\r\n }\r\n\r\n async GetEffectedEntitesChangeModeAsync(entityDistributionSettings: EntityDistributionSettings, affiliateId: number) {\r\n const entitySettingsResponse = await this.Post(\r\n `/settings-validation/${affiliateId}`,\r\n entityDistributionSettings\r\n );\r\n return entitySettingsResponse;\r\n }\r\n\r\n\r\n}\r\n\r\nconst affiliateVendorService = new AffiliateVendorService(\"AffiliateVendors\", settings.vendorManagementUrl);\r\nexport default affiliateVendorService;","import settings from \"../../config/AppSettings/SettingsFactory\";\r\nimport { ManualActionRequestSource } from \"../../models/manual-actions/ManualActionRequestSource\";\r\nimport { EntityVendorRequest } from \"../../models/vendor-management/EntityVendorRequest\";\r\nimport { EntityVendorResponse } from \"../../models/vendor-management/EntityVendorResponse\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\n\r\n\r\nexport class CampaignVendorService extends BaseService{\r\n\r\n async GetAllAsync(campaignId: number) {\r\n const vendorManagementdata = await this.Get(`/all/${campaignId}`);\r\n return vendorManagementdata;\r\n }\r\n \r\n async SetCampaignsVendors(vendorsWithDecision: EntityVendorRequest[] , campaignId: number, manualActionRequestSource: ManualActionRequestSource) {\r\n \r\n const vendorManagementdata = await this.Post(`/${campaignId}?manualActionRequestSource=${manualActionRequestSource}`, vendorsWithDecision);\r\n return vendorManagementdata;\r\n }\r\n}\r\n\r\nconst campaignVendorService = new CampaignVendorService(\"CampaignVendors\", settings.vendorManagementUrl);\r\nexport default campaignVendorService;","import settings from \"../../config/AppSettings/SettingsFactory\";\r\nimport { EntityDistributionSettings } from \"../../models/vendor-management/settings/EntityDistributionSettings\";\r\nimport { EntityVendorRequest } from \"../../models/vendor-management/EntityVendorRequest\";\r\nimport { EntityVendorResponse } from \"../../models/vendor-management/EntityVendorResponse\";\r\nimport { BaseService } from \"../BaseService\";\r\nimport { EntityDistributionSettingsResponse } from \"../../models/vendor-management/settings/EntityDistributionSettingsResponse\";\r\nimport { ValidAction } from \"../../models/ValidAction\";\r\nimport { ManualActionRequestSource } from \"../../models/manual-actions/ManualActionRequestSource\";\r\n\r\nexport class CompanyVendorService extends BaseService {\r\n\r\n async GetAllAsync(companyId: number) {\r\n const vendorManagementdata = await this.Get(\r\n `/all/${companyId}`\r\n );\r\n return vendorManagementdata;\r\n }\r\n\r\n async SetCompanysVendors(\r\n vendorsWithDecision: EntityVendorRequest[],\r\n companyId: number, \r\n manualActionRequestSource: ManualActionRequestSource\r\n ) {\r\n const vendorManagementdata = await this.Post(\r\n `/${companyId}?manualActionRequestSource=${manualActionRequestSource}`,\r\n vendorsWithDecision\r\n );\r\n return vendorManagementdata;\r\n }\r\n\r\n // Settings\r\n async GetCompanySettingsAsync(companyId: number) {\r\n const vendorManagementdata = await this.Get( `/settings/${companyId}`);\r\n return vendorManagementdata;\r\n }\r\n\r\n async SetCompanyDistributionSettings(entityDistributionSettings: EntityDistributionSettings, companyId: number) : Promise{\r\n const entitySettings = await this.Post(\r\n `/settings/${companyId}`,\r\n entityDistributionSettings\r\n );\r\n return entitySettings;\r\n }\r\n\r\n async GetEffectedEntitesChangeModeAsync(entityDistributionSettings: EntityDistributionSettings, companyId: number) {\r\n const entitySettingsResponse = await this.Post(\r\n `/settings-validation/${companyId}`,\r\n entityDistributionSettings\r\n );\r\n return entitySettingsResponse;\r\n }\r\n\r\n async ResetCompanyVendors(companyId: number) {\r\n const dataState = await this.Delete(`/reset/${companyId}`);\r\n return dataState;\r\n }\r\n\r\n async ChangeSettingsIsValidValidationAsync(entityDistributionSettings: EntityDistributionSettings, companyId: number) {\r\n const entitySettingsResponse = await this.Post(\r\n `/settings-action-validation/${companyId}`,entityDistributionSettings)\r\n return entitySettingsResponse;\r\n }\r\n\r\n}\r\n\r\nconst companyVendorService = new CompanyVendorService(\r\n \"CompanyVendors\",\r\n settings.vendorManagementUrl\r\n);\r\nexport default companyVendorService;\r\n","import settings from \"../../config/AppSettings/SettingsFactory\";\r\nimport { ValidAction } from \"../../models/ValidAction\";\r\nimport { ManualActionRequestSource } from \"../../models/manual-actions/ManualActionRequestSource\";\r\nimport { EntityVendorRequest } from \"../../models/vendor-management/EntityVendorRequest\";\r\nimport { EntityVendorResponse } from \"../../models/vendor-management/EntityVendorResponse\";\r\nimport { ValidationDto } from \"../../models/vendor-management/ValidationDto\";\r\nimport { EntityDistributionSettings } from \"../../models/vendor-management/settings/EntityDistributionSettings\";\r\nimport { BaseService } from \"../BaseService\";\r\n\r\n\r\n\r\nexport class GroupVendorService extends BaseService {\r\n\r\n async GetAllAsync(groupId: number) {\r\n const vendorManagementdata = await this.Get(`/all/${groupId}`);\r\n return vendorManagementdata;\r\n }\r\n\r\n async ValidateRules(vendorsWithDecision: EntityVendorRequest[], groupId: number) {\r\n\r\n const validateRules = await this.Post(`/validate/${groupId}`, vendorsWithDecision);\r\n return validateRules;\r\n }\r\n\r\n async SetGroupVendors(vendorsWithDecision: EntityVendorRequest[], groupId: number, manualActionRequestSource: ManualActionRequestSource) {\r\n const vendorManagementdata = await this.Post(`/${groupId}?manualActionRequestSource=${manualActionRequestSource}`, vendorsWithDecision);\r\n return vendorManagementdata;\r\n }\r\n\r\n async ResetGroupVendors(groupId: number) {\r\n const dataSettings = await this.Delete(`/reset/${groupId}`);\r\n return dataSettings;\r\n }\r\n\r\n async GetGroupSettingsAsync(groupId: number) {\r\n const vendorManagementdata = await this.Get( `/settings/${groupId}`);\r\n return vendorManagementdata;\r\n }\r\n\r\n async SetCompanyDistributionSettings(entityDistributionSettings: EntityDistributionSettings, groupId: number) : Promise
Access denied
\r\n Sure you want to delete audit from campaign: {\" \"}\r\n {campaignSettingAudit.campaignName} with audit ID:{\" \"}\r\n {campaignSettingAudit.id}\r\n
\r\n Stem is about to take control over campaign:{\" \"}\r\n {indeedCampaign.name} with ID:{\" \"}\r\n {indeedCampaign.id}\r\n \r\n \r\n Which is currently managed by:{\" \"}\r\n {indeedCampaign.user}\r\n \r\n
\r\n Sure you want to delete audit from campaign: {\" \"}\r\n {groupTableDto.groupName} with group ID:{\" \"}\r\n {groupTableDto.groupId}\r\n