{"version":3,"sources":["Scripts/Utilities/Site.ts","Scripts/System/AjaxURL.ts","Scripts/Utilities/cartegraph-utilities.ts","Scripts/Utilities/SidebarType.ts","Scripts/Resources/resources.ts","Scripts/Analytics/Pendo.ts"],"names":["exports","getBaseURL","window","MOCK_BASE_URL","url","location","href","pathname","index1","indexOf","index2","baseLocalUrl","substr","_getFullUrl","uriString","paramsObject","Site_1","uri","firstDecode","secondDecode","encodedParams","$","param","replace","decodeURIComponent","e","Uri","each","index","value","addQueryParam","returnUrl","toString","API","actionName","strURI","Avatar","RestAPIClasses","actionPathAndName","RestAPICommand","RestPrivateAPI","FlexUI","BulkCreateTask","Persistence","ContainerComponent","LinkedAsset","Home","Administration","LayoutManager","Structure","AutomationManager","AssetConditionManager","ScenarioBuilder","ResourceEstimates","ScenarioBuilderPrint","Map","Timesheet","Account","Summary","Report","undefined","Attachments","Images","imagePath","Requests","InternalRequest","ErrorLog","Inspection","Library","Model","Tasks","Import","Unsubscribe","ImportExport","BuildURI","controllerName","AssetAdministration","AdvancedFilter","SyncGIS","OAuth","RecordsetFilter","Materials","MaterialLocation","MaterialOrders","Calendar","Search","ScheduledProcessLog","JULIE","Eight11","RunAnIntegration","RESTConnect","Dev","init","Cartegraph","Common","Models","ViewModels","Inspections","Window","Guides","activeElementID","Browser","String","prototype","hashCode","hash","i","chr","len","this","length","charCodeAt","Utilities","mapCacheId","Math","floor","random","scrollbarWidth","timeout","blockTabs","firstTabbableItem","lastTabbableItem","blockScreenId","eControlType","AutoComplete","FreeText","Number","Integer","DateTime","Date","Time","YesNo","Disabled","QuantityUnit","UserRole","eFieldListType","ViewEditDesigner","GridColumnSelector","FilterFieldChooser","NotificationMessageEditor","AssetSummaryGridColumnSelector","ExportFilterFieldChooser","ImportExportRsetFields","displayClientSideError","removeAttr","removeClass","getActiveNavigationStyle","addClass","buttons","OK","text","Resources","click","dialog","defaultButton","initDialog","SomeFieldsHaveErrors","CorrectErrorsToContinue","cssClass","mapper","URIMapper","currentNavigationTab","URIMap","tab","isOnInspection","getCurrentClassStyle","className","MetaDataHelpers","isAsset","isResource","isRequest","isTask","getVMin","getVMax","getInt32MaxValue","generateRandomInt","min","max","getViewType","val","getInitDialogButtonsParamOKButtonOnly","title","message","isWarning","isSuccess","_index","pendoTag","cypressTag","isArray","setDialogClass","dialogBox","resizable","draggable","width","modal","autoOpen","zIndex","dialogClass","open","theBtn","document","find","siblings","focus","html","outerDialog","dialogHeight","height","dialogWidth","dialogTop","dialogLeft","css","remove","appendTo","children","isScrolledIntoView","element","scrollContainer","viewTop","offset","top","viewBottom","hasHorizontalScrollBar","elementTop","elementBottom","scrollWidth","attr","changeLabelDialog","options","defaults","oldName","isAlert","opts","extend","dialogElement","entireDialog","parent","setTimeout","input","first","blur","delegate","is","keyCode","ui","ENTER","trigger","preventDefault","TAB","visibleFormInputs","firstInput","lastInput","last","currentInput","tabbingBackward","shiftKey","close","undelegate","errorDialog","closeWindow","callback","removeWaitScreen","warningDialogSaveChanges","cancelText","okText","Cancel","warningDialogOK","includeJS","scriptId","callbackFunction","FormModel","addCreatePocket","getScript","invalidateMapCache","getMapCacheId","getScrollBarWidth","inner","createElement","style","outer","position","left","visibility","overflow","appendChild","body","w1","offsetWidth","w2","clientWidth","removeChild","Site_2","getHash","split","random4","substring","getNewGuid","toLowerCase","isJson","testString","JSON","parse","createQtipError","errorId","myScrollfunction","qtip","buildToolTipMessage","messageText","yieldImage","buttonImage","my","at","adjust","y","x","qTipOptions","content","classes","tip","corner","viewport","events","visible","_event","api","elements","unbind","bind","toggle","show","event","errorTile","target","scrollParent","set","hide","maxWidth","getModalPosition","modalId","container","closest","round","right","bottom","updateControl","hasClass","dropDownId","trim","datepicker","_datepickerShowing","parsedDate","DateTimeUtilities","smartDate","formatDate","LegacyDateFormat","parsedTime","parseTime","dateTimeValue","endOfDateValue","parsedDateTime","tempDate","tempTime","toDateString","date","hours","getHours","minutes","getMinutes","seconds","getSeconds","suffix","AM","PM","ValidationHelpers","islegacyValidationSetup","valid","setupControlWidgets","controlsContainer","dropDownsContainer","savable","basePath","updateViewControls","isQTip","autoId","autoIdLookupOnly","BooleanControl","CurrencyControl","DateControl","ScrollContainer","DateTimeControl","DoubleControl","IntegerControl","Max","Min","emptyStringIsNumeric","QuantityUnitControl","StringControl","TimeControl","BasePath","MultilineTextControl","FilterControl","self","libraryAttachment","data","fieldName","ReadonlyLookupControl","filter","targetFieldUid","LookupControl","targetClassName","closeWhenScrolling","showWaitScreen","time","clearTimeout","spinner","timeoutFunction","setWaitScreenMessage","WaitScreenVisible","_a","waitSpinnerInterval","clearInterval","blockScreenTabHandler","firstItem","next","lastItem","prev","fwd","parents","back","showBlockWidget","transparentOverlay","hideBlockOverlay","transparentClass","blockOverlay","overlayWidget","cgBlockScreen","removeLastBlockWidget","hidePreviousBlockScreen","overlay","previousOverlay","previousModal","revealPreviousBlockScreen","removeCurrentBlockWidget","isNullOrUndefined","showBlockScreen","blkScreenId","preventTabs","blockScreen","removeBlockScreen","$block","$blockScreen","blockTopNav","block","overlayCSS","cursor","unblockTopNav","unblock","sidebarEditableState","section","editing","sectionName","compileTemplates","tmplIds","_i","template","addTemplate","templateId","getAuthorizedClassesForView","viewType","ajax","AjaxURL","type","dataType","stringify","success","error","array_unique","ar","sorter","out","j","push","isSessionTimedOut","TimeoutService","isSessionActive","taskOpenStatuses","TaskStatus","Planned","InProgress","isOpenTaskStatus","status","openStatuses","underscore_1","default","map","openStatus","toUpperCase","contains","workOrderOpenStatuses","WorkOrderStatus","isOpenWorkOrderStatus","htmlEncode","htmlDecode","urlEncodeSingleQuote","trueClassesTargetList","targetList","utils","newList","Array","item","oid","getOid","trueClassOfShare","getClassname","generateClassNameOidObject","list","objectList","classAndOid","classPos","lastIndexOf","getOids","classesAndOids","oids","hasReportPermissions","hasPermission","$layers","isOnIndex","allDenied","$layer","layerClass","layerHasPermission","Security","RuleSecurity","canDoAction","Filtering","getLayerCounts","isOnDetail","editClass","CurrentAsset","getClass","isNull","isUndefined","isNullUndefinedOrEmpty","isEmpty","arraysContainDifferentValues","array1","array2","difference","objectNameToString","objectsNamespace","objectLocation","isObject","Error","o","setLookupFilter","params","containerId","propertyName","Format","autocompletegrid","formatNumber","decimalValue","numberParts","parseInt","formatSize","bytes","toFixed","redirectToLogin","ProceedIfNotDirty","isOnInternalRequest","sessionTimeout","newLocation","searchParams","URLSearchParams","timedOut","ReturnUrl","search","focusInput","defer","$element","isTextInput","browser","webkit","setSelectionRange","scrollToTop","currPage","scrollTop","copyToClipboard","el","setAttribute","select","execCommand","waitForElement","childSelector","Promise","result","querySelector","observer","MutationObserver","disconnect","observe","childList","subtree","sidebarType","None","Enum","Index","ViewComponents","EditComponents","Work","Assets","resources","ChangeBuildingContextMessage","MapFilterGridMessage","MoreRowsExist","Eight11StructureCollisions","Eight11CreateStructure","Eight11CreateStructureBypass","Eight11Confirmation","Eight11Authorize","Eight11AuthorizeError","RunAnIntegrationStructureCollisions","RunAnIntegrationCreateStructure","RunAnIntegrationCreateStructureBypass","RunAnIntegrationConfirmation","RunAnIntegrationStructureSetup","RunAnIntegrationSettingUpData","RunAnIntegrationSetupError","RunAnIntegrationSetupNotComplete","RunAnIntegrationInitialSetup","RunAnIntegrationInitialSetupFormat","RunAnIntegrationInitialSetupWasSuccessful","RunAnIntegrationAdditionalSetupNeeded","RESTConnectStructureCollisions","RESTConnectCreateStructure","RESTConnectCreateStructureBypass","RESTConnectConfirmation","RESTConnectStructureSetup","RESTConnectSetupError","SearchBuildings","SearchFloors","SelectBuilding","SelectFloor","YesDelete","YesContinue","ArcGISDefaultUri","CopyImpacts","ImpactsCopied","PasteCopiedImpacts","CopyIndexMappings","IndexMappingsCopied","PasteCopiedIndexMappings","ConditionDetail","ConditionDetails","EditingConditionDetails","MayTakeFewMinutes","EditAddCriteriaAndRecalculateRiskScores","EditCOFCriteriaForAssetTypeWarning","AddCOFCriteriaForAssetTypeWarning","OptOutCOFWarningTitle","OptInCOFWarningTitle","OptOutCOFWarningMessage","OptInCOFWarningMessage","OptOutWarningConfirm","OptInWarningConfirm","OptOutPOFWarningTitle","OptInPOFWarningTitle","OptOutPOFWarningMessage","OptInPOFWarningMessage","CannotUpdateOptInCOF","CannotUpdateOptInPOF","ChangeOrder","Edit","MeasuredValue","EditIndexMappings","EditImpacts","IndexMappings","Impacts","Impact","CompletedWithErrors","FieldMustBeUnique","ValueMustBeUnique","RequiredForThisScenario","ProtocolsCreateWarning","ProtocolsClickHere","EditingSettings","CannotAddPlanYear","CannotEditPlanYear","CannotAddBudget","CannotEditBudget","CannotEditPropertiesTitle","CannotDeletePlanYear","CannotAddProtocol","CannotAddProject","CannotEditProject","CantEditScenario","CannotRunScenario","CannotEditScenarioTitle","CannotDuplicateScenarioTitle","CannotRemoveProtocol","CannontDisplayChart","TooManyPlanYearsOrActivitiesTitle","TooManyPlanYearsOrActivities","UnlockActivitiesOnProjectsTitle","UnlockActivitiesOnProjectsMessage","UnlockActivitiesOnProjectsActivityModeMessage","UnlockActivitiesOnProjectsButton","ChangeActivitiesOnProjectMessage","ProjectCreated","ProjectUpdated","ProjectDeleted","NoPlanYears","Legend","DidntFindAnyProjects","ProjectAlreadyConvertedToWork","ChartNoDataActivityMode","ChartNoDataPlanYearMode","ChartNoDataPlanYearModeFilterPane","DomainSubtype","DomainSubtypeField","DataValue","Synchronize","TestFailed","OnBeforeUnloadBrowserMessage","ValidationReservedWords","ValidationStartWithcg","ValidationContains_Unit","ValidationStartWithsys","ValidationStartWithNum","ValidationStartWithUnderscore","ValidationContainsSpaces","ValidationSpecialCharacters","ValidationRequired","ValidationRequiredSimple","ValidationMaxLength","ValidationDate","ValidationTime","ValidationDateTime","ValidationNumberRange","ValidationFieldSize","ValidationDefaultSize","ValidationTextRequired","ValidationAssociatedPrimaryGroupRequired","ValidationNumberRangeGreaterThanAndLessThanOrEqualTo","ValidationRangeGreaterThanOtherField","ValidationSampleRange","ValidationFieldIsNowRequiredWarning","ValidationFieldNewFieldRequiredWarning","ValidationFieldIsUniqueAndRequiredError","ValidationFieldTruncationError","ContinueEditing","ContinueWithInstall","DiscardChanges","AutoNumber","Asset","AddingSomething","EditingSomething","UpdatingSomething","CreatingSomething","CreatingTask","CreatingField","Creating","NonAssetTask","NonAssetSingularName","NonAssetClass","AssetTask","CreatingWorkOrder","CreatingAssociation","EditingAssociation","ViewAssociation","Association","Spatial","StartInspection","EditInspection","ViewInspection","CannotCalculateIndexMissingConditionData","CannotCalculateIndexNoMappings","FourOhFourString","StatusCompleted","StatusCanceled","WOHasOpenTasks","CannotDeleteResourceLogEntries","CorrectErrorsWithDelete","UnableToDeleteResourceLogEntries","WaitIndicator","Saving","LoadingMap","PercentSaved","Finalizing","AboutToCreateTasks","ContinueCreatingTasks","CreateTasksNow","PrintMap","Title","Print","Landscape","Portrait","EnterPrintoutTitle","DistributingResources","DistributingResourcesTitle","DistributingResourcesSuccessText","ProcessStillRunning","ProcessSaveErrorTitle","ProcessStillRunningText","ProcessBeingSaved","ProcessHasErrors","SearchByAddress","AddLocation","LocationPermissionsDenied","SelectAssetType","KeepAssetType","ChangeAssetType","KeepAssociation","DiscardAssociation","ChangeAssetTypeDialogTitle","ChangeAssetTypeDialog","ChangeAssetTypeDialogAddLocation","CancelChangeDialogTitle","CancelChangeDialog","ScenarioCancelDialog","ContinueRunning","DiscardScenarioResults","MaxCharsChangeDialogTitle","MaxCharsChangeDialog","InvalidSelection","CannotASelectMoreThan","CannotCreateFutureEntries","CannotAssociate","ResourceDateCannotBeAfter","GpsFailure","ClearLocationDialogTitle","ClearLocationDialog","ClearLocationDialogGis","KeepLocation","RemoveLocation","Location","TrySaveShapeOrCancel","EditPointInstructions","EditLineOrPolyInstructions","UseGISToEditLocation","UseGISToEditZAndM","UseGISToEditGeometry","GISIntegration","SystemError","CannotProcessCommand","SaveError","CannotSaveError","CannotDisplaySummaryDialog","FindALibrary","FindARole","CannotCreateTask","CannotCreateRecord","CannotDuplicateRecord","ClearFilterDialogTitle","ClearFilterDialog","Filter","ReopenInspectionTitle","ReopenInspectionDialog","CannotContinuePCIInspection","Incremental","InspectionMissingRequiredInfo","InspectionType","PavementLength","PavementWidth","PavementCannotAddSample","PavementLengthTooLong","PavementWidthTooLong","PavementSampleToLessThanFrom","PavementSampleFromEmpty","PavementSampleToEmpty","PavementSampleFromGreaterThanZero","PavementCannotAddDistress","PavementCannotDeleteDistress","PavementDistressAreaOrLengthExceedsSample","Random","EditPCIInspection","StartPCIInspection","MeasurementTypeArea","MeasurementTypeLinear","LinearMeters","SquareMeters","ClearFilterTitle","ClearFilterMessage","KeepFilter","ClearFilter","LengthLower","AreaLower","FeetAbbreviated","Squared","UploadInProgressTitle","UploadInProgressMessage","RemoveRepeatingWOTitle","RemoveRepeatingWOMessage","RemoveMultipleRepeatingWOMessage","KeepSchedule","RemoveSchedule","RemoveFromScenario","PleaseWait","ResttingOms","Processing","Exporting","Deleting","Removing","Selecting","Canceling","RemovingTasks","Installing","RemovingRepeatingSchedules","CalculatingPCIIndex","GeneratingSamples","ProcessingSelectAll","ProcessingClearAll","Validating","ServerError","AccessDenied","ResetOmsFailed","CantDeleteTitle","CannotLeavePage","StructureManagerIntro","StructureManagerIntroTitle","AssetAdministrationWarningTitle","UploadFailed","SavingLayout","LoadingLayout","InvalidLayout","CannotAddGridToOverviewHeader","InvalidViewName","InvalidStatementInFilter","DefineInternalRequestView","ReqestIssue","DuplicateItem","DuplicateViewName","DuplicateSectionName","DuplicateGroupHeaderTitle","FilterContainsInvalidValue","ContinueTasksNotAssociatedToAnother","RunReport","LaunchWebDesigner","LaunchWebDesignerTitle","LaunchWebDesignerMessage","ReportSelectionLimitMessage","ReportNameReportView","ReportNameDetailView","CannotRunReport","CannotUpdateTask","CannotAddTask","CannotAddTasks","CannotAddResource","CannotChangePassword","CannotCompleteTask","CannotCompleteWorkOrder","CannotDisplaySummary","CannotCloseRequest","CannotAddRequester","CannotGetInspection","CannotLoadRequester","CannotRemoveRequester","CannotEditTaskAssignments","CannotDeleteSelectedRecord","CannotDeleteSelectedRecords","CannotSetPrimaryAttachedFile","CannotActivateFilterTryAgain","CannotResetUserPersistenceSelected","CannotResetUsersPersistenceSelected","ResetPasswordFailed","AskYourSystemAdminForHelpPeriod","AreYouSureGeneric","DeleteDialogTitle","FinishDialogTitle","RemoveDialogTitle","AreYouSureMakeAssociation","UndoDialogTitle","ClearAllDialogTitle","AreYouSureMakeChange","LeavePageDialogTitle","LeaveViewDialogTitle","ResetViewDialogTitle","DeleteViewDialogTitle","DeleteReportDialogTitle","RemoveRequesterDialogTitle","RequesterWillBeRemovedDialog","ResetUserPersistenceDialogTitle","ClearLayoutDialogTitle","DeleteScriptDialogTitle","CreatingFormatFileDialogTitle","DeleteFormatFileDialogTitle","CorrectXErrorsToContinue","FilesNotUploadedLostDialog","CurrentLayoutRemovedDialog","ViewReturnedtoDefaultDialog","ViewDeletedfromSystemDialog","ReportDeletedfromSystem","NoLoadSecuritySettings","NoSaveSecuritySettings","CannotUndoWarning","NoPermissionViewPage","EnteredInvalidFilter","CannotCalculateIndex","ConditionCategory","ConditionCategories","Risk","RiskSettings","RiskStatusRanges","ConsequenceOfFailureSettings","ConsequenceOfFailureCriteria","ProbabilityOfFailureSettings","ProbabilityOfFailureConversionRanges","UneditableInStructureManagerError","UneditableInStructureManagerCOFError","EstimatedIndexValueMissing","CannotCompleteInspection","AttachmentsNotFound","NoRemoveRequester","NoAddRequester","NoLoadRequester","NoLoadRoleAdmin","PromptsInSyntaxViewNotAllowedRemoveFilter","NoRecordsSelectedLeastOneMustBe","TooManyRecordsToReportFilterLess2000","FileNotUploadedAskAdmin","EditSchedule","EditRepeatingScheduleTitle","EditRepeatingScheduleMessage","Update","UpdatingRecords","StayOnPage","LeaveWithoutSaving","LeaveWithoutOrdering","RevertDialogTitle","ConfirmDelete","FileNoLongerExists","RequestClosedSetRequestStatusOpen","AlreadyExistsViewNamed","CannotUseViewNameEnterDifferent","CannotSaveView","LenghtofViewNameGreater","CannotAddedSection","ReadOnlyFieldsCannotAddedSection","CannotFindAttachmentsForAskAdmin","CannotBeInLaytoutMoreThanOnce","CannotBeInSectionMoreThanOnce","CannotBeInFormatFileMorThanOnce","RecordCannotBeFoundAskAdmin","CannotAddNewRowAskAdmin","CannotLoadResourceEntryAskAdmin","CannotRemoveSelectedTaskFrom","CannotRemoveSelected","AllResourceRowsRemovedDialog","AddRequesterToDifferentRequest","RequesterRemovedFromRequestAddedRequest","RequesterAddedToPreviousRequest","ChangingWillRemoveRequesterFromPreviousRequest","NoColumnsSelected","LeastOneColumnBeSelectedDialog","ToManyRecordsInListFilterToLess","NoLocationSelectedForRecord","NoLocationNoAddress","ClickClearLocationDrawRecordOnMapDialog","ClickClearLocationDrawRecordOnMapDialogEdit","PluralNameRenameTitle","PluralNameRenameHeader","PluralNameRenameFooter","InvalidLookupTargetTitle","InvalidLookupTargetError","ComponentSnapshot","Directory","Directories","Create","Delete","Duplicate","Actions","LockForMaintenance","All","Add","Save","Done","Close","Continue","UndoChanges","SaveChanges","CancelDelete","ContinueToDelete","ContinueToApply","KeepUserPersistence","ResetUserPersistence","KeepCurrentLink","Large","LinkToSelectedAsset","LinkToThisAsset","KeepWithInsert","RemoveWithInsert","KeepIssue","ChangeIssue","KeepView","DeleteView","ResetView","StayOnView","KeepReport","KeepFile","DeleteFile","KeepLayout","DiscardLayout","DeleteScript","CannotAddTheServer","KeepRows","ClearAllRows","KeepRequester","RemoveRequester","Requesters","SendEmailToRequesters","SendEmailToAssignments","EmailAddresses","RecordSourceForEmail","InvalidRecordSourceForReportEmail","EmailField","Syntax","CopyErrorMessage","CopyWebhookURL","CopiedToClipboard","Assignments","AssignmentsSaved","KeepWithCurrentRequest","Medium","MoveToDifferentRequest","UserName","Password","NewPassword","ConfirmPassword","ValueRequired","UniqueValuesRequired","AutoNumberBrackets","AutoNumberParenthesis","Small","SelectAsset","SelectLabor","EnterPrompt","NewScriptName","FindAReport","Task","TaskVariableBeRemovedFromCurrenetRecord","ClicktoDrawDoubleClickToFinish","EnterSyntaxViewDialogTitle","EnterSyntaxViewDialog","Section","Group","Column","Ungroup","ReadOnly","DiscardSpaceInsert","KeepSpaceInsert","RemoveItemDialogTitle","RemoveItemFromViewDialog","UsersPossessive","UserPossessive","SignRetroreflectivityFailedDialogTitle","SignRetroreflectivityFailedDialog","ResetUserPersistenceDialog","TaskBeChangedToCorrectPrecesionLossByRounding","TaskWillBeRoundedTo","ThereWasXError","NoDataDisplaySelDateRange","NoDataToDisplay","EditingWithHyphen","Editing","ProcessingNoEllipsis","NotInspected","NotTested","SelectField","SelectOperator","SelectRecipient","SelectGeodatabaseAttribute","Activate","Apply","AssessmentsLoading","XAssessmentTasks","OneAssessmentTask","AssessmentTaskRequirements","AssessmentActivityMustBeSameError","NoAssessmentEligibleTaskErrorTitle","NotAllAssessmentEligibleTaskErrorTitle","AssessmentEligibleCount","AssessmentIgnoredCount","ContinueWithEligibleAssessments","XAssetTask","XAssetTasks","XXTasks","XXTask","UnlinkAsset","LinkAsset","AddField","NameColon","View","EndDate","ThroughDate","BeginDate","FromDate","PrimaryAttachment","DeleteAttachedFile","SelectionMustBePolygon","SelectionLinesNoCross","NoFilterAllRequests","LinkToXBeRemoved","FieldPermanentlyRemovedSystem","RecordSetPermanentlyRemovedSystem","RelationshipRemovedSystem","LibraryNameError","BePermanentlyRemovedSystem","FormatFileDeletedSystem","DateCannotBeforeX","DateCannotAfterX","DateCannotBeInFuture","DateCannotBeInPast","PasswordsNoMatch","Value","ValueMustBeGreaterThan0","ValueMustBeGreaterThanOrEqualTo0","ValueCannotBeNeg","EntriesCannotBeNegOrMore24Hrs","ValueMustBeLessEveryXX","ActualStartDateOnBefore","ActualStopDateOnAfter","NoRecordsDisplay","NoAssociationsDisplay","CannotMakeActive","DuplicateFeatureClassLayer","NoViewOrScriptLoaded","ScriptsApplyDetailEditViewOnly","ViewNoScriptSelFromBoxCreate","OneXTask","SectionX","InactiveAssociationWillNotBeSynchronized","TheLineItemWillBeRemovedFromTheCurrentOrderProcess","CannotSynchronizeAssociation","EnablingDebugMode","DebugMode","MapWasNotSavedAsSecured","ListStale","SomeRecordsNotDisplayedOnMap","MapWasRemovedFromArcGIS","MapIsNotAvaliable","FatalErrorLoadingMap","TheAmountPulledCannotExceedTheAmountAvailable","Layout","LayerSaved","DeleteLayer","ErrorSearchingLayers","MarkAsFavorite","RemoveFromFavorites","DeleteProjectMessage","ProjectConvertedAssignError","ProjectConvertedError","SystemLockedForMaintenanceDefault","VectorLayersNotSupportedForPrinting","SaveLayerAlreadyExists","OnlyL2UsersCanPerformAction","TimeoutOccurredRetrievingPrintout","ErrorOccurredRetrievingSpatialAnalysis","ChangesMustBeSavedBeforeRunningTheAutomation","CreateReportUseAdvancedDesignerMRT","CreateReportUseAdvancedDesignerSRT","SelectLocationToDisplayNeededMaterials","LayoutHas250Sections","SectionHas100Filters","AreYouSureYouWantToClearTheLog","LookupGeodatabaseAttributes","CannotCompleteAction","CannotSelectMoreThanNItems","CannotAddActivity","CannotSelectMoreThanNActivities","CannotAddToProject","CannotRemoveFromProject","CannotAddNoActivity","EnterStartingLocation","ReviewLayersToAnalyzeAgainst","AreYouSureYouWantToRemove","SelectATargetLayerToAnalyze","CreateReportUseBasicDesignerChart","CreateReportUseBasicDesignerTable","EnterEndingLocation","LocationsCannotBeTheSame","DeletionQuestion","SelectTransferToLocation","AllRecordsWillBeRemoved","AddProjectToScenario","WeDidntFindAnyResults","CannotAddTheCrewMember","CannotActionAssocation","LaborAvatarsFailedToLoad","LaborRecordsFailedToLoad","RecordsetAuditExport","NoAutomationsToDisplay","NoLogsToDisplay","NoResultsFoundWithSearchTerm","NoResultsFoundSubtitle","SearchTrigger","SearchAllAutomations","GeodatabaseAttribute","SynchronizeGeometry","CannotSaveAutomation","CannotSaveResourceEstimates","CannotDuplicateAutomation","CannotDuplicateAutomationMessage","AutomationDuplicated","CannotAddAutomationBlock","SelectALaborOrCrew","EditProjectTitle","SelectALaborer","SelectARoleOrUser","AllUsersAndRoles","SelectTrigger","AutomationsLog","AutomationExecuting","AutomationScheduledImmediately","TooManyAutomationBlocks","DistributeResources","CopyEmailAddresses","EnterProjectTitle","DecreaseAdjustment","IncreaseAdjustment","EditAssignedLabor","UnableToLocate","RenameGroupHeader","MapTitleDetailFor","LoadingTriggers","CannotSaveReport","SelectReport","SelectReportType","SelectRecordType","CannotFindRecord","CannotAddSection","BudgetLimitation","CannotAddTheLog","EnterReportName","StartingLocation","CannotAddFilter","RouteDirections","AutomationManagerLogs","SaveUnderline","CannotPrintMap","GISAssociation","PrimaryGISAssoc","EndingLocation","SelectMaterial","CreateAutomation","AdvancedDesigner","BasicDesigner","CannotLoadMap","StandardReport","AllRecordsets","AllGadgetTypes","CustomReport","RenameSection","GenerateRoute","SaveRoute","EndTargetOCI","CreatingReport","DuplicatingReport","RouteDetails","ClearLibrary","DuplicateReport","RefreshReport","CannotRunNow","DeleteReport","BulkTransfer","ManageLayers","SearchLayers","EditAProject","SearchGadgets","ProjectTitle","TransferQty","Relationship","AddAProject","TotalBudget","RoutedTasks","Description","FinishSave","Orientation","EnterTitle","EditProject","SelectView","Searching","WorkOrders","ClearField","StopReport","EditReport","AddSection","AddProject","SelectAll","OCITarget","EnteredBy","OpenTasks","AssetType","Automations","Automation","CannotAdd","EditTitle","SaveLayer","Libraries","Recordset","LineItem","Category","FullName","Transfer","Activity","Priority","ViewType","AddView","Complete","Material","Advanced","ErrLog","Receive","Finish","Details","Reports","ResetOms","TaskID","SaveAs","Reopen","Remove","Street","Select","Field","Owner","Clear","Stock","Basic","Name","Keep","Back","Next","Forward","Month","Week","Type","Lock","ID","SpacePM","SpaceAM","High","Low","Moderate","Excellent","Good","Average","Fair","Poor","Failed","OID","GoToDate","VersaCGAppNames","StructureMgrProtectedNames","PluralDuplicateName","PluralDuplicateNameInUnavialable","SingularDuplicateName","SingularDuplicateNameInUnavialable","Installed","Available","UnvailableStandardAsset","DuplicateUserId","TableDuplicateName","FieldDuplicateName","ColumnDuplicateName","GreaterThanZero","NotificationManager","AssetColorManager","LibraryManager","BaseMapAdmin","UserAdmin","RoleAdmin","SystemSettings","GeocodeSettings","Settings","Budgets","Project","Projects","PlanYears","PlanYear","Protocol","Protocols","XWorkOrdersSelected","OneWorkOrderSelected","InvalidTimeFormat","InvalidDateFormat","FailRetrieveFieldListErrMsg","CostPerPlanYear","ConvertToWork","SearchProjects","WindowVMInstanceMustReturnsCarteVMWV","WindowVMInstnaceMustReturnsCarteVMBV","WindowVMInstanceTypeCarteVMWVRequired","WindowVMInstanceTypeCarteVMBVRequired","WindowVMOverridesetModels","WindowVMOverrideDispose","WindowVMOverrideSave","NonLocationGridVMOverrideAdd","NonLocationGridVMOverrideRemove","NonLocationGridVMOverrideGetAssets","ImportExportBaseSelectionVMOverrideSave","EventNameCannotHaveNamespace","SelectedUnitsIncompatibleNoConverted","CannotChangeUnit","CannotConvertUnitMessage","BadRecordsetMeta","BadRecordMeta","BadFieldMeta","TurnEncryptionOffButton","KeepEncryptionOnButton","TurnEncryptionOffTitle","TurnEncryptionOffMessage","TurnEncryptionOnTitle","TurnEncryptionOnMessage","TurnEncryptionOnButton","KeepEncryptionOffButton","HourMustBetw1And12","CannotSpecifyAmOrPmMilitary","CannotDivideByZero","InvalideDate","CreateTask","CreateXTasks","Install","Commit","MinMustBetw0And59","SecMustBetw0And59","ClassMetaIsNull","CouldNotGetModel","ClassNameIsRequired","BaseNameSpaceIsRequired","RequiredWhen","ErrUploadLibraryAttachment","JSErrFileLineNumMsg","ObjErrExpandoCollapso","NoBIDForURIMayNotCalled","SampleAreaMissingNoDivByZero","SampleAreaMissing","SampleLengthMissing","PavementWidthMissing","CannotSelectAll","CannotBeInMsgMoreThanOnce","CannotBeInViewMoreThanOnce","PreventativeMaintenance","PreventativeMaintenanceHeader","PreventativeMaintenanceHasMaxPlans","RecordSet","PMFindAPlan","Export","InvalidFormat","ImportingJob","ExportingJob","SortSelectedRecords","SelectCategory","SelectTimeInterval","SelectType","SelectFormat","SelectDataSource","InvalidImportDataSourceFile","ValidImageTypes","InvalidImageFile","FileUploaderInvalidFileTitle","DeleteCOFCriteriaTitle","DeleteCOFCriteriaMessage","CannotEditStructureTitle","CannotEditStructureBody","CantOpenFile","FileUploaderEmptyErrorMessage","FileUploadTypeErrorMessage","FileUploadSizeErrorMessage","FilterTimeoutErrorTitleAdvFilter","FilterTimeoutErrorMessageAdvFilter","FilterTimeoutErrorTitleColorCount","FilterTimeoutErrorMessageColorCount","ModelSaverBadModelException","RequiresJsDateObject","CanceledSeeLog","CompleteSeeLog","Review","Success","SelectConditionTrigger","EstimatedOCI","InspectedOCI","MinimumIsReached","NoFilterApplied","Every","Beginning","AfterThePrevious","TimeOnly","TimeAfterComplete","Condition","Repeat","Usage","UsageText","UsageEditText","PMClassName","PMScheduleClassName","PMNoPlansCreated","PMNoPlansFound","WasCompletedStarting","Yes","No","EstimatedOciFalls","InspectedOciFalls","MinimumConditionIsReached","FallsBelow","SavePlanNoFilterTitle","SavePlanNoFilterBody","SavePlanNoFilterButton","DuplicatePlanIdTitle","DuplicatePlanIdErrorMessage","NotificationUnsubscribeFail","NotificationUnsubscribeSuccess","RecordsSaved","RecordsExported","RecordsProcessed","CannotCreatePlanTitle","CannotCreatePlanMessage","DeletePlanTitle","DeletePlanMessage","DeletePlan","KeepPlan","EnterPlanName","PlanName","CancelActivation","DeleteActivityTitle","DeleteActivityMessage","KeepActivity","DeleteActivity","KeepTrigger","RemoveTrigger","Trigger","DeleteTriggerTitle","DeleteTriggerMessage","CancelTriggerEditHeader","CancelTriggerEditMessage","ResetNotificationManagerTitle","ResetNotificationManagerMessage","ResetChanges","KeepChanges","KeepChange","ChangeFieldTypeTitle","ChangeFieldTypeMessage","KeepFieldType","ChangeFieldType","MultipleUniqueAndRequiredTitle","RelationshipExplanation","ContainerComponentExplanation","ContainerComponentDisabledExplanation","SelectRecordset","NameRecordset","ActivateAs","IsoDateFormat","IsoDateTimeFormat","InvalidUsageFilterTitle","InvalidUsageNoRecordsMessage","InvalidUsageFilterDifferentUnitsMessage","InvalidUsageFilterNoUnitsMessage","RecordHasNoUnitLower","RecordsHaveNoUnitLower","RecordUsesLower","RecordsUseLower","Projected","Completed","Canceled","ProjectedOrOpenTaskForThisAsset","ProjectedOrOpenTasksForThisAsset","ConvertingProjectedTask","SelectedActionNotAvailableForProjectedTasks","RemoveAllSelectedTasksWithStatusProjected","AddToContainer","ConnectionExistsTitle","ConnectionExistsSingularMessage","ConnectionExistsPluralMessage","KeepCurrentContainer","LinkableAsset","RelationshipTo","RecordArchivesDesc","SelectConnection","EditingNonLocationAssetConnections","IssueFieldRequired","CannotSave","CannotSaveFile","CannotLoadFile","InternalRequestRole","CannotAddThe","SelectingNonLocationAssets","SelectNonLocationAsset","ThisFunctionMustBeOverridden","ArgumentIsNullOrUndefined","InvalidArgumentValue","ParamsObjectIsNotAnInstanceOf","AllScenarios","PredictionGroup","ConditionGroup","Scenario","ScenarioEditedRerunRequired","ExportActivitiesWithAssetAttributes","LineSeparator","ExportActivitiesToTasks","NoCCToDisplay","SelectionNotAvailable","FixTheFollowingToContinue","FieldDoesNotExistRemoveFieldToContinue","RemoveField","Width","ValueMustBeNumberGreaterThan0","OCIWeight","NextAvailableNumber","MaximumCharacters","LookupRSet","UniqueField","UnitCategory","UnitDefault","NumberMinLength","SQLStatement","Connection","ConnectionStringDoesNotExist","UseSpecialFunction","SourceData","IncomingDataSource","TargetRecordset","ElementIsMissingAnId","UniqueIdForKOInSessionPersistence","TargetRecordsetCategory","TargetRecordsetType","TargetField","Target","ValueField","Mask","UseCustomCoordinateSystem","GeographicWorldWGS1984","SelectingCoordinateSystem","TimeFirst","TimeFormat","DateFormat","ClearJobHistoryMsg","ClearJobHistoryTitle","ClearSpecificJobHistoryMsg","KeepRunHistory","ClearRunHistory","Year","Ra","ClearAllPoints","ClearAllImpacts","ClearAllMappings","CopyPoints","PointsCopied","PasteCopiedPoints","AddPoint","RemovePoint","AddMapping","RemoveMapping","AddImpact","RemoveImpact","EditProperties","ManagingServers","CannotConnectArcGIS","Private","TestConnection","Testing","ServerName","ServerURL","DefaultGISNewServerName","DefaultGISNewServerURL","AreYouSureYouWantToSave","AreYouSureYouWantToSaveTmpl","SaveServer","NoArcGisServer","AnArcGISServerMustBeAdded","CannotDeleteGisServer","CannotDeleteGisServerNamed","AreYouSureChangeAssociationMsg","SaveHasUidErrorsTitle","SaveHasUidErrors","SoeNotEnabledTitle","SoeNotEnabledMessage","CannotSaveAssociation","CancelChange","ContinueChange","FeatureService","FeatureClassLayer","CartegraphRecordset","LinearFeatureClassField","LinearIDField","PolygonFeatureClassField","PolygonIDField","RequiredWhenUsingFullGeometry","GISStringTruncation","GISMemoError","EditTrackingNotEnabledMessage","CannotContactServer","CannotEditAssociationsMessage","CannotEditFeatureServiceTitle","CannotEditFeatureServiceMessage","CannotEditTheAsset","CannotEditGeometry","CannotAddTheAsset","CannotCreateAssetInGeometricNetwork","CannotDuplicateAssetInGeometricNetwork","CannotEditGeometricNetwork","MandZAwareFeatureServiceMessage","UpdateGeometryFeatureServiceMessage","MandZAwareAndUpdateGeometryFeatureServiceMessage","CannotDeleteGeometricNetwork","FeatureOutsideBoundary","CgRemaining","GisRemaining","RecordsInSync","RecordsSynced","RecordsAdded","RecordsSkipped","RecordsFailed","DownloadLog","DownloadRtLog","Started","Running","Waiting","RunStatus","RunStatusCanceling","SynchronizingAssociations","Synchronizing","NewField","NewLibrary","NewUniqueID","CartegraphLibrary","CannotCancelSynchronization","CannotRefreshSynchronization","CannotRefreshSynchronizationMsg","AttemptsFailedSynchronizationMsg","CannotDownloadLog","CannotEditListInLibraryManager","CannotLoadLibraryPropertiesTitle","CannotLoadLibraryPropertiesMessage","MakeChangesToDomainInArcCatalog","AreYouSureChangeTheDefault","DefaultGroupChanged","EditDefault","GISAttribute","GeometricNetwork","GISOneWayFromCg","GISOneWayFromGis","GISTwoWay","CannotSetGeometricNetwork","RecordsetMustBeEmptyForGeometricNetwork","RecordsetMustBeEmptyForUtilityNetwork","SpatialEditsInGIS","Configuration","PortalURL","DefaultGISNewPortalURL","GetScenarioAssetData","CalculateMissingAssetPerformanceData","ProcessScenario","SaveScenarioResults","AssetCriticality","AssetCriticalityHighestEstimatedOCI","AssetCriticalityLowestEstimatedOCI","ScenarioWeightError","CancelComplete","ContinueToComplete","CompleteDialogTitle","Completing","CannotCompleteSelectedRecords","BulkCompleteTaskMessage","BulkEditDialogTitle","BulkEditDialogSubtitle","BulkEditConfirmationTitle","BulkEditConfirmationMessage","BulkEditEmptyFields","BulkEditEmptyActivityList","BulkEditCannotLoadCOFTitle","BulkEditCannotLoadCOFMsg","Budget","HighestRisk","TargetOCI","ScenarioRerun","ScenarioRerunAreYouSure","ScenarioBudgetRequired","ScenarioProtocolRequired","ScenarioPlanYearRequired","ScenarioNoBudgetForCategory","ScenarioNoTriggerForBudget","ScenarioNoTriggerForBudgets","ScenarioSelectActivity","ScenarioSelectYear","ScenarioStaleEOCI","ScenarioNAEOCI","ScenarioActivityPaneDescription","ScenarioProjectPaneDescription","ScenarioViewPaneDescription","StopAndMakeChanges","ActivitiesNotRecommended","AreYouSureYouWantToContinue","PwpStatusCriticalErrors","ActivityCostPerPlanYear","BudgetVsCostPerPlanYear","CostForImpactPerScenario","ImpactPerScenario","BudgetVsCostPerScenario","CurrentUserDoesNotHaveAssociatedLaborRecord","RecordFilterAdmin","RecordFilterLimitReachedTitle","RecordFilterLimitReachedMessage","DeleteFilterTitle","DeleteFilterMessage","DeleteFilter","MaterialLocationSummaryChartTitle","TaskEstimateVsActualCostChartTitle","MaterialMove","RepairLog","NoMaterials","OrderingProcess","OrderEdit","OrderReceive","DeleteAttachmentTitle","DeleteAttachmentMessage","KeepAttachment","DeleteAttachment","SelectLocations","SelectOrganization","SelectIntegration","SelectaValue","ChooseVendor","SelectYourLocations","IncludeMobileLocations","UnitPrice","NotAllMaterialsOrdered","InvalidAddOrderItemTitle","InvalidBulkTransferItemTitle","InvalidBulkTransferItemMessage","MaterialLocationItemAlreadyExistsMessage","PriceRequiredOnReceive","MaterialItemAlreadyExistsMessage","CannotEditLogHeader","CannotSaveRecord","SmartFieldMustBeReadOnly","ExchangeAsset","CannotExchangeAsset","CannotExchangeAssetWithNoParent","Apps","AppSuccessfullyInstalled","SelectedAssetsWillNotBeInstalled","SelectAvailableAssets","YearsCantBeUsedWithApplyOnce","CannotLoadShareData","SectionFiltersCopied","SectionFiltersPasted","SectionFilteringErrorTitle","SectionFilteringErrorMessage","SectionFilteringSingleError","SectionFilteringMultipleErrors","InvalidTaskFilter","DuplicateTaskFilter","CannotGenerateRoute","CannotAddTasksToRoute","FilterTasksToRoute","MinimumTasksToRoute","SingleUnroutableTask","MultipleUnroutableTasks","ContineToRouteRemainingTasks","ContinueWithRoute","CancelRoute","ViewText","ViewGrid","NoRecordsToAnalyze","NoRecordsToAnalyzeMessage","NoResultsFound","NoSpatialSelectionResults","NoRecordsInMapExtent","InvalidGeometryShapeForExpression","CannotSelectAllResults","SpatialResultsSelectionExceeded","CannotRunAnalysis","RecordsInLayersChanged","ArcGISFeatureAccessBlocked","ConfigureAnalysis","NonPublicFacingURL","InstalledAssets","CannotCompleteAnalysis","SpatialAnalysisTimedOut","YourSessionWillExpire","SignOut","StaySignedIn","SessionExpiring","GadgetLibrary","MaxGadgets","MaxGadgetsHeadsUp","MyLibraryInfo","GadgetSaved","ResourceEstimatesManager","ResourceEstimatesSlideoutHeader","FieldSizeOptions","DisplayName","DateFieldTypeOptions","FieldTypeOptions","FieldTypeOptionsWOAttachment","ImportExportTypeOptions","ImportTextDelimiterOptions","ImportFieldDelimiterOptions","ImportTransactionScopeOptions","ImportOnDuplicateRecordOptions","ImportOnNullValueOptions","ImportOnLongTextOptions","ImportAutoAddLookupOptions","ImportOnReadOnlyOptions","HideItem","ImportSpecialFunction","GisConfigurations","ImpactUnits","MapSelectionToolUnits","AutomationTriggerEvents","MaintenanceModeWarningHeader","MaintenanceModeLockedHeader","MaintenanceModeLockedText","MaintenanceModeAdminWarning","MaintenanceModeAdminWarningHeader","SystemAccess","MaintenanceLevels","Level","Copied","DefaultRate","ResourceModalTitle","CollapseAllSections","ExpandAllSections","OCIRangeError","PlanYearSaved","RecordHasBeenExcluded","RecordsHaveBeenExcluded","SureDeleteCustomEstimate","CartegraphEstimatesUsedInstead","SetCustomEstimates","SetCustomEstimatesWithQuantity","UseCartegraphEstimates","EstimateOverridesLimitExceeded","limit","total","NoCustomEstimatesSet","EstimateOverrideWillBeDeleted","asset","activity","NoDistributeCostQuantitySet","DistributedQuantityNotUsed","FEMAMultipleEffectiveDates","FEMABackDate","FEMADontBackDate","FEMACostCodesRequired","FEMAUpdateRates","FEMAUpdateRatesMsg","effDate","FEMAUnlinkedRates","FEMAInactiveCostCodes","FEMAInactiveCostCodesMsg","FEMARatesWillBeExpired","MapAreaContinueUploadTitle","MapAreaContinueUploadText","MapAreaUploadTitle","MapAreaCannotUploadMap","MapAreaArcGISLoginRequired","MapAreaUploaded","_UNIT","SignInAsUser","CannotSignIn","YourOwnAccount","AlreadySignedIn","AllAddressesAreValid","AddressesNotValid","MaxAddressesAllowed","AddAddresses","ViewDuplicates","DuplicateResources","DuplicateResourcesFoud","SaveDuplicateResources","Reserved","MaterialPlanningBulkError","MaterialPlanningBulkStatusTitle","MaterialPlanningStatusUpdateErrorTitle","MaterialPlansEditStatusErrorTitle","MaterialPlanningStatusStageError","RecipientTabs","label","description","pendoId","SortOrderChoices","InvalidAssetPrioErrorTitle","InvalidAssetPrioErrorMsg","PendoService","clientData","userAccount","cgOneWebUrl","pendo","downloadPendo","_b","sent","clearSession","visitor","getVisitor","account","getAccount","initPendoAsync","trackLogin","setupPendoButton","console","warn","resolve","reject","initialize","__assign","ready","userName","id","InstanceID","email","Email","user_name","role","Role","first_name","FirstName","last_name","LastName","esri_user_name","EsriUsername","associated_labor","LaborRecord","opengov_identity_email","OpenGovEmail","is_integration_user","IsIntegrationUser","name","instance_id","instance_type","InstanceType","orgUrl","Site_3","cg1Url","trackLoginType","authenticationType","localStorage","setItem","getItem","track","removeItem","trackDuplicateResource","duplicateEquipment","duplicateLabor","duplicateMaterial","taskList","equipment","labor","material","tasks","selector","$pendoBtn","mutations","forEach","mutation","removedNodes","removedNode","$pendoBtn_1","apiKey","p","n","d","v","w","z","_q","m","concat","slice","call","arguments","async","src","getElementsByTagName","parentNode","insertBefore","intervalId","setInterval","isReady"],"mappings":"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","file":"ts_minimal.js","sourcesContent":["export const getBaseURL = (): string => {\n // Allow mocking for unit tests.\n if ((window as any).MOCK_BASE_URL) {\n return (window as any).MOCK_BASE_URL;\n }\n\n const url = location.href;\n const pathname = location.pathname;\n const index1 = url.indexOf(pathname);\n const index2 = url.indexOf(\"/\", index1 + 1);\n const baseLocalUrl = url.substr(0, index2);\n\n return baseLocalUrl + \"/\";\n};\n","// tslint:disable\n\nimport { getBaseURL } from \"../Utilities/Site\";\n\n// Third-party dependency that we should probably work on removing.\ndeclare var Uri: any;\n\ntype ParamsObject = { [key: string]: any };\n\ntype AjaxURLFunction = (actionName: string, paramsObject?: ParamsObject) => string;\n\n//#region Helper Function\nfunction _getFullUrl(uriString: string, paramsObject: ParamsObject) {\n var uriString = getBaseURL() + uriString;\n var uri: Uri = null;\n if (paramsObject) {\n //Do we have params?\n var firstDecode = null;\n var secondDecode = null;\n var encodedParams = $.param(paramsObject, true).replace(/\\+/g, \"%20\"); //MVC hates the + for spaces\n\n try {\n firstDecode = decodeURIComponent(encodedParams);\n secondDecode = decodeURIComponent(firstDecode);\n } catch (e) {\n secondDecode = firstDecode; //If there are special characters, and you try and do a secondDecode decodeURIComponent will throw an exception. If that happens we know the URL is not already encoded.\n }\n\n //Prevent double encoding\n if (firstDecode != secondDecode) {\n //Now we know that paramsObject is already encoded don't use results from $.params(...)\n uri = new Uri(uriString);\n $.each(paramsObject, function(index: string, value) {\n uri.addQueryParam(index, value.replace ? value.replace(/\\+/g, \"%20\") : value); //Add all the params to the uri object, in this case don't encode because it was already encoded! However, ensure + is changed to %20 because MVC hates + for spaces\n });\n } else uri = new Uri(uriString + \"?\" + encodedParams); //The params must be encoded once, so use this encoding first!\n } else uri = new Uri(uriString); //We don't have any params. Simple case!\n\n var returnUrl = uri.toString();\n\n return returnUrl;\n}\n//#endregion\n\nexport const API: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `API/v1/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Avatar: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Avatar/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const RestAPIClasses: AjaxURLFunction = function(actionPathAndName, paramsObject) {\n var strURI = `API/v1/classes/${actionPathAndName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const RestAPICommand: AjaxURLFunction = function(actionPathAndName, paramsObject) {\n var strURI = `API/v1/commands/${actionPathAndName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const RestPrivateAPI: AjaxURLFunction = function(actionPathAndName, paramsObject) {\n var strURI = `PrivateAPI/${actionPathAndName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const FlexUI: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `FlexUI/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const BulkCreateTask: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `BulkCreateTask/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Persistence: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Persistence/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const ContainerComponent: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `ContainerComponent/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const LinkedAsset: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `LinkedAsset/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const Home: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Home/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const Administration: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Administration/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const LayoutManager: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `LayoutManager/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const Structure: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Structure/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const AutomationManager: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `AutomationManager/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const AssetConditionManager: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `AssetConditionManager/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const ScenarioBuilder: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `ScenarioBuilder/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const ResourceEstimates: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `ResourceEstimates/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const ScenarioBuilderPrint: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `ScenarioBuilderPrint/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const Map: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Map/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const Timesheet: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Timesheet/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const Account: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Account/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const Summary: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Summary/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const Report: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Report/${actionName}/`;\n\n if (actionName == \"\" || actionName == undefined) {\n strURI = `Report/`;\n }\n\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const Attachments: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Attachments/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n\nexport const Images: AjaxURLFunction = function(imagePath, paramsObject) {\n var strURI = `Images/${imagePath}/`;\n return _getFullUrl(strURI, paramsObject).replace(/\\/$/, \"\"); //Remove trailing slash for images, otherwise MVC get's upset.\n};\nexport const Requests: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Requests/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const InternalRequest: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `InternalRequest/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const ErrorLog: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `ErrorLog/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Inspection: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Inspection/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Library: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Library/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Model: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Model/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Tasks: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Tasks/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Import: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Import/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Unsubscribe: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Unsubscribe/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const ImportExport: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `ImportExport/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const BuildURI = function(\n controllerName: string,\n actionName: string,\n paramsObject: ParamsObject\n) {\n var strURI = `${controllerName}/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const AssetAdministration: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `AssetAdministration/${actionName}`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const AdvancedFilter: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `AdvancedFilter/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const SyncGIS: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `SyncGis/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const OAuth: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `OAuth/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const RecordsetFilter: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `RecordsetFilter/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Materials: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Materials/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const MaterialLocation: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `MaterialLocation/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const MaterialOrders: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `MaterialOrders/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Calendar: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Calendar/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Search: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Search/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const ScheduledProcessLog: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `ScheduledProcessLog/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const JULIE: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `JULIEIntegration/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Eight11: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Eight11Integration/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const RunAnIntegration: AjaxURLFunction = function (actionName, paramsObject) {\n var strURI = `RunAnIntegration/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const RESTConnect: AjaxURLFunction = function (actionName, paramsObject) {\n var strURI = `RESTConnectIntegration/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\nexport const Dev: AjaxURLFunction = function(actionName, paramsObject) {\n var strURI = `Dev/${actionName}/`;\n return _getFullUrl(strURI, paramsObject);\n};\n","// tslint:disable\nimport * as AjaxURL from \"../System/AjaxURL\";\nimport _ from \"underscore\";\nimport { getBaseURL } from \"./Site\";\n\n// prettier-ignore\nexport const init = (): CartegraphGlobal => {\n\nvar Cartegraph = {} as CartegraphGlobal;\n\nCartegraph.FlexUI = {}; //A volatile namespace that will be destroyed on every navigation\nCartegraph.Common = {}; //For Common bits that live in various JS files\nCartegraph.Models = {} as any; //A namespace for javascript business object models\nCartegraph.ViewModels = {} as any; // A namespace for javascript view models that are common.\nCartegraph.Inspections = {} as any; //A namespace for javascript related to Inspections.\nCartegraph.Window = {} as any; //A namespace for the common window dialog.\nCartegraph.Guides = {} as any; //Namespace containing entry points for launching on-screen guided processes.\nCartegraph.activeElementID = {} as any; //Same as document.ActiveElement, should be set in the onmousedown event\nCartegraph.Browser = {} as any; //A namespace for detecting the current browser.\nCartegraph.Summary = {} as any; // A namespace used for summary dialogs\nCartegraph.Map = {} as any; // A namespace used for maps\nCartegraph.Library = {} as any; //A namespace used for Library features\nCartegraph.ImportExport = {} as any; //A namespace used for Import Export features\n\n// Generate an integer hash for the string. Some-guy code, where\n// the guy claims it's a port of how Java generates string hashes:\n// http://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method\nString.prototype.hashCode = function () {\n var hash = 0, i, chr, len;\n if (this.length == 0) return hash;\n for (i = 0, len = this.length; i < len; i++) {\n chr = this.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash;\n};\n\n/**\n * A Singleton that contains various utility type functions\n */\nCartegraph.Utilities = (function () {\n // Initialize with a random integer so a browser refresh doesn't start at one again\n var mapCacheId = Math.floor(2147483647 - Math.random() * 4294967294);\n var scrollbarWidth: number = null;\n var timeout: number;\n var blockTabs = false;\n var firstTabbableItem: any = null;\n var lastTabbableItem: any = null;\n var blockScreenId: string = null;\n\n return {\n\n eControlType: {\n AutoComplete: 1,\n FreeText: 2,\n Number: 3,\n Integer: 4,\n DateTime: 5,\n Date: 6,\n Time: 7,\n YesNo: 8,\n Disabled: 9,\n QuantityUnit: 10,\n UserRole: 11\n },\n\n eFieldListType: {\n ViewEditDesigner: 1,\n GridColumnSelector: 2,\n FilterFieldChooser: 3,\n NotificationMessageEditor: 4,\n AssetSummaryGridColumnSelector: 5,\n ExportFilterFieldChooser: 6,\n ImportExportRsetFields: 7\n },\n\n displayClientSideError: function () {\n $('.cgSaveButton').removeAttr('dirtystate'); // re-enable the save button so that dirty field prompts will again appear\n $('.cgSaveButton').removeClass(Cartegraph.Utilities.getActiveNavigationStyle() + \"Disabled\").addClass('cgSaveButtonActive');\n\n var buttons = {\n \"OK\": { text: Cartegraph.Resources.OK,\n click: function () {\n $(this).dialog(\"close\");\n },\n defaultButton: true\n }\n };\n Cartegraph.Utilities.initDialog(Cartegraph.Resources.SomeFieldsHaveErrors, Cartegraph.Resources.CorrectErrorsToContinue, buttons);\n },\n\n getActiveNavigationStyle: function () {\n var cssClass;\n\n var mapper = Cartegraph.URIMapper;\n\n switch (mapper.currentNavigationTab()) {\n case Cartegraph.URIMap['Assets'].tab:\n cssClass = 'assetCreateProcess';\n break;\n case Cartegraph.URIMap['Resources'].tab:\n cssClass = 'resourcesCreateProcess';\n break;\n case Cartegraph.URIMap['Work'].tab:\n cssClass = 'workCreateProcess';\n break;\n case Cartegraph.URIMap['Requests'].tab:\n cssClass = 'requestCreateProcess';\n break;\n case Cartegraph.URIMap['Administration'].tab:\n cssClass = 'adminCreateProcess';\n break;\n default:\n cssClass = 'addChildProcess';\n if (mapper.isOnInspection())\n cssClass = 'performInspection';\n break;\n }\n return cssClass;\n },\n\n getCurrentClassStyle: function (className: string) {\n var cssClass;\n\n if (Cartegraph.MetaDataHelpers.isAsset(className))\n cssClass = 'assetCreateProcess';\n else if (Cartegraph.MetaDataHelpers.isResource(className))\n cssClass = 'resourcesCreateProcess';\n else if (Cartegraph.MetaDataHelpers.isRequest(className))\n cssClass = 'requestCreateProcess';\n else if (Cartegraph.MetaDataHelpers.isTask(className))\n cssClass = 'workCreateProcess';\n else\n cssClass = 'addChildProcess';\n return cssClass;\n },\n\n /* Returns vMin to allow expansion of scientific notation in autonumeric function */\n getVMin: function () {\n return '-170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999';\n },\n\n /* Returns vMax to allow expansion of scientific notation in autonumeric function */\n getVMax: function () {\n return '170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999';\n },\n\n /* Returns a constant that represents the largest possible value of an Int32 */\n getInt32MaxValue: function () {\n return 2147483647;\n },\n\n // Returns a random integer between min and max\n // Using Math.round() will give you a non-uniform distribution!\n generateRandomInt: function (min: number, max: number) {\n return Math.floor(Math.random() * (max - min + 1) + min);\n },\n\n getViewType: function () {\n return $('#viewType').val();\n },\n\n getInitDialogButtonsParamOKButtonOnly: function () {\n return {\n \"OK\": {\n text: Cartegraph.Resources.OK,\n click: function () {\n $(this).dialog(\"close\");\n },\n defaultButton: true\n }\n };\n },\n\n initDialog: function (title: any, message: string | Element | Comment | DocumentFragment | ((this: HTMLElement, index: number, oldhtml: string) => string | Element | Text | Comment | DocumentFragment), buttons: any, isWarning: boolean, isSuccess: boolean) {\n if (isWarning == null) {\n isWarning = false;\n }\n\n //only check for success if isWarning is false\n if (!isWarning) {\n if (isSuccess == null) {\n isSuccess = false;\n }\n }\n\n if (buttons) {\n $.each(buttons, function (_index, value) {\n if (value.defaultButton === true && !isWarning && !isSuccess)\n value[\"class\"] = \"cgButton cgButtonButtonSmall cgRedButton\";\n else if (value.defaultButton === true && isWarning)\n value[\"class\"] = \"cgButton cgButtonButtonSmall cgYellowButton\";\n else\n value[\"class\"] = \"cgButton cgButtonButtonSmall cgLightGreyButton\";\n\n if (value.pendoTag) {\n value[\"data-cg\"] = value.pendoTag;\n delete value.pendoTag;\n }\n\n if (value.cypressTag) {\n value[\"data-test\"] = value.cypressTag;\n delete value.cypressTag;\n }\n });\n }\n\n if (message && !$.isArray(message))\n message = (message as string).replace(/\\n/g, '
');\n\n var setDialogClass = \"dialogRedWhiteGray\";\n if (isWarning)\n setDialogClass = setDialogClass + \" YellowWarning\";\n else if (isSuccess)\n setDialogClass = setDialogClass + \" GreenSuccess\";\n\n //This hooks up our common dialog and returns it read to be invoked\n var dialogBox = $(\"#dialog\").dialog({\n resizable: false,\n draggable: false,\n width: 490,\n modal: true,\n title: title,\n autoOpen: true,\n buttons: buttons,\n zIndex: 99999998,\n dialogClass: setDialogClass,\n open: function () {\n var theBtn = $(document).find(\"#RedButton\") as any;\n if (theBtn.length == 0) {\n theBtn = $(this).siblings('.ui-dialog-buttonpane').find('.cgRedButton, .cgYellowButton, .cgLightGreyButton');\n }\n try {\n //Keyboard focus to the cgRedButton because that's the default\n theBtn.focus();\n }\n catch (e) { }\n }\n });\n\n dialogBox.html(message);\n\n //center the UI on the screen and make draggable.\n var outerDialog = $('.dialogRedWhiteGray');\n var dialogHeight = outerDialog.height();\n var dialogWidth = outerDialog.width();\n var dialogTop = (($(window).height() - dialogHeight) / 2) + \"px\";\n var dialogLeft = (($(window).width() - dialogWidth) / 2) + \"px\";\n outerDialog.css(\"top\", dialogTop);\n outerDialog.css(\"left\", dialogLeft);\n outerDialog.find('.ui-titlebar-image').remove(); //if we're reusing a div, we need to clean up.\n $('
').addClass(\"ui-titlebar-image\").appendTo(outerDialog.children('.ui-dialog-titlebar'));\n\n return dialogBox;\n },\n\n isScrolledIntoView: function (element: { offset: () => { (): any; new(): any; top: any; }; height: () => any; }, scrollContainer: { offset: () => { (): any; new(): any; top: any; }; height: () => any; }) {\n\n var viewTop = scrollContainer.offset().top;\n var viewBottom = viewTop + scrollContainer.height();\n\n //compensate (roughly) for the horizontal scrollbar hiding data\n if (Cartegraph.Utilities.hasHorizontalScrollBar)\n viewBottom = viewBottom - 15;\n\n var elementTop = element.offset().top;\n var elementBottom = elementTop + element.height();\n\n return ((elementBottom <= viewBottom) && (elementTop >= viewTop));\n },\n\n hasHorizontalScrollBar: function (scrollContainer: JQuery) {\n var width = scrollContainer.width();\n var scrollWidth = scrollContainer.attr('scrollWidth') as any;\n\n return width < scrollWidth;\n },\n\n changeLabelDialog: function (options: any) {\n var defaults = {\n title: \"\",\n message: \"\",\n oldName: \"\",\n buttons: null as any,\n isAlert: false,\n value: \"\"\n }, opts;\n\n opts = $.extend(defaults, options);\n\n if (opts.buttons) {\n if (opts.isAlert) {\n $.each(opts.buttons, function (_index, value) {\n value[\"class\"] = \"btnSave\";\n });\n }\n else {\n $.each(opts.buttons, function (index, value) {\n if (index == \"Cancel\")\n value[\"class\"] = \"btnCancel\";\n if (index == \"Save\")\n value[\"class\"] = \"btnSave\";\n });\n }\n }\n\n if (opts.message) {\n opts.message = opts.message.replace(/\\n/g, '
');\n }\n\n var dialogElement = $('#dialog');\n var entireDialog = $(dialogElement).parent();\n\n //This hooks up our common dialog and returns it read to be invoked\n var dialogBox = $(dialogElement).dialog({\n resizable: false,\n draggable: false,\n width: 475,\n modal: true,\n title: opts.title,\n autoOpen: true,\n buttons: opts.buttons,\n zIndex: 99999998,\n dialogClass: \" dialogRedWhiteGray dialogChangeLabel\",\n open: function () {\n setTimeout(function () {\n var input = dialogBox.find(\"input\").first();\n input.focus();\n\n var buttons = $(entireDialog).find('.ui-dialog-buttonpane').find('[role=\"button\"]');\n buttons.attr('tabindex', '0');\n\n $(buttons).focus(function () {\n $(this).addClass('focused');\n });\n\n $(buttons).blur(function () {\n $(this).removeClass('focused');\n });\n\n\n // Restrict tabbing to stay within tabbable elements on the form\n entireDialog.delegate('input, textarea, [tabindex=\"0\"]', 'keydown keypress', function (e) {\n\n if (dialogBox.parent().is(':visible')) {\n\n if (e.keyCode) {\n if (e.keyCode == $.ui.keyCode.ENTER) {\n if (input[0] == this) {\n $(buttons[1]).trigger('click');\n e.preventDefault();\n }\n }\n else if (e.keyCode == $.ui.keyCode.TAB) {\n\n var visibleFormInputs = dialogBox.parent().find('input:visible:not([readonly],[disabled]), textarea:visible:not([readonly],[disabled]), [tabindex=\"0\"]:visible:not(.disabled)');\n\n if (visibleFormInputs.length > 0) {\n var firstInput = $(visibleFormInputs).first()[0];\n var lastInput = $(visibleFormInputs).last()[0];\n var currentInput = $(this)[0];\n\n var tabbingBackward = e.shiftKey ? true : false;\n\n if (currentInput === lastInput && !tabbingBackward) {\n setTimeout(function () { $(currentInput).removeClass('focused'); $(firstInput).focus(); }, 30);\n e.preventDefault();\n } else if (currentInput === firstInput && tabbingBackward) {\n setTimeout(function () { $(lastInput).focus(); }, 30);\n e.preventDefault();\n }\n }\n }\n }\n }\n });\n }, 10);\n },\n close: function () {\n entireDialog.undelegate('input, textarea, [tabindex=\"0\"]', 'keydown keypress');\n }\n });\n if (!opts.isAlert)\n dialogBox.html('
' + opts.message + '
');\n else\n dialogBox.html('
' + opts.message + '
');\n\n if (opts.value) {\n dialogBox.find(\"#NewSectionLabel\").val(opts.value);\n }\n\n //center the UI on the screen and make draggable.\n var outerDialog = $('.dialogChangeLabelOuter');\n var dialogHeight = outerDialog.height();\n var dialogWidth = outerDialog.width();\n var dialogTop = (($(window).height() - dialogHeight) / 2) + \"px\";\n var dialogLeft = (($(window).width() - dialogWidth) / 2) + \"px\";\n outerDialog.css(\"top\", dialogTop);\n outerDialog.css(\"left\", dialogLeft);\n return dialogBox;\n },\n errorDialog: function (title: string, message: string, closeWindow: any, callback: () => void) {\n\n var buttons = {\n \"OK\": { text: Cartegraph.Resources.OK,\n click: function () {\n $(this).dialog(\"close\");\n Cartegraph.Utilities.removeWaitScreen();\n if (closeWindow) {\n // The first line prevents IE from giving you the messagebox for the page trying to close the tab.\n window.open('', '_self', '');\n window.close();\n }\n if (callback && typeof callback === 'function') {\n callback();\n }\n },\n defaultButton: true\n }\n };\n return Cartegraph.Utilities.initDialog(title, message, buttons, false);\n },\n warningDialogSaveChanges: function (title: string, message: string, cancelText: string, okText: string, closeWindow: boolean, callback: () => void) {\n var buttons = {\n \"Cancel\": { text: cancelText,\n click: function () {\n $(this).dialog(\"close\");\n Cartegraph.Utilities.removeWaitScreen();\n if (closeWindow) {\n // The first line prevents IE from giving you the messagebox for the page trying to close the tab.\n window.open('', '_self', '');\n window.close();\n }\n return false;\n },\n defaultButton: false\n },\n \"OK\": { text: okText,\n click: function () {\n $(this).dialog(\"close\");\n Cartegraph.Utilities.removeWaitScreen();\n\n if (closeWindow) {\n // The first line prevents IE from giving you the messagebox for the page trying to close the tab.\n window.open('', '_self', '');\n window.close();\n }\n if (callback && typeof callback === 'function') {\n callback();\n }\n return true;\n },\n defaultButton: true\n }\n };\n return Cartegraph.Utilities.initDialog(title, message, buttons, true);\n },\n\n warningDialogOK: function (title: string, message: string, closeWindow: boolean) {\n var buttons = {\n \"OK\": { text: Cartegraph.Resources.OK,\n click: function () {\n $(this).dialog(\"close\");\n Cartegraph.Utilities.removeWaitScreen();\n if (closeWindow) {\n // The first line prevents IE from giving you the messagebox for the page trying to close the tab.\n window.open('', '_self', '');\n window.close();\n }\n return false;\n },\n defaultButton: true\n }\n };\n return Cartegraph.Utilities.initDialog(title, message, buttons, true);\n },\n\n /** Call this one if you want to include the JS each and every time.\n * You might calls this in the case where you know the JS loaded from the\n * file's namespace is blown away each time. */\n includeJS: function (url: string, scriptId: any, callbackFunction: any) {\n // Add a new pocket if it's for a create process being launched\n Cartegraph.FormModel.addCreatePocket();\n ($.getScript as any)(url, scriptId, callbackFunction);\n },\n\n invalidateMapCache: function () {\n mapCacheId++;\n if (mapCacheId >= 2147483647) // Circle back around to avoid overflow\n mapCacheId = -2147483647;\n },\n\n getMapCacheId: function () {\n return mapCacheId;\n },\n\n /**\n * This will get the Scrollbar width of the current OS.\n * We only do this code once and store him off. So,\n * There should be no performance issues with this code\n */\n getScrollBarWidth: function () {\n\n if (scrollbarWidth != null)\n return scrollbarWidth;\n\n //Default it to something smart just in case our get scroll width function fails.\n try {\n var inner = document.createElement('p');\n inner.style.width = \"100%\";\n inner.style.height = \"200px\";\n\n var outer = document.createElement('div');\n outer.style.position = \"absolute\";\n outer.style.top = \"0px\";\n outer.style.left = \"0px\";\n outer.style.visibility = \"hidden\";\n outer.style.width = \"200px\";\n outer.style.height = \"150px\";\n outer.style.overflow = \"hidden\";\n outer.appendChild(inner);\n\n document.body.appendChild(outer);\n var w1 = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var w2 = inner.offsetWidth;\n if (w1 == w2) w2 = outer.clientWidth;\n\n document.body.removeChild(outer);\n\n scrollbarWidth = (w1 - w2);\n }\n catch (e) {\n\n scrollbarWidth = 17; //Default if there is ever a failure. At least it set to something smart.\n }\n return scrollbarWidth;\n },\n\n getBaseURL: function () {\n return getBaseURL();\n },\n\n getHash: function () {\n if (window.location.href.split(\"#\").length > 1)\n return window.location.href.split(\"#\")[1]; //location.hash.replace('#', ''); Does not work in FireFox, as Firefox removes URI encoding!\n else\n return \"\";\n },\n\n random4() {\n return (((1+Math.random())*0x10000)|0).toString(16).substring(1);\n },\n\n getNewGuid() {\n return (this.random4() + this.random4() + \"-\" + this.random4() + \"-4\" + this.random4().substr(0,3) + \"-\" + this.random4() + \"-\" + this.random4() + this.random4() + this.random4()).toLowerCase();\n },\n\n isJson(testString: string) {\n try {\n JSON.parse(testString);\n } catch (e) {\n return false;\n }\n return true;\n },\n\n createQtipError(errorId: string, position: { my: any; at: any; adjust: any; maxWidth?: any; }) {\n var myScrollfunction = function () {\n $(\"[id='\" + errorId + \"']\").qtip('toggle');\n };\n\n var buildToolTipMessage = function(messageText: string) {\n var yieldImage = \"\";\n var buttonImage = \"\";\n return yieldImage + '
' + messageText + '
' + buttonImage;\n }\n\n if(!position) {\n position = {\n my: \"bottom center\",\n at: \"top center\",\n adjust: {\n y: -1,\n x: -1\n },\n }\n }\n\n var qTipOptions = {\n content: {\n text: function () {\n return \"\";\n }\n },\n style: {\n classes: 'ui-tooltip-red',\n tip: {\n corner: true,\n width: 24,\n height: 12\n },\n width: undefined as number\n },\n position: {\n my: position.my,\n at: position.at,\n adjust: position.adjust,\n viewport: $(window)\n },\n events: {\n visible: function (_event: any, api: any) {\n $(api.elements.content).find('.ui-tooltip-right-side-content').unbind('click').bind('click', function () {\n api.toggle();\n });\n },\n show: function (event: any, api: any) {\n var errorTile = $(api.elements.target).children('span:first');\n\n $(\"[id='\" + errorId + \"']\").scrollParent().bind('scroll', myScrollfunction);\n\n //We don't have a error so don't show.\n if (errorTile && errorTile.length <= 0) {\n try { event.preventDefault(); } catch (e) { } //Eat exception because IE\n }\n else\n api.set('content.text', buildToolTipMessage(errorTile.text())); //Set the tip with a fresh error.\n },\n hide: function () {\n $(\"[id='\" + errorId + \"']\").scrollParent().unbind('scroll', myScrollfunction);\n }\n },\n show: {\n event: \"click\"\n },\n hide: \"unfocus\"\n }\n\n if(position.maxWidth)\n qTipOptions.style.width = position.maxWidth;\n\n $(\"[id='\" + errorId + \"']\").qtip(qTipOptions);\n\n },\n\n getModalPosition(modalId: string) {\n\n var modal = $(\"#\" + modalId);\n var container = $(\"#\" + modalId).closest(\".blockScreenWidgetModal\");\n\n return {\n width: modal.width(),\n height: modal.width(),\n zIndex: modal.zIndex(),\n top: Math.round(container.css(\"top\").replace(\"px\",\"\") as any),\n right: Math.round(container.css(\"right\").replace(\"px\",\"\") as any),\n bottom: Math.round(container.css(\"bottom\").replace(\"px\",\"\") as any),\n left: Math.round(container.css(\"left\").replace(\"px\",\"\") as any),\n }\n },\n\n\n updateControl: function (element: any) {\n //For multi-combo, so that when things are dropped down we don't fire the validation logic.\n if ($(element).hasClass(\"ui-autocomplete-input\")) {\n var dropDownId = \"#grid\" + $(element).attr('id') + \"Div\"; //This is the container div id for the drop down\n //if($(dropDownId).is(\":visible\"))\n if ($(dropDownId).position() && (!($(dropDownId).position().top == -50000 || $(dropDownId).position().top == 0)))\n return true; //Pop up is still open. So, ignore this for validation.\n }\n\n // if the control is a text or memo field, trim leading and trailing spaces before validation.\n if ($(element).hasClass('text-box') && !$(element).hasClass('numeric') && !$(element).hasClass('password'))\n $(element).val($.trim($(element).val() as string));\n\n // if the control is a date value, or has a child that is a date value such as the report screen prompts,\n // attempt to parse its value as a date and ninja-switch the formatted value into place if parsing is successful\n // if the date control is open, don't parse the value, to avoid problems with locking up the month and year dropdowns\n if ($(element).hasClass('date-field') || $(element).find('.date-field').length > 0) {\n if (!$.datepicker._datepickerShowing) {\n try {\n var parsedDate = Cartegraph.DateTimeUtilities.smartDate($(element).val());\n\n if (parsedDate)\n $(element).val($.datepicker.formatDate(Cartegraph.Resources.LegacyDateFormat, parsedDate));\n }\n catch (e) {\n return false;\n }\n }\n else // date picker is open, so get out without doing any validation\n return true;\n }\n\n // Smart Time\n // If the control is a time value, or has a child that is a time value such as the report screen prompts,\n // attempt to parse its value and ninja-switch the formatted value into place if parsing is successful\n if (($(element).hasClass('time-box') || $(element).find('.time-box').length > 0) && !$(element).hasClass('input-validation-error')) {\n try {\n var parsedTime = Cartegraph.DateTimeUtilities.parseTime($(element).val());\n if (parsedTime)\n $(element).val(parsedTime);\n }\n catch (e) {\n return false;\n }\n }\n\n // if the control is a date time value, or has a child that is a date time value such as the report screen prompts,\n // attempt to parse the first part of its value as a date and ninja-switch the formatted value into place if parsing is successful\n // attempt to parse the second part of its value and ninja-switch the formatted value into place if parsing is successful\n // if the control is open, don't parse the value, to avoid problems with locking up the control's dropdowns\n if ($(element).hasClass('dateTime-field') || $(element).find('.dateTime-field').length > 0) {\n if (!$.datepicker._datepickerShowing) {\n try {\n var dateTimeValue = ($(element).val() as string).replace(/^\\s+|\\s+$/g, ''); //trim leading and trailing whitespaces\n var endOfDateValue = dateTimeValue.indexOf(\" \"); //assume the first space found in the value is the end of the date value\n var parsedDateTime;\n if (endOfDateValue > 0) {\n //assume first part date and second part time\n var tempDate = Cartegraph.DateTimeUtilities.smartDate(dateTimeValue.substring(0, endOfDateValue));\n var tempTime = Cartegraph.DateTimeUtilities.parseTime(dateTimeValue.substring(endOfDateValue + 1).replace(/^\\s+|\\s+$/g, ''));\n\n if (tempDate && tempTime) {\n //convert tempDate from Date to string of only its date portion so we can add on the time\n //then convert the full value back to a date\n parsedDateTime = new Date(tempDate.toDateString() + \" \" + tempTime);\n }\n }\n else {//assume date\n parsedDateTime = Cartegraph.DateTimeUtilities.smartDate(dateTimeValue);\n }\n\n if (parsedDateTime) {\n var date = $.datepicker.formatDate(Cartegraph.Resources.LegacyDateFormat, parsedDateTime);\n var hours = parsedDateTime.getHours();\n var minutes = parsedDateTime.getMinutes() as any;\n var seconds = parsedDateTime.getSeconds() as any;\n var suffix = Cartegraph.Resources.AM;\n\n if (hours >= 12) {\n suffix = Cartegraph.Resources.PM;\n hours = hours - 12;\n }\n\n if (hours == 0) {\n hours = 12;\n }\n\n if (minutes < 10)\n minutes = \"0\" + minutes;\n\n if (seconds < 10)\n seconds = \"0\" + seconds;\n\n $(element).val(date + \" \" + hours + \":\" + minutes + \":\" + seconds + \" \" + suffix);\n }\n }\n catch (e) {\n return false;\n }\n }\n else // date picker is open, so get out without doing any validation\n return true;\n }\n\n //If the control is not a numeric field allow the validation to fire.\n //Numeric fields will be validated as part of autoNumeric.js\n if (!$(element).hasClass('text-box numeric'))\n if (Cartegraph.ValidationHelpers.islegacyValidationSetup($(element)))\n $(element).valid();\n\n if ($(element).hasClass('ui-autocomplete-input') && $(element).hasClass('input-validation-error')) {\n $(element).removeClass('input-validation-error');\n $(element).parent().addClass('lookup-error');\n }\n },\n\n setupControlWidgets: function (scrollContainer: any, controlsContainer: string, dropDownsContainer: any, savable: any, basePath: any, updateViewControls: any, isQTip: any, autoId: any, autoIdLookupOnly: any) {\n if (controlsContainer)\n controlsContainer = controlsContainer + ' ';\n\n $(controlsContainer + '.boolean-control').BooleanControl({ updateViewControls: updateViewControls, autoId: autoId || false });\n $(controlsContainer + '.currency-control').CurrencyControl({ updateViewControls: updateViewControls, autoId: autoId || false });\n $(controlsContainer + '.date-control:not(.ko-flex)').DateControl({ ScrollContainer: scrollContainer, container: dropDownsContainer, savable: savable, updateViewControls: updateViewControls, autoId: autoId || false });\n $(controlsContainer + '.date-time-control:not(.ko-flex)').DateTimeControl({ ScrollContainer: scrollContainer, container: dropDownsContainer, savable: savable, updateViewControls: updateViewControls, autoId: autoId || false });\n $(controlsContainer + '.double-control, .quantity-amount-control').DoubleControl({ updateViewControls: updateViewControls, autoId: autoId || false });\n $(controlsContainer + '.date-integer-control').IntegerControl({ Max: '1999', Min: '-1999', updateViewControls: updateViewControls, autoId: autoId || false });\n $(controlsContainer + '.integer-control').IntegerControl({ updateViewControls: updateViewControls, autoId: autoId || false });\n $(controlsContainer + '.required-integer-control').IntegerControl({ updateViewControls: updateViewControls, autoId: autoId || false, emptyStringIsNumeric: false });\n $(controlsContainer + '.quantity-unit-control').QuantityUnitControl({ container: dropDownsContainer, ScrollContainer: scrollContainer, updateViewControls: updateViewControls, autoId: autoId || false });\n $(controlsContainer + '.string-control').StringControl({ updateViewControls: updateViewControls, autoId: autoId || false });\n $(controlsContainer + '.time-control').TimeControl({ ScrollContainer: scrollContainer, BasePath: basePath, container: dropDownsContainer, savable: savable, updateViewControls: updateViewControls, autoId: autoId || false });\n $(controlsContainer + '.multi-line').MultilineTextControl({ autoId: autoId || false });\n $(controlsContainer + '.filter-control').FilterControl({ autoId: autoId || false });\n $(controlsContainer + '.libraryAttachment.editAttachment').each(function () {\n var self = $(this);\n self.libraryAttachment({ className: self.data('class-name'), fieldName: self.data('field-name') });\n });\n\n //Hookup the lookups!\n $(controlsContainer + '.readonlylookup').ReadonlyLookupControl({ autoId: autoId || false });\n $(controlsContainer + \".lookup-box:not(.readonlylookup):not(.datetime-box):not(.time-box)\").each(function () {\n var self = $(this);\n var filter = self.attr(\"navFilter\");\n var targetFieldUid = '';\n\n if (self.hasClass('text-lookup-control')) {\n targetFieldUid = self.attr(\"fieldname\");\n }\n\n self.LookupControl({\n targetClassName: self.attr(\"classname\"),\n closeWhenScrolling: scrollContainer,\n targetFieldUid: targetFieldUid,\n container: dropDownsContainer,\n BasePath: basePath,\n updateViewControls: updateViewControls,\n isQTip: isQTip,\n filter: filter,\n autoId: autoId || autoIdLookupOnly || false\n });\n });\n },\n\n showWaitScreen: function (message: string, time: number) {\n // If there was a timeout set by a previous call that wasn't cleared out before the second call to showWaitScreen, clear the timeout\n if (timeout)\n clearTimeout(timeout);\n\n var spinner = $('#waitSpinnerOverlay');\n spinner.css(\"visibility\", \"visible\");\n\n if (message)\n spinner.find(\".waitMessage\").html(message);\n\n if (time == null)\n time = 1000;\n\n var timeoutFunction = function () {\n spinner.children().css(\"visibility\", \"visible\");\n $('.ui-jqgrid div.loading:visible').hide();\n };\n\n timeout = setTimeout(timeoutFunction, time);\n },\n\n setWaitScreenMessage: function (message: string) {\n $('#waitSpinnerOverlay').find('.waitMessage').html(message);\n },\n\n WaitScreenVisible: function () {\n return $('#waitSpinnerOverlay').css('visibility')?.toLowerCase() == 'visible';\n },\n\n waitSpinnerInterval: null as any,\n\n removeWaitScreen: function () {\n clearTimeout(timeout);\n $('#waitSpinnerOverlay').css(\"visibility\", \"hidden\").children().css(\"visibility\", \"hidden\");\n\n clearInterval(Cartegraph.Utilities.waitSpinnerInterval);\n },\n\n // event handler to suppress keyboard/mouse events when blocking\n blockScreenTabHandler: function (e: any) {\n // allow tab navigation (conditionally)\n if (blockTabs) {\n if (e.keyCode && e.keyCode == 9) {\n\n //firstItem and lastItem can change based on if the control is disabled or not.\n var firstItem = $(firstTabbableItem);\n if (firstItem.hasClass(\"disabled\"))\n firstItem = firstItem.next().is(':focusableControl') ? firstItem.next() : firstItem.next().find(':focusableControl').first();\n\n var lastItem = $(lastTabbableItem);\n if (lastItem.hasClass(\"disabled\"))\n lastItem = lastItem.prev().is(':focusableControl') ? lastItem.prev() : lastItem.prev().find(':focusableControl').last();\n\n //are we tabbing too far forward or are we tabbing to something outside of the blockscreen?\n var fwd = (!e.shiftKey && $(e.target)[0] == (lastItem[0])) || $(e.target).parents('#' + blockScreenId).length == 0;\n\n //are we tabbing too far backward?\n var back = e.shiftKey && $(e.target)[0] == (firstItem.first()[0]);\n\n if (fwd) {\n //if we tabbed too far, focus on the first input again.\n setTimeout(function () {\n firstItem.first().focus();\n }, 10);\n return false;\n }\n else if (back) {\n //if we tabbed back too far, focus on the last button.\n setTimeout(function () {\n lastItem[0].focus();\n }, 10);\n return false;\n }\n\n return true;\n }\n }\n return true;\n },\n\n showBlockWidget: function (options: { transparentOverlay: any; hideBlockOverlay: boolean; }) {\n\n // Default options\n var defaults = {\n transparentOverlay: false,\n hideBlockOverlay: false\n };\n\n // Merge passed in options with defaults\n options = $.extend(true, defaults, options); // True means deep copy\n\n // add the overlay\n var transparentClass = options.transparentOverlay ? \"transparent-overlay\" : \"\";\n var blockOverlay = $('
');\n\n if (options.hideBlockOverlay === true) {\n blockOverlay.css('visibility', 'hidden');\n }\n\n blockOverlay.appendTo($('body'));\n\n // attach the widget\n var overlayWidget = blockOverlay.cgBlockScreen(options);\n return overlayWidget.cgBlockScreen('getWidgetModal');\n },\n\n removeLastBlockWidget: function () {\n\n $('.blockScreenWidgetOverlay').last().remove();\n $('.blockScreenWidgetModal').last().remove();\n },\n\n hidePreviousBlockScreen: function (show: boolean) {\n var overlay = $('.blockScreenWidgetOverlay');\n var modal = $('.blockScreenWidgetModal');\n\n //-2 because you don't want the current screen, but the one before last.\n if (overlay.length >= 2 && modal.length >= 2) {\n var previousOverlay = $(overlay[overlay.length - 2]);\n var previousModal = $(modal[modal.length - 2]);\n\n show ? previousOverlay.show() : previousOverlay.hide();\n show ? previousModal.show() : previousModal.hide();\n }\n },\n\n revealPreviousBlockScreen: function () {\n Cartegraph.Utilities.hidePreviousBlockScreen(true);\n },\n\n //Remove the block widget containing a given JQuery element.\n removeCurrentBlockWidget: function (element: JQuery) {\n if (Cartegraph.Utilities.isNullOrUndefined(element) && element.length <= 0)\n return;\n\n element.prev('.blockScreenWidgetOverlay').remove();\n element.remove();\n },\n\n showBlockScreen: function (html: string, firstItem: any, lastItem: any, blkScreenId: any, preventTabs: boolean) {\n var blockScreen = $('#blockScreen');\n $('#blockScreenOverlay').css(\"visibility\", \"visible\").show();\n blockScreen.css(\"visibility\", \"visible\");\n if (html)\n blockScreen.html(html);\n\n var events = 'keydown.BlockScreen keypress.BlockScreen';\n firstTabbableItem = firstItem;\n lastTabbableItem = lastItem;\n blockTabs = preventTabs;\n blockScreenId = blkScreenId;\n $(document).bind(events, this.blockScreenTabHandler);\n },\n\n removeBlockScreen: function () {\n var $block = $('#blockScreenOverlay');\n var $blockScreen = $('#blockScreen');\n $block.css(\"visibility\", \"hidden\");\n $blockScreen.css(\"visibility\", \"hidden\");\n $blockScreen.html(\"\");\n var events = 'keydown.BlockScreen keypress.BlockScreen';\n $(document).unbind(events);\n },\n\n //Sets a jQuery blockUI element over the #topNav div\n blockTopNav: function () {\n if ($('#topNav').length)\n $('#topNav').block({ message: null, overlayCSS: { cursor: 'default'} });\n },\n\n //Removes the jQuery blockUI element from over the #topNav div\n unblockTopNav: function () {\n if ($('#topNav').length)\n $('#topNav').unblock();\n },\n\n sidebarEditableState: function (section: string, editing: any) {\n $.each($('.sidebarElement'), function () {\n var sectionName = $(this).attr('section');\n //Don't allow corresponding sidebar to be unchecked while you are editing.\n if (editing && sectionName.toLowerCase() == section.toLowerCase()) {\n $(this).children('.sidebarCheckbox').children(0 as any).attr('disabled', true as any);\n }\n else {\n $(this).children('.sidebarCheckbox').children(0 as any).attr('disabled', false as any);\n }\n });\n },\n compileTemplates: function (tmplIds: string | string[]) {\n if ($.isArray(tmplIds)) {\n $.each(tmplIds, function (_i, template) {\n addTemplate(template);\n });\n } else if (typeof tmplIds === 'string') {\n addTemplate(tmplIds);\n }\n\n function addTemplate(templateId: string) {\n templateId = templateId.indexOf('#') === -1 ? templateId : templateId.substr(1); //strip off the '#' if present\n\n $('#' + templateId).template(templateId);\n }\n },\n getAuthorizedClassesForView: function (viewType: any, callback: (arg0: any[]) => void) {\n $.ajax({\n url: AjaxURL.FlexUI(\"GetAssetsAuthorizedForView\"),\n type: 'GET',\n dataType: \"json\",\n data: JSON.stringify({ viewType: viewType }),\n success: function (data) {\n callback(data);\n },\n error: function () {\n callback([]);\n }\n });\n },\n array_unique: function (ar: any) {\n if (ar.length && typeof ar !== 'string') {\n var sorter = {} as any;\n var out = [];\n for (var i = 0, j = ar.length; i < j; i++) {\n if (!sorter[ar[i] + typeof ar[i]]) {\n out.push(ar[i]);\n sorter[ar[i] + typeof ar[i]] = true;\n }\n }\n }\n return out || ar;\n },\n\n //This method is called before a lot of ajax calls to check if you are currently timed out.\n // In the future, we would like to refactor to make this function called only in the beforeSend\n // event on our custom .ajax override. This would eliminate the need for everyone else to call it.\n isSessionTimedOut: function () {\n return !Cartegraph.TimeoutService.isSessionActive();\n },\n\n taskOpenStatuses: function() {\n return [Cartegraph.Resources.TaskStatus.Planned, Cartegraph.Resources.TaskStatus.InProgress];\n },\n\n isOpenTaskStatus: function (status: string) {\n var openStatuses = _.map(this.taskOpenStatuses(), function(openStatus) {\n return openStatus.toUpperCase();\n });\n return _.contains(openStatuses, status.toUpperCase());\n },\n\n workOrderOpenStatuses: function () {\n return [Cartegraph.Resources.WorkOrderStatus.Planned, Cartegraph.Resources.WorkOrderStatus.InProgress];\n },\n\n isOpenWorkOrderStatus: function (status: string) {\n var openStatuses = _.map(this.workOrderOpenStatuses(), function (openStatus) {\n return openStatus.toUpperCase();\n });\n return _.contains(openStatuses, status.toUpperCase()) || status === \"\";\n },\n\n htmlEncode: function (value: string) {\n return $('
').text(value).html();\n },\n\n htmlDecode: function (value: string) {\n return $('
').html(value).text();\n },\n\n urlEncodeSingleQuote: function(value: string) {\n return value.replace(/'/g, \"%27\");\n },\n\n trueClassesTargetList: function (targetList: ArrayLike)\n {\n if (!$.isArray(targetList)) {\n return targetList;\n }\n\n var utils = this;\n var newList = new Array();\n $.each(targetList, function(_index, item) {\n var oid = utils.getOid(item);\n var className = Cartegraph.MetaDataHelpers.trueClassOfShare(utils.getClassname(item));\n newList.push(className + oid);\n });\n\n return newList;\n },\n\n generateClassNameOidObject: function(list: any[]) {\n var objectList: { className: any; oid: any; }[] = [];\n _.each(list, function (item) {\n var className = Cartegraph.Utilities.getClassname(item as string);\n var oid = Cartegraph.Utilities.getOid(item as string);\n objectList.push({ className: className, oid: oid });\n });\n\n return objectList;\n },\n\n getClassname: function (classAndOid: string) {\n var classPos = classAndOid.lastIndexOf(\"Class\");\n return classAndOid.substr(0, classPos + 5);\n },\n\n getOid: function (classAndOid: string) {\n var classPos = classAndOid.lastIndexOf(\"Class\");\n return classAndOid.substr(classPos + 5);\n },\n\n getOids: function (classesAndOids: string | any[]) {\n var oids = [];\n for (var i = 0; i < classesAndOids.length; i++) {\n oids.push(Cartegraph.Utilities.getOid(classesAndOids[i]));\n }\n return oids;\n },\n hasReportPermissions: function () {\n var hasPermission = true;\n\n var $layers = $('.layersContainer div.sidebar-layer');\n\n if (Cartegraph.URIMapper.isOnIndex()) {\n var allDenied = true;\n $layers.each(function () {\n var $layer = $(this);\n var layerClass = $layer.data('class-name');\n if (layerClass != undefined && layerClass != '') {\n var layerHasPermission = Cartegraph.Security.RuleSecurity.canDoAction(layerClass, 'RunReportAction');\n if ($layer.find('.sidebar-layer-title.active').length > 0) {\n if (!layerHasPermission)\n hasPermission = false;\n }\n\n if (layerHasPermission)\n allDenied = false;\n }\n });\n\n if (Cartegraph.Filtering.Utilities.getLayerCounts() == 0)\n allDenied = false;\n\n hasPermission = hasPermission && !allDenied;\n }\n\n if (Cartegraph.URIMapper.isOnDetail()) {\n var editClass = Cartegraph.CurrentAsset.getClass();\n if (editClass != undefined && !Cartegraph.Security.RuleSecurity.canDoAction(editClass, 'RunReportAction'))\n hasPermission = false;\n }\n\n return hasPermission;\n },\n\n isNullOrUndefined: function (val: any) {\n return _.isNull(val) || _.isUndefined(val);\n },\n\n isNullUndefinedOrEmpty: function (val: string) {\n return _.isNull(val) || _.isUndefined(val) || _.isEmpty(val) || val == \"\\0\";\n },\n\n arraysContainDifferentValues: function (array1: any[], array2: any[]) {\n var difference = _.difference(array1, array2);\n\n if (difference.length > 0) {\n return true;\n }\n\n difference = _.difference(array2, array1);\n\n if (difference.length > 0) {\n return true;\n }\n\n return false;\n },\n\n objectNameToString: function (objectsNamespace: { [x: string]: any; }, objectLocation: any) {\n\n if (Cartegraph.Utilities.isNullOrUndefined(objectsNamespace)\n || Cartegraph.Utilities.isNullOrUndefined(objectLocation)\n || !_.isObject(objectsNamespace)\n || !_.isObject(objectLocation)) {\n\n throw new Error(\"Both objectsNamespace and objectLocation, of type object, are required\");\n }\n\n for (var o in objectsNamespace) {\n if (objectsNamespace[o] === objectLocation)\n return o;\n }\n\n throw new Error(\"objectNameToString could not find name!\");\n },\n\n setLookupFilter: function (params: any) {\n\n var defaults = {\n containerId: null as string,\n propertyName: null as string,\n filter: \"\"\n };\n\n var options = $.extend(defaults, params);\n\n if (options.containerId == null || options.propertyName == null)\n return;\n\n $(String.Format(\"#{0} #{1}\", options.containerId, options.propertyName)).autocompletegrid('option', 'filter', options.filter);\n },\n\n formatNumber: function (decimalValue: string) {\n var numberParts = decimalValue.split('.');\n if (parseInt(numberParts[1]) > 0)\n return decimalValue;\n\n return numberParts[0];\n },\n\n formatSize: function (bytes: number) {\n var i = -1;\n do {\n bytes = bytes / 1024;\n i++;\n } while (bytes > 999);\n\n return Math.max(bytes, 0.1).toFixed(1) + ' ' + ['KB', 'MB', 'GB', 'TB', 'PB', 'EB'][i];\n },\n\n redirectToLogin: function () {\n if (Cartegraph.ProceedIfNotDirty && Cartegraph.URIMapper) {\n Cartegraph.ProceedIfNotDirty.message(function () {\n window.location = location.pathname + 'Account/ShowSignIn' + (Cartegraph.URIMapper.isOnInternalRequest() ? '?isInternalRequest=True' : '') as any;\n });\n } else { // the report viewer doesn't need the above checks and additional source files in it's bundle\n window.location = getBaseURL() + 'Account/ShowSignIn' as any;\n }\n },\n sessionTimeout: function () {\n let newLocation: string;\n const searchParams = new URLSearchParams({\n timedOut: 'True',\n // We want to mimic what ASP.NET would do for the return URL so that we can come back to the same place after sign in\n ReturnUrl: window.location.pathname + window.location.search\n });\n if (Cartegraph.URIMapper) {\n newLocation = location.pathname;\n if (Cartegraph.URIMapper.isOnInternalRequest())\n searchParams.set('isInternalRequest', 'True');\n } else { // the report viewer doesn't need the above checks and additional source files in it's bundle\n newLocation = getBaseURL();\n }\n\n newLocation += 'Account/ShowSignIn';\n\n\n // Preserving the hash allows us to redirect back to wherever we kicked you out\n window.location.href = newLocation + '?' + searchParams.toString() + location.hash;\n },\n focusInput: function (element: any) {\n if (element.length) {\n element.attr(\"tabindex\", 0);\n _.defer(function () {\n element.focus();\n // Webkit browsers highlight the entire field's content when focus is set.\n // Move the insertion point to the beginning to be consistent with other browsers. Except boolean controls.\n var $element = $(element[0]);\n var isTextInput = !$element.hasClass(\"boolean-control\") && $element.attr('type') != \"checkbox\" && $element.attr('type') != 'file';\n if ($.browser.webkit && isTextInput) {\n $element[0].setSelectionRange(0, 0);\n }\n });\n }\n },\n scrollToTop: function (currPage: JQuery) {\n // For Assets created via the guided process if the window was not fully displayed the map was not being\n // displayed since focus was applied to the first enterable field (therefore causing scrolling of page)\n if (currPage) {\n _.defer(function () {\n // scrollTop not working unless detailSection was hidden and redisplayed\n currPage.find('.cgDetailSection').hide();\n currPage.scrollTop(0);\n currPage.find('.cgDetailSection').show();\n });\n }\n },\n copyToClipboard: function(text: string) {\n var el = document.createElement('textarea');\n el.value = text;\n el.setAttribute('readonly', '');\n (el.style as any) = { position: 'absolute', left: '-9999px' };\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n },\n waitForElement: function (childSelector: string) {\n return new Promise(result => {\n if (document.querySelector(childSelector)) {\n return result(document.querySelector(childSelector));\n }\n\n const observer = new MutationObserver(() => {\n if (document.querySelector(childSelector)) {\n result(document.querySelector(childSelector));\n observer.disconnect();\n }\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true\n });\n });\n }\n };\n\n})();\n\nreturn Cartegraph;\n}\n","export const sidebarType = {\n None: { String: \"None\", Enum: -1 },\n Index: { String: \"Index\", Enum: 0 },\n ViewComponents: { String: \"ViewComponents\", Enum: 1 },\n EditComponents: { String: \"EditComponents\", Enum: 2 },\n Requests: { String: \"Request\", Enum: 3 },\n Work: { String: \"Work\", Enum: 4 },\n Assets: { String: \"Asset\", Enum: 5 },\n Resources: { String: \"Resource\", Enum: 6 }\n};\n\nexport interface SidebarType {\n String: string;\n Enum: number;\n}\n","/// \n/** This is the list of localized strings for the project */\nexport const resources = {\n // sampleerror : 'This is some error message' ,\n // anothererror : 'This is another error message'\n ChangeBuildingContextMessage: \"Updating the building context can cause extended save times.\",\n MapFilterGridMessage: \"The Map Filter is on and applied to the List.\",\n MoreRowsExist: \"More rows exist than this browser can display.\",\n Eight11StructureCollisions: \"The following 811 fields already exist:
{0}
Rename conflicting fields and try to authorize again.
See the 811 Integration Campus entry for the field name list.\",\n Eight11CreateStructure: \"The system will be locked for maintenance causing users to be kicked out of the system. After the fields are added, the process continues by performing a reset of OMS and returning the system status to full access.\",\n Eight11CreateStructureBypass: \"After the fields are added, a reset of OMS is performed.\",\n Eight11Confirmation: \"Are you sure you want to add 811 fields?\",\n Eight11Authorize: \"Click Authorize to allow Cartegraph access to 811 emails.\",\n Eight11AuthorizeError: \"Cannot Authorize\",\n RunAnIntegrationStructureCollisions: \"The following fields already exist for this integration:
{0}
Rename conflicting fields and try to authorize again.
See the Campus entry for this integration for the field name list.\",\n RunAnIntegrationCreateStructure: \"The system will be locked for maintenance causing users to be kicked out of the system. After the fields are added, the process continues by performing a reset of OMS and returning the system status to full access.\",\n RunAnIntegrationCreateStructureBypass: \"After the fields are added, a reset is performed.\",\n RunAnIntegrationConfirmation: \"Are you sure you want to add fields for this integration?\",\n RunAnIntegrationStructureSetup: \"Click Setup to allow Cartegraph setup structure for this integration.\",\n RunAnIntegrationSettingUpData: \"Setting up Initial Data...\",\n RunAnIntegrationSetupError: \"Cannot Setup\",\n RunAnIntegrationSetupNotComplete: \"Setup not complete\",\n RunAnIntegrationInitialSetup: \"Initial Setup\",\n RunAnIntegrationInitialSetupFormat: \"{0}
{1}\",\n RunAnIntegrationInitialSetupWasSuccessful: \"Initial setup was successful.\",\n RunAnIntegrationAdditionalSetupNeeded: \"Additional setup is still needed.\",\n RESTConnectStructureCollisions: \"The following fields already exist for this RESTConnect integration:
{0}
Rename conflicting fields and try to authorize again.
See the Campus entry for this integration for the field name list.\",\n RESTConnectCreateStructure: \"The system will be locked for maintenance causing users to be kicked out of the system. After the fields are added, the process continues by performing a reset of OMS and returning the system status to full access.\",\n RESTConnectCreateStructureBypass: \"After the fields are added, a reset is performed.\",\n RESTConnectConfirmation: \"Are you sure you want to add fields for this integration?\",\n RESTConnectStructureSetup: \"Click Setup to allow Cartegraph setup structure for this integration.\",\n RESTConnectSetupError: \"Cannot Setup\",\n SearchBuildings: \"Search Buildings\",\n SearchFloors: \"Search Floors\",\n SelectBuilding: \"Select Building\",\n SelectFloor: \"Select Floor\",\n YesDelete: \"Yes, Delete\",\n YesContinue: \"Yes, Continue\",\n ArcGISDefaultUri: \"https://www.arcgis.com\",\n CopyImpacts: \"Copy Impacts\",\n ImpactsCopied: \"Impacts copied successfully.\",\n PasteCopiedImpacts: \"Paste Copied Impacts\",\n CopyIndexMappings: \"Copy Index Mappings\",\n IndexMappingsCopied: \"Index Mappings copied successfully.\",\n PasteCopiedIndexMappings: \"Paste Copied Index Mappings\",\n ConditionDetail: \"Condition Detail\",\n ConditionDetails: \"Condition Details\",\n EditingConditionDetails: \"Editing - Condition Details\",\n MayTakeFewMinutes: \"This could take a few minutes or more.\",\n EditAddCriteriaAndRecalculateRiskScores: \"{0} criteria and recalculate risk scores?\",\n EditCOFCriteriaForAssetTypeWarning: \"When editing Consequence of Failure criteria, the risk scores are recalculated for all {0} records, and cannot be undone.\",\n AddCOFCriteriaForAssetTypeWarning:\n \"When adding Consequence of Failure criteria, the risk scores are cleared for all {0} records. A corresponding field is added to the {0} Detail view, which must be filled out for each {0} asset to recalculate an overall Risk score.\",\n OptOutCOFWarningTitle: \"Opt Out and Disable CoF Criteria\",\n OptInCOFWarningTitle: \"Opt In and Enable CoF Criteria\",\n OptOutCOFWarningMessage: \"Opt out from Consequence of Failure Criteria and enter CoF Score values manually for {0} records?\",\n OptInCOFWarningMessage: \"Opt in to Consequence of Failure and enable CoF calculations for {0} records? Any existing data in the Consequence of Failure Score field for {0} records will be permanently deleted.\",\n OptOutWarningConfirm: \"Opt Out\",\n OptInWarningConfirm: \"Opt In\",\n OptOutPOFWarningTitle: \"Opt Out and Disable PoF Ranges\",\n OptInPOFWarningTitle: \"Opt In and Enable PoF Ranges\",\n OptOutPOFWarningMessage: \"Opt out from Probability of Failure Ranges and enter PoF Score values manually for {0} records?\",\n OptInPOFWarningMessage: \"Opt in to Probability of Failure and enable PoF calculations for {0} records? Any existing data in the Probability of Failure Score field for {0} records will be permanently deleted.\",\n CannotUpdateOptInCOF: \"Opt In to CoF value could not be updated. Ask your System Administrator for help.\",\n CannotUpdateOptInPOF: \"Opt In to PoF value could not be updated. Ask your System Administrator for help.\",\n ChangeOrder: \"Change Order\",\n Edit: \"Edit\",\n Number: \"Number\",\n MeasuredValue: \"Measured Value\",\n EditIndexMappings: \"Edit Index Mappings\",\n EditImpacts: \"Edit Impacts\",\n IndexMappings: \"Index Mappings\",\n Impacts: \"Impacts\",\n Impact: \"Impact\",\n CompletedWithErrors: \"Completed with Errors\",\n FieldMustBeUnique: \"The {0} field must be unique.\",\n ValueMustBeUnique: \"{0} already exists. Enter a unique value.\",\n RequiredForThisScenario: \"{0} is required for this scenario.\",\n ProtocolsCreateWarning: \"Protocols are created and edited in Library Manager. \",\n ProtocolsClickHere: \"Click here to go to the Protocols Library.\",\n EditingSettings: \"Editing - Settings\",\n CannotAddPlanYear: \"Cannot Add Plan Year\",\n CannotEditPlanYear: \"Cannot Edit Plan Year\",\n CannotAddBudget: \"Cannot Add Budget\",\n CannotEditBudget: \"Cannot Edit Budget\",\n CannotEditPropertiesTitle: \"Cannot Edit Properties\",\n CannotDeletePlanYear: \"Cannot Delete Plan Year(s)\",\n CannotAddProtocol: \"Cannot Add Protocol\",\n CannotAddProject: \"Cannot Add Project\",\n CannotEditProject: \"Cannot Edit Project\",\n CantEditScenario: \"The scenario is currently running and cannot be edited.\",\n CannotRunScenario: \"Cannot Run Scenario\",\n CannotEditScenarioTitle: \"Cannot Edit Scenario\",\n CannotDuplicateScenarioTitle: \"Duplicate Scenario Error\",\n CannotRemoveProtocol: \"Cannot Remove Protocol(s)\",\n CannontDisplayChart:\n \"Cannot display the Activity Cost per Plan Year data while Scenario {0} is running. Refresh the page when {0} is complete.\",\n TooManyPlanYearsOrActivitiesTitle: \"Some Data Not Displayed\",\n TooManyPlanYearsOrActivities:\n \"A maximum of 10 plan years and 12 activities can display on the map. To view all the data, adjust the number of activities or plan years in the scenario.\",\n UnlockActivitiesOnProjectsTitle: \"Selected Activities Assigned to Projects\",\n UnlockActivitiesOnProjectsMessage:\n \"Some of the selected activities are assigned to projects. If these activities are unlocked, they are removed from the projects.\",\n UnlockActivitiesOnProjectsActivityModeMessage:\n \"Some of the selected activities are assigned to projects. If these activities are changed to No Activity, changed to a new plan year, or unlocked, they are removed from the projects.\",\n UnlockActivitiesOnProjectsButton: \"Unlock and Apply\",\n ChangeActivitiesOnProjectMessage:\n \"Some of the selected activities are assigned to projects. If these activities are changed to a new activity or plan year they are removed from the projects.\",\n ProjectCreated: \"Project Created\",\n ProjectUpdated: \"Project Updated\",\n ProjectDeleted: \"Project Deleted\",\n NoPlanYears: \"No plan years to display\",\n Legend: \"Legend\", // As in a map legend, not folklore or urban legend.\n DidntFindAnyProjects: \"We didn't find any projects.\",\n ProjectAlreadyConvertedToWork: \"This project was already converted to Work.\",\n ChartNoDataActivityMode:\n \"No data to display because there are no recommendations for the {0} activity in the first 10 years of the scenario.\",\n ChartNoDataPlanYearMode:\n \"No data to display because there are no recommendations for the plan year.\",\n ChartNoDataPlanYearModeFilterPane:\n \"No data to display because there are no recommendations for the selected projects.\",\n DomainSubtype: \"Domain/Subtype\",\n DomainSubtypeField: \"Domain/Subtype Field\",\n DataValue: \"Data Value\",\n Synchronize: \"Run Sync Now\",\n TestFailed: \"Test Failed\",\n OnBeforeUnloadBrowserMessage: \"Unsaved changes will be lost.\",\n ValidationReservedWords: \"The {0} field cannot be a reserved word.\",\n ValidationStartWithcg: \"{0} cannot start with the letters cg.\",\n ValidationContains_Unit: \"{0} cannot contain _unit.\",\n ValidationStartWithsys: \"{0} cannot start with the letters sys.\",\n ValidationStartWithNum: \"{0} cannot start with a number.\",\n ValidationStartWithUnderscore: \"{0} cannot start with a underscore.\",\n ValidationContainsSpaces: \"{0} cannot contain spaces.\",\n ValidationSpecialCharacters: \"The {0} field cannot contain special characters.\",\n ValidationRequired: \"The {0} field requires a value.\",\n ValidationRequiredSimple: \"This field requires a value.\",\n ValidationMaxLength: \"This field cannot have more than {0} characters.\",\n ValidationDate: \"Invalid date format. Use the {0} format.\",\n ValidationTime: \"Invalid time format. Use the h:mm:ss tt format.\",\n ValidationDateTime: \"Invalid date and time format. Use the {0} format.\",\n ValidationNumberRange: \"{0} must be greater than or equal to {1} and no more than {2}.\",\n ValidationFieldSize: \"The length of Prefix + Number + Suffix exceeds the field size.\",\n ValidationDefaultSize: \"The Field Default can not exceed 50 characters.\",\n ValidationTextRequired:\n \"The Field Validation Text is required when Validation Rule is entered.\",\n ValidationAssociatedPrimaryGroupRequired: \"The Associated Primary Group is required.\",\n ValidationNumberRangeGreaterThanAndLessThanOrEqualTo:\n \"{0} must be greater than {1} and no more than {2}.\",\n ValidationRangeGreaterThanOtherField: \"{0} must be greater than {1}.\",\n ValidationSampleRange: \"Distress size is larger than the Samples size.\",\n ValidationFieldIsNowRequiredWarning:\n \"The {0} field's Required property was changed. Existing records may not contain data for this field. Data entry may be necessary to correct any errors caused by this change.\",\n ValidationFieldNewFieldRequiredWarning:\n \"Existing records may not contain data for this new field. Data entry may be necessary to correct any errors caused by this change.\",\n ValidationFieldIsUniqueAndRequiredError:\n \"Marking the {0} field as Unique and Required is not allowed. Changes to the Unique and Required properties will be removed.\",\n ValidationFieldTruncationError: \"The Maximum Characters value cannot be less than {0}.\",\n ContinueEditing: \"Continue Editing\",\n ContinueWithInstall: \"Continue With Install\",\n DiscardChanges: \"Discard Changes\",\n AutoNumber: \"Auto Number\",\n Asset: \"Asset\",\n AddingSomething: \"Adding {0}\",\n EditingSomething: \"Editing {0}\",\n UpdatingSomething: \"Updating {0}\",\n CreatingSomething: \"Creating {0}\",\n CreatingTask: \"Creating Task\",\n CreatingField: \"Creating Field\",\n Creating: \"Creating\",\n NonAssetTask: \"Non-Asset Task\",\n NonAssetSingularName: \"Non-Asset\",\n NonAssetClass: \"NonAsset\",\n AssetTask: \"Asset Task\",\n CreatingWorkOrder: \"Creating Work Order\",\n CreatingAssociation: \"Creating Association\",\n EditingAssociation: \"Editing - Association: {0}\",\n ViewAssociation: \"Association: {0}\",\n Association: \"Association\",\n Spatial: \"Spatial\",\n StartInspection: \"Start Inspection\",\n EditInspection: \"Edit Inspection\",\n ViewInspection: \"View Inspection\",\n CannotCalculateIndexMissingConditionData:\n \"Cannot calculate the index because there is missing condition data.\",\n CannotCalculateIndexNoMappings:\n \"Cannot calculate the index because there are no index mappings.\",\n FourOhFourString:\n \"Page not found. Make sure you entered or copied the URL correctly.
If the problem continues, ask your System Administrator for help.\",\n StatusCompleted: \"COMPLETED\",\n StatusCanceled: \"CANCELED\",\n WOHasOpenTasks:\n \"This Work Order has Tasks with a status of Planned or In Progress and cannot be marked Completed or Canceled.\",\n SomeFieldsHaveErrors: \"Some Fields Have Errors\",\n CannotDeleteResourceLogEntries: \"Cannot Delete Resource Log Entries\",\n CorrectErrorsWithDelete:\n \"Correct the errors to continue. The System Administrator prevented you from deleting Resource Log entries. The deleted entries will remain in the Resource Logs. Ask the System Administrator for help with access.\",\n UnableToDeleteResourceLogEntries:\n \"The System Administrator prevented you from deleting Resource Log entries. The deleted entries will remain in the Resource Logs. Ask the System Administrator for help with access.\",\n WaitIndicator: \"Loading...\",\n Saving: \"Saving...\",\n LoadingMap: \"Loading Map...\",\n PercentSaved: \"{0}% saved\",\n Finalizing: \"Finalizing...\",\n AboutToCreateTasks: \"You are about to create {0} tasks.\",\n ContinueCreatingTasks:\n \"This could take a few minutes or more. Do you want to continue creating these tasks?\",\n CreateTasksNow: \"Create tasks now\",\n PrintMap: \"Print Map\",\n Title: \"Title\",\n Print: \"Print\",\n Landscape: \"Landscape\",\n Portrait: \"Portrait\",\n EnterPrintoutTitle: \"Enter printout title\",\n DistributingResources: \"Distributing Resources...\",\n DistributingResourcesTitle: \"Distributing Resources Complete\",\n DistributingResourcesSuccessText: \"The Resources were successfully distributed to {0} tasks.\",\n ProcessStillRunning: \"Time Sheet Process
Already Running...\",\n ProcessSaveErrorTitle: \"Cannot Save Time Sheet\",\n ProcessStillRunningText:\n \"Another time sheet process is running. Wait for it to finish and try again\",\n ProcessBeingSaved: \"Another time sheet is being saved. Try again later.\",\n ProcessHasErrors: \"Correct the following errors and try again:
{0}\",\n SearchByAddress: \"Search by address\",\n AddLocation: \"Add Location\",\n LocationPermissionsDenied: \"Location permissions denied\",\n SelectAssetType: \"Select Asset Type\",\n KeepAssetType: \"Keep Asset Type\",\n ChangeAssetType: \"Change Asset Type\",\n KeepAssociation: \"Keep Association\",\n DiscardAssociation: \"Discard Association\",\n ChangeAssetTypeDialogTitle: \"Are you sure you want to change the Asset Type?\",\n ChangeAssetTypeDialog:\n \"You currently have assets selected. Changing the Asset Type will remove all assets from the selection.\",\n ChangeAssetTypeDialogAddLocation:\n \"You currently have a location selected. Changing the Asset Type will remove the location selected.\",\n CancelChangeDialogTitle: \"Are you sure you want to cancel?\",\n CancelChangeDialog: \"Unsaved changes will be lost.\",\n ScenarioCancelDialog: \"All scenario results will be lost.\",\n ContinueRunning: \"Continue Running\",\n DiscardScenarioResults: \"Discard Scenario Results\",\n MaxCharsChangeDialogTitle: \"Are you sure you want to make this change?\",\n MaxCharsChangeDialog:\n \"The Maximum Characters field was changed from {0} to {1} characters. Data in existing records might be lost or cut off.\",\n InvalidSelection: \"Invalid Selection\",\n CannotASelectMoreThan: \"More than {0} records are in the list. Filter the list to {0} or less.\",\n CannotCreateFutureEntries: \"Cannot create future entries.\",\n CannotAssociate: \"Cannot Associate\",\n ResourceDateCannotBeAfter: \"Resource date cannot be after {0}.\",\n GpsFailure: \"Cannot locate current position.\",\n ClearLocationDialogTitle: \"Are you sure you want to remove the location?\",\n ClearLocationDialog: \"The record will not display on the map.\",\n ClearLocationDialogGis: \" The matching feature will also be deleted from GIS.\",\n KeepLocation: \"Keep Location\",\n RemoveLocation: \"Remove Location\",\n Location: \"Location\",\n TrySaveShapeOrCancel: \"Try saving again, or Cancel\",\n EditPointInstructions: \"Click on a location to move the pin.\",\n EditLineOrPolyInstructions: \"Drag the handles to change the shape.\",\n UseGISToEditLocation: \"You must use GIS to edit a multi-part location.\",\n UseGISToEditZAndM: \"You must use GIS to edit an M-aware or Z-aware location.\",\n UseGISToEditGeometry: \"You must use GIS to edit a {0} location.\",\n GISIntegration: \"GIS Integration\",\n SystemError: \"System Error\",\n CannotProcessCommand: \"Cannot process command. Ask your System Administrator for help.\",\n SaveError: \"Save Error\",\n CannotSaveError: \"Cannot Save\",\n CannotDisplaySummaryDialog: \"Cannot Display Summary. Ask your System Administrator for help.\",\n FindALibrary: \"Find a Library\",\n FindARole: \"Find a Role\",\n CannotCreateTask: \"Cannot Create Task\",\n CannotCreateRecord: \"Cannot Create {0}\",\n CannotDuplicateRecord: \"Cannot Duplicate {0}\",\n ClearFilterDialogTitle: \"Are you sure you want to clear the filter?\",\n ClearFilterDialog: \"The filter will be lost if you continue.\",\n Filter: \"Filter\",\n ReopenInspectionTitle: \"Inspection is Complete\",\n ReopenInspectionDialog:\n \"If you edit a completed inspection, the inspection calculations are removed. Be sure to complete the inspection after editing to update the calculations.\",\n CannotContinuePCIInspection: \"Cannot Continue with PCI Inspection\",\n Incremental: \"Incremental\",\n InspectionMissingRequiredInfo: \"The inspection is missing required information:\",\n InspectionType: \"Inspection type\",\n PavementLength: \"Pavement length\",\n PavementWidth: \"Pavement width\",\n PavementCannotAddSample: \"Cannot Add Sample\",\n PavementLengthTooLong:\n \"Pavement length is longer than the maximum of {0} to use the US Army Corps of Engineers Sampling Method.\",\n PavementWidthTooLong:\n \"Pavement width is longer than the maximum of {0) to use the US Army Corps of Engineers Sampling Method.\",\n PavementSampleToLessThanFrom: \"The From value must be less than the To value.\",\n PavementSampleFromEmpty: \"The From field is required.\",\n PavementSampleToEmpty: \"The To field is required.\",\n PavementSampleFromGreaterThanZero: \"The From value cannot be less than zero.\",\n PavementCannotAddDistress: \"Cannot Add Distress\",\n PavementCannotDeleteDistress: \"Cannot Delete Distress\",\n PavementDistressAreaOrLengthExceedsSample:\n \"There is an existing {0} distress with a {1} severity with an extent of {2}%. The combined extent must be no more than 100%.\",\n Random: \"Random\",\n EditPCIInspection: \"Edit PCI Inspection\",\n StartPCIInspection: \"Start PCI Inspection\",\n MeasurementTypeArea: \"Sq Feet:\",\n MeasurementTypeLinear: \"Linear Feet:\",\n LinearMeters: \"Linear Meters:\",\n SquareMeters: \"Sq Meters:\",\n ClearFilterTitle: \"Are you sure you want to clear the filter?\",\n ClearFilterMessage: \"The filter will be lost if you continue.\",\n KeepFilter: \"Keep Filter\",\n ClearFilter: \"Clear Filter\",\n LengthLower: \"length\",\n AreaLower: \"area\",\n FeetAbbreviated: \"ft\",\n Squared: \"²\",\n UploadInProgressTitle: \"Upload In Progress\",\n UploadInProgressMessage: \"Cannot complete action while an upload is in progress.\",\n RemoveRepeatingWOTitle: \"Are you sure you want to remove?\",\n RemoveRepeatingWOMessage: \"The Repeating Schedule will be removed from the Work Order.\",\n RemoveMultipleRepeatingWOMessage:\n \"The Repeating Schedule will be removed from the Work Orders.\",\n KeepSchedule: \"Keep Schedule\",\n RemoveSchedule: \"Remove Schedule\",\n RemoveFromScenario: \"Remove from Scenario\",\n PleaseWait: \"Please Wait...\",\n ResttingOms: \"Resetting OMS...\",\n Processing: \"Processing...\",\n Exporting: \"Exporting...\",\n Deleting: \"Deleting...\",\n Removing: \"Removing...\",\n Selecting: \"Selecting...\",\n Canceling: \"Canceling...\",\n RemovingTasks: \"Removing Tasks...\",\n Installing: \"Installing...\",\n RemovingRepeatingSchedules: \"Removing Repeating Schedules...\",\n CalculatingPCIIndex: \"Calculating PCI Index...\",\n GeneratingSamples: \"Generating Samples...\",\n ProcessingSelectAll: \"Processing Select All...\",\n ProcessingClearAll: \"Processing Clear All...\",\n Validating: \"Validating...\",\n Error: \"Error\",\n ServerError: \"Server Error\",\n AccessDenied: \"Access Denied\",\n ResetOmsFailed: \"Reset OMS Failed\",\n CantDeleteTitle: \"Cannot Delete {0}\",\n CannotLeavePage: \"Cannot Leave Page\",\n StructureManagerIntro:\n \"You are about to make structural changes to the system. Make sure of the following:
- Lock the system by going to Set System Access
- No background tasks are running.
- No users are signed in.
- No integrations are running.
\",\n StructureManagerIntroTitle: \"Before Making Structure Changes\",\n AssetAdministrationWarningTitle: \"Before Installing Assets\",\n UploadFailed: \"Upload Failed\",\n SavingLayout: \"Saving Layout\",\n LoadingLayout: \"Loading Layout\",\n InvalidLayout: \"Invalid Layout\",\n CannotAddGridToOverviewHeader: \"Grids cannot be added to an Overview layout.\",\n InvalidViewName: \"Invalid View Name\",\n InvalidStatementInFilter: \"Invalid Statement in Filter\",\n DefineInternalRequestView: \"Define Internal Request View\",\n ReqestIssue: \"Request Issue: \",\n DuplicateItem: \"Duplicate Item\",\n DuplicateViewName: \"Duplicate View Name\",\n DuplicateSectionName: \"Duplicate Section Name\",\n DuplicateGroupHeaderTitle: \"Duplicate Group Header Title\",\n FilterContainsInvalidValue: \"Filter Contains An Invalid Value\",\n ContinueTasksNotAssociatedToAnother: \"{0} Continue with Tasks not associated to another {1}?\",\n RunReport: \"Run Report\",\n LaunchWebDesigner: \"Open Advanced Designer\",\n LaunchWebDesignerTitle: \"Are you sure you want to edit with the Advanced Designer?\",\n LaunchWebDesignerMessage:\n \"This report was last edited with the Basic Designer. Once you edit with the Advanced Designer, reports cannot be edited using the Basic Designer.\",\n ReportSelectionLimitMessage:\n \"More than the maximum number of records for a report are selected. Change the number of selected records to {0} or less to continue.\",\n ReportNameReportView: \"Report Name – Reports Page\",\n ReportNameDetailView: \"Report Name – Detail View\",\n CannotRunReport: \"Cannot Run Report\",\n CannotUpdateTask: \"Cannot Update Task\",\n CannotAddTask: \"Cannot Add Task\",\n CannotAddTasks: \"Cannot Add Tasks\",\n CannotAddResource: \"Cannot Add Resource\",\n CannotChangePassword: \"Cannot Change Password\",\n CannotCompleteTask: \"Cannot Complete Task\",\n CannotCompleteWorkOrder: \"Cannot Complete Work Order\",\n CannotDisplaySummary: \"Cannot Display Summary\",\n CannotCloseRequest: \"Cannot Close Request\",\n CannotAddRequester: \"Cannot Add Requester\",\n CannotGetInspection: \"Cannot Get Inspection\",\n CannotLoadRequester: \"Cannot load Requester\",\n CannotRemoveRequester: \"Cannot Remove Requester\",\n CannotEditTaskAssignments: \"Cannot Edit Task Assignments\",\n CannotDeleteSelectedRecord: \"Cannot Delete Selected Record\",\n CannotDeleteSelectedRecords: \"Cannot Delete Selected Records\",\n CannotSetPrimaryAttachedFile: \"Cannot Set Primary Attached File\",\n CannotActivateFilterTryAgain: \"Cannot activate the filter. Try again later.\",\n CannotResetUserPersistenceSelected: \"Cannot Reset User Persistence for Selected User\",\n CannotResetUsersPersistenceSelected: \"Cannot Reset User Persistence for Selected Users\",\n ResetPasswordFailed: \"Reset Password Failed\",\n AskYourSystemAdminForHelpPeriod: \"Ask your System Administrator for help.\",\n AreYouSureGeneric: \"Are you sure you want to \",\n DeleteDialogTitle: \"Are you sure you want to delete?\",\n FinishDialogTitle: \"Are you sure you want to finish?\",\n RemoveDialogTitle: \"Are you sure you want to remove?\",\n AreYouSureMakeAssociation: \"Are you sure you want to make this association?\",\n UndoDialogTitle: \"Are you sure you want to undo?\",\n ClearAllDialogTitle: \"Are you sure you want to clear all?\",\n AreYouSureMakeChange: \"Are you sure you want to make this change?\",\n LeavePageDialogTitle: \"Are you sure you want to leave the page?\",\n LeaveViewDialogTitle: \"Are you sure you want to leave the view?\",\n ResetViewDialogTitle: \"Are you sure you want to reset the view?\",\n DeleteViewDialogTitle: \"Are you sure you want to delete the view?\",\n DeleteReportDialogTitle: \"Are you sure you want to delete the report?\",\n RemoveRequesterDialogTitle: \"Are you sure you want to remove the Requester?\",\n RequesterWillBeRemovedDialog: \"Requester will be removed from the selected request.\",\n ResetUserPersistenceDialogTitle: \"Are you sure you want to reset user persistence?\",\n ClearLayoutDialogTitle: \"Are you sure you want to clear the layout?\",\n DeleteScriptDialogTitle: \"Are you sure you want to delete script {0}?\",\n CreatingFormatFileDialogTitle: \"Creating Format File\",\n DeleteFormatFileDialogTitle: \"Are you sure you want to delete the format file?\",\n CorrectErrorsToContinue: \"Correct the errors to continue.\",\n CorrectXErrorsToContinue: \"Correct {0} errors to continue.\",\n FilesNotUploadedLostDialog: \"Files not uploaded will be lost.\",\n CurrentLayoutRemovedDialog: \"The current layout will be removed.\",\n ViewReturnedtoDefaultDialog: \"View will be returned to the default state.\",\n ViewDeletedfromSystemDialog: \"View will be deleted from the system.\",\n ReportDeletedfromSystem: \"Report will be deleted from the system.\",\n NoLoadSecuritySettings: \"Could not load Security Settings.\",\n NoSaveSecuritySettings: \"Could not save Security Settings.\",\n CannotUndoWarning:\n \"The {0} {1} was marked {2}. This setting cannot be adjusted once the change is saved.\",\n NoPermissionViewPage: \"You do not have permission to view this page.\",\n EnteredInvalidFilter: \"You entered an invalid filter.\",\n CannotCalculateIndex: \"Cannot Calculate Index\",\n ConditionCategory: \"Condition Category\",\n ConditionCategories: \"Condition Categories\",\n Risk: \"Risk\",\n RiskSettings: \"Risk Settings\",\n RiskStatusRanges: \"Risk Status Ranges\",\n ConsequenceOfFailureSettings: \"Consequence of Failure Settings\",\n ConsequenceOfFailureCriteria: \"Consequence of Failure Criteria\",\n ProbabilityOfFailureSettings: \"Probability of Failure Settings\",\n ProbabilityOfFailureConversionRanges: \"Probability of Failure Conversion Ranges\",\n UneditableInStructureManagerError: \"{0} properties cannot be edited because the field is locked for data integrity.\",\n UneditableInStructureManagerCOFError: \"{0} is a system field for Consequence of Failure and can only be edited in Asset Condition Manager.\",\n EstimatedIndexValueMissing:\n \"Estimated Index was not calculated for one or more condition categories marked Not Inspected. If you want an Index for a condition category, ask your System Administrator to make sure the prerequisite data is in place.\",\n CannotCompleteInspection: \"Cannot Complete Inspection\",\n AttachmentsNotFound: \"Attachments Not Found\",\n NoRemoveRequester: \"Could not Remove Requester\",\n NoAddRequester: \"Could not Add Requester\",\n NoLoadRequester: \"Could not load Requester\",\n NoLoadRoleAdmin: \"Could not load Role Administration\",\n PromptsInSyntaxViewNotAllowedRemoveFilter:\n \"Prompts in Syntax View are not allowed. Remove filter prompt to continue.\",\n NoRecordsSelectedLeastOneMustBe:\n \"No records are selected. At least one record must be selected to continue.\",\n TooManyRecordsToReportFilterLess2000:\n \"There are too many records to report. Filter your records to less than 2000.\",\n FileNotUploadedAskAdmin: \"File could not be uploaded. Ask your System Administrator for help.\",\n EditSchedule: \"Edit Schedule\",\n EditRepeatingScheduleTitle: \"Are you sure you want to edit repeating schedules?\",\n EditRepeatingScheduleMessage:\n \"The selected Work Orders have repeating schedules. Continuing to edit will replace any existing repeating schedules.\",\n Update: \"Update\",\n UpdatingRecords: \"Updating Records\",\n StayOnPage: \"Stay on Page\",\n LeaveWithoutSaving: \"Leave Without Saving\",\n LeaveWithoutOrdering: \"Leave Without Ordering\",\n RevertDialogTitle: \"Are you sure you want to revert?\",\n ConfirmDelete: \"Confirm Delete\",\n FileNoLongerExists: \"This file was renamed or no longer exists. The browser tab will close.\",\n RequestClosedSetRequestStatusOpen:\n \"Request {0} is Closed. Set the Request’s Status to Open to create a Task.\",\n AlreadyExistsViewNamed: \"View name {0} already exists.\",\n CannotUseViewNameEnterDifferent: \"Cannot use {0} as a view name. Enter a different name.\",\n CannotSaveView: \"Cannot Save View\",\n LenghtofViewNameGreater:\n \"View name is more than 30 characters. Make the view name shorter to continue.\",\n CannotAddedSection: \"{0} cannot be added to the {1} section.\",\n ReadOnlyFieldsCannotAddedSection: \"Read-only fields cannot be added to the {0} section.\",\n CannotFindAttachmentsForAskAdmin:\n \"Cannot find attachments for {0}. Ask your System Administrator for help.\",\n CannotBeInLaytoutMoreThanOnce: \"{0} cannot be in the layout more than once.\",\n CannotBeInSectionMoreThanOnce: \"{0} cannot be in a section more than once.\",\n CannotBeInFormatFileMorThanOnce: \"{0} cannot be in the format file more than once.\",\n RecordCannotBeFoundAskAdmin: \"Record cannot be found. Ask your System Administrator for help.\",\n CannotAddNewRowAskAdmin: \"Cannot add new row. Ask your System Administrator for help.\",\n CannotLoadResourceEntryAskAdmin:\n \"Cannot load resource entry. Ask your System Administrator for help.\",\n CannotRemoveSelectedTaskFrom: \"Cannot remove selected Tasks from {0}\",\n CannotRemoveSelected: \"Cannot remove selected {0}\",\n AllResourceRowsRemovedDialog: \"All resource rows will be removed.\",\n AddRequesterToDifferentRequest: \"Add Requester to different request.\",\n RequesterRemovedFromRequestAddedRequest:\n \"The requester will be removed from Request {0} and added to Request {1}.\",\n RequesterAddedToPreviousRequest: \"The Requester is added to a previous request.\",\n ChangingWillRemoveRequesterFromPreviousRequest:\n \"Changing the issue will remove the Requester from the previous request.\",\n NoColumnsSelected: \"No columns selected.\",\n LeastOneColumnBeSelectedDialog: \"At least one column must be selected.\",\n ToManyRecordsInListFilterToLess:\n \"More than {0} records are in the list. Filter the list to {0} or less.\",\n NoLocationSelectedForRecord: \"No Location was selected for the record.\",\n NoLocationNoAddress: \"Cannot locate the address. No results found.\",\n ClickClearLocationDrawRecordOnMapDialog:\n \"Click Clear Location to continue without a location. Draw the record on the map to continue.\",\n ClickClearLocationDrawRecordOnMapDialogEdit:\n \"Click Clear Location to save without a location. Draw the record on the map and click Save to save with a location.\",\n PluralNameRenameTitle: \"{0} Recordset Renamed {1}\",\n PluralNameRenameHeader: \"The following Project Home {0} cannot be renamed.

\",\n PluralNameRenameFooter:\n \"
Use Windows tools to rename the {0} and keep them synchronized with {1} recordset.\",\n InvalidLookupTargetTitle: \"Cannot Create Lookup Association\",\n InvalidLookupTargetError:\n \"Select a library or recordset with a field marked both Unique and Required.\",\n ComponentSnapshot: \"Component Snapshot\",\n Directory: \"directory\",\n Directories: \"directories\",\n Create: \"Create\",\n Delete: \"Delete\",\n Duplicate: \"Duplicate\",\n Actions: \"Actions\",\n LockForMaintenance: \"Lock for Maintenance\",\n OK: \"OK\",\n All: \"All\",\n Add: \"Add\",\n Save: \"Save\",\n Done: \"Done\",\n Close: \"Close\",\n Continue: \"Continue\",\n UndoChanges: \"Undo Changes\",\n SaveChanges: \"Save Change\",\n CancelDelete: \"Cancel Delete\",\n ContinueToDelete: \"Continue to Delete\",\n ContinueToApply: \"Continue to Apply\",\n KeepUserPersistence: \"Keep User Persistence\",\n ResetUserPersistence: \"Reset User Persistence\",\n KeepCurrentLink: \"Keep Current Link\",\n Large: \"Large\",\n LinkToSelectedAsset: \"Link to Selected Asset\",\n LinkToThisAsset: \"Link to This Asset\",\n KeepWithInsert: \"Keep {0}\",\n RemoveWithInsert: \"Remove {0}\",\n KeepIssue: \"Keep Issue\",\n ChangeIssue: \"Change Issue\",\n KeepView: \"Keep View\",\n DeleteView: \"Delete View\",\n ResetView: \"Reset View\",\n StayOnView: \"Stay on View\",\n KeepReport: \"Keep Report\",\n KeepFile: \"Keep File\",\n DeleteFile: \"Delete File\",\n KeepLayout: \"Keep Layout\",\n DiscardLayout: \"Discard Layout\",\n DeleteScript: \"Delete Script\",\n CannotAddTheServer: \"Cannot Add the Server\",\n KeepRows: \"Keep Rows\",\n ClearAllRows: \"Clear All Rows\",\n KeepRequester: \"Keep Requester\",\n RemoveRequester: \"Remove Requester\",\n Requesters: \"Requesters\",\n SendEmailToRequesters: \"Send Email To Requesters\",\n SendEmailToAssignments: \"Send Email To Assignments\",\n EmailAddresses: \"Email Addresses (separate by semicolons)\",\n RecordSourceForEmail: \"Record Source for Email\",\n InvalidRecordSourceForReportEmail: \"Child or library records not allowed for the Send Email with Report block.\\n\\nUse the Send Email block for these recordsets.\",\n EmailField: \"Email Field\",\n Syntax: \"Syntax\",\n CopyErrorMessage: \"Copy error message details\",\n CopyWebhookURL: \"Copy webhook URL to clipboard.\",\n CopiedToClipboard: \"Copied to clipboard.\",\n Assignments: \"Assignments\",\n AssignmentsSaved: \"Labor Assignments Saved\",\n KeepWithCurrentRequest: \"Keep with Current Request\",\n Medium: \"Medium\",\n MoveToDifferentRequest: \"Move to Different Request\",\n UserName: \"User Name\",\n Password: \"Password\",\n NewPassword: \"New Password\",\n ConfirmPassword: \"Confirm Password\",\n ValueRequired: \"Value Required\",\n UniqueValuesRequired: \"Unique Values Required\",\n AutoNumberBrackets: \"[Auto-number]\",\n AutoNumberParenthesis: \"(AutoNumber)\",\n Small: \"Small\",\n SelectAsset: \"Select Asset\",\n SelectLabor: \"Select Labor\",\n EnterPrompt: \"Enter Prompt\",\n NewScriptName: \"New Script Name\",\n FindAReport: \"Find a Report\",\n Task: \"Task\",\n Tasks: \"Tasks\",\n TaskVariableBeRemovedFromCurrenetRecord: \"{0} {1} will be removed from the current {2}.\",\n ClicktoDrawDoubleClickToFinish: \"Click to draw the {0}, double-click to finish.\",\n EnterSyntaxViewDialogTitle: \"Are you sure you want to enter Syntax View?\",\n EnterSyntaxViewDialog:\n \"Warning: You are entering Syntax View. You may lose your Advanced Filter if you continue.\",\n AdvancedFilter: \"Advanced Filter\",\n Section: \"Section\",\n Group: \"Group\",\n Column: \"Column\",\n Ungroup: \"Ungroup\",\n ReadOnly: \"Read-only\",\n DiscardSpaceInsert: \"Discard {0}\",\n KeepSpaceInsert: \"Keep {0}\",\n RemoveItemDialogTitle: \"Are you sure you want to remove the {0}?\",\n RemoveItemFromViewDialog: \"{0} will be removed from the view.\",\n UsersPossessive: \"Users'\",\n UserPossessive: \"User's\",\n SignRetroreflectivityFailedDialogTitle: \"Sign Retroreflectivity Failed\",\n SignRetroreflectivityFailedDialog:\n \"The retroreflectivity readings for Sign {0} are below the minimum acceptable conditions. Repair or replacement is needed.\",\n ResetUserPersistenceDialog: \"{0} {1} persistence will be reset.\",\n TaskBeChangedToCorrectPrecesionLossByRounding:\n \"Task {0}'s {1} will be changed to {2} to correct precision loss caused by rounding.\",\n TaskWillBeRoundedTo: \"Task {0}'s {1} will be rounded to {2}\",\n ThereWasXError: \"There was a {0} error.
{1}\",\n NoDataDisplaySelDateRange: \"No data to display. Select another date range.\",\n NoDataToDisplay: \"No data to display.\",\n EditingWithHyphen: \"Editing - {0}\",\n Editing: \"Editing\",\n ProcessingNoEllipsis: \"Processing\",\n NotInspected: \"Not Inspected\",\n NotTested: \"Not Tested\",\n SelectField: \"Select Field\",\n SelectOperator: \"Select Operator\",\n SelectRecipient: \"Select Recipient\",\n SelectGeodatabaseAttribute: \"Select Geodatabase Attribute\",\n Activate: \"Activate\",\n Apply: \"Apply\",\n Cancel: \"Cancel\",\n AssessmentsLoading: \"Verifying Assessments...\",\n XAssessmentTasks: \"{0} Assessment Tasks\",\n OneAssessmentTask: \"1 {0} Assessment Task\",\n AssessmentTaskRequirements:\n `To create a task, the assessment:\n     Must have an Asset ID and Asset Type.\n     Cannot be associated with an existing Task ID.\n     Cannot have status Work Completed or Inactive.\n     Please check the CSV log file for details. `,\n AssessmentActivityMustBeSameError: \"All selected Assessments must have the same Activity and the Activity field cannot be empty.\",\n NoAssessmentEligibleTaskErrorTitle: \"Cannot Create Tasks\",\n NotAllAssessmentEligibleTaskErrorTitle: \"Cannot Create Tasks for All Selected Assessments\",\n AssessmentEligibleCount: \"{0} assessments meet the requirements.
\",\n AssessmentIgnoredCount: \"{0} assessments do not meet the requirements.
\",\n ContinueWithEligibleAssessments: \"Create tasks for {0} assessments?\",\n XAssetTask: \"{0} Asset Task\",\n XAssetTasks: \"{0} Asset Tasks\",\n XXTasks: \"{0} {1} Tasks\",\n XXTask: \"{0} {1} Task\",\n UnlinkAsset: \"Unlink Asset\",\n LinkAsset: \"Link Asset\",\n AddField: \"Add Field\",\n NameColon: \"Name:\",\n View: \"View\",\n Date: \"Date:\",\n EndDate: \"End Date:\",\n ThroughDate: \"Through Date:\",\n BeginDate: \"Begin Date:\",\n FromDate: \"From Date:\",\n PrimaryAttachment: \"Primary Attachment\",\n DeleteAttachedFile: \"Delete Attached File\",\n SelectionMustBePolygon: \"Selection must be a Polygon.\",\n SelectionLinesNoCross: \"Selection lines cannot cross.\",\n NoFilterAllRequests: \"No Filter - All Requests\",\n LinkToXBeRemoved: \"The link to {0} will be removed from the system.\",\n FieldPermanentlyRemovedSystem: \"The {0} field will be permanently removed from the system.\",\n RecordSetPermanentlyRemovedSystem:\n \"The {0} recordset will be permanently removed from the system.\",\n RelationshipRemovedSystem:\n \"The {0} relationship to {1} will be permanently removed from the system.\",\n LibraryNameError: \"Invalid Library Name\",\n BePermanentlyRemovedSystem: \"{0} will be permanently removed from the system.\",\n FormatFileDeletedSystem: \"Format file will be deleted from the system.\",\n DateCannotBeforeX: \"Date cannot be before {1}.\",\n DateCannotAfterX: \"Date cannot be after {1}.\",\n DateCannotBeInFuture: \"Date cannot be in the future.\",\n DateCannotBeInPast: \"{0} cannot be in the past.\",\n PasswordsNoMatch: \"The passwords do not match.\",\n Value: \"Value\",\n ValueMustBeGreaterThan0: \"Value must be greater than 0.\",\n ValueMustBeGreaterThanOrEqualTo0: \"{0} must be greater than or equal to 0.\",\n ValueCannotBeNeg: \"Value cannot be a negative number.\",\n EntriesCannotBeNegOrMore24Hrs: \"Entries cannot be negative numbers or more than 24 hours.\",\n ValueMustBeLessEveryXX: \"Value must be less than Every {0} {1}\",\n ActualStartDateOnBefore: \"The Actual Start Date must be on or before {0}.\",\n ActualStopDateOnAfter: \"The Actual Stop Date must be on or after {0}.\",\n NoRecordsDisplay: \"No records to display\",\n NoAssociationsDisplay: \"No associations to display\",\n CannotMakeActive: \"Cannot Make Active\",\n DuplicateFeatureClassLayer:\n \"This association must stay Inactive because there is an active GIS Association to the {0} Feature Class Layer. To make this GIS Association active, first mark the other GIS Assocation Inactive.\",\n NoViewOrScriptLoaded: \"No view or script loaded\",\n ScriptsApplyDetailEditViewOnly: \"Scripts apply to Detail/Edit view types only.\",\n ViewNoScriptSelFromBoxCreate:\n \"View has no script defined. Select from the combobox to create it.\",\n OneXTask: \"1 {0} Task\",\n SectionX: \"Section {0}\",\n InactiveAssociationWillNotBeSynchronized:\n \"The Association will not be synchronized because it is set as Inactive.\",\n TheLineItemWillBeRemovedFromTheCurrentOrderProcess:\n \"The Line Item will be removed from the current Order Process.\",\n CannotSynchronizeAssociation: \"Cannot Synchronize Association\",\n EnablingDebugMode: \"Enabling debug mode\",\n DebugMode: \"Debug mode\",\n MapWasNotSavedAsSecured:\n \"Map {0} was not saved as secured. Cartegraph requires maps to be secured running under https. Ask your GIS Administrator for help.\",\n ListStale:\n \"The records in the list changed causing the list to be stale. Click OK to refresh the page and try again.\",\n SomeRecordsNotDisplayedOnMap:\n \"Some records are not displayed on the map.
Zoom in or adjust your filter.\",\n MapWasRemovedFromArcGIS: \"Map {0} was removed from ArcGIS. Use a different map.\",\n MapIsNotAvaliable:\n \"The map is not available. Try again later or ask your GIS Administrator for help.\",\n FatalErrorLoadingMap:\n \"There was a problem loading the map. Try again later or ask your GIS Administrator for help.\",\n TheAmountPulledCannotExceedTheAmountAvailable: \"Transfer Qty exceeds the From Qty Avail amount.\",\n Layout: \"Layout\",\n LayerSaved: \"Layer Saved\",\n DeleteLayer: \"Delete Layer\",\n ErrorSearchingLayers: \"Error Searching Layers\",\n MarkAsFavorite: \"Mark as Favorite\",\n RemoveFromFavorites: \"Remove from Favorites\",\n DeleteProjectMessage:\n \"The project is removed from the scenario. If the project has already been converted to a work order, the work order and associated tasks are not deleted.\",\n ProjectConvertedAssignError:\n \"Project {0} was converted to work. Converted projects cannot be edited.\",\n ProjectConvertedError:\n \"One or more of the selected records belong to a converted project and a task exists for these records. Converted projects cannot be edited.\",\n SystemLockedForMaintenanceDefault:\n \"The system will be locked for maintenance. Please save your work and sign out of the system. - System Administrator\",\n VectorLayersNotSupportedForPrinting:\n \"The {0} map contains vector tile layers and cannot be printed. Select a different web map before printing.\",\n SaveLayerAlreadyExists:\n \"You already have a saved layer with this name. You can either update it or rename it to save it as a new layer.\",\n OnlyL2UsersCanPerformAction:\n \"Only users with editing permissions can {0} Associations using ArcGIS Online or Portal servers.\",\n TimeoutOccurredRetrievingPrintout:\n \"A timeout occurred while trying to retrieve the printout from ArcGIS.\",\n ErrorOccurredRetrievingSpatialAnalysis:\n \"An error occurred while trying to retrieve the spatial analysis results from ArcGIS.\",\n ChangesMustBeSavedBeforeRunningTheAutomation:\n \"Changes must be saved before running the Automation.\",\n CreateReportUseAdvancedDesignerMRT: \"Use Advanced Designer: Multiple records on each page\",\n CreateReportUseAdvancedDesignerSRT: \"Use Advanced Designer: Single record on each page\",\n SelectLocationToDisplayNeededMaterials: \"Select Location to display needed materials.\",\n LayoutHas250Sections: \"This layout has 250 sections, the maximum number allowed.\",\n SectionHas100Filters: \"This section has 100 filters, the maximum number allowed.\",\n AreYouSureYouWantToClearTheLog: \"Are you sure you want to clear the log?\",\n LookupGeodatabaseAttributes: \"Attribute Associated through a Lookup\",\n CannotCompleteAction: \"Cannot Complete Action\",\n CannotSelectMoreThanNItems:\n \"More than {0} records are selected. Filter the selection to decrease the number of selected records.\",\n CannotAddActivity: \"Cannot Add Activity\",\n CannotSelectMoreThanNActivities: \"No more than {0} items may be selected at once.\",\n CannotAddToProject: \"Cannot Add To Project\",\n CannotRemoveFromProject: \"Cannot Remove From Project\",\n CannotAddNoActivity:\n \"Selection contains No Activity records. Remove items from selection before adding to a Project.\",\n EnterStartingLocation: \"Enter starting location or select on map\",\n ReviewLayersToAnalyzeAgainst: \"Review layers to analyze against:\",\n AreYouSureYouWantToRemove: \"Are you sure you want to remove {0}?\",\n SelectATargetLayerToAnalyze: \"Select a Target Layer to analyze:\",\n CreateReportUseBasicDesignerChart: \"Use Basic Designer: Chart\",\n CreateReportUseBasicDesignerTable: \"Use Basic Designer: Table\",\n EnterEndingLocation: \"Enter ending location or select on map\",\n LocationsCannotBeTheSame: \"Locations cannot be the same.\",\n DeletionQuestion: \"Are you sure you want to delete {0}?\",\n SelectTransferToLocation: \"Select Transfer To Location\",\n AllRecordsWillBeRemoved: \"All records will be removed.\",\n AddProjectToScenario: \"Add a project to the scenario.\",\n WeDidntFindAnyResults: \"We didn't find any results.\",\n CannotAddTheCrewMember: \"Cannot Add the Crew Member\",\n CannotActionAssocation: \"Cannot {0} Association\",\n LaborAvatarsFailedToLoad: \"Laborer Avatars failed to load\",\n LaborRecordsFailedToLoad: \"Laborer records failed to load\",\n RecordsetAuditExport: \"Recordset Audit Export\",\n NoAutomationsToDisplay: \"No automations to display. Click Create Automation to begin.\",\n NoLogsToDisplay: \"No logs to display\",\n NoResultsFoundWithSearchTerm: \"No results found for \\\"{0}\\\"\",\n NoResultsFoundSubtitle:\n \"Make sure your words are spelled correctly, or use fewer or different keywords.\",\n SearchTrigger: \"Search for Trigger\",\n SearchAllAutomations: \"Search all Automations\",\n GeodatabaseAttribute: \"Geodatabase Attribute\",\n SynchronizeGeometry: \"Synchronize Geometry\",\n CannotSaveAutomation: \"Cannot Save Automation\",\n CannotSaveResourceEstimates: \"Cannot Save Resource Estimates\",\n CannotDuplicateAutomation: \"Cannot Duplicate Automation\",\n CannotDuplicateAutomationMessage:\n \"Save the changes to the current automation before duplicating the automation.\",\n AutomationDuplicated: \"Automation Duplicated\",\n CannotAddAutomationBlock: \"Cannot Add Action\",\n SelectALaborOrCrew: \"Select a Laborer or Crew\",\n EditProjectTitle: \"Edit the project title.\",\n SelectALaborer: \"Select a Laborer\",\n SelectARoleOrUser: \"Select a Role or User\",\n AllUsersAndRoles: \"All Users and Roles\",\n SelectTrigger: \"Select a Trigger\",\n AutomationsLog: \"Automations Log\",\n AutomationExecuting: \"Executing Automation\",\n AutomationScheduledImmediately: \"Automation scheduled to run immediately.\",\n TooManyAutomationBlocks: \"The maximum number of actions already in use.\",\n DistributeResources: \"Distribute Resources\",\n CopyEmailAddresses: \"Copy email addresses\",\n EnterProjectTitle: \"Enter Project Title\",\n DecreaseAdjustment: \"Decrease Adjustment\",\n IncreaseAdjustment: \"Increase Adjustment\",\n EditAssignedLabor: \"Edit Assigned Labor\",\n UnableToLocate: \"Unable to locate \\\"{0}\\\"\",\n RenameGroupHeader: \"Rename Group Header\",\n MapTitleDetailFor: \"{0} Detail for {1}\",\n LoadingTriggers: \"Loading Triggers\",\n CannotSaveReport: \"Cannot Save Report\",\n SelectReport: \"Select Report\",\n SelectReportType: \"Select report type\",\n SelectRecordType: \"Select record type\",\n CannotFindRecord: \"Cannot Find Record\",\n CannotAddSection: \"Cannot Add Section\",\n BudgetLimitation: \"Budget Limitation\",\n CannotAddTheLog: \"Cannot Add the Log\",\n EnterReportName: \"Enter report name\",\n StartingLocation: \"Starting Location\",\n CannotAddFilter: \"Cannot Add Filter\",\n RouteDirections: \"Route Directions\",\n AutomationManager: \"Automation Manager\",\n AutomationManagerLogs: \"Logs\",\n SaveUnderline: \"Save\",\n CannotPrintMap: \"Cannot Print Map\",\n GISAssociation: \"GIS Association\",\n PrimaryGISAssoc: \"Primary GIS Association\",\n EndingLocation: \"Ending Location\",\n SelectMaterial: \"Select Material\",\n CreateAutomation: \"Create Automation\",\n AdvancedDesigner: \"Advanced Designer\",\n BasicDesigner: \"Basic Designer\",\n CannotLoadMap: \"Cannot Load Map\",\n StandardReport: \"Standard Report\",\n AllRecordsets: \"All Recordsets\",\n AllGadgetTypes: \"All Gadget Types\",\n CustomReport: \"Custom Report\",\n RenameSection: \"Rename Section\",\n GenerateRoute: \"Generate Route\",\n SaveRoute: \"Save Route\",\n EndTargetOCI: \"End Target OCI\",\n CreatingReport: \"Creating Report\",\n DuplicatingReport: \"Duplicating Report\",\n RouteDetails: \"Route Details\",\n ClearLibrary: \"Clear Library\",\n DuplicateReport: \"Duplicate Report\",\n RefreshReport: \"Refresh Report\",\n CannotRunNow: \"Cannot Run Now\",\n DeleteReport: \"Delete Report\",\n BulkTransfer: \"Bulk Transfer\",\n ManageLayers: \"Manage Layers\",\n SearchLayers: \"Search Layers\",\n EditAProject: \"Edit a Project\",\n SearchGadgets: \"Search gadgets\",\n ProjectTitle: \"Project Title\",\n TransferQty: \"Transfer Qty\",\n Relationship: \"Relationship\",\n AddAProject: \"Add a Project\",\n TotalBudget: \"Total Budget\",\n RoutedTasks: \"Routed Tasks\",\n Description: \"Description\",\n FinishSave: \"Finish & Save\",\n Orientation: \"Orientation\",\n EnterTitle: \"Enter a Title\",\n EditProject: \"Edit Project\",\n SelectView: \"Select View\",\n Searching: \"Searching...\",\n WorkOrders: \"Work Orders\",\n ClearField: \"Clear Field\",\n StopReport: \"Stop Report\",\n EditReport: \"Edit Report\",\n AddSection: \"Add Section\",\n AddProject: \"Add Project\",\n SelectAll: \"Select All\",\n OCITarget: \"OCI Target\",\n EnteredBy: \"Entered By\",\n OpenTasks: \"Open Tasks\",\n AssetType: \"Asset Type\",\n Resources: \"Resources\",\n Automations: \"Automations\",\n Automation: \"Automation\",\n CannotAdd: \"Cannot Add\",\n EditTitle: \"Edit Title\",\n SaveLayer: \"Save Layer\",\n Libraries: \"Libraries\",\n Recordset: \"Recordset\",\n LineItem: \"Line Item\",\n Category: \"Category\",\n FullName: \"Full Name\",\n Transfer: \"Transfer\",\n Activity: \"Activity\",\n Priority: \"Priority\",\n ViewType: \"View Type\",\n AddView: \"Add View\",\n Requests: \"Requests\",\n Complete: \"Complete\",\n Material: \"Material\",\n Advanced: \"Advanced\",\n ErrLog: \"Error Log\",\n Receive: \"Receive\",\n Finish: \"Finish\",\n Details: \"Details\",\n Reports: \"Reports\",\n ResetOms: \"Reset OMS\",\n TaskID: \"Task ID\",\n Assets: \"Assets\",\n SaveAs: \"Save As\",\n Reopen: \"Reopen\",\n Remove: \"Remove\",\n Street: \"Street\",\n Select: \"Select\",\n Field: \"Field\",\n Owner: \"Owner\",\n Clear: \"Clear\",\n Stock: \"Stock\",\n Basic: \"Basic\",\n Name: \"Name\",\n Keep: \"Keep\",\n Back: \"Back\",\n Next: \"Next\",\n Forward: \"Forward\",\n Month: \"Month\",\n Week: \"Week\",\n Type: \"Type\",\n Work: \"Work\",\n Lock: \"Lock\",\n ID: \"ID\",\n PM: \"PM\",\n AM: \"AM\",\n SpacePM: \" PM\",\n SpaceAM: \" AM\",\n High: \"High\",\n Low: \"Low\",\n Moderate: \"Moderate\",\n Excellent: \"Excellent\",\n Good: \"Good\",\n Average: \"Average\",\n Fair: \"Fair\",\n Poor: \"Poor\",\n Failed: \"Failed\",\n OID: \"oid\",\n GoToDate: \"Go To Date\",\n AssetAdministration: \"Asset Administration\",\n VersaCGAppNames: [\"Asset Builder Point\", \"Asset Builder Linear\", \"Asset Builder Polygon\"],\n Structure: \"Structure Manager\",\n StructureMgrProtectedNames: [\n \"cgWorkOrders\",\n \"cgTasks\",\n \"cgRequests\",\n \"cgLabor\",\n \"cgLaborCrew\",\n \"cgEquipment\",\n \"cgMaterials\",\n \"cgMaterialLocations\",\n \"cgMaterialOrders\",\n \"cgMaterialPlanning\",\n \"cgVendors\",\n \"cgLog\",\n \"cgOtherLog\"\n ],\n PluralDuplicateName: \"Plural Name must be unique. The {0} Plural Name exists.\",\n PluralDuplicateNameInUnavialable:\n \"Plural name must be unique. {0} exists as a Cartegraph standard asset.\",\n SingularDuplicateName: \"Singular Name must be unique. The {0} Singular Name exists.\",\n SingularDuplicateNameInUnavialable:\n \"Singular name must be unique. {0} exists as a Cartegraph standard asset.\",\n Installed: \"Installed\",\n Available: \"Available\",\n UnvailableStandardAsset: \"UnvailableStandardAsset\",\n DuplicateUserId: \"ID must be unique. The {0} ID exists.\",\n TableDuplicateName: \"Table Name must be unique. The {0} table exists.\",\n FieldDuplicateName: \"Field name must be unique. The {0} field exists.\",\n ColumnDuplicateName: \"Column name must be unique. The {0} column exists.\",\n GreaterThanZero: \"{0} must be greater than 0.\",\n AssetConditionManager: \"Asset Condition Manager\",\n NotificationManager: \"Notification Manager\",\n AssetColorManager: \"Asset Color Manager\",\n LibraryManager: \"Library Manager\",\n LayoutManager: \"Layout Manager\",\n BaseMapAdmin: \"Map Administration\",\n UserAdmin: \"User Administration\",\n RoleAdmin: \"Role Administration\",\n Administration: \"Administration\",\n SystemSettings: \"System Settings\",\n ScenarioBuilder: \"Scenario Builder\",\n ScheduledProcessLog: \"Scheduled Processes\",\n GeocodeSettings: \"Geocode Settings\",\n Settings: \"Settings\",\n Budgets: \"Budgets\",\n Project: \"Project\",\n Projects: \"Projects\",\n PlanYears: \"Plan Years\",\n PlanYear: \"Plan Year\",\n Protocol: \"Protocol\",\n Protocols: \"Protocols\",\n XWorkOrdersSelected: \"{0} Work Orders Selected\",\n OneWorkOrderSelected: \"1 Work Order Selected\",\n InvalidTimeFormat: \"Invalid time format\",\n InvalidDateFormat: \"Invalid date format\",\n FailRetrieveFieldListErrMsg: \"Failed to retrieve field list for class{0}. Error: {1}\",\n CostPerPlanYear: \"Cost Per Plan Year\",\n ConvertToWork: \"Convert to Work\",\n SearchProjects: \"Search Projects\",\n WindowVMInstanceMustReturnsCarteVMWV:\n \"windowViewModelInstance must be a function that returns a Cartegraph.ViewModels.WindowViewModel\",\n WindowVMInstnaceMustReturnsCarteVMBV:\n \"windowViewModelInstance must be a function that returns a Cartegraph.ViewModels.BaseViewModel\",\n WindowVMInstanceTypeCarteVMWVRequired:\n \"windowViewModelInstance of type Cartegraph.ViewModels.WindowViewModel required\",\n WindowVMInstanceTypeCarteVMBVRequired:\n \"windowViewModelInstance of type Cartegraph.ViewModels.BaseViewModel required\",\n WindowVMOverridesetModels: \"Must override WindowViewModel setModels\",\n WindowVMOverrideDispose: \"Must override WindowViewModel dispose\",\n WindowVMOverrideSave: \"Must override WindowViewModel save\",\n NonLocationGridVMOverrideAdd: \"Must override NonLocationAssetGridViewModel add\",\n NonLocationGridVMOverrideRemove: \"Must override NonLocationAssetGridViewModel remove\",\n NonLocationGridVMOverrideGetAssets:\n \"Must override NonLocationAssetGridViewModel getSelectedAssets\",\n ImportExportBaseSelectionVMOverrideSave:\n \"Must override ImportExportBaseSelectionViewModel save\",\n EventNameCannotHaveNamespace: \"eventName can't contain a Namespace!\",\n SelectedUnitsIncompatibleNoConverted:\n \"Selected units are incompatible and cannot be converted.\",\n CannotChangeUnit: \"Cannot Change Unit\",\n CannotConvertUnitMessage: \"Cannot convert {0} {1} to the unit of {2}.\",\n BadRecordsetMeta: \"Bad recordsetMeta\",\n BadRecordMeta: \"Bad recordMeta\",\n BadFieldMeta: \"Bad fieldMeta\",\n TurnEncryptionOffButton: \"Turn Encryption Off\",\n KeepEncryptionOnButton: \"Keep Encryption On\",\n TurnEncryptionOffTitle: \"Are you sure you want to turn encryption off?\",\n TurnEncryptionOffMessage:\n \"Turning encryption off clears the value. New values display decrypted.\",\n TurnEncryptionOnTitle: \"Are you sure you want to turn encryption on?\",\n TurnEncryptionOnMessage:\n \"Turning encryption on replaces the value with an encrypted version. The decrypted value does not display.\",\n TurnEncryptionOnButton: \"Turn Encryption On\",\n KeepEncryptionOffButton: \"Keep Encryption Off\",\n HourMustBetw1And12: \"Hour must be between 1 and 12. (or 0 and 23 for military time)\",\n CannotSpecifyAmOrPmMilitary: \"You cannot specify AM or PM for military time\",\n CannotDivideByZero: \"Cannot divide by zero\",\n InvalideDate: \"invalid date\",\n CreateTask: \"Create Task\",\n CreateXTasks: \"Create {0} Tasks\",\n Format: \"Format\",\n Install: \"Install\",\n Commit: \"Commit\",\n MinMustBetw0And59: \"Minute must be between 0 and 59.\",\n SecMustBetw0And59: \"Second must be between 0 and 59.\",\n ClassMetaIsNull: \"classMeta is null\",\n CouldNotGetModel: \"Could not get the model.\",\n ClassNameIsRequired: \"className is required.\",\n BaseNameSpaceIsRequired: \"baseNamespace is required.\",\n RequiredWhen: \"{0} requires a value when {1}.\",\n ErrUploadLibraryAttachment: \"Error uploading Library Attachment\",\n JSErrFileLineNumMsg: \"JavaScript Error\\nFile: {0}\\nLine Number: {1}\\nMessage: {2}\",\n ObjErrExpandoCollapso: \"In-session object error, no ID on expanded or collapsed state!\",\n NoBIDForURIMayNotCalled: \"No BID for URI! Proper URI function may not have been called!\",\n SampleAreaMissingNoDivByZero: \"Sample Area missing, cannot divide by zero\",\n SampleAreaMissing: \"Sample Area missing\",\n SampleLengthMissing: \"Sample length parameter missing when calculating distress area\",\n PavementWidthMissing: \"Pavement width parameter missing when calculating distress area\",\n CannotSelectAll: \"Cannot Select All\",\n CannotBeInMsgMoreThanOnce: \" cannot be in the message more than once.\",\n CannotBeInViewMoreThanOnce: \" cannot be in the view more than once.\",\n PreventativeMaintenance: \"Preventative Maintenance\",\n PreventativeMaintenanceHeader: \"Preventative Maintenance Plans\",\n PreventativeMaintenanceHasMaxPlans:\n \"Your account has reached the maximum number of {0} Preventative Maintenance plans.\",\n RecordSet: \"Recordset\",\n Library: \"Library\",\n PMFindAPlan: \"Search\",\n Import: \"Import\",\n Export: \"Export\",\n InvalidFormat: \"Invalid Format\",\n ImportExport: \"Import / Export\",\n ImportingJob: \"Importing Job\",\n ExportingJob: \"Exporting Job\",\n SortSelectedRecords: \"Sort Selected Records\",\n SelectCategory: \"Select Category\",\n SelectTimeInterval: \"Select Time Interval\",\n SelectType: \"Select Type\",\n SelectFormat: \"Select Format\",\n SelectDataSource: \"Select Data Source\",\n InvalidImportDataSourceFile: \"{file} is invalid. Select a .csv, .txt, or .tab file.\",\n ValidImageTypes: \"image/jpeg,image/bmp,image/gif,image/png\",\n InvalidImageFile:\n \"{file} is an invalid file type. Select an image file type of .bmp, .png, .gif, .jpg, or .jpeg.\",\n FileUploaderInvalidFileTitle: \"Invalid File\",\n DeleteCOFCriteriaTitle: \"Delete criteria and recalculate risk scores?\",\n DeleteCOFCriteriaMessage:\n \"If this Consequence of Failure criteria is deleted, the corresponding field is removed from the {0} Detail view, and any stored data is permanently deleted. The Consequence of Failure and overall Risk scores are recalculated for all asset records of this type.\",\n CannotEditStructureTitle: \"Cannot Update System Structure\",\n CannotEditStructureBody: \"You cannot edit system structure because you do not have permission to access Structure Manager. Ask your System Administrator for help.\",\n CantOpenFile:\n \"{0}'s file extension does not match the file type and will not open. Select a file with the correct file extension\",\n FileUploaderEmptyErrorMessage: \"{0} is empty. Select a valid file to continue.\",\n FileUploadTypeErrorMessage: \"{file} is invalid. Select a file with the correct file type.\",\n FileUploadSizeErrorMessage: \"{file} is invalid. Files cannot be larger than {sizeLimit}.\",\n FilterTimeoutErrorTitleAdvFilter: \"Cannot Apply Filter\",\n FilterTimeoutErrorMessageAdvFilter:\n \"This invalid filter caused a timeout. Change the filter and try again.\",\n FilterTimeoutErrorTitleColorCount: \"Cannot Apply Filter\",\n FilterTimeoutErrorMessageColorCount:\n \"An invalid filter caused a timeout. Change the filter and try again.\",\n ModelSaverBadModelException:\n \"Model is required and must be a instance of Cartegraph.Models.cgBase\",\n RequiresJsDateObject: \"{0} requires a JavaScript Date object\",\n CanceledSeeLog: \"Canceled - See Log\",\n CompleteSeeLog: \"Complete - See Log\",\n Review: \"Review\",\n Success: \"Success\",\n SelectConditionTrigger: \"Select Trigger Type\",\n EstimatedOCI: \"Estimated OCI\",\n InspectedOCI: \"Inspected OCI\",\n MinimumIsReached: \"Minimum is Reached\",\n NoFilterApplied: \"– No filter applied\",\n Every: \"Every \",\n Beginning: \" beginning \",\n AfterThePrevious: \" after the previous \",\n TimeOnly: \"Time Only\",\n TimeAfterComplete: \"Time After Complete\",\n Condition: \"Condition\",\n Time: \"Time\",\n Repeat: \"Repeat\",\n Usage: \"Usage\",\n UsageText: \" Every {0} {1} since the last {2} was completed\",\n UsageEditText: \"{0} since the last {1} was completed\",\n PMClassName: \"cgPrevMaintPlansClass\",\n PMScheduleClassName: \"cgPrevMaintPlans_cgPrevMaintSchedulesClass\",\n PMNoPlansCreated: \"No Plans Created\",\n PMNoPlansFound: \"No Plans Found\",\n WasCompletedStarting: \" was completed, starting \",\n Yes: \"Yes\",\n No: \"No\",\n EstimatedOciFalls: \"Estimated OCI falls below \",\n InspectedOciFalls: \" Inspected OCI falls below \",\n MinimumConditionIsReached: \" Minimum Condition is reached \",\n FallsBelow: \"falls below \",\n SavePlanNoFilterTitle: \"Are you sure you want to activate this plan?\",\n SavePlanNoFilterBody: \"Plan {0} does not have a filter and will apply to {1} {2}.\",\n SavePlanNoFilterButton: \"Activate without Filter\",\n DuplicatePlanIdTitle: \"Cannot Add the Plan\",\n DuplicatePlanIdErrorMessage: \"{0} already exists. Enter a unique Plan name.\",\n NotificationUnsubscribeFail: \"Failed to unsubscribe. Please try again.\",\n NotificationUnsubscribeSuccess: \"You have been successfully unsubscribed.\",\n RecordsSaved: \"Records Saved\",\n RecordsExported: \"Records Exported\",\n RecordsProcessed: \"Records Processed\",\n CannotCreatePlanTitle: \"Cannot Create Plan\",\n CannotCreatePlanMessage: \"Asset Type must be selected.\",\n DeletePlanTitle: \"Are you sure you want to delete the plan?\",\n DeletePlanMessage: \"The plan will be deleted.\",\n DeletePlan: \"Delete Plan\",\n KeepPlan: \"Keep Plan\",\n EnterPlanName: \"Enter Plan Name\",\n PlanName: \"Plan name\",\n CancelActivation: \"Cancel Activation\",\n DeleteActivityTitle: \"Are you sure you want to remove the activity?\",\n DeleteActivityMessage: \"The activity will be removed from the plan.\",\n KeepActivity: \"Keep Activity\",\n DeleteActivity: \"Remove Activity\",\n KeepTrigger: \"Keep Trigger\",\n RemoveTrigger: \"Remove Trigger\",\n Trigger: \"Trigger\",\n DeleteTriggerTitle: \"Are you sure you want to remove the trigger ?\",\n DeleteTriggerMessage: \"The trigger will be removed from the activity.\",\n CancelTriggerEditHeader: \"Cancel Trigger Edit\",\n CancelTriggerEditMessage: \"Are you sure you want to cancel the changes made to this trigger?\",\n ResetNotificationManagerTitle: \"Are you sure you want to reset the notifications?\",\n ResetNotificationManagerMessage: \"Notifications will return to the previous state.\",\n ResetChanges: \"Reset Changes\",\n KeepChanges: \"Keep Changes\",\n KeepChange: \"Keep Change\",\n ChangeFieldTypeTitle: \"Are you sure you want to change the field type?\",\n ChangeFieldTypeMessage:\n \"This change updates existing data to match the new field type. This process may take a long time.\",\n KeepFieldType: \"Keep Field Type\",\n ChangeFieldType: \"Change Field Type\",\n MultipleUniqueAndRequiredTitle: \"Another Field is Marked Unique and Required\",\n RelationshipExplanation:\n \"Relationships allow you to share access to a recordset’s data with other recordsets in your database. Select the recordset you want to share {0} with below:\",\n ContainerComponentExplanation:\n \"Container/Component relationship. {0} total costs and condition estimates include {1} using the weight below.\",\n ContainerComponentDisabledExplanation:\n \"{0} cannot be a container to {1} because it already exists as component below {1} in the hierarchy.\",\n SelectRecordset: \"Select Recordset\",\n NameRecordset: \"Name Recordset\",\n ActivateAs: \"Active as of {0}\",\n IsoDateFormat: \"yy-mm-dd\",\n IsoDateTimeFormat: \"yy-mm-ddTH:mm:ssZ\",\n InvalidUsageFilterTitle: \"Cannot Add Usage Trigger\",\n InvalidUsageNoRecordsMessage:\n \"The plan must contain a minimum of one record. Edit the plan filter to continue.\",\n InvalidUsageFilterDifferentUnitsMessage:\n \"The plan’s filter contains {0} records with different units. Edit the plan filter to contain {0} records with a classification. All classifications in the filter set must contain the same unit type.\",\n InvalidUsageFilterNoUnitsMessage:\n \"The plan’s filter contains no {0} records with units. Edit the plan filter to contain {0} records with one unit type or make sure the {0} records are assigned a classification.\",\n RecordHasNoUnitLower: \"record has no unit\",\n RecordsHaveNoUnitLower: \"records have no unit\",\n RecordUsesLower: \"record uses\",\n RecordsUseLower: \"records use\",\n TaskStatus: {\n Projected: \"Projected\",\n Planned: \"Planned\",\n Completed: \"Completed\",\n Canceled: \"Canceled\",\n InProgress: \"In Progress\"\n },\n WorkOrderStatus: {\n Planned: \"Planned\",\n Completed: \"Completed\",\n Canceled: \"Canceled\",\n InProgress: \"In Progress\"\n },\n ProjectedOrOpenTaskForThisAsset: \"Related Work Item\",\n ProjectedOrOpenTasksForThisAsset: \"Related Work Items\",\n ConvertingProjectedTask: \"Converting Projected Task\",\n SelectedActionNotAvailableForProjectedTasks:\n \"Selected Action Not Available for Projected Tasks\",\n RemoveAllSelectedTasksWithStatusProjected:\n \"Remove all selected Tasks with a status of Projected. Action menu items do not apply to Projected Tasks.\",\n AddToContainer: \"Add To This Container\",\n ConnectionExistsTitle: \"Connection Already Exists\",\n ConnectionExistsSingularMessage:\n \" is already a connected component in another container. Are you sure you want to connect this component to this container?\",\n ConnectionExistsPluralMessage:\n \" are already connected components in another container. Are you sure you want to connect these components to this container?\",\n KeepCurrentContainer: \"Keep Current Container\",\n ContainerComponent: \"Container/Component\",\n LinkableAsset: \"Linkable asset\",\n RelationshipTo: \"Relationship to \",\n RecordArchivesDesc:\n \"Audit Recordset allows you to audit changes made to this recordset's data. Audit entries are saved for record additions, changes, and deletions.\",\n SelectConnection: \"Select Connection\",\n EditingNonLocationAssetConnections: \"Editing Non Location Asset Connections\",\n IssueFieldRequired: \"Issue is a required field and must be added to continue.\",\n CannotSave: \"Cannot Save Changes\",\n CannotSaveFile: \"Cannot Save File\",\n CannotLoadFile: \"Cannot Load File\",\n InternalRequestRole: \"Default Internal Request User\",\n CannotAddThe: \"Cannot Add the {0}\",\n SelectingNonLocationAssets: \"Selecting Non Location Assets\",\n SelectNonLocationAsset: \"Select Non Location Asset\",\n ThisFunctionMustBeOverridden: \"This function must be overridden.\",\n ArgumentIsNullOrUndefined: \"{0} argument is null or undefined.\",\n InvalidArgumentValue: \"{0} argument has an invalid value.\",\n ParamsObjectIsNotAnInstanceOf: \"The params object is not an instance of {0} .\",\n AllScenarios: \"All Scenarios\",\n PredictionGroup: \"Prediction Group\",\n ConditionGroup: \"Condition Group\",\n Scenario: \"Scenario\",\n ScenarioEditedRerunRequired: \"Rerun Required\",\n ExportActivitiesWithAssetAttributes: \"Export Activities with Asset Attributes\",\n LineSeparator: \"LineSeparator\",\n ExportActivitiesToTasks: \"Export Activities To Tasks\",\n NoCCToDisplay: \"No condition categories to display\",\n SelectionNotAvailable: \"Selection not available.\",\n FixTheFollowingToContinue: \"Fix the following to continue:\",\n FieldDoesNotExistRemoveFieldToContinue: \"Field does not exist. Remove field to continue.\",\n RemoveField: \"Remove field\",\n Width: \"Width:\",\n ValueMustBeNumberGreaterThan0: \"Value must be a number greater than 0.\",\n OCIWeight: \"OCI Weight\",\n NextAvailableNumber: \"Next Available Number\",\n MaximumCharacters: \"Maximum Characters\",\n LookupRSet: \"Lookup Recordset\",\n UniqueField: \"Unique Field\",\n UnitCategory: \"Unit Category\",\n UnitDefault: \"Default Unit\",\n NumberMinLength: \"Number Minimum Length\",\n SQLStatement: \"SQL Statement\",\n Connection: \"Connection\",\n ConnectionStringDoesNotExist:\n \"Connection String does not exist. Select a valid Connection String to continue\",\n UseSpecialFunction: \"Use Special Function\",\n SourceData: \"Source Data\",\n IncomingDataSource: \"Incoming Data Source\",\n TargetRecordset: \"Target Recordset\",\n ElementIsMissingAnId: \"The element is missing an id.\",\n UniqueIdForKOInSessionPersistence:\n \"A unique element id per namespace for the current URI session is required when using the inSessionPersist binder in order to match session data with the correct view model instance.\",\n TargetRecordsetCategory: \"Target Recordset Category\",\n TargetRecordsetType: \"Target Recordset Type\",\n TargetField: \"Target Field\",\n Target: \"Target\",\n ValueField: \"Value Field\",\n Mask: \"Mask\",\n UseCustomCoordinateSystem: \"Use Custom Coordinate System\",\n GeographicWorldWGS1984: \"Geographic.World.WGS1984\",\n SelectingCoordinateSystem: \"Selecting Coordinate System\",\n TimeFirst: \"Time First\",\n TimeFormat: \"Time Format\",\n DateFormat: \"Date Format\",\n ClearJobHistoryMsg: \"The completed run history will be lost if you continue.\",\n ClearJobHistoryTitle: \"Are you sure you want to clear the run history?\",\n ClearSpecificJobHistoryMsg: \" run history will be lost if you continue.\",\n KeepRunHistory: \"Keep Run History\",\n ClearRunHistory: \"Clear Run History\",\n Index: \"Index\",\n Year: \"Year\",\n Ra: \"Ra\",\n ClearAllPoints: \"Clear All Points\",\n ClearAllImpacts: \"Clear All Impacts\",\n ClearAllMappings: \"Clear All Mappings\",\n CopyPoints: \"Copy Points\",\n PointsCopied: \"Points copied successfully.\",\n PasteCopiedPoints: \"Paste Copied Points\",\n AddPoint: \"Add Point\",\n RemovePoint: \"Remove Point\",\n AddMapping: \"Add Mapping\",\n RemoveMapping: \"Remove Mapping\",\n AddImpact: \"Add Impact\",\n RemoveImpact: \"Remove Impact\",\n EditProperties: \"Edit Properties\",\n ManagingServers: \"Managing Servers\",\n CannotConnectArcGIS:\n \"Cannot connect with ArcGIS server. Not all Geodatabase Attributes are displayed.\",\n Private: \"Private\",\n TestConnection: \"Test Connection\",\n Testing: \"Testing...\",\n ServerName: \"Server Name\",\n ServerURL: \"Server URL\",\n DefaultGISNewServerName: \"Server Name\",\n DefaultGISNewServerURL: \"https://[server.domain.com]/arcgis\",\n AreYouSureYouWantToSave: \"Are you sure you want to save?\",\n AreYouSureYouWantToSaveTmpl: \"Are you sure you want to save {0}?\",\n SaveServer: \"Save Server\",\n NoArcGisServer: \"No ArcGIS Server\",\n AnArcGISServerMustBeAdded:\n \"An ArcGIS Server must be added before creating associations. Select Manage Servers to add an ArcGIS Server.\",\n CannotDeleteGisServer: \"Cannot delete GIS Server because it is referenced elsewhere.\",\n CannotDeleteGisServerNamed: \"{0} is referenced by other records.\",\n AreYouSureChangeAssociationMsg:\n \"If you change the {0} field, the other Data Source fields and any Field Associations may clear.\",\n SaveHasUidErrorsTitle: \"Cannot Save Layout View\",\n SaveHasUidErrors:\n \"Duplicate fields or grids exist. Fields and grids can only display in a Task Detail view one time. Remove the duplicate field or grid in the section or fix the filters so it only displays one time. {0}\",\n SoeNotEnabledTitle: \"Cartegraph SOE Not Enabled\",\n SoeNotEnabledMessage:\n \"The Cartegraph SOE is required for real-time updates when the Cartegraph Add-in is installed in ArcMap or ArcGIS Pro. If the Cartegraph SOE is not enabled for a two-way integration, manual syncs are required for ArcMap/ArcGIS Pro edits to display in Cartegraph.\",\n CannotSaveAssociation: \"Cannot Save Association\",\n CancelChange: \"Cancel Change\",\n ContinueChange: \"Continue with Change\",\n FeatureService: \"Feature Service\",\n FeatureClassLayer: \"Feature Class Layer\",\n CartegraphRecordset: \"Cartegraph Recordset\",\n LinearFeatureClassField: \"Linear Feature Class Layer\",\n LinearIDField: \"Linear Task ID Association\",\n PolygonFeatureClassField: \"Polygon Feature Class Layer\",\n PolygonIDField: \"Polygon Task ID Association\",\n RequiredWhenUsingFullGeometry: \"The {0} is required when Include Full Geometry is enabled.\",\n GISStringTruncation:\n \"The {0} field data is too long and would be truncated. Correct the Cartegraph data, increase the Geodatabase field size, or associate to a larger Geodatabase Attribute.\",\n GISMemoError:\n \"The {0} attribute cannot be associated to the primary field. Decrease the Geodatabase field size or associate to a smaller Geodatabase Attribute.\",\n EditTrackingNotEnabledMessage:\n \"Edit Tracking is not enabled for the Feature Class Layer, or the Edit Date Field is missing.\",\n CannotContactServer: \"Cannot Contact Server\",\n CannotEditAssociationsMessage:\n \"You are not able to edit any of the Field Associations because the ArcGIS Server connection was lost. Check the server settings or contact Cartegraph Technical Support for help.\",\n CannotEditFeatureServiceTitle: \"Cannot Edit the Association\",\n CannotEditFeatureServiceMessage:\n \"You are not able to edit the Association because the ArcGIS Server is not configured properly. Check the ArcGIS Server Manager settings or contact Cartegraph Technical Support for help.\",\n CannotEditTheAsset: \"Cannot Edit the {0}\",\n CannotEditGeometry: \"Cannot Edit Geometry\",\n CannotAddTheAsset: \"Cannot Add the {0}\",\n CannotCreateAssetInGeometricNetwork:\n \"{0} are part of a geometric or utility network in GIS and cannot be created in Cartegraph. You must create the record in GIS.\",\n CannotDuplicateAssetInGeometricNetwork:\n \"{0} are part of a geometric or utility network in GIS and cannot be duplicated in Cartegraph. You must create the record in GIS.\",\n CannotEditGeometricNetwork:\n \"{0} are part of a geometric or utility network in GIS, so geometry cannot be edited in Cartegraph. You must edit the geometry in GIS.\",\n MandZAwareFeatureServiceMessage:\n \"M-aware or Z-aware is enabled for the Feature Class Layer.\",\n UpdateGeometryFeatureServiceMessage:\n \"Allow Geometry Edits is not enabled for the Feature Service.\",\n MandZAwareAndUpdateGeometryFeatureServiceMessage:\n \"M-aware or Z-aware is enabled for the Feature Class Layer and when Allow Geometry Edits is not enabled for the Feature Service.\",\n CannotDeleteGeometricNetwork:\n \"{0} are part of a geometric or utility network in GIS and cannot be deleted in Cartegraph. You must delete the record in GIS.\",\n FeatureOutsideBoundary: \"The feature is outside the map boundary.\",\n CgRemaining: \"Cartegraph Records to Process\",\n GisRemaining: \"GIS Records to Process\",\n RecordsInSync: \"Records In Sync\",\n RecordsSynced: \"Synced\",\n RecordsAdded: \"Added\",\n RecordsSkipped: \"Skipped\",\n RecordsFailed: \"Failed\",\n DownloadLog: \"Download Log\",\n DownloadRtLog: \"Download Interval Log\",\n Completed: \"Completed\",\n Started: \"Started\",\n Running: \"Running\",\n Waiting: \"Waiting\",\n RunStatus: \"Run Status:\",\n Canceled: \"Canceled\",\n RunStatusCanceling: \"Canceling\",\n SynchronizingAssociations: \"Synchronizing Associations\",\n Synchronizing: \"Synchronizing\",\n NewField: \"\",\n NewLibrary: \"\",\n NewUniqueID: \"\",\n CartegraphLibrary: \"Cartegraph Library\",\n CannotCancelSynchronization: \"Cannot Cancel Synchronization\",\n CannotRefreshSynchronization: \"Cannot Synchronize Association\",\n CannotRefreshSynchronizationMsg:\n \"The Association did not synchronize because the {0} server could not be contacted.\",\n AttemptsFailedSynchronizationMsg:\n \"Several attempts to synchronize the association were not successful. Verify the association and run Synchronize again. If you continue to have problems, contact Cartegraph Technical Support.\",\n CannotDownloadLog: \"Cannot Download Log\",\n CannotEditListInLibraryManager: \"Cannot edit the list in Library Manager.\",\n CannotLoadLibraryPropertiesTitle: \"Cannot Load Library Properties\",\n CannotLoadLibraryPropertiesMessage:\n \"Cannot load properties for the {0} library. Select the library again and if you still have problems, ask your System Administrator for help.\",\n MakeChangesToDomainInArcCatalog: \"Use GIS to make changes to the {0}.\",\n AreYouSureChangeTheDefault: \"Are you sure you want to change the default?\",\n DefaultGroupChanged: \"The Default {0} will be changed from {1} to {2}.\",\n EditDefault: \"Edit Default\",\n GISAttribute: \"GIS Attribute\",\n GeometricNetwork: \"Geometric or Utility Network\",\n GISOneWayFromCg: \"One-Way from Cartegraph to GIS\",\n GISOneWayFromGis: \"One-Way from GIS to Cartegraph\",\n GISTwoWay: \"Two-Way\",\n CannotSetGeometricNetwork: \"Cannot Set Geometric Network\",\n RecordsetMustBeEmptyForGeometricNetwork:\n \"Cannot select the Geometric Network check box for the selected Cartegraph recordset. The Cartegraph recordset must be empty before setting the association as a Geometric Network.\",\n RecordsetMustBeEmptyForUtilityNetwork:\n \"Cannot select this recordset because it has records, and the selected feature layer is part of a utility network. Utility network layers can only be associated with empty recordsets.\",\n SpatialEditsInGIS:\n \"By selecting this option, create, delete, duplicate, and spatial edits are prevented in Cartegraph and must be done in GIS.\",\n Configuration: \"Configuration\",\n PortalURL: \"Portal URL\",\n DefaultGISNewPortalURL: \"https://[portal.domain.com]/portal\",\n GetScenarioAssetData: \"Get Scenario and Asset Data\",\n CalculateMissingAssetPerformanceData: \"Calculate Missing Asset Performance Data\",\n ProcessScenario: \"Process Scenario\",\n SaveScenarioResults: \"Save Scenario Results\",\n AssetCriticality: \"Asset Criticality\",\n AssetCriticalityHighestEstimatedOCI: \"Asset Criticality and Highest Estimated OCI\",\n AssetCriticalityLowestEstimatedOCI: \"Asset Criticality and Lowest Estimated OCI\",\n ScenarioWeightError: \"Asset Prioritization is set to \\\"Asset Criticality and Estimated OCI\\\"\",\n CancelComplete: \"Cancel Complete {0}\",\n ContinueToComplete: \"Continue to Complete {0}\",\n CompleteDialogTitle: \"Are you sure you want to complete the {0}?\",\n Completing: \"Completing Tasks...\",\n CannotCompleteSelectedRecords: \"Cannot Complete Selected Tasks\",\n BulkCompleteTaskMessage: \"{0} {1} will be completed.\",\n BulkEditDialogTitle: \"Bulk Editing {0} Record{1}\",\n BulkEditDialogSubtitle: \"Select the fields to edit and enter the new values.\",\n BulkEditConfirmationTitle: \"Are You Sure?\",\n BulkEditConfirmationMessage: \"When you click Yes, changes to {0} record{1} will be made and cannot be undone.\",\n BulkEditEmptyFields: \"The following fields were left empty, which will remove the existing values from the records being edited:\",\n BulkEditEmptyActivityList: \"The selected records do not share an Activity. Change the tasks selected to include at least one shared Activity.\",\n BulkEditCannotLoadCOFTitle: \"Cannot Load Data\",\n BulkEditCannotLoadCOFMsg: \"Cannot load data for the {0} field. Ask your System Administrator for help.\",\n Budget: \"Budget\",\n HighestRisk: \"Highest Risk\",\n TargetOCI: \"Target OCI\",\n ScenarioRerun:\n \"You are about to re-run this scenario. All previous results are cleared and updated asset data is gathered.\",\n ScenarioRerunAreYouSure: \"Are you sure you want to re-run this scenario?\",\n ScenarioBudgetRequired: \"Budget Limitation scenarios need at least one budget.\",\n ScenarioProtocolRequired: \"A scenario needs at least one protocol.\",\n ScenarioPlanYearRequired: \"A scenario needs at least one plan year.\",\n ScenarioNoBudgetForCategory:\n \"You have triggers with Budget categories without a corresponding budget. Add a budget to the scenario for the {0} budget {1}.

If you don’t add a budget, the associated activities cannot be recommended.\",\n ScenarioNoTriggerForBudget:\n \"The {0} budget category does not have a trigger using this budget category. Set at least one trigger to this category.

If you don’t add triggers, no money is spent for this budget.\",\n ScenarioNoTriggerForBudgets:\n \"The {0} budget categories do not have triggers using these budget categories. Set at least one trigger to these categories.

If you don’t add triggers, no money is spent for this budget.\",\n ScenarioSelectActivity: \"Select Activity\",\n ScenarioSelectYear: \"Select Year\",\n ScenarioStaleEOCI: \"Re-run Scenario\",\n ScenarioNAEOCI: \"N/A\",\n ScenarioActivityPaneDescription:\n \"Set the activity and plan year and lock the records to the scenario.\",\n ScenarioProjectPaneDescription:\n \"Group activities to be performed together and convert into a work order and tasks.\",\n ScenarioViewPaneDescription: \"Select specific projects to view on the map.\",\n StopAndMakeChanges: \"Stop and Make Changes\",\n ActivitiesNotRecommended:\n \"If you don’t add a budget, the associated activities cannot be recommended.\",\n AreYouSureYouWantToContinue: \"Are you sure you want to continue?\",\n PwpStatusCriticalErrors: \"Critical Errors\",\n ActivityCostPerPlanYear: \"Activity Cost per Plan Year\",\n BudgetVsCostPerPlanYear: \"Budget vs Cost per Plan Year\",\n CostForImpactPerScenario: \"Cost for Impact per Scenario\",\n ImpactPerScenario: \"Net OCI Gain per Scenario\",\n BudgetVsCostPerScenario: \"Budget vs Cost per Scenario\",\n CurrentUserDoesNotHaveAssociatedLaborRecord:\n \"The current user does not have an associated Labor record. Ask your System Administrator for help.\",\n RecordFilterAdmin: \"Record Filter Administration\",\n RecordFilterLimitReachedTitle: \"Cannot add Record Filter\",\n RecordFilterLimitReachedMessage: \"The maximum number of Record Filters already in use\",\n DeleteFilterTitle: \"Are you sure you want to remove the Recordset Filter?\",\n DeleteFilterMessage: \"The filter will be permanently removed from the system.\",\n DeleteFilter: \"Remove Filter\",\n MaterialLocationSummaryChartTitle: \"Past 24 Month Usage Comparison\",\n TaskEstimateVsActualCostChartTitle: \"Estimated vs Actual Costs\",\n MaterialMove: \"Transfer Material\",\n RepairLog: \"Repair Log\",\n NoMaterials: \"No materials below reorder point\",\n OrderingProcess: \"Ordering Process:\",\n OrderEdit: \"Viewing Order:\",\n OrderReceive: \"Receiving Order:\",\n DeleteAttachmentTitle: \"Are you sure you want to delete the attachment?\",\n DeleteAttachmentMessage: \"The attachment will be deleted.\",\n KeepAttachment: \"Keep Attachment\",\n DeleteAttachment: \"Delete Attachment\",\n SelectLocations: \"Select Locations\",\n SelectOrganization: \"Select Organization\",\n SelectIntegration: \"Select Integration\",\n SelectaValue: \"Select a value\",\n ChooseVendor: \"Filter By Vendor to Generate Order\",\n SelectYourLocations: \"Select Your Location(s)\",\n IncludeMobileLocations: \"Include Mobile Locations:\",\n UnitPrice: \"Unit Price\",\n NotAllMaterialsOrdered: \"Not all Materials below reorder point have been reordered.\",\n InvalidAddOrderItemTitle: \"Cannot Add Line Item\",\n InvalidBulkTransferItemTitle: \"Cannot Transfer Line Item(s)\",\n InvalidBulkTransferItemMessage: \"Not all line items could be transferred.\",\n MaterialLocationItemAlreadyExistsMessage:\n \"A Line Item for this Material and Location already exists.\",\n PriceRequiredOnReceive: \"Price required when receiving material.\",\n MaterialItemAlreadyExistsMessage: \"A Line Item for this Material already exists.\",\n CannotEditLogHeader: \"Cannot Edit Log\",\n CannotSaveRecord: \"Cannot Save Record\",\n SmartFieldMustBeReadOnly:\n \"Read-only must be set to true when Calculation expression is entered.\",\n ExchangeAsset: \"Exchange Asset\",\n CannotExchangeAsset: \"Cannot Exchange Asset\",\n CannotExchangeAssetWithNoParent: \"Cannot exchange an asset that does not have a parent.\",\n Apps: \"Apps\",\n AppSuccessfullyInstalled: \"App Successfully Installed\",\n SelectedAssetsWillNotBeInstalled: \"The selected assets will not be installed.\",\n SelectAvailableAssets: \"Select Available Assets\",\n YearsCantBeUsedWithApplyOnce: \"Years cannot be used when Apply Once is selected.\",\n CannotLoadShareData: \"Unable to load sharing data\",\n //#region Section Filtering\n SectionFiltersCopied: \"Filters copied\",\n SectionFiltersPasted: \"Filters pasted\",\n SectionFilteringErrorTitle: \"Cannot Add Section Filtering\",\n SectionFilteringErrorMessage: \"Correct the errors to continue.\",\n SectionFilteringSingleError:\n \"are already added as a filter. Remove the duplicate or update the filter so it is not duplicate.\",\n SectionFilteringMultipleErrors:\n \"Duplicate asset and activity combinations are not allowed. Remove or update the filters so they are not duplicates. \\n \\n\",\n InvalidTaskFilter: \"Invalid filter. An activity is required.\",\n DuplicateTaskFilter:\n \"Duplicate filter. The same asset and activity combination can only be used one time.\",\n //#endregion\n //#region Routing\n CannotGenerateRoute: \"Cannot Generate Route\",\n CannotAddTasksToRoute: \"Cannot Add Tasks to Route\",\n FilterTasksToRoute:\n \"More than 150 Tasks that can be used, including the starting location and ending location, are selected. Filter the list to less than 149.\",\n MinimumTasksToRoute: \"A minimum of 1 Task must be Planned or In Progress and have a location.\",\n SingleUnroutableTask: \"1 Task is Projected, Completed, Canceled, or does not have a location.\",\n MultipleUnroutableTasks:\n \"{0} Tasks are Projected, Completed, Canceled, or do not have a location.\",\n ContineToRouteRemainingTasks: \" Continue to route the remaining {0} Task{1}?\",\n ContinueWithRoute: \"Continue with Route\",\n CancelRoute: \"Cancel Route\",\n //#endregion\n //#region Spatial Analysis\n ViewText: \"View Text\",\n ViewGrid: \"View Grid\",\n NoRecordsToAnalyze: \"No Records to Analyze\",\n NoRecordsToAnalyzeMessage:\n \"No records are in the Layer to analyze. The Layer must contain records with location and display on the Map when the Spatial Analysis is selected.\",\n NoResultsFound: \"No Results Found\",\n NoSpatialSelectionResults:\n \"No records found with Spatial Analysis. Run the analysis again with different expressions.\",\n NoRecordsInMapExtent:\n \"No records found in your map extent to analyze. Adjust your map extent and run the analysis again.\",\n InvalidGeometryShapeForExpression:\n \"The analysis uses the expression type, {0}. This type is not valid when analyzing a {1} shape with the selected Living Atlas layer's {2} shape. Select a valid expression or layer.\",\n CannotSelectAllResults: \"Cannot Select all Results\",\n SpatialResultsSelectionExceeded:\n \"More than {0} records are in the Spatial Analysis results. Only the first {0} of {1} records are selected. Filter the Layer or Add Expressions to decrease the results.\",\n CannotRunAnalysis: \"Cannot Run Analysis\",\n RecordsInLayersChanged:\n \"The records in the layers changed causing the layers to be stale. Click OK to refresh the page and start the command again.\",\n ArcGISFeatureAccessBlocked:\n \"Your access to this feature is blocked. Ask your GIS Administrator for help.\",\n ConfigureAnalysis:\n \"Your ArcGIS account is not configured to perform analysis. Ask your GIS Administrator for help.\",\n NonPublicFacingURL:\n \"One or more of the Esri layers selected in the query cannot be accessed. Ask your GIS Administrator for help.\",\n InstalledAssets: \"Installed Assets\",\n CannotCompleteAnalysis: \"Cannot Complete Spatial Analysis\",\n SpatialAnalysisTimedOut:\n \"There could be too many records to analyze or there is a problem connecting to the server. Filter out some records or turn off some active layers and try again.\",\n //#endregion\n //#region Timeout\n YourSessionWillExpire: \"Your session will expire in {0} seconds. Stay signed in?\",\n SignOut: \"Sign Out\",\n StaySignedIn: \"Stay Signed In\",\n SessionExpiring: \"Session Expiring\",\n //#endregion\n //#region Dashboard\n GadgetLibrary: \"Gadget Library\",\n MaxGadgets: \"Maximum number of gadgets on dashboard\",\n MaxGadgetsHeadsUp: \"Heads up! You've hit your limit of 20 gadgets.\",\n MyLibraryInfo:\n \"Sharing is caring! Add this gadget
to your library to access it at any
time or share it with others.\",\n GadgetSaved: \"Gadget Saved\",\n //#endregion\n ResourceEstimatesManager: \"Resource Estimates Manager\",\n ResourceEstimatesSlideoutHeader: \"{0} Custom Estimate\",\n FieldSizeOptions: [\n {\n DisplayName: \"Small\",\n Value: 1\n },\n {\n DisplayName: \"Medium\",\n Value: 2\n },\n {\n DisplayName: \"Large\",\n Value: 3\n }\n ],\n\n DateFieldTypeOptions: [\n {\n DisplayName: \"Date and Time\",\n Value: 5\n },\n {\n DisplayName: \"Date\",\n Value: 11\n },\n {\n DisplayName: \"Time\",\n Value: 12\n }\n ],\n\n FieldTypeOptions: [\n {\n DisplayName: \"Attachment\",\n Value: 9\n },\n {\n DisplayName: \"Check box\",\n Value: 1\n },\n {\n DisplayName: \"Currency\",\n Value: 4\n },\n {\n DisplayName: \"Date\",\n Value: 11\n },\n {\n DisplayName: \"Date and Time\",\n Value: 5\n },\n {\n DisplayName: \"Integer\",\n Value: 2\n },\n {\n DisplayName: \"Lookup\",\n Value: 6\n },\n {\n DisplayName: \"Number\",\n Value: 3\n },\n {\n DisplayName: \"Quantity\",\n Value: 10\n },\n {\n DisplayName: \"Text\",\n Value: 0\n },\n {\n DisplayName: \"Time\",\n Value: 12\n }\n ],\n\n FieldTypeOptionsWOAttachment: [\n {\n DisplayName: \"Check box\",\n Value: 1\n },\n {\n DisplayName: \"Currency\",\n Value: 4\n },\n {\n DisplayName: \"Date\",\n Value: 11\n },\n {\n DisplayName: \"Date and Time\",\n Value: 5\n },\n {\n DisplayName: \"Integer\",\n Value: 2\n },\n {\n DisplayName: \"Lookup\",\n Value: 6\n },\n {\n DisplayName: \"Number\",\n Value: 3\n },\n {\n DisplayName: \"Quantity\",\n Value: 10\n },\n {\n DisplayName: \"Text\",\n Value: 0\n },\n {\n DisplayName: \"Time\",\n Value: 12\n }\n ],\n\n ImportExportTypeOptions: [\n {\n DisplayName: \"Delimited text\",\n Value: \"delimited text\"\n },\n {\n DisplayName: \"ODBC\",\n Value: \"odbc\"\n },\n {\n DisplayName: \"Fixed width\",\n Value: \"fixed width\"\n }\n ],\n\n ImportTextDelimiterOptions: [\n {\n DisplayName: \"None\",\n Value: \"\\0\" // NUL character\n },\n {\n DisplayName: \"\\\"\",\n Value: \"\\\"\"\n }\n ],\n\n ImportFieldDelimiterOptions: [\n {\n DisplayName: \"Comma\",\n Value: \",\"\n },\n {\n DisplayName: \"Semicolon\",\n Value: \";\"\n },\n {\n DisplayName: \"Tab\",\n Value: \"\\t\"\n }\n ],\n\n ImportTransactionScopeOptions: [\n {\n DisplayName: \"Save records without errors\",\n Value: \"SingleRecord\"\n },\n {\n DisplayName: \"Log errors and roll back all records\",\n Value: \"AllRecords\"\n }\n ],\n\n ImportOnDuplicateRecordOptions: [\n {\n DisplayName: \"Overwrite the data\",\n Value: \"Overwrite\"\n },\n {\n DisplayName: \"Ignore the data source value\",\n Value: \"Ignore\"\n }\n ],\n\n ImportOnNullValueOptions: [\n {\n DisplayName: \"Only overwrite when the data source contains a value\",\n Value: \"Ignore\"\n },\n {\n DisplayName: \"Use all values from the data source including records without values\",\n Value: \"Overwrite\"\n }\n ],\n\n ImportOnLongTextOptions: [\n {\n DisplayName: \"Generate an import error\",\n Value: \"Error\"\n },\n {\n DisplayName: \"Automatically truncate the incoming text\",\n Value: \"Truncate\"\n }\n ],\n\n ImportAutoAddLookupOptions: [\n {\n DisplayName: \"Automatically add the value\",\n Value: true\n },\n {\n DisplayName: \"Do not add the value, log as an error\",\n Value: false\n }\n ],\n\n ImportOnReadOnlyOptions: [\n {\n DisplayName: \"Ignore data source value\",\n Value: \"Skip\"\n },\n {\n DisplayName: \"Generate an import error\",\n Value: \"Error\"\n },\n {\n DisplayName: \"Manual override\",\n Value: \"Overwrite\",\n HideItem: true\n }\n ],\n\n ImportSpecialFunction: [\n {\n DisplayName: \"Concatenate\",\n Value: \"Concatenate\"\n },\n {\n DisplayName: \"Custom Format\",\n Value: null\n },\n {\n DisplayName: \"Lookup\",\n Value: \"LookupValue\"\n },\n {\n DisplayName: \"\",\n Value: \"Standard\",\n HideItem: true\n },\n {\n DisplayName: \"Use Data Value\",\n Value: \"\"\n }\n ],\n\n GisConfigurations: [\n {\n DisplayName: \"Unsecured\",\n Value: 0,\n HideItem: false\n },\n {\n DisplayName: \"ArcGIS for Server credentials\",\n Value: 1,\n HideItem: false\n },\n {\n DisplayName: \"ArcGIS Online credentials\",\n Value: 2,\n HideItem: false\n },\n {\n DisplayName: \"Portal credentials\",\n Value: 3,\n HideItem: false\n }\n ],\n\n ImpactUnits: [\"Absolute\", \"%\", \"Relative\"],\n MapSelectionToolUnits: [\n {\n DisplayName: \"Miles\",\n Value: \"MILES\"\n },\n {\n DisplayName: \"Kilometers\",\n Value: \"KILOMETERS\"\n },\n {\n DisplayName: \"Feet\",\n Value: \"FEET\"\n },\n {\n DisplayName: \"Meters\",\n Value: \"METERS\"\n },\n {\n DisplayName: \"Yards\",\n Value: \"YARDS\"\n },\n {\n DisplayName: \"Nautical Miles\",\n Value: \"NAUTICAL_MILES\"\n }\n ],\n AutomationTriggerEvents: [\n { DisplayName: \"After Create\", Value: 1 },\n { DisplayName: \"After Fetch\", Value: 2 },\n { DisplayName: \"Before Insert\", Value: 4 },\n { DisplayName: \"Before Update\", Value: 8 },\n { DisplayName: \"Before Delete\", Value: 16 },\n { DisplayName: \"After Insert\", Value: 32 },\n { DisplayName: \"After Update\", Value: 64 },\n { DisplayName: \"After Delete\", Value: 128 },\n { DisplayName: \"Insert Committed\", Value: 256 },\n { DisplayName: \"Update Committed\", Value: 512 },\n { DisplayName: \"Delete Committed\", Value: 1028 }\n ],\n MaintenanceModeWarningHeader: \"Important Message\",\n MaintenanceModeLockedHeader: \"System Locked for Maintenance\",\n MaintenanceModeLockedText:\n \"While the system is locked for maintenance, users cannot sign into Cartegraph. After you make changes, make sure you set the System Status to Full Access so users can sign in.\",\n MaintenanceModeAdminWarning:\n \"While the system is locked for maintenance, users cannot sign into Cartegraph. After making changes, set the Status back to Full Access.\",\n MaintenanceModeAdminWarningHeader: \"Are you sure you want to lock for maintenance?\",\n SystemAccess: \"Set System Access\",\n MaintenanceLevels: [\n { Level: \"0\", DisplayName: \"Full Access\" },\n { Level: \"1\", DisplayName: \"Notification\" },\n { Level: \"2\", DisplayName: \"Locked for Maintenance\" }\n ],\n Copied: \"Copied\",\n DefaultRate: \"Standard\",\n ResourceModalTitle: \"Enter Resource Values\",\n CollapseAllSections: \"Collapse All Sections\",\n ExpandAllSections: \"Expand All Sections\",\n OCIRangeError: \"OCI must be greater than or equal to 0 and no more than 100.\",\n PlanYearSaved: \"Plan Year Edits Saved\",\n RecordHasBeenExcluded:\n \"1 record has been excluded.\\nSelect an Asset Type to see all records for that Asset Type.\",\n RecordsHaveBeenExcluded:\n \"{0} records have been excluded.\\nSelect an Asset Type to see all records for that Asset Type.\",\n SureDeleteCustomEstimate: \"Are you sure you want to delete this custom estimate?\",\n CartegraphEstimatesUsedInstead: \"Cartegraph estimates will be used instead.\",\n SetCustomEstimates: \"Set Custom Estimates\",\n SetCustomEstimatesWithQuantity: \"Set Custom Estimates With a Quantity\",\n UseCartegraphEstimates: \"Use Cartegraph Calculated Estimates\",\n EstimateOverridesLimitExceeded: (limit: number, total: number) =>\n `There are ${total} records. Only ${limit} records display in this list.\\nSelect an Asset Type to filter the list.`,\n NoCustomEstimatesSet: \"No Custom Estimates Set\",\n EstimateOverrideWillBeDeleted: (asset: string, activity: string) =>\n `${asset}/${activity} does not have the minimum of one custom estimate required and will be deleted.`,\n NoDistributeCostQuantitySet: \"No Distribute Cost Quantity Set\",\n DistributedQuantityNotUsed: (asset: string) =>\n `${asset} does not have a Distribute Cost Using quantity set. The estimated cost will be the value entered in the Cost field.

If you want to use a calculation, go to the Library Manager and update the Distribute Cost Using field for the recordset.`,\n FEMAMultipleEffectiveDates:\n \"Cannot create FEMA rates because the Effective Dates aren’t the same. Fix the dates to continue.\",\n FEMABackDate: \"Use the new FEMA rate and recalculate costs\",\n FEMADontBackDate: \"Keep the old FEMA rate and do not recalculate costs\",\n FEMACostCodesRequired:\n \"Cost codes are required to create rates. Import FEMA Cost Codes to continue.\",\n FEMAUpdateRates: \"Update FEMA Rates\",\n FEMAUpdateRatesMsg: (effDate: string) =>\n `These equipment records have logs using the old FEMA rate after the new FEMA rate’s effective date of ${effDate}.

Select an option below to decide which FEMA rate to use on these logs.`,\n FEMAUnlinkedRates: \"Unlinked Rates\",\n FEMAInactiveCostCodes: \"Inactive FEMA Cost Codes\",\n FEMAInactiveCostCodesMsg:\n \"Some equipment records are using inactive FEMA cost codes, and will not have a FEMA rate.\",\n FEMARatesWillBeExpired:\n \"Rates on these records will be expired if newer Equipment FEMA Rates exist. You can set the expiration date for the FEMA rate on the Equipment Detail View.

No rates will be created because they are not linked to a FEMA Cost Code. Set a FEMA Cost Code on the Equipment records to make new rates.\",\n MapAreaContinueUploadTitle: \"Continue upload of {0} offline map?\",\n MapAreaContinueUploadText: \"Upload replaces the existing map and may take some time to complete.

After completion notify any CG1 users that a new map is available.\",\n MapAreaUploadTitle: \"Offline Map Upload\",\n MapAreaCannotUploadMap: \"Cannot upload Map\",\n MapAreaArcGISLoginRequired: \"To upload an offline map you must sign in with an ArcGIS Identity.\",\n MapAreaUploaded: \"A map was uploaded and is available for Cartegraph One.\",\n _UNIT: \"_unit\",\n SignInAsUser: \"Sign In as User\",\n CannotSignIn: \"Cannot Sign In\",\n YourOwnAccount: \"The selected user account is your own account. Select a different user account.\",\n AlreadySignedIn: \"The selected user account is already signed in as. Select a different user account.\",\n AllAddressesAreValid: \"All addresses are valid.\",\n AddressesNotValid: \"Some addresses are not formatted correctly.\",\n MaxAddressesAllowed: (limit: number) => `A maximum of ${limit} external addresses are allowed.`,\n AddAddresses: \"Add Addresses\",\n ViewDuplicates: \"View Duplicates\",\n DuplicateResources: \"Duplicate Resources\",\n DuplicateResourcesFoud: \"Potential Duplicate Resources Found\",\n SaveDuplicateResources: \"One or more tasks have a matching resource for the same date. Would you like to save?\",\n Reserved: \"Reserved\",\n MaterialPlanningBulkError: \"Material Plan {0}: {1}\",\n MaterialPlanningBulkStatusTitle: \"Editing {0} Material Plan{1}\",\n MaterialPlanningStatusUpdateErrorTitle: \"Status Update Errors\",\n MaterialPlansEditStatusErrorTitle: \"Material Plans Edit Status Error\",\n MaterialPlanningStatusStageError: (status: string) => `Could not resolve Stage for Status ${status}`,\n RecipientTabs: [\n {\n label: \"Role/User\",\n description: \"Roles or Users\",\n pendoId: \"role-user-tab\"\n },\n {\n label: \"Email\",\n description: \"Email\",\n pendoId: \"text-tab\"\n },\n {\n label: \"Link to Field\",\n description: \"Link to Field\",\n pendoId: \"link-field-tab\"\n },\n {\n label: \"Syntax\",\n description: \"Syntax\",\n pendoId: \"syntax-tab\"\n }\n ],\n SortOrderChoices: [\"Ascending\", \"Descending\"],\n InvalidAssetPrioErrorTitle: \"The Asset Prioritization field requires a value.\",\n InvalidAssetPrioErrorMsg: \"Invalid Asset Prioritization\",\n};\n","import { getBaseURL } from \"../Utilities/Site\";\r\n\r\ninterface PendoVisitorOptions {\r\n id: string;\r\n user_name: string;\r\n role: string;\r\n esri_user_name: string;\r\n associated_labor: string;\r\n opengov_identity_email: string;\r\n is_integration_user: boolean;\r\n}\r\n\r\ninterface PendoAccountOptions {\r\n id: string;\r\n orgUrl: string;\r\n cg1Url: string;\r\n name: string;\r\n instance_id: string;\r\n instance_type: string;\r\n}\r\n\r\ninterface Metadata {\r\n [key: string]: string | number | boolean | string[];\r\n}\r\n\r\ninterface EventCallbacks {\r\n ready?(): void;\r\n guidesLoaded?(): void;\r\n guidesFailed?(): void;\r\n}\r\n\r\ninterface PendoInstance {\r\n initialize: (opts: { visitor?: PendoVisitorOptions; account: PendoAccountOptions; events?: EventCallbacks; }) => void;\r\n clearSession: () => void;\r\n track: (trackType: string, metadata?: Metadata) => void;\r\n}\r\n\r\nexport class PendoService {\r\n static pendo: PendoInstance;\r\n\r\n static async init(clientData: any, userAccount: any, cgOneWebUrl: string) {\r\n // If we haven't yet fetched the API, do so now\r\n if (!PendoService.pendo) PendoService.pendo = await downloadPendo();\r\n\r\n if (!PendoService.pendo) return;\r\n\r\n if (!userAccount) {\r\n PendoService.pendo.clearSession();\r\n return;\r\n }\r\n\r\n const opts = {\r\n visitor: PendoService.getVisitor(clientData, userAccount),\r\n account: PendoService.getAccount(clientData, cgOneWebUrl)\r\n };\r\n\r\n try {\r\n await PendoService.initPendoAsync(opts);\r\n PendoService.trackLogin();\r\n PendoService.setupPendoButton();\r\n } catch (e) {\r\n // tslint:disable-next-line: no-console\r\n console.warn(\"Failed to initialize Pendo\");\r\n }\r\n }\r\n\r\n /** Since Pendo init is actually async, but they don't expose it as a promise\r\n * let's wrap the callback to make it a nice, awaitable promise\r\n */\r\n static initPendoAsync(opts: { visitor?: PendoVisitorOptions; account: PendoAccountOptions }) {\r\n return new Promise((resolve, reject) => {\r\n PendoService.pendo.initialize({\r\n ...opts,\r\n events: { ready: () => resolve() }\r\n });\r\n\r\n // If the call takes over 10 seconds, just forget it\r\n setTimeout(reject, 10000);\r\n });\r\n }\r\n\r\n static getVisitor(clientData: any, userAccount: any) {\r\n const userName = userAccount.UserName ? userAccount.UserName.toLowerCase() : \"anonymousir\";\r\n return {\r\n id: clientData.InstanceID + \"|\" + userName,\r\n email: userAccount.Email,\r\n user_name: userAccount.UserName,\r\n role: userAccount.Role,\r\n first_name: userAccount.FirstName,\r\n last_name: userAccount.LastName,\r\n esri_user_name: userAccount.EsriUsername,\r\n associated_labor: userAccount.LaborRecord,\r\n opengov_identity_email: userAccount.OpenGovEmail,\r\n is_integration_user: userAccount.IsIntegrationUser\r\n };\r\n }\r\n\r\n static getAccount(clientData: any, cgOneWebUrl: string): PendoAccountOptions {\r\n return {\r\n id: clientData.InstanceID + \"(\" + clientData.Account + \")\", // \"I-563 (City of Springfield)\"\r\n name: clientData.Account, // \"City of Springfield\"\r\n instance_id: clientData.InstanceID, // \"I-563\"\r\n instance_type: clientData.InstanceType, // \"Production\"\r\n orgUrl: getBaseURL(),\r\n cg1Url: cgOneWebUrl // \"https://release.cartegraph.app\"\r\n };\r\n }\r\n\r\n static trackLoginType(authenticationType: \"Cartegraph\" | \"Esri\" | \"Internal Request\") {\r\n window.localStorage.setItem(\"authenticationType\", authenticationType);\r\n }\r\n\r\n static trackLogin() {\r\n const authenticationType = window.localStorage.getItem(\"authenticationType\");\r\n if (!authenticationType) return;\r\n\r\n // https://developers.pendo.io/docs/?bash#track-events\r\n PendoService.pendo.track(\"Login\", { authenticationType });\r\n window.localStorage.removeItem(\"authenticationType\");\r\n }\r\n\r\n static trackDuplicateResource(duplicateEquipment: number, duplicateLabor: number, duplicateMaterial: number, taskList: string[]): void {\r\n PendoService.pendo.track(\"DuplicateLEMODistribution\", {\r\n equipment: duplicateEquipment,\r\n labor: duplicateLabor,\r\n material: duplicateMaterial,\r\n tasks: taskList\r\n });\r\n }\r\n\r\n // Use MutationObserver to listen when the #pendo-resource-center-container element\r\n // gets added/removed from the DOM. Certain links within Resource Center will close\r\n // the dialog automatically and the button that launches the Resource Center becomes\r\n // out of sync with it's highlighted/active state.\r\n static setupPendoButton() {\r\n const selector = \"#pendo-resource-center-container\";\r\n const $pendoBtn = $(\"#cg-pendo-spacer\");\r\n\r\n if (document.querySelector(selector)) {\r\n $pendoBtn.addClass(\"active\");\r\n return;\r\n }\r\n\r\n const observer = new MutationObserver(mutations => {\r\n if (document.querySelector(selector)) {\r\n $pendoBtn.addClass(\"active\");\r\n return;\r\n }\r\n mutations.forEach((mutation) => {\r\n mutation.removedNodes.forEach((removedNode) => {\r\n if ((removedNode as any).id === \"pendo-resource-center-container\") {\r\n const $pendoBtn = $(\"#cg-pendo-spacer\");\r\n $pendoBtn.removeClass(\"active\");\r\n return;\r\n }\r\n });\r\n });\r\n });\r\n\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true\r\n });\r\n }\r\n}\r\n\r\n// tslint:disable\r\n// prettier-ignore\r\nfunction downloadPendo(): Promise {\r\n // ************ Begin Pendo Snippet ****************\r\n (function(apiKey){\r\n (function(p: any,e: any,n: any,d: any,o?:any){var v: any,w,x,y: any,z;o=p[d]=p[d]||{};o._q=[];\r\n v=['initialize','identify','updateOptions','pageLoad'];for(w=0,x=v.length;w {\r\n var x = 0;\r\n // Wait until the pendo script has loaded\r\n // (5s max), then return the window.pendo object\r\n var intervalId = setInterval(() => {\r\n if ((window as any).pendo\r\n && typeof (window as any).pendo.isReady === \"function\") {\r\n clearInterval(intervalId);\r\n resolve((window as any).pendo);\r\n } else if (++x >= 10) {\r\n clearInterval(intervalId);\r\n resolve(null);\r\n }\r\n }, 500);\r\n });\r\n}\r\n\r\n"]}